Jared's Weblog

Main Page - Books - Links - Resources - About - Contact Me - RSS


Jared Richardson Most Popular
Help! I've Inherited Legacy Code
Testing Untestable Code
Continuous Integration... Why Bother?
Mock Client Testing
The Art of Work
Technical Idiot Savants
Targetted Skills Aquition vs Free Range Chickens
The Habits of Highly Effective Developers



Blog Archive
2005-December
2005-November
2005-October
2005-September
2005-August
2005-July
2005-June

Thu, 14 Jul 2005

It's just too complicated here!

Time and again I hear people say that their problem is too complicated to solve cleanly. The reason their solution is so messy? It's because the problem requires it!

This is, of course, just silliness. Your problem may be difficult. Your timeline may be too short. But you've got to realize that a messy solution is going to cost you needless evenings, weekends, and more stress than your body should have to endure. It's going to cost your company money to patch, fix and refix over and over.

I once met a team of developers who thought their build system was so complicated it needed to be built five to seven times before it could build cleanly. So when a build was required, everyone went to one box that could build and they hit the "build" key in the IDE until the build succeeded.

It took about half a day with Ant to create a robust, repeatable build script that did everything needed. The build wasn't that complicated, but once they had a working solution, everyone accepted the "solution".

Imagine the types of errors that crept into that code base. Remember, none of the developers could build the code! Everyone did the best they could, then checked in the code. Talk about Integration Hell! How many hours and days do you think were wasted in this shop? This system was used by the team for at least six months! Talk about coding up bugs and then wasting days fixing them...

Take the time to solve your problems cleanly and you'll only have to solve them once. Don't tolerate Broken Windows!

posted at: 20:31 | path: | permanent link to this entry