The Whole and the Parts - Part 11 of 15

The Whole and the Parts - Part 11 of 15

How to Design the Bugs Out

  1. Bug proof the definition: The most damaging and subtle bugs arise during the designing of a system. Hence conceptual integrity of the system is of utmost importance. This can be achieved by nominating a single person or a small well-knit team that designs the system and contribute to design decisions for any changes.
  2. Testing the specification: Before any code is written, the code specification should be tested by a testing team. Developers won’t highlight all the gaps and obscurities, their focus is to translate specification into code.
  3. Top-down design: Designing should be considered as a sequence of refinement steps. The first step is to define a rough solution that achieves the desired outcome. Next, the solution should be broken down into smaller chunks and each piece should be closely examined and defined.

System Testing Strategy

  1. Use tested components: Often we deploy partially tested components in the hope that we would find integrations defects sooner rather than later. Even more often we use the “documented bug” approach wherein we document known defects and then proceed with system testing. All this is wishful thinking, invented to rationalise away the pain of slipped schedules.
  2. Control change: There should be a single team/person in charge of releasing the change for testing. If a quick fix was deployed for testing to continue, it should be marked so and later re-tested thoroughly.
  3. Add one component at a time: Isn’t this obvious? But we are tempted to think, what if there are no bugs and everything just works.?
  4. Quantize update: Here there are two strategies, one is frequent but small updates, the other is infrequent but big updates. It is better to release changes in pulses, i.e. bursts of changes followed by periods of productive stability.

For me, the most interesting idea in the chapter was to test the specifications during the design phase itself. Why this has not been adopted by the IT industry? Are there any demerits? Any thoughts?

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

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…

  • 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…

  • 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 条评论

社区洞察

其他会员也浏览了