Agile Attitudes- Let's Look at the Embedded Software Quality Numbers
agileattitudes at agilerules.com
agileattitudes at agilerules.com
Fri Feb 11 11:37:57 EST 2005
Agile Attitudes
Volume 2, Issue 3 Feb. 8, 2005
A free bi-weekly email newsletter
Brought to you by
Agile Rules consulting
www.agilerules.com
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Welcome to Agile Attitudes, a newsletter of ideas, insights and
technical tips that help people find better ways to develop
software. Feel free to share this with anyone - just be sure you
send or print the whole thing, including the copyright notice.
Directions for managing your subscription are below.
O><O><O><O><O><O
XP Day - Toronto is a one-day conference happening on Saturday,
Feb 19th. The cost to attend is only $299 (Canadian). For info, see
http://www.xpday.info
O><O><O><O><O><O
Let's Look at the Embedded Software Quality Numbers
by Nancy Van Schooenderwoert
Agile software development is all about feedback loops. Programmers
get feedback on how well their code is working by running sets of
tests, ideally several times per hour. Management gets feedback on
how well the software team is doing because they exercise the code
delivered at each iteration – typically one or more times in a
month. Customers get feedback on how usable the code is at every
release, and they give feedback to the project team.
Even with all this feedback going on, some bugs do still happen.
Perhaps none would if everyone on the team used XP practices
perfectly – always writing tests for every bit of code, always
refactoring promptly, always being careful to really understand
what the customer is asking for (if the customer's not writing
acceptance tests).
The most fundamental feedback loop is the one that tells the
developers how well their coding practices are working. I don't
mean merely a unit test of the function just written – I mean
feedback that the coding practices and techniques are performing
as expected. The best indicator of that is the bugs that get
through your defenses.
I'm accustomed to bug statistics that are collected at each of the
waterfall phases; so many defects inserted in the requirements
stage, so many in design, etc. but when you use XP those early
phases are rolled into a tight ball. If your design-code-test
cycle is 3 minutes long then stopping to log bugs at every compile
is just goofy.
What I do is log them at the next natural pause – the point where
unit testing is declared complete and the code is ready for
integration with the rest of the software. Then I track the number
of bugs that make it past unit-test, the number that make it past
integration test, and so on to the number of bugs that get
reported by customers. These are the bugs that have a story to
tell.
By looking into the nature of each bug – doing a root cause
analysis – I then determine which phase actually originated the
bug. For example, a bug caught in QA might have been introduced
in any of the prior phases.
Here is a set of those metrics from an XP team building embedded
software:
Defect inserted in: How many % of total
Requirements 2 7
Design 14 47
Code 14 47
TOTAL 30 100
These numbers cover approximately an 18 month period, so the team
was averaging about 1.6 bugs per month.
Here's one way to compute defect rate:
(Total Defects/ Total lines of code delivered) * 100 gives the
% defect rate
In the example of the above team, the defect rate was 0.17% for
the whole project, written mainly in C.
How does this compare with the rest of the software industry,
embedded or otherwise? Very good question! There are practically
no statistics publicly available. There is advice generally given
that says you can stop testing and ship your code when you get it
down to 15 defects per 1,000 lines of code. That's a defect rate
of 1.5% - an order of magnitude worse than the XP team's example
described above!
What is your software's defect rate? Are you willing to share that
info? I'm serious about collecting data on embedded software
defect rates, whether agile or not. You can reach me at
nancyv at agilerules.com.
O><O><O><O><O><O
More articles on Agile software topics at http://www.agilerules.com
Within our company we have a sub-specialty in embedded systems.
Our site has articles on embedded XP and we support a discussion
list focused on the use of agile methods for building embedded
software. The list signup info is at
http://www.agilerules.com/mailinglists.phtml
O><O><O><O><O><O
To help you get started with in-depth research into Agile Attitudes
topics, we have added a Library section to our web site at
http://www.agilerules.com/library.phtml
Order using our links and receive discounts up to 30%!
O><O><O><O><O><O
If you enjoyed this issue or found it useful, forward it to a
friend! Help spread the word about better ways to build software.
Invite your friends and colleagues to join our growing reader
community at http://www.agilerules.com/mailinglists.phtml
O><O><O><O><O><O
Looking for a speaker for your next corporate or society meeting?
We present dynamic, informative programs on topics of interest
to managers and technical staff in their transition to more
flexible, robust ways to create software.
O><O><O><O><O><O
Want to reprint this issue in your company or society newsletter?
For permission to reprint any of the articles, contact us at
info at agilerules.com.
O><O><O><O><O><O
If you would like to receive an email as soon as we know of
an event in the Boston area of interest to the agile software
community, you can sign up for the announcements list at
http://www.agilerules.com/mailman/listinfo/agileannounce
O><O><O><O><O><O
Your feedback is welcome! Send feedback to info at agilerules.com
To manage your subscription:
http://www.agilerules.com/mailman/listinfo/agileattitudes
O><O><O><O><O><O
Brought to you by Agile Rules consulting
162 Marrett Road, Lexington MA 02421
Copyright (c) 2004, 2005 Agile Rules
info at agilerules.com
O><O><O><O><O><O
Privacy notice: We will not release a subscriber's address to any
third party for any reason. This is a strictly opt-in newsletter.
No one is ever subscribed without their explicit request.
More information about the AgileAttitudes
mailing list