logo1 Wastes

Home bullet
Implementing bullet
Services bullet
Weblog bullet
FAQ bullet
Training bullet
Contact Us bullet
About Us bullet
Careers bullet
Influences bullet

 
filler
Wastes associated with software development include the following:

icon Partially Complete Work

icon Extra Features

icon Extra Processes

icon Handovers

icon Task Switching

icon Delays

icon Defects

Wastes are also categorised by the 3 terms Muda (Wasted Activity), Mura (Unevenness), Muri (Overburden)

The approach taken to reducing Unevenness and Overburden is to implement Flow
Read more about flow ...

iconicon Partially Complete Work icon
Examples of Partially Complete Work include
  • Process Designs not developed
  • Requirements documented but not developed
  • Specifications not developed
  • Software coded but not tested
  • Software tested but not deployed.
In short, work is only complete when a feature is deployed and in use.

Strategies to reduce this waste:
  • Iterations and/or Small Projects.
  • Value should flow from Process Design through analysis, development and testing to deployment.
iconicon Extra Features icon
When software is developed in a traditional manner, approximately two-thirds of the features are rarely or never used (The Standish Group). Clearly, reducing this waste must be a key goal.

Cause: "This is your one and only chance to tell us what you want?" - this statement is a recipe for a wish list.

Strategy to reduce this waste:
Move to pull-based prioritisation. A backlog of features is prepared. A business owner prioritises the list and nominates the items that will deliver greatest business value. Those that will not provide business value are never prioritised.

iconicon Extra Processes icon
Software Development often includes steps that are not required or are ineffective. Steps can include extra signoffs that add little value, excessive documentation etc.

Strategy to reduce this waste:
Each step should be evaluated with two questions "Is it truly necessary?" and "Is it working?"

iconicon Handovers icon
A handover is any time during the development of a solution that responsibility for the next step is handed from one person to another (often using a document). Obvious examples of Handovers include
  • From the Business Owner to a Business Process Designer
  • From a Business Process Designer to a Business Analyst
  • From a Business Analyst to a Technical Analyst
  • etc.
Handovers should be minimised because they result in lost information. Written documents cannot capture the subtleties of many concepts and the deep knowledge possessed by the holder.

Strategies to reduce this waste:
  • Develop iteratively so that design, development and testing happen closely together.
  • Use multi-skilled staff to reduce handovers
  • Don't have "Handover points". Work together so that knowledge is handed over informally as well as through written documents.
  • Value oral communication.
iconicon Task Switching icon
There is a loss of concentration associated with changing from one task to another. This is particularly true of Software Development where deep concentrated thinking is required.

In addition, because many projects are stretched over an extended period, a person may have to touch on a complex area many times. For example, a large system may contain a small portion requiring detailed Tax knowledge. If the area relating to tax is touched on many times over several months, a person may need to "re-brief" themselves several times throughout the project.

Strategies to reduce this waste:
  • Any single person should be allocated to as few tasks as possible (Preferably one but definitely 3 or less). If those tasks get continuously blocked, fix the problem that is creating the bottleneck.
  • Use iterative development to bring all stages relating to a particular feature closer together.
  • Improve scheduling - if everything is the priority item then nothing is the priority item. Make the decision. If effective decision making processes are not in place, implement them.
iconicon Delays icon
Examples of delays include
  • Developers waiting for requirements
  • Developers waiting for clarifications
  • Testers waiting for software to test
Strategies to reduce this waste:
  • Collocated Teams
  • Complete teams - Business and Technical skills and knowledge
  • Iterative Development
  • Improve decision making - Create Knowledge, Defer Commitment, Feedback
iconicon Defects icon
As other disciplines have found, the key to reducing defects is to "Build Quality In" rather than "Inspect Quality In".

Strategies to Build Quality In:
  • Test Driven Development
  • Automate Unit Tests
  • Document requirements using test criteria
  • Automate Acceptance Tests where possible
  • Re-run tests on a regular basis
  • Whenever a defect is found
    • Build a new test to prevent it in the future
    • Understand the reason the defect got through
  • Feedback - Regular deliveries and demonstrations of the evolving system will ensure requirements are understood.
Legal | Feedback © Copyright 2007 Systima Limited, all rights reserved.