Software Entropy

for RuBoard

Another key benefit of building or improving software gradually is that it counteracts software entropy. As with physical entropy, software entropy (often referred to as software rot ) refers to the amount of disorder present in a system. How does software entropy creep into a system? Entropy's favorite pathway into a project is by means of minor flaws that are never addressed. It starts with a kludge that you allow into the code to meet some arbitrary deadline. Next, you find yourself cornered into hacking together a solution to a related problem because you "kludged" the earlier code. Next, you discover that you can't build a new module as you'd like because the hack you were forced into yesterday prevents it. Entropy is contagious, especially in engineering disciplines such as software development. A kludge here and a kludge there, and, before you know it, chaos is knocking at the door.

Working on code in small pieces helps prevent this. You create new features little by little and work at them until they're right. If you later discover that you made a mistake, you stop what you're doing and fix it. Again, working on as small a section of code as possible. Everything is a gradual cycle of improvement, an evolution of the code through minor changes.

In their book The Pragmatic Programmer , Andrew Hunt and David Thomas describe software entropy using the analogy of the broken window. They cite a study in which the difference between urban buildings that were regularly vandalized and those that remained more or less intact was directly related to whether the buildings ' owners repaired minor vandalism, such as broken windows , when it occurred. Those that didn't fix minor damage to their properties saw the vandalism escalate until there was virtually no building left. Hunt and Thomas [5] contend that leaving minor flaws in your app (for example, poor designs or decisions, bad code, and so on) leads to general disorder in your project that will eventually be its undoing. You should fix flaws in your code when you discover them, just as nature corrects itself and its creations over time.

[5] Hunt, Andrew, and David Thomas. The Programmatic Programmer . Reading, MA: Addison-Wesley, 1999. Pages 45.

for RuBoard


The Guru[ap]s Guide to SQL Server[tm] Stored Procedures, XML, and HTML
The Guru[ap]s Guide to SQL Server[tm] Stored Procedures, XML, and HTML
ISBN: 201700468
EAN: N/A
Year: 2005
Pages: 223

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net