Jack Milunsky,
Scrum Master
Simplifying Agile Project Management

AGILE CONSULTING

I have received many requests to assist with Agile training and deployment. I am humbled by your interest and, being a huge proponent of Agile, want to help any way I can by providing consulting where I am able to.

I know a number of other very qualified trainers and consultants who are also willing to help. So if you are looking for assistance, please contact me and I will work with you to get the services you require.


Click Here for More Information

 

Agile project management blog

 

 

Agile project management blog


 

 
Agile project management blog

Check out my white paper.

"How Agile methods resolve chaos and unpredictability in software projects"


 
 

 
Agile project management blog

« The 7 Software Development Wastes - Lean series Part 6 - Delays | Main | Stories - how small is too small »

October 2, 2009

The 7 Software Development Wastes - Lean series Part 7 - Defects

Introduction

When one looks at all the wastes, defects has to be the most obvious one. The cost and repercussions of finding defects varies depending on where in the cycle they're found. Defects found early on in the development life-cycle are way less costly to resolve than defects found later on in the cycle; the most expensive being when applications are already in-production.

Additionally, depending on when the defects are found, defects can and do trigger other wastes like task switching, relearning etc.

Defects can be very costly for an organization. So the trick with defects is that you need to 1) Prevent them from happening in the first place and 2) Find and fix them as early in the development life-cycle as possible.

So what can you do to prevent them from happening in the first place?

  1. Keep your stories small, and unambiguous.
  2. Ensure that each story has well defined acceptance test criteria (assisted by input from the customer).
  3. Ensure that your code is well tested. Adopting good Test Driven Development habits will pay back in spades.
  4. Pair programming and code reviews are excellent ways in which to prevent bugs from being created in the first place.
  5. The more you automate the better. So automated functional testing is a good way to automate the functional test plan and get results fast and to ensure that new code changes aren't breaking other parts of the code.
  6. Ensure staging environments mimic production as closely as possible.
  7. Make sure that as you find new defects, you add unit tests to your test suite to keep your unit testing current.
  8. Finally, document your code well.

An interesting quote from Mary and Tom Poppendieck's book called Implementing Lean Software Development,

"If software routinely enters final verification with defects, then it is being produced by a defective process"

.... which needs to be fixed. So...

Step 1. Prevent the bugs from happening in the first place by "mistake proofing" your code
Step 2. Do whatever you can to find the bugs early on in the process while the code is fresh in the developers minds - i.e. ensure you have good functional test plans and test tools.
Step 3. Ensure a proper staging (or test environment) that mimics production environment as closely as possible
Step 4. Get the software into the hands of customers as quickly as possible, so good Agile practices help here.
Step 5. If you find defects, ensure they never happen again by keeping your unit tests current.

Here's the rest of the series: Part 1, Part 2, Part 3, Part 4, Part 5, Part 6


Written by Jack Milunksy - COO at Brightspark, certified ScrumMaster and Co-founder of Agilebuddy (Agile project management software that lets you easily Create, Estimate, Plan and Track your software development projects). For great Agile tips follow Jack at: www.twitter.com/agilebuddy. To get more info on Agilebuddy please visit: www.agilebuddy.com

TrackBacks (0)

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a010535ea7534970b0120a5b535e0970b

Listed below are links to weblogs that reference The 7 Software Development Wastes - Lean series Part 7 - Defects:

Comments (7)

Good article over lean wastes and the focus on the issues in software development. However, i may not agree on all the points listed above.

Most of the issues come from user stories / requirements. Things are not clear and concrete always. Moreover, the stories focus only on the functional aspects. Non functional needs are always implicit and not clearly defined.

Finally Lean focuses more on the people and the better communication over the stake holders rather than the process.

Venkat.

not understanding requirements is a big source of waste. I don't think anyone will argue with that. Thanks for your comments

Jack

Jack,

Thanks for your view. The requirements focuses mostly on the functional aspects and leave the non functional aspects. It's really tough to capture all the minute details into your requirements document.

But when the application goes into production mode, lot of non functional requirements and behavioral patterns comes into light. This will lead to issues.

My two cents.

Venkat.

For sure. I would suggest trying to identify those up-front as well as trying to get your staging environment as close to production as possible so you can catch these issues early.

Jack

Its really good information about software development.We know that every company has their own way of managing work flow and projects, with their own objectives and desired results. Web-based project management software allows you
to save time and reduce costs at implementation and throughout the project life cycles. Project management reports are key to any sound project management practice. Each company have different needs for using and analyzing their project's data.

Its really good information about software development.We know that every company has their own way of managing work flow and projects, with their own objectives and desired results. Web-based project management software allows you
to save time and reduce costs at implementation and throughout the project life cycles. Project management reports are key to any sound project management practice. Each company have different needs for using and analyzing their project's data.

what's your name? bmx

Post a comment.

 
 

 

 

 
© 2009 Brighstpark 3.0