2 ms·
Judgement is indeed an important part of being a great developer, but I don't think the article is doing a good job of explaining why, or what kind of judgement
by azov 15y ago
Judgement is indeed an important part of being a great developer, but I don't think the article is doing a good job of explaining why, or what kind of judgement.
First of all, the story about Jack & Dianne doesn't illustrate much. Why Jack ended up with unmaintainable code and Dianne didn't? And what does it have to do with the tools they've chosen? You can write unmaintainable code in any language.
It sounds like Dianne did a better job of understanding requirements. Okay, fair enough, understanding requirements is important (though I wouldn't call it "judgement"). But requirements change. They always do, that's why software has to be maintained - to reflect changing requirements. Which means that whether the code is maintainable does not depend on the code per se - it depends on how requirements change (unless the code is so bad that it can't be changed at all).
Say, if tomorrow the new requirement is to add a new API to the backend, Dianne's solution is probably more maintainable because it's simpler. But if the new requirement is to scale to 10K users, Dianne's solution might have to be rewritten from scratch, and thus completely unmaintainable.
So, to write maintainable code developer has to anticipate future changes in requirements and make tradeoffs based on those predictions. Now, that's a hard problem, that's where we need judgement and experience. This kind of judgement makes a great developer - mere conservatism in selecting tools and technologies does not.