Intensive
Systems
Consulting, Inc

Bad Software

Producing software is hard. Producing quality software is harder still. And the root cause of this difficulty is complexity. Even the simplest application is built out of a mind boggling number of very small pieces. Making all these pieces work together properly with no mistakes is the difficult part of software engineering.

This difficulty is compounded when it is necessary to have multiple developers working on the same project. Not only must each team member make all his pieces work together properly, they have to make sure that all their pieces work correctly with everyone else's.

Over time, proven methods of managing this complexity have been developed in industry and academia. Automating tedious tasks and combining small pieces into larger pieces which hide the complexity are very common techniques.

However, many developers and teams don't use these techniques fully. Either they aren't aware of them or don't see how they could apply to their current projects. It takes time and energy to learn new techniques and how to apply them. Both of which are in short supply for the average developer.

To gain the benefits of these techniques, they need to be introduced in a way that allows the working developer to integrate them into their process with as little disturbance as possible.