TrainingConferencesAbout UsContact UsAdvertiseSQE.comRSS Feed

StickyMinds.com: brain food for building better software

Log In
 Clarify Your Search Criteria

Tips on Using Our Search Feature(s)
 
StickyMinds.com Home
ResourcesTopicsCommunityPowerPass
Home  >  Detail: The Goldilocks Parable



A StickyMinds.com Original
Article Picture
The Goldilocks Parable

By Ed Weller

Send This Content to a FriendGet a Short Link to This ContentPrint This ContentSee User Comments About This Content

Summary: Getting process improvement "just right" is difficult. Go too far in the definition of processes, and it really does get too hot, with the heat coming from the people trying to use the processes. On the other hand process definitions that are too short to contain anything of value will leave users in the cold, and then there will be no improvement in the organization. In this week's column, Ed Weller states that a useful process improvement activity develops a set of process artifacts that meets the needs of the user. This helps the organization capture "tribal lore" and cast it into a set of process definitions that eliminates waste and improves time-to-market.


Rally Software Development
What are the guidelines? The Capability Maturity Model-Integrated (CMMI(R)) provides a useful -- but hard to quantify -- statement about process definition. The Organization Process Definition Process Area states, "These elements are described in sufficient detail that the process, when fully defined, can be consistently performed by appropriately trained and skilled people." (Emphasis mine.) In this statement, "elements" refer to process elements. This definition has utility whether you are using the CMMI for guidance or not.

The trick is figuring out what "sufficient," "consistently," and "appropriately" mean. I have seen the best and worst of process definition, unfortunately erring on the "too much" side of "sufficient" often enough that people take the view that process improvement can be categorized into the "Big P" and "little p" camps, and that "Big P" is always bad. This article will help you to quantify the above three terms, hopefully helping to define useful improvement processes for your organization no matter what dimension is chosen.

What is a process? Simply defined, a process is “a sequence of steps to achieve a given purpose.” They are useful when they prevent us from re-inventing the wheel when starting a project. They are especially useful when many people in different parts of an organization do the same tasks. It reduces friction (wasted energy), and frees up time and brain-power for solving the tough problems rather than having to invent a presentation or documentation method for the task.

Who are the “customers” of process? The process users are the customers of the group that develop and document processes. They can be divided into three groups: expert, average, and novice.

  • The expert user, one with many years of experience, needs brief process descriptions, templates, and checklists. Templates and checklists are valuable for preventing omission and enable consistency across multiple process executions.
  • The average user may want more guidance; a process step may still be new, or not frequently used. Access to guidelines or training material is valuable.
  • The novice user will want step-by-step lists of activities, thinking these will ensure correct execution of the task.

Compounding the problem of over-documenting processes is that process writers may have little background in technical writing. A novice's description contains every step in the process, including "Open template, Save as..." One has to ask, if they need to be told how to open and save files, why are they even attempting the task?

Resolving the Expert-Novice Gap A multi-level approach to process documentation can help bridge the expert-novice gap. I divide the documentation into the following parts:

  1. The Process – a three to four page document listing that includes:
    • Inputs – things needed to start the task
    • Entry Criteria – training, events, or input attributes that must be satisfied to start
    • The Process Steps – concise description of the activity performed
    • Outputs – what is delivered
    • Exit Criteria – output attributes that must be satisfied to end the task
    • Measurements – data generated by the process that can be used to monitor and improve the process, or product developed by the process
  2. The Procedure – used when a process step requires decomposition (not all do).
  3. Work Instructions – step-by-step guidance when exact execution of the process is required.
  4. The Template – a guide to producing the work product specified by the process, such as a requirements (e.g., the XP Story Card in Kent Beck’s Extreme Programming Explained), design, or project plan document.
  5. Checklists – a list of error detection and detailed content that substitutes a list for fallible memory.
  6. Training – (Two suggested levels:)
    • Expert – information that allows the seasoned project manager or developer with the requisite knowledge and skill to consistently execute the work according to the organization or company practice
    • Novice – extended training for someone who has never previously done the particular activity (e.g., new project manager, new language training)

