A couple days ago I spoke at the Beyond Agile group meeting on the topic of “Recognizing Software Debt”. Early in the presentation we ran an exercise to get a feel for the effects of software debt that was original created by my friend, Masa Maeda. Here is a link to the exercise:
As teams start to use Agile methods for delivering software, it is common for the business to ask for a summary of progress. This is not always easy to do for Agile teams. Teams may have an Agile project management tool, hand-drawn burn up charts, task boards on the wall with other information radiators or spreadsheets where the information about delivery thus far is kept. Teams might even duplicate data in multiple tools so that they are able to generate information for management without inhibiting the team’s progress by making them update more than 1 tool.
AgileEVM allows teams to take the outcomes of their iterations as evidence of delivery and then generates progress reports for the release. The most commonly used report element is the Release Forecast Chart as seen below. It has similar characteristics to a Release Burnup Chart but adds a risk window as Dave Thomas had described in his keynote at Agile 2010. Rather than only showing progress towards a target based on units of work and iterations, the Release Forecast Chart also shows forecasts based on optimistic, pessimistic, and when under volatile conditions. These provide a more holistic picture of the current release progress along with an understanding of the potential risk to plans.
The 5 data points that a teams needs for each iteration are:
Points committed to at beginning of iteration
Points delivered in the iteration
Scope change in the release (either positive or negative)
Did the team meet their Definition of Done
Actual cost of iteration (i.e. # of team members * cost per hour * # of hours in iteration)
Most of this information is already part of an Agile team’s iteration data. The addition of actual cost can usually be pulled from your finance department or wherever time tracking against the project is maintained.
Upcoming posts on AgileEVM will describe:
How an estimated Release Baseline can be developed using simple techniques with your team
Adding your Definition of Done in AgileEVM
Managing impediments across your AgileEVM portfolios
What indicators and advice AgileEVM provides to users in the progress summary
and Understanding what “under volatile conditions” may mean to your release progress and response to the information
Tomorrow at 1:30pm I will be discussing my paper published by the Pacific Northwest Software Quality Conference 2009 in Portland, OR on “Managing Software Debt: Continued Delivery of High Value as Systems Age”. I have uploaded the slides for this presentation and I hope that some of the new content will help those looking for ways to manage their software debt more effectively in 5 key areas:
Technical debt: tends to focused on the code and reveals itself in duplication and code smells
Quality debt: focuses on QA aspects of software development and shows up in growing bug databases and longer regression test runs
Configuration Management debt: focuses on integration and release management aspects and becomes apparent with extreme branching and inability to recreate environments from scratch
Design debt: focuses on design constructs of components within an application or enterprise infrastructure and is usually difficult to figure out until you are close to a deadline such handling production load
Platform Experience debt: focuses on the people in the software creation process and usually involves extreme specialization and waiting on people to finish their part
It has been a while since I have blogged. I apologize and have plenty of good excuses (if there are such things) about why (book, traveling, family time, etc…). I am now back and will be blogging on a more frequent basis in the next few months.
My first blog entry back is about the upcoming Pacific Northwest Software Quality Conference (PNSQC) that is happening from October 26-28 in Portland, OR. This conference was highly recommended to me by many people. This year I am fortunate enough to attend, have a paper published for the event, and presenting the paper for 45 minutes during the conference. Here are the details for my paper and presentation:
Many software developers will have to deal with legacy code at some point during their careers. Seemingly simple changes are turned into frustrating endeavors with code that is hard to read and unnecessarily complex. Test scripts and requirements are lacking, and at the same time are out of sync with the existing system. The build is cryptic, minimally sufficient, and difficult to successfully configure and execute. It is almost impossible to find the proper place to make a requested change without breaking unexpected portions of the application. The people who originally worked on the application are long gone.
How did the software get like this? It is almost certain the people who developed this application did not intend to create such a mess. This paper presentation will highlight ways teams can work with stakeholders to manage software debt over the delivery life cycle of the product.
I hope that I am able to see others at this event. If you are interested in attending and would like to get a $50 off the normal conference attendance fee, enter the promotion code “FOA – Chris Sterling” when registering. You can register at the PNSQC web site (http://www.pnsqc.org/2009-conference/registration-information). See you there!
Real World Application of Agile and Lean in Technology and Business