March 27, 2008

...Learn TDD with Codemanship

RE: Would Developers Take More Care..?

In response to my post suggesting that developers who work on the same software over multiple release cycles might take more care to keep the code clean and tidy, a very nice chap emailed me and wrote:

Back to your post. I wish you were right, but I from my experience (2.5 years at a consulting firm, delivering for external clients, 3/4 year at a big firm developing/supporting applications for in house clients - though no greenfield project at the later) it seems that even if the development team had to support their application, they still would not ensure the code was easier to maintain. Teams I have seen in such scenarios were/are exposed to exactly the same pressure - deliver, deliver, deliver. In addition, the (in house) clients are willing to accept a few "glitches" (and a glitch could be untested common scenarios), but delivery is more important than anything else. There is also the promise that there would be time put aside for cleanup later (we are in house clients, we work for the same goal, etc.), but not now.

Unless there is strong commitment and discipline from the development team to do things The Right Way (whichever that might be in the given situation) and/or a team lead with strong lobbying skills, chances are that the team will give in to this delivery pressure and deliver less than perfect software. Of course, after delivery, new features are requested, that are more important to get done than improving maintainability.

Some similar iterations follow until clients accept that the costs of adding new features to the application cannot be justified. Then the Great Rewrite begins. Or the Great Replacement/Consolidation project starts, that would replace multiple such "failed" projects.

Even though the base you start from - eat what you baked - makes a lot of sense, until someone puts an end to the trend of letting "small issues" (spaghetti code, database, etc.) slip by, the length of time a team works on a project isn't the factor that effects maintainability.

I'm not trying to generalize my experience, but wanted to point out that there are exceptions to the idea you expressed.

And last, but not least - thanks for writing your blog.

He's quite right, of course. The reality is that some developers are just slobs, and are perfectly content living in self-inflicted farmyard shite.

He's also completely correct about my blog. It is, indeed, all my own work.

Posted 10 years, 3 months ago on March 27, 2008