Bri Manning

Managing Complexity in Software Development

June 6, 2010

One software development book that I have found is very informative and though-provoking has to be Code Complete. One of the main points is that the ultimate goal for software development is to manage complexity.

It goes very well with Wil Shipley’s blog post about being a code samurai, an article that is a favorite of mine. Ultimately, they say the same thing: develop deliberately, with the goal to keep the software simple.

I’ve mentioned keeping it simple in mobile web development, but it applies to all development, in fact. Development shouldn’t just be done with the goal to get things done quickly, it should be done with the goal to get things done right. What’s right? Something that gets the job done efficiently now, but also can be revisited and updated later, which is ultimately the most important goal because very rarely, especially in these days of web development, is software ever “done.” How does getting it done right happen?

It happens when a developer keeps it simple. Both for the current development and for the potential future developments. Ultimately, the best coding comes when the software is simple and readable. This gets the job done well and let’s a developer continue to get the job done well and quickly later. Simple is maintainable, and maintainable is good. More than good, the best.

Minimize complexity, keep it simple.