Posts Tagged ‘teams’

Improving Coding Standards? Start with Customer-Reported Defects

February 15th, 2011 by AccuRev

Agile teams have a focus of interest- to continuously improve product quality.  In pursuit of this end result, teams often develop and agree upon engineering process changes. And when assessing potential process changes, stricter coding standards usually make the cut. Development teams are asked to abide by a certain set of guidelines in the code they generate, refactor, or maintain.  In practice, sometimes these guidelines end up improving product quality as desired, but sometimes these guidelines have no affect on quality at all. Or worse, sometimes these guidelines add only non-beneficial incremental overhead to the development process.

While most software engineers would agree that coding standards make sense in a group programming environment, the success or failure of these standards is a function of which standards are adopted.  While popular coding standards of the day or team members previous work experiences guide this decision making process, another alternative is for customer-reported defects to guide the process.  When a root cause analysis is performed on the customer defects incurred by a software development team over time, a few prominent causes are bound to occur again and again. These causes can usually be avoided through process changes, and in particular, through coding standard changes.

Customer-Reported Defects

Looking internally at our customer-reported defects over time, we certainly discovered some recurring technical themes.  For example, there were many defects that were associated with the programmer selecting recursion over iteration in cases where the problem depth was potentially unbounded.  The result was a sleeping time-bomb for stack overflow.

Another example, there were many performance-related defects involving the selection of an inappropriate container abstraction, given the expected data access patterns and performance requirements of the problem at hand.  (Your mileage may vary, but you get the idea.)  If the same group of people is evolving a code base over time, it is likely that over time, similar mistakes will be.

Agile software development puts the accountability for product quality squarely on the shoulders of the team.  Accordingly, self-managed software teams should be continuously evaluating possible improvements to the team’s behaviors, and coding standards is a great place to start.  If you want to avoid the pitfalls of choosing the wrong standards, take a closer look at your customer-reported defects.

Agile 2010 Retrospective

August 17th, 2010 by damonpoole

As you have been seeing in the blog and on AccuRev’s Twitter feed, I spent last week at Agile 2010.  I thought it was aAgile Retrospective great show- I met a lot of interesting people, led three big Agile sessions, and even got to ride Epcot’s Test Track.  It was definitely a fun and eventful week in Orlando!

To thank you for your support this year, I promised to post my presentations in the AccuRev blog. The presentation from my first Agile 2010 session, Scrum and Kanban-Like Chocolate and Peanut Butter, has already been posted in case you missed it or were turned away.  (Agile 2010 volunteers ended up brining extra chairs into the event room but lots of people were turned away due to fire code restrictions.)

Here are the other two presentations I gave later on during the conference week, enjoy!

Agile 2010 Retrospective Agile 2010 Retrospective


_____________________________________________________________________________________________________________

Damon’s Agile 2010 Retrospective

In an effort to drum up ideas for next year’s Agile conference, I started asking some of the people I met with, “Why do you come to conferences like this?” I received a variety of answers and created a little retrospective video, all with my iPhone 4 and iMovie.