Process versus Procedure versus Work Instruction

Getting these levels of detail correct enables useful process documentation for all classes of users. The high level process lists the major steps needed to execute the task. For project planning, they might be:

  1. Develop top level work breakdown structure from requirement.
  2. Estimate project size.
  3. Identify work products to be developed.
  4. Estimate effort.
  5. Identify people needed.
  6. Develop schedule.
At the procedure level, the second step might be further described in a procedure that includes:
  1. Decompose elements of the WBS.
  2. Using historical data, estimate size of the piece parts.
  3. Lacking historical data, use a group activity like wideband Delphi to do estimation.
  4. Record assumptions and size for each estimated part.
Processes and procedures should be six to seven steps and three to four pages of text. More than that and the level of detail might be too high. Templates should provide the detailed instructions, examples, and guidelines for work product development. Checklists should list sequential steps to be performed.

Detailed work instructions are usually needed with configuration management activities, especially when tools are not used and the project or organization depends on manual control of the configuration items. It may be necessary to list the steps for ownership, modification, and return to the configuration baseline in detail. As the process becomes more automated, the details are usually handled by the tooling (a tool itself forces sequential activity, with help to guide the user).

Determining the breakpoint between process, procedure, and work instruction is somewhat like Goldilocks saying "and this porridge is just right." Trying to get this perfect in an initial release is usually not possible. When a team of users and a process person writes the process, be careful that an overly detail-oriented person doesn't take you too far in his direction. I'd also suggest interviewing the process users from the first few projects before using them, and again after several repetitions through the process. That’s why change requests were invented.

Templates

A good template provides the structure for a work product. It clearly identifies instructional content and mandatory and optional content in the final product. Beware of over-zealous auditing, where minor deviations from the order or content generate corrective action requests. Leave the minor stuff to verbal comments, or for needed observations that do not require corrective action. Unused sections should have an "N/A" to indicate the author did not forget the section. If a substantial deletion is reasonable, an explanation is usually in order.

Checklists

I once heard a developer state "using checklists is unprofessional," apparently he was thinking that relying on a memory aid was somehow beneath his dignity. I consider pilots professionals, and as much time as I spend on planes I am thankful they do not have this mindset!

Good checklists are based on common errors noted in the industry for the particular activity or work product, with modifications based on your organization's experience.

Training Myths

Training will never replace experience. It only expedites the learning curve (e.g., someone that has never written a line of code versus an expert in one language moving to a different but similar language versus one moving from a procedural to an event-driven language).

Processes do not substitute for training or else you'll have a 500-pound process document.

An expert may not need detailed subject matter training, but still needs to learn how the process is applied in the organization to ensure consistent execution.

A Final Thought

The observant reader will note I've used a fair number of conditionals as there is no one right way to do this. A fair degree of common sense is needed to be sure you match the breadth and depth of your processes to the business needs of the organization.



About the Author
Ed is a consultant at Software Technology Transition where he leverages his thirty-five years of experience in software and systems development to help companies improve their performance. He is an authorized CMMI Lead Appraiser with a focus on providing business value to organizations and is a regular contributor to StickyMinds.com. His email is efweller@STT.com.

Back to Top
 
 

Member Comments
Add Your CommentExpand Comments
 
Comment:    
by Robert Rose-Coutre 3/21/2005

My experience has been that training is not included in any process development/implementation. The communication of process to concerned parties is usually more of a "briefing" (perhaps like the level of training that you called "expert"). But it has not been identified as a "training issue" as part of developing or implementing Process; rather, more of an ad hoc activity "tossed in" at a meeting or one-on-one (i.e., "let's go over this new process thing together"). Or, when I'm building a new website and someone tosses me a search-engine-optimization guideline to implement as I go along, I...Read On

