Changing a software system takes time, which costs money. Frequently, the staff making the changes was not present during the creation of the product, so changes are made by people with no knowledge of the system. Saying code is self-documenting is good for a laugh among mature programmers. (The difference between an experienced programmer and a mature programmer is that a mature programmer has learned from experience. It is astounding how many experienced programmers make amateurish mistakes because they have never learned from their experiences.) Lack of documentation is one of many factors that increase the cost of maintenance.
Canright's Costs of Software Maintenance
- Assume a basic quantum of maintenance cost, Q.
- If no documentation, add Q.
- If code is riddled with poor logic, add Q.
- If the project lacks debugging tools or features, add Q.
- If the code has no error handling, add Q.
- If good programming practices (for maintainability) are omitted, add Q.
The Wages of Sin is Death
Code with poor maintainability features, after suffering many modifications by a changing parade of programmers, will turn into a Big Ball of Mud. You might want to read the original article: http://www.laputan.org/mud/. You might enjoy hearing a lecture on the topic (66 minutes) on YouTube: http://www.youtube.com/watch?v=h6Y9aJhqO78 by the author, Brian Foote. This video lasts an hour and it is worth your time.
If you enjoyed reading Thomas Pynchon's Gravity's Rainbow , William Faulkner's Absalom, Absalom! or James Joyce's Ulysses (three illogical, hard to read books), then you might enjoy software maintenance on a Big Ball of Mud. But most programmers suffer frustration when working on projects with hard to read code. At this point maintenance can break down.
The ultimate cost of unmaintainable software is the death of the software product. If you do not have replacement products, you can lose your customers and go out of business.
If you have developed a product that is so fragile, twisted, and unmaintainable that it is sure to die, then you need to unload it. You need to sell it to an unwise investor before the product implodes. Did you notice how many dot com acquisitions disappeared?
Robert
PS: I will elaborate on unloading your start up. Consider Douglas Crockford, the inventor of the JSON data format and founder of Electric Communities. Hundreds of millions of dollars were invested in this company. He sold out. Eventually the company went bankrupt and was sold for peanuts. He got out in time. You do not want to be the owner when the start up goes bankrupt!
List of Related Articles
Software Maintenance and Variables March 16, 2014
Software Maintenance and Message IDs April 2, 2014
Unique Method Names for SW Maintainability August 26, 2017
Avoid Bit Fields October 1, 2017
No comments:
Post a Comment
Comments require my approval before they appear. Be patient. It will take a day or two for your comment to appear.