KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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/vol1/no3/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/srakitin/OLD/newsletter/vol1/no3/vol1no3.txt
Food for Thought: Best Practices - What's Best for Your Organization?
An e-newsletter published by Software Quality Consulting, Inc.
November 2004, Vol. 1 No. 3 

To view a web version of this newsletter, click on the following link:
http://www.swqual.com/newsletter/vol1/no3/vol1no3.html.

-------------------------------------------------------------------------

Welcome to Food for Thought(TM), an e-newsletter from Software Quality 
Consulting (http://www.swqual.com/). 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 the Forward Email link at the bottom of
this page. If you've received this newsletter from a colleague and would
like to subscribe, please click this New Subscription link
(http://www.swqual.com/newsletter/Subscribe.htm). If you don't
wish to receive this newsletter, click the SafeUnSubscribe(TM) at the bottom
of this page, and you won't be bothered again.
 
Feedback from last month's edition was very positive and encouraging. Your 
feedback is most welcome. Please send your comments and suggestions to 
[email protected].

---------------------------------------------------------------------------

***In This Issue***

This month we discuss the issue of Best Practices and how can you 
determine if something purported to be a "best practice" is really going 
to make a difference for your organization.

Regular features to look for each month are: 

- Monthly Morsel: 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. 

-------------------------------------------------------------------------

***This Month's Topic***

Best Practices 

What's best for your organization?

There's been lots of talk about "best practices" over the years. What's 
usually been lacking in all of this talk is: 

- A definition for what constitutes something that is called a "best 
  practice"

- A process by which a candidate practice is considered for the 
  designation "best" 

- Evidence that something called a "best practice" really works

What we need is the equivalent of the Good Housekeeping Seal for software 
development practices. 

Further, while there is a generally high level of awareness regarding best 
practices, the adoption of so-called "best practices" tends to be very 
low. 

The term "best practice" has clearly been overused and in many cases, 
misused:

  "While there might be a few universally good practices (such as peer 
  reviews), and there are certainly required practices (such as 
  configuration and requirements management), most practices have hidden 
  assumptions and conditions for use, and there is little empirical data 
  to support evaluation and selection." 

  Turner, R., "Seven Pitfalls To Avoid in the Hunt for Best Practices", 
  IEEE Software, Jan-Feb 2003, p. 67-69. 

Let's try to correct this situation by starting with some definitions of 
"best practice": 

  The American Society for Quality defines "best practice" as a superior 
  method or innovative practice that contributes to the improved 
  performance of an organization, usually recognized as "best" by other 
  peer organizations. 

Capers Jones definition is 

  "...to be deemed a 'best practice', it would be reasonable to require that 
  the practice must have been observed in a minimum of 10 companies and 50 
  software projects. Furthermore, the practice must be considered by those 
  who used it to have been beneficial in all or most of the projects." 

  Jones, C., Software Assessments, Benchmarks, and Best Practices, 
  Addison-Wesley, 2000 

A presentation at the 3rd OSD Conference on the Acquisition of Software 
Intensive Systems in January2004 offered this definition: An activity or 
procedure that has produced outstanding results in another situation and 
could be adapted to improve effectiveness, efficiency, ecology, and/or 
innovativeness in another situation. 

The Interoperability Clearinghouse Glossary of Terms defines best practice 
as an activity or procedure that has produced outstanding results in 
another situation and could be adapted to improve effectiveness, 
efficiency, ecology, and/or innovativeness in another situation. 

And there are dozens more definitions floating around. If we can't seem to 
agree on a definition for best practices, how we say there are such 
things? 

The truth of the matter is that the first part of the first definition 
given above is probably the most reasonable definition: 
a superior method or innovative practice that contributes to the improved 
performance of an organization 

It's the second part of that definition (usually recognized as "best" by 
other peer organizations) that causes problems. For example: 

- Who are these peer organizations? 

- How do they recognize a practice as being "best"? 

- Are there some hurdles that a candidate practice must meet before it 
  earns the designation "best"? 

- What evidence is there that something really is "best"? 

More on these questions in a bit. First, let's look at several groups that 
have identified so-called "best practices". 

Airlie Council 

One of the most widely quoted sources of "best practices" is the Airlie 
Council. 

