|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/srakitin/OLD/newsletter/vol3/no2/ |
Upload File : |
Food for Thought: An e-newsletter published by Software Quality Consulting, Inc.
February 2006, Vol. 3 No. 2
What Do You Do to Ensure Your Software Is High Quality?
To view a web version of this newsletter, click on the following link:
http://www.swqual.com/newsletter/vol3/no2/vol3no2.html.
--------------------------------------------------------------------------------
Welcome to Food for Thought(TM), an e-newsletter from Software Quality
Consulting (http://www.swqual.com/index.html?Intro). I've created free
subscriptions for my valued business contacts. If you find this newsletter
informative, I encourage you to continue reading. Feel free to pass this
newsletter along to colleagues by clicking this Forward Email link
(http://ui.constantcontact.com/roving/sa/fp.jsp?plat=i&p=f&m=sctz69n6). If
you�ve received this newsletter from a colleague and would like to subscribe,
please click this Enter New Subscription link
(http://www.swqual.com/newsletter/Subscribe.htm?Newsletter). If you don't wish
to receive this newsletter, click the SafeUnSubscribe(TM) link at the bottom of
this newsletter, and you won�t be bothered again.
Your continued feedback on this newsletter is most welcome. Please send
your comments and suggestions to [email protected].
--------------------------------------------------------------------------------
In This Months� Topic, I discuss building quality into your products...
Regular features to look for each month are:
- Monthly Morsels
Hints, tips, techniques and reference info related to this month�s topic
- Calendar
Conferences, workshops, and meetings of interest to software engineers,
QA engineers and anyone interested in software development
--------------------------------------------------------------------------------
***What Do You Do to Ensure Your Software Is High Quality?***
In a past life, as Software Quality Manager for a medical device company,
I was asked to help the software development group select a real-time
operating system for a new embedded product being developed. Working
together, we identified a few potential candidates. I was asked to make a
recommendation based on quality and business factors. Having never done
this before, I was at a loss as to how to make such a recommendation...
As I was thinking about this, our Purchasing Manager happened by and asked
if I would like to accompany him on a Supplier Audit. As an ISO-9000
certified company, suppliers were required to be selected based on
criteria that were established by Purchasing with input from appropriate
departments.
The Purchasing Manager was in a similar situation. Manufacturing asked him
to select a supplier for a subsystem that was a critical part of this new
product. Since the subsystem included some software, he needed some help
and I agreed to go along. It was an eye-opening experience...
The Purchasing Manager had prepared an extensive questionnaire that he had
already sent to each potential supplier. By visiting several potential
suppliers, we could discuss their responses and have a firsthand look at
their processes and the results they achieve. Collecting this information
from several potential suppliers and comparing results, Purchasing was
then able to select the best possible supplier for this particular
subsystem.
After I returned, I became convinced that the same approach could work for
selecting software suppliers. I started work on a similar questionnaire I
could use for assessing potential software suppliers.
In my research for this questionnaire, I stumbled across an
interesting story from Tom Van Vleck. He calls this story - Asking the
�nasty question...�
I have a favorite question to ask of people trying to sell me software.
I let them go on and on about features, functions, benefits. Then I
smile and say, "What do you do to make your product high quality?" I've
gotten some interesting answers. "Oh, the programmers are very sincere.
They work really hard." or "After we write the code we run a lot of
tests we found somewhere." or my favorite one, "Well, you see, I am
Swiss, and I am very precise."
When I get an answer like this I smile more, and say, "Yes, but what
exactly do you do to make your product high quality?" Some people still
don't get it. I asked one prospective supplier my question, and they
answered with a lot of charts about the bug rate in their shipped
products. They were very proud that as the product matured, the bug rate
went down. Another prospective supplier had a better answer: they talked
about their systematic testing, generated from an assertion language and
validated by a coverage tool. But these are both about how they recover
from quality problems, not about how they put quality in. [1]
With Tom�s �nasty question� in mind, I began creating what evolved into a
Software Supplier Quality Assessment tool
(http://www.swqual.com/newsletter/vol3/no2/SoftwareSupplierQualityAssessment.pdf).
Over the years, I�ve revised this assessment tool based on actual experiences
resulting from problems with third party software suppliers. With each use of
the assessment tool, I select appropriate questions from the list and add
questions specific to the situation if necessary. The result is a fairly
specific questionnaire that can be used to assess the work processes and
capabilities of potential software suppliers.
Performing a Software Supplier Quality Assessment may be appropriate when
your company is considering acquiring a tool or some other software
component that is critical to the success of a software product your
company is developing.
More importantly, doing such an assessment of your own company may also be
appropriate � given that your potential customers may be doing this...
BACK TO TOM�S STORY...
If anybody asks me this nasty question, I want to be ready with a good
solid answer. Ideally, everybody on my team should know the answer,
believe in it, contribute to it, and be able to evangelize it. Our
answer should be true, and way beyond what the competition can claim. It
should be obvious to the user that our quality is phenomenal. [1]
When asked the �nasty question�, you need to identify the specific things
you do to make sure that you get it right, not what you do when you find
problems, or how many problems you find, or what the trends are, etc.
SO HOW WOULD YOU ANSWER THE �NASTY QUESTION�?
Suppose that a significant potential customer approaches your company and
asks you the �nasty question�. How would you respond?
You�re probably thinking � �No customer has ever asked us this question so
why worry about it?� Well, they may not have ever asked you this question
in the past, but the times they are a changin�.
The explosion of software companies in places you�ve probably never heard
of is the reason you need to worry about this. You can bet that these
hungry companies are following a model that proved highly successful with
outsourcing organizations in places like Bangalore. These companies
started at CMM Level 5 because they believed that this would give them a
competitive advantage. Well guess what, they were right. When you couple a
perception of high quality with low labor rates, you can see why so many
US companies have outsourced work to places in Asia and the Far East.
Read more about outsourcing...
(http://www.swqual.com/newsletter/vol2/no8/vol2no8.html)
Startup software development companies recognize that their competitive
advantage lies in delivering high quality software � something that many
US companies still find elusive. So when customer come knocking on their
virtual doorsteps, and ask the �nasty question� they often have a
compelling answer... an answer that talks about processes that prevent bugs
and not about how many bugs they find.
BACK TO TOM�S STORY...
Tom recommends that you should do the following four things:
1.Zero defects: A friend was telling me about the landscaping he was
having done. The landscapers had made some mistakes, and he said, "I
paid for a perfect job. They'll have to fix it." The customer expects a
perfect job from us. Even in a team that already have wonderful
commitment to quality, some folks are scared of promising zero
defects... but that�s what we expect from others. And any tiny defect
can blow the reputation of the whole system, in the user's eyes. (This
is the cockroach theory: if you see a roach in a restaurant, you don't
say "There's the roach in this place." You say, "Let's get out of here,
this place is infested.") [1]
Even though I don�t believe zero defects is achievable, Tom�s point is
well taken. I would express this a bit differently though � Deliver
products with as few defects as possible. We frequently ship products
with known defects. In some industries, this has become an acceptable
practice as long as the defects that remain are not likely to impact
customers. Therefore, I would further refine the goal to be � Deliver
products with as few defects as possible that customers are likely to
encounter.
Being able to deliver products with as few defects as possible that
customers are likely to encounter requires that testers have the
skills I outlined in my October newsletter...
(http://www.swqual.com/newsletter/vol2/no9/vol2no9.html)
2.Proceed systematically: Architecture, procedures, well-reviewed designs,
high-level languages and discipline for using them, plans for thorough
testing, and measurement of results are all evidence for a development
process that's under control. In addition, the team should have
documented methods for design, defect prevention, and inline testing,
and tools to mechanize these. [1]
Proceeding systematically means that you create a system architecture
and document your software design. Why do this? Watts Humphrey [2]
says that there are five reasons to document your design:
- to discipline the design work
- to facilitate design reviews
- to manage change
- to preserve and communicate the design to others
- to enable a quality and cost-effective implementation
Read more about the importance of design...
(http://www.sei.cmu.edu/news-at-sei/columns/watts_new/2002/4q02/watts-new-4q02.htm)
3.Check everything: Every work product should be checked somehow. Most
teams review designs, review source code, and test compiled code. The
principle can be applied to other things we do for a "client" anywhere
that quality might suffer. If this principle becomes part of our
culture, each step can concentrate on preventing or removing its own
defects, counting on clean input from the prior step. [1]
You need to have effective Peer Reviews and, more importantly,
individual developers and testers need to be responsible for �desk
checking� their own work. �Desk checking� is one of those skills that
seems to have been deemed old fashioned. Significant benefit can be
derived from desk checking your work. Using the buddy system (I desk
check your work, you desk check my work) is another technique that can
be very effective in finding defects earlier rather than later.
Read more about Peer Reviews - see Karl Wiegers book, Peer Reviews in
Software: A Practical Guide
(http://www.amazon.com/gp/product/0201734850/qid=1136304021/sr=2-2/ref=pd_bbs_b_2_2/103-8445151-2572664?s=books&v=glance&n=283155)
4.Improve continuously: If we do all the above, it won't be enough. We
need to learn from our mistakes, look for better ways, question
authority. Our methods and processes have to keep evolving to meet
changing conditions. [1]
Continuous improvement and learning from past mistakes is a very
important objective. The organization needs to have a process focus
and have process effectiveness measures in place in order to affect
process improvement.
Organizations that are not able to continually review and adapt
processes to changing requirements and customer needs are likely to
become less competitive over time.
Learning from past mistakes can be accomplished through the Project
Retrospective process that I described in an earlier newsletter.
Read more about Project Retrospectives...
(http://www.swqual.com/newsletter/vol2/no6/vol2no6.html)
SUMMARY
If it hasn�t happened already, at some point in the not too distant
future, your company is going to be asked tough questions by potential
customers. Tom�s �nasty question� is but one example. You need to have a
compelling answer � an answer based on doing things that prevent problems
rather than just doing what everyone else does, which is reacting to
problems found. Being proactive is always better than being reactive...
�Till next time...
--------------------------------------------------------------------------------
***Pay it Forward***
If you find this newsletter of value, please consider the following:
Norm Kerth is a highly respected consultant who developed the Project
Retrospective techniques discussed in the July-Aug newsletter
(http://www.swqual.com/newsletter/vol2/no7/vol2no7.html). He was in
a serious car accident and suffered a disabling brain injury. As a
result, he cannot work and lives on a very limited income. You can help
recognize his contribution to our industry by sending a small donation.
Checks can be made payable to Norm Kerth Benefit Fund and sent to Norm
Kerth Benefit Fund c/o Process Impact, 11491 SE 119th Drive, Clackamas,
OR 97015-8778. You can also visit Karl Weiger�s website (Process Impact �
http://www.processimpact.com/goodies.shtml) for more details about
contributing to the fund. Thanks.
Read more about the Pay It Forward foundation...
(http://www.payitforwardfoundation.org/)
--------------------------------------------------------------------------------
***Monthly Morsels***
Every month in this space you�ll find additional information related to
this month�s topic.
- References:
[1] Tom Van Vleck�s website...
(http://www.multicians.org/thvv/tvv-home.html)
[2] Humphrey, Watts, Watts New � Learning from Hardware: Design and
Quality, Vol. 5 No. 4, Q4 2002. Software Engineering Institute.
- Books
The following resources, cited in the January Newsletter, are worth
repeating:
For developers...
- Steve McConnell, Code Complete
(http://www.amazon.com/gp/product/0735619670/qid=1136304109/sr=2-1/ref=pd_bbs_b_2_1/103-8445151-2572664?s=books&v=glance&n=283155)
- Watts Humphrey, A Discipline for Software Engineering
(http://www.amazon.com/gp/product/0201546108/qid=1136304157/sr=2-1/ref=pd_bbs_b_2_1/103-8445151-2572664?s=books&v=glance&n=283155)
For SQA folks...
- Lessons Learned in Software Testing by Cem Kaner, James Bach, and Bret
Pettichord.
(http://www.amazon.com/gp/product/0471081124/qid=1136304190/sr=2-1/ref=pd_bbs_b_2_1/103-8445151-2572664?s=books&v=glance&n=283155)
- Attend local meetings sponsored by your local SPIN chapter or ASQ
Software Division chapter. Find conferences and meetings in the
Boston-area.
(http://www.swqual.com/links/upcoming.html)
- Become a Certified Software Quality Engineer (CSQE). Get CSQE Info...
(http://www.asq.org/softwareforum/getcertified/index.html)
For managers and executives...
- Read Watts Humphrey�s book Winning with Software.
(http://www.amazon.com/gp/product/0201776391/qid=1136304217/sr=2-1/ref=pd_bbs_b_2_1/103-8445151-2572664?s=books&v=glance&n=283155)
--------------------------------------------------------------------------------
***Calendar***
Every month you�ll find news here about local and national events that
are of interest to the software community ...
- Stay tuned for details of an upcoming panel discussion on Offshore
Outsourcing sponsored by the Boston SPIN and the Software Quality Group
of New England (SQGNE)...
- Software Quality Calendar
There are many organizations that sponsor monthly meetings, workshops,
and conferences of interest to software professionals. Find out what�s
happening...
(http://www.swqual.com/links/upcoming.html)
- Workshops Offered by Software Quality Consulting
Software Quality Consulting offers workshops in many topics related to
software process improvement. Get more info...
(http://www.swqual.com/seminars/courses.html)
--------------------------------------------------------------------------------
***About SQC**
Software Quality Consulting provides consulting, training, and auditing
services tailored to meet the specific needs of clients. We help clients
fine-tune their software development processes and improve the quality of
their software products. The overall goal is to help clients achieve
Predictable Software Development(TM) � so that organizations can consistently
deliver quality software with promised features in the promised timeframe.
To learn more about how we can help your organization, visit our web site
(http://www.swqual.com/index.html?AboutSQC) or send us an email
([email protected]).
--------------------------------------------------------------------------------
I hope this newsletter has been informative and helpful. Your comments and
feedback are most welcome. Send me your feedback...
Thanks,
Steve Rakitin
[email protected]
Food for Thought, Predictable Software Development, Act Like a Customer,
and ALAC are trademarks of Software Quality Consulting, Inc.
Copyright 2006. Software Quality Consulting, Inc. All rights reserved.
Graphic design by Sage Studio