Quick and Dirty Software Sucks

Uncle Bob has a great post about the downsides of developing "quick and dirty" software. My favorite quote from the post: I wanted to hit him. He was referring to a CTO who thought business software was supposed to be messy and ugly and encouraged his developers to get the job done as quickly as possible. Ahhh, did this resonate with me.

I had to maintain an application for a year and half that was developed in such a manner. The guy who wrote the code, cranked it out and got it into production very quickly. I am not talking about an insignificant amount of code, either. This thing was epic in proportion. It was like a poor man's SAP coded in 2 years. The company thought he was a god.

The problem is the code used the Big Ball of Mud anti-pattern. It was a VB6 app where the "objects" in the system were generated at runtime based on an obfuscated XML-like definition file. I'm talking black arts type stuff where class vtables are generated on fly. Net result: no statement completion of any kind. Debugging was near impossible. This app defied all my attempts at refactoring and clean up of any kind. It's one of those apps where the job security is coded in. No consistency. No documentation of any kind. Not even an install, let alone a build process. Just think of your most nightmarish software experiences and multiply them by 10. I, too, often thought how I would like to hit the guy that wrote it. You simply can't write crap like this unless you plan to stick around forever.

Who get's the raw deal in a situation like this? The people that have to maintain the code and grow it with the business. The people that are left after the code jockey that ripped it out moves on because he's bored. Who get's no respect? Who get's the short end of the stick? Again, you know the answer. I could go on and on about how we as developers need to keep the maintainer of the code foremost in our thoughts when we work...but I won't because that's the subject of another post.

I think the people who initiated this effort learned their lesson on that one. They decided that they would not hire anymore programmers and just offshore one-off apps to India. I think they are going to learn another lesson there, but again that is the subject of another post.