Tuesday, May 7, 2013

Lower Your Quality Debt Ceiling


Recently Chris Sterling from Rally delivered a great talk "Managing Quality Debt in Practice" to the Seattle Software Test Group Meetup hosted by Dynacron Group in Kirkland. Though he made many points that resonated with me, one that I felt the strongest affinity with was the "No Defect" Mindset which basically means that you don't kick the "quality" can down the road and expect to fix it in the future.

All of us at one time (at least) in our careers have experienced the phenomena I call "creative defect management". You know, where you are reviewing the defects with the Business Owner, Project Manager and the developers and yesterday's Severity 1 defect magically becomes a Severity 3 because "... we are three days to the release date and we cannot fix this in time, we will patch it after the release..."

For every [dollar] of competitive advantage gained by cuttng quality, it costs $4 to restore it; and software is an organizational asset and decisions to cut quality must be made by  executive management and reflected in the financial statements. http://www.infoq.com/presenta2ons/agile_quality_canary_coalmine 
Ken Schwaber

How many of us have worked on applications that have tens or even hundreds of unresolved known issues that were logged over several previous releases. What I thought was a radical idea a few years back, abandon bug tracking tools, has become a major theme for me. In my view, a better approach is to write a "test" story when you find a bug, review it during backlog grooming and if it doesn't reach the level of being assigned to the next sprint then archive it because it is likely never to be fixed.  Perhaps you let it hang in the backlog for a a couple of sprints but if it is not a high priority to be assigned in a short period of time, then it likely will never be. 

Do you Fund Your DoD?


Establishing and funding your "Definition of Done" is critical to lowering your Quality Debt. On a recent client engagement we used the following DoD:
  • Accepted by Product Owner 
    • We do not work on stories that are not validated by the client
  • The code has been peer reviewed
  • Test Passes on all CI targets
    • OS
    • Browser
    • Locales & Languages
  • PMD, checkstyle, & find bugs successfully executed and issues resolved 
  • Project Management tool (e.g Rally) has been updated
  • Both positive & negative tests pass 
  • Every commit has relative and meaningful comment
    • Don't overload checkins 
  • All broken build issues are fixed, no new feature checkins until build is GREEN
  • All new classes, methods, and attributes have at least one usage
    • No "unnecessary / zombie code"
  • No "known" defects that have not been "resolved" either with remediation or a story in the backlog
This is not trivial, it requires effort and tenacity but by establishing, evolving and adhering to a DoD you will lower your Quality Debt in short order.

No comments: