4 ms·
I 95% agree with this article, but think that 5% is an important disagreement. Background: I spent most of the last decade writing, maintaining, and managing a
by mkozlows 12y ago
I 95% agree with this article, but think that 5% is an important disagreement.
Background: I spent most of the last decade writing, maintaining, and managing a large enterprise app that had to evolve from its .NET 1.1 foundations to the present day. Our code base looked almost precisely like the one talked about in that article, and with the very real problems mentioned there.
But...
1. Sometimes the productivity wins of a new approach are serious enough that it's worth taking the consistency hit. I'd argue that ORMs, for instance, really are worth it compared to the quasi-code-gen ADO.NET layer. Switching to those midway through the project introduced inconsistency, but all future development done with the ORM was much faster (and more reliable) than the stuff done with the old approach.
(And yes, this is a dangerous argument, because it's easy to convince yourself that it's true all the time, if you want an excuse to use a new technology. But if applied skeptically, it really is true sometimes.)
2. Developer morale is a thing. "You can only use technology invented in 2003, none of this fancy .NET 2.0 stuff, and haha LINQ, are you kidding me?" is going to crush people's spirits, whereas "sure, let's try this new module out using ASP.NET MVC" will introduce an inconsistency into the codebase, but will keep developers more engaged and learning new things (and who knows, maybe this experiment will prove to be one of those ones that gives you a big productivity win).
You have to be careful with that, because you can't literally try out every crazy new thing, but you also can't ignore everything new in the name of consistency and expect anyone to want to work on the project.
- rumcajz 12y agoC devs are OK with working with a 40 years old technology. Actually, they are happy that it doesn't change every 6 months.
- angersock 12y agoTrue, but the ones who are worth their salt know how to take advantage of new libraries and approaches, and how to structure their code so that it is easy to port and maintain. Those devs are, naturally, in the minority.
- kansface 12y agoC89 would like a word with you.
- ploxiln 12y agoLet's be realistic, C is not the same as it was 40 years ago, or 30 years ago. But c99 is pretty cool (though as the sibling suggested, c89 is rather common). Anyway, 15 years old, just right.
- rtpg 12y agoA language is not the only part of the technology stack. There's worlds of difference between a JEE application and a Play application, even if both are written in Java.
- kevan 12y ago> you also can't ignore everything new in the name of consistency and expect anyone to want to work on the project. The strategy will cause a variant of the Cobol effect. You'll either have to pay developers obscene wages to put up with your consistent but antiquated codebase, or try to find developers who are willing to put up with it for normal wages. The latter probably aren't the people you want on your team.