The Airlie Council 
1. Norm Brown 
2. Vic Basili 
3. Frank McGrath 
4. Ed Yourdon 
5. Lou Mazzucche
6. Capers Jones
7. Tom DeMarco
8. Larry Putnam 
9. John Manzo
10. Mike Evans
11. Tim Lister
l2. Tom McCabe (not pictured)
13. Grady Booch (not pictured)
14. Roger Pressman (not pictured) 

The Airlie Council was convened in the late 1990's by an order from 
Congress to identify software best practices that could significantly 
improve software acquisition activities on behalf of the Department of 
Defense. Through their efforts, they identified what has become known as 
the Nine Principal Best Practices. These include: 

- Formal Risk Management 
- Agreement on Interfaces 
- Formal Inspections 
- Metrics Based Scheduling and Management 
- Binary Quality Gates at the Inch-Pebble Level 
- Project-Wide Visibility of Progress to Plan 
- Defect Tracking Against Quality Targets 
- Configuration Management 
- People-Aware Management Accountability 
- Nine Best Practices - The Software Management Framework, prepared by the 
- Niwot Ridge Consulting Group, June 1999

Software Productivity Research (SPR) 

Capers Jones' company was very active in collecting data on practices used 
by many companies to develop software. Through his surveys, SPR was able 
to identify those companies considered "best in class". From these 
companies, he identified software development practices that these "best 
in class" companies had in common. The idea here is that these practices 
in some way were responsible for a company being considered "best in 
class". These practices include: 

- Quality Measurements 
- Defect Prevention 
- Defect and quality estimation automation 
- Defect tracking automation 
- Complexity analysis tools 
- Test coverage analysis tools 
- Formal inspections 
- Formal testing by testing specialists 
- Formal quality assurance groups 
- Executive and managerial understanding of quality 
  
  Jones, C., Software Quality: Analysis and Guidelines for Success, 
  Boston, MA: International Thomson Computer Press, 1997. 

Software Program Manager's Network (SPMN) 

The SPMN was established in 1992 by the Assistant Secretary of the Navy to 
identify proven industry and government software best practices and convey 
these practices to managers of large-scale DoD system acquisition 
programs.  The SPMN 16 Critical Software Practices(TM) specifically address 
underlying cost and schedule drivers that have caused many software 
intensive systems to be delivered over budget, behind schedule and with 
significant performance shortfalls.  The SPMN 16 Critical Software 
Practices(TM) are organized in three groups:
  
  PROJECT INTEGRITY 
  1. Adopt Continuous Program Risk Management 
  2. Estimate Cost and Schedule Empirically
  3. Use Metrics to Manage
  4. Track Earned Value
  5. Track Defects against Quality Targets
  6. Treat People as the most important resource
 
  CONSTRUCTION INTEGRITY 
  7. Adopt Life Cycle Configuration Management
  8. Manage and Trace Requirements
  9. Use System-based software design 
  10. Ensure data and database interoperability
  11. Define and control interfaces
  12. Design twice, code once
  13. Assess reuse risks and costs
 
  PRODUCT STABILITY AND INTEGRITY 
  14. Inspect requirements and design 
  15. Manage testing as a continuous process
  16. Compile and smoke test frequently 

