4 ms·
I'm having trouble finding any numbers that suggest greenfield development is more common than maintenance development. My own experience is that most of my wor
by georgehotelling 11y ago
I'm having trouble finding any numbers that suggest greenfield development is more common than maintenance development. My own experience is that most of my work is done on existing code bases, and I am more productive when the coders before me spent the extra time to make sure the code is adaptable to new situations.
Can you point to some empirical evidence to the contrary?
Edit: I had some more thoughts about this, specifically that there is a survivorship bias to legacy code. Not all projects survive, but when they do that code can live a long life of maintenance. If you are involved in the startup world, it may make more sense to get it done quick & dirty in order to get funding than to write "good" code. That might explain the disparity of our experiences.
- lmm 11y ago> My own experience is that most of my work is done on existing code bases, and I am more productive when the coders before me spent the extra time to make sure the code is adaptable to new situations. My experience is that efforts by previous developers are often counterproductive (they designed for adaptability, but in the wrong direction), and certainly that designing for adaptability in general is less efficient than designing for specific adaptations for those specific adaptations (and therefore it's more efficient to defer work to the point where you know exactly which adaptations you want to make). > Can you point to some empirical evidence to the contrary? No - just my own experience (I was using empirical in a negative sense - contingent is perhaps closer to what I meant). > Edit: I had some more thoughts about this, specifically that there is a survivorship bias to legacy code. Not all projects survive, but when they do that code can live a long life of maintenance. If you are involved in the startup world, it may make more sense to get it done quick & dirty in order to get funding than to write "good" code. That might explain the disparity of our experiences. Indeed. My experience is that probably >50% of code dies before ever being used productively, and so any designing for maintenance before the code has been demonstrated to provide business value is premature.
- collyw 11y agoIf you find the efforts of previous developers counterproductive then they aren't doing it right. An over engineered application can be as bad as an under engineered one. It takes experience to know how to put the right amount of flexibility to code. YAGNI is a common enough principle.
- lmm 11y agoI think the correct amount of flexibility is zero so overwhelmingly often that it's not even worth trying to figure out whether this time is one of the exceptions. YAGNI is indeed a common principle; I think hackathons are one good way to learn to apply it.