The Seven Wastes of Software Engineering

Transportation

  • Handoffs – Movement of product that does not add value.

Inventory

  • Requirements – Product Requirements Documents (PRD), Story Cards – more material information than the customer needs
  • Completed code, but not checked-in
  • Completed code, but not documented
  • Untested codeCode in staging environment, but not in production environment
  • Code with overwhelming amount of comments /*comments*/
Motion
  • Task-Switching – Bodily or mental motion that does not add value
  • An evil-twin of Task-Switching is Multi-Tasking
Waiting

  • Delay – Idle time when people, material, information, or equipment is not ready
  • Waiting for project approval
  • Waiting for resources
  • Waiting for change approval process
  • Waiting for product management or requirements

Overprocessing

  • Extra Steps or Effort – effort that does not add value from the customer’s perspective
  • Having to relearn what a function, class, or piece of code does
  • Having to refactor a piece of code when it already meets requirements

Overproduction

  • More Stuff – Producing more than the customer needs or wants
  • Featuritis or Feature Bloat: more features than the customer needs, wants, or asked for
  • Wrong Thing – Building something a customer doesn’t want or does not use

Defects

  • Bugs – errors, rework, mistakes, or is missing something necessary

How about :

  • No automation of recurring, low-value, low-skill tasks (data extracts, etc) & automated tests
  • Spending on hardware to fix design/code issues (”servers & storage are cheaper than good developers”)
  • Inertia (not quite the same as “Waiting”) : “things are different here”, “we’ve always worked like this”, etc.- Death by meetings…

Posted via web from mattksi’s posterous

Not commented yet.

LEAVE A COMMENT

You must be logged in to post a comment.