Author's Response:
3/22/2005    
Robert, thanks - Training is perhaps the critical element to successful process adoption. It helps an organization understand how to apply the processses. I have recently seen an ofg that did exactly what you described - using web delivered "training" on processes to put a check box against the requirement to do training at Level 3 in the Capability Maturity Model(R). What a waste that was as most people thought the training was a joke. Far better to develop a series of 1-2 hour classes, topic specific, aimed at the specific process users. Knowledge management, training, mentoring, Learning, or any of a number of terms (I love "Learning center' as in "I will learn you <something>") is key to organizational growth. Ed

 
 
Comment:    
by Gerold Keefer 3/21/2005

hello ed, thanks for your article. it reminds us of one thing to many QA people, assessors and appraisers forget: we QA people have customers, too. those customers are not the ISO, SEI or DoD standards but the developers, testers and project managers. a careful consideration of what those customers can handle and what not would help many process improvement projects to achieve higher success rates. best regards,

 
 
Comment:    
by Boon Ho Khoo 3/21/2005

Ed, Fully agreed with the comment. However, times are when process, procedures and work order are in place but no one bother to use them. Then the QA needs to perform regular audit to ensure compliance. However, audit often comes late in the development phase or for a particular activity. By then, it will be translated into a lesson learnt. One should think far enough on how to institutionalize the process so that there will be zero escapees. Ideally the flow to process institutionalization should be Design --> Pilot --> Evaluate --> Deploy --> Automate. Agree?

Author's Response:
3/22/2005    
Boon Ho, (note I am using QA in the proper definition - not the commmon use meaning "test") I agree in part. if "no one" bothers to use process assets, then no amount of quality assurance (enforcement0 will solve the problem. I'd look at the overall management structure/belief system in that case, as well as take a hard look at the processes to see if they are an anchor or a real help to developers. I'd suggest doing 1 on 1 interviews in a non-threatening environment to see why they are not using the propcesses, rather than beating them up. If the non-compliance is spotty, then a good qualty assurance function should spot the non-conformances and be able to tie them to project issues or problems. This increases the acceptance of the findings. But, beware the trivial findings - if you have a few significant findings, consider making the rest observations or even verbal comments. Don't use an audit or evaluation to "score points" As for timing - the end of phase evaluation or audit is the only fair way to find non-comformances, but in-phase checkups can be used to point out potential problems and allow the project to correct them in time. This of course requires more evaluateion or audit resources I would never try to hold an organization to xero escapes. That will create a rigid organization that will not experiment with improvements.

 
Back to Top


Marketplace

Census: Web-based Bug Tracking and Defect Tracking
Track software bugs, defects, enhancements, support calls, and more. Issue tracking software that is scaleable, fully customizable and integrated with VSS. Includes e-mail notifications, role-based workflow, change history, and Crystal reporting.

New Webcast: How to Profit with Remote Support.
Discover how REMOTE SUPPORT can fuel your IT business in ways you've never thought of before.

The Very Best in Pairwise Test
Testcover.com - Compare our test case efficiency, response time, and ease of use. Simply the best!

Villanova University Six Sigma & IT Certificate Programs
100% Online programs in Six Sigma, IS Security, CISSP Prep, Business Analysis, Proj. Mgmt. and more!

Bug Tracking On-Demand
Looking for the reliable, convenient, secure and completely web-based issue tracking system? BUGtrack allows unlimited number of users, projects and bugs as well as unlimited customer support for a low flat rate.

Get your product or service listed here.
Subscribe to Better Software Magazine
Subscribe to Better Software Magazine

First Name:

Last Name:

Email Address:


Home   |   Resources   |   Topics   |   Community   |   PowerPass



© 2008 StickyMinds.com. All rights reserved.
StickyMinds.com is a division of Software Quality Engineering.
Privacy Policy    Terms & Conditions    Link to StickyMinds.com    Feedback


Borland

Software Quality Engineering

STARWEST 2008

 
Agile Development Conference 2008