Software Engineering Institute (SEI) Capability Maturity ModelSM (CMM) 
Many organizations believe that the CMMSM is useful as a resource for 
identifying and implementing so-called "best practices". However, a quick 
visit to the SEI website (http://www.sei.cmu.edu/cmmi/adoption/sunset-faq.html#SUN11)
reveals the following statement from the SEI:
 
  "The Software CMM is twelve years old and no longer represents current 
  best practices in software engineering."
 
How can you determine if these so-called "best practices" will work for 
your organization?
 
Now that we have presented some definitions of what might constitute a 
"best practice", we need to revisit the questions identified earlier:
 
  Who are the peer organizations who identify and recognize "best 
  practices"?

  Currently, there are many organizations (as illustrated by the several 
  sources above) who have claimed to identify so-called "best practices". 
  Currently, there is no one single organization dedicated solely to 
  identifying and recognizing potential "best practices" for software 
  development... 

  How do these organizations recognize a practice as being "best"?

  Each of the organizations identified above use very different criteria 
  for recognizing a practice as being "best"... 

  Are there some hurdles that a candidate practice must meet before it 
  earns the designation "best"?

  Again, since each organization has different criteria, the hurdles 
  associated with achieving the designation "best practice" are also very 
  different... 

  What evidence is there that something really is "best"?

  Evidence (quantitative or qualitative) is sorely lacking. Capers Jones 
  has been the primary source of what little data has been published (Get 
  more info...). The IEEE Computer Society has published quantitative data 
  on the effectiveness of Software Inspections.
 
Sorting it All Out
 
The bottom line is that you need to apply common sense in determining if a 
so-called "best practice" might work well for your organization. Here are 
some tips that should help: 

  Look at those practices that have been identified by more than one 
  organization as a so-called "best practice". This may help increase 
  confidence that a practice will result in a positive improvement.

  For example, if we look at these sources of potential "best practices" 
  identified above, we can see that there is some overlap:
 
  See Table in HTML file: http://www.swqual.com/newsletter/vol1/no3/vol1no3.html 

  Note: The numbers in the Airlie Council, Best in Class Companies, and 
  SPMN columns refer to the numbers in the respective lists above. The 
  numbers in the SEI CMM column refer to the CMM level where the practice 
  is required. 

  Establish your organization's current performance baseline. This is a 
  critical and often overlooked step in helping to identify where software 
  development improvement is needed.

  Identify a small number of key performance measures that you can use to 
  baseline your organization's performance. For example, one simple 
  measure that can be indicative of an organization's performance is the 
  number of unplanned bug fix releases between major releases of software.

  Perform Root Cause Analysis on those performance measures in order 
  identify areas where software development improvement is required. Then, 
  identify practices that are likely to help improve performance in those 
  areas.

  For example, for many organizations, decreasing time to market is a 
  common desire. First, precisely define what is meant by this measure. 
  What does it include, what does it not include. How is time to market 
  measured? And, what is the current performance level?

  Once you've defined the measure, let's say your objective is to decrease 
  time to market by 10% over the current level. Now, you are in a position 
  to review potential practices and select those that can have a positive 
  impact on decreasing time to market. 

  Determine if a change to your software development process had the 
  desired affect.

  After instituting a change to your development process, say 
  incorporating peer reviews, assess your baseline again and determine if 
  the change achieved the desired improvement. 

The Bottom Line
 
You can't expect the performance of your organization to improve if the 
continue to follow the same process.

- "Best practices" are only "best" if they work for you. 

- Involve your staff in identifying opportunities for improvement. 

In the coming months, we'll discuss some of the so-called "best practices" 
identified in this article in more depth...

----------------------------------------------------------------------------

***Monthly Morsels***

Every month in this space you'll find additional information related to 
this month's topic.
 
Best Practice Information 

- Get more info on the Nine Best Practices from the Airlie Council
  (http://www.niwotridge.com/PDFs/NineBestPractices.pdf)

- Get more info on the 16 Critical Software Practices(TM) from the SPMN 
  (http://www.spmn.com/16CSP.html)

- Wheeler, D., et. al, editors, Software Inspection: An Industry Best 
  Practice, IEEE Computer Society Press, 1996, Order Number BP07340

Books and Articles 

-   Jones, C., Software Quality: Analysis and Guidelines for Success, 
    Boston, MA: International Thomson Computer Press, 1997. 

-   Jones, C., Software Assessments, Benchmarks, and Best Practices, 
    Addison-Wesley, 2000 

-   Nine Best Practices - The Software Management Framework, prepared by 
    the Niwot Ridge Consulting Group, June 1999 

-   Harrison, W., "Best Practices: Who Says So?", IEEE Software, Jan-Feb 
    2004, p. 8-9. 

-   Turner, R., "Seven Pitfalls To Avoid in the Hunt for Best Practices", 
    IEEE Software, Jan-Feb 2003, p. 67-69. 

--------------------------------------------------------------------------

***Calendar***

Every month, you'll find news here about local and national events that 
are of interest to the software community ... 

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 us and how we can help your organization, visit our 
web site (http://www.swqual.com/) 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 and Predictable Software Development are trademarks of Software 
Quality Consulting, Inc.
 
Copyright (c) 2004. Software Quality Consulting, Inc. All rights reserved.

Graphic design by Sage Studio ([email protected])

Anon7 - 2021