Plan to Throw One Away

Plan to Throw One Away

In most of the projects, the first system built is barely usable, either it is too slow, clunky and/or too bulky. Once you write a program, you often get the feeling that it can be written in a better way. When the software is reviewed after it is built, the inefficiencies become apparent, but by that time it is often too late to make any changes. The options are either throw away the first build and re-write it OR ship it and re-write it gradually.

The fact is every software, anyhow, will be thrown away, so why not be prepared for the inevitable. (Feels like talking about life)

Below are a couple of pointers to enable the preparation:

  1. Plan the system for change: Carefully modularise and precisely define the inter-module interfaces.
  2. Plan the organisation for change: Senior people should be technically and emotionally ready to manage people or build/test with their own hands.

But why do we need to eventually throw the software away? For this, we need to understand how the software ages.

Phase 1: 2 Steps Forward and 1 Step Back

Whenever a defect is fixed there is a 35% chance that it will introduce a new defect. Why? First, a defect shows up as a local failure, where it gets fixed as well, it is the system-wide ramification that is usually non-obvious. Second, often the repairer is not the person who built it.

Phase 2: 1 Step Forward and 1 Step Back

Maintenance is an entropy increasing process. Sooner or later there comes the tipping point where each forward step is matched by a backward step. This software can be used as long as desired but this is the time one should start thinking about retiring/revamping it.?


No alt text provided for this image

My Thoughts

Amazing to see how this chapter, written almost half a century back is still so relevant today. The thought that the software will be thrown away is uncomfortable and yet so liberating. No designer designs the system with this eventuality in mind that the software will age and needs to be replaced. Technologies and requirements change really fast, systems and teams designed with this eventuality in mind would gracefully embrace change and continue to turn into, and rise from, the ashes.

要查看或添加评论,请登录

Madhur Sharma的更多文章

  • The Weight Roller-Coaster

    The Weight Roller-Coaster

    Our body is amazing at precisely regulating many parameters, like temperature, blood pressure, etc. that enable life to…

    2 条评论
  • Hatching a Catastrophe

    Hatching a Catastrophe

    Often the disasters are caused due to termites, and not tornadoes. The project slippages are so small that it is…

  • The Whole and the Parts - Part 11 of 15

    The Whole and the Parts - Part 11 of 15

    How to Design the Bugs Out Bug proof the definition: The most damaging and subtle bugs arise during the designing of a…

  • The Documentary Hypothesis

    The Documentary Hypothesis

    Why does everyone hate documentation and yet lays so much emphasis on it? This is the second chapter in this book that…

    2 条评论
  • Calling Shots

    Calling Shots

    How much effort is required to complete a project? How long will a task take? These are the questions that everyone…

    1 条评论
  • The Tower of Babel

    The Tower of Babel

    This story takes place after the great floods when Noah’s ark saved a group of people to continue humanity. After…

  • Pass The Word

    Pass The Word

    How can a group of 10 designers maintain the conceptual integrity of the system which a team of 1000 is building?…

  • The Second System Effect

    The Second System Effect

    Scenario: You design your first system. You estimate the work against a budget using some estimation technique.

  • Aristocracy, Democracy & System Design

    Aristocracy, Democracy & System Design

    What is your preferred implementation strategy, a complex system with more functionality or a simple system with less…

  • The Surgical Team

    The Surgical Team

    The Pareto principle states that 80% of the work is done by 20% of the team. And every manager wants to staff their…

    2 条评论

社区洞察

其他会员也浏览了