Theory of Broken Window

I just finished up reading the Pragmatig Programmer, a book written by Andrew Hunt and David Thomas. This book falls in the same must-read category as other less technical books such as Code Complete or Joel on Software. This is a book that should be found from every software developer’s bookshelf.

Book is filled with great ideas and advices and I’d like mention one random wisdom from the book. It is the Theory of Broken Windows. Title comes from example:

Consider a building with a few broken windows. If the windows are not repaired, the tendency is for vandals to break a few more windows. Eventually, they may even break into the building, and if it’s unoccupied, perhaps become squatters or light fires inside.
Or consider a sidewalk. Some litter accumulates. Soon, more litter accumulates. Eventually, people even start leaving bags of trash from take-out restaurants there or breaking into cars.

It is frighting how well this theory works for the software. If you or your team starts to close their eyes on a bad design decisions or don’t keep fixing the bugs as they are found then the system starts to degrade very rapidly. Every software system degrades when time passes and that is why software needs constant maintenance and refactoring. I would say that the key element to prevent degrading is the team itself. They are mostly responsible for making the decisions of fixing the windows as they broken.