Monthly Tidbits

 

TINY TACTICS TO SAVE TIME AND MONEY





Every week we visit clients, help solve their problems and share information. Since many of the challenges we see are common across organizations, we share one or two of them each month with example solutions.

Tidbit #1: Writing Clear Requirements - One Requirement Per Sentence

Tidbit #2: Agile, Just Code and Ship, Merging with CMMI

Tidbit #3: Improving Your Service Delivery with CMMI® for Services* - Quick Look

Tidbit #4: Measuring a Process

Tidbit #5: Where do you Spend Your Time – Fulfillment or Demand?




Tidbit #1: Writing Clear Requirements - One Requirement Per Sentence

Having requirements for a project is essential to clarify the desired end goal and eliminate work that does not serve the end user. However, the majority of the requirements documents we review are pages of long narratives that obscure the intended end result. An example is:

Pay for product: The system should allow entry of data items relevant for customer payment, or allow a user ID to be entered to charge the amount to. If an ID is used, and there are insufficient customer account funds, then either request a credit increase or notify that the account is overdrawn and flag the account as 'credit-line'. Email a receipt of the transaction.

The problems with a paragraph-style requirement are that:

In this requirement, the options offered to the user are confusing since it is unclear whether the account should be automatically overdrawn or whether the user should be given other choices first.

Alternatively, one could rewrite the paragraph, specifying one requirement per sentence. For example:

1. Pay for product
1.1

User selects a) pay with credit card or b) debit ID account

1.2 User enters a) credit card or b) ID and password
1.3 If b) and insufficient funds in the ID account then offer user a credit increase option
1.4 If credit increase option selected then notify that the account is overdrawn
1.5 If the account is overdrawn then flag the account as 'credit-line'
1.6 Email a receipt of the transaction

 

In this style, we use one line per requirement and limit each requirement to one "and" or one "or" to avoid ambiguity. This makes the requirement quicker to read and understand. Test cases can be generated and mapped to each line of the requirement.

[Top of page]


Tidbit #2: Agile, Just Code and Ship, Merging with CMMI

The interest in Agile software development practices continues to grow as companies seek more efficient methods of developing software while meeting market demands for delivery.

Scrum is a software development methodology based on Agile principles. Agile methodologies promote a project management process that encourages frequent inspection and adaptation, a leadership philosophy using teamwork, self-organization and accountability, with strong customer involvement*.

We have seen companies improve their performance using Agile, CMMI, and other frameworks. In this tidbit, we discuss two common questions that we hear when visiting clients and prospects:

  1. "Agile in my company means code and ship, avoiding requirements and design; what shall I do?"
  2. "My company is trying to use CMMI, and now it wants to consider Agile; what shall I do?"

 

1. Agile in my company means code and ship, avoiding requirements and design; what shall I do?

If the only development activities are coding and some test, then we call an organization "Agile declared", not Agile! Although Agile is intended to speed up a project's progress, it still includes basic engineering and management steps.

Whether your organization chooses an Agile approach, Waterfall or an incremental life cycle, activities such as requirements and design are performed to, a) clarify the project at a time when rework is less expensive, and b) reduce the risk of failure. Abandoning these practices increases your risk of budget, deadline or quality problems.

If you want to be Agile, a good place to start is to take basic life cycle phases, (such as requirements, prototype, design and test) and apply them to a small amount of work that takes between two and four weeks to complete. If you are contemplating becoming full-Agile, add the remaining practices that build communication and tracking into the project. Agile does not mean skipping all known best practices; it means adopting smaller versions of existing practices, and ones defined by Agile.

2. My company is trying to use CMMI, and now it wants to consider Agile; what shall I do?

Almost all the practices in Agile map to CMMI practices, but Agile provides more implementation details.

For example:

However, not everything in CMMI is in Agile. Some of these additional practices can be implemented in an agile way. For example, simple version control can be implemented by adding a version number to an artifact and taking a picture of it. Other CMMI practices (such as configuration management, risk management, supplier selection, process auditing and skills assessment / training) are additional steps that can be taken to mature an organization.


For a detailed comparison of CMMI and Scrum, see http://www.processgroup.com/pgpostmar09.pdf

* Wikipedia.

Neil is a Certified Scrum Master, Certified High-maturity CMMI Lead Appraiser and Six Sigma Green Belt. Mary is a Certified Scrum Master, certified High-maturity CMMI Lead Appraiser.

[Top of page]


Tidbit #3: Improving Your Service Delivery with CMMI® for Services* - Quick Look

In February 2009 the Software Engineering Institute released CMMI for Services v1.2 (CMMI-SVC). The new CMMI-SVC model is a collection of practices aimed at service providers. This model is a companion to the original (and still current) CMMI-for-development model (CMMI-DEV) which is intended for engineering groups that develop products and systems. Examples of service organizations that can use CMMI-SVC are:

When and why to use CMMI-SVC?
The purpose of using any framework is to improve the performance of an organization. For a group that provides services, this can include: reducing the amount of errors in services provided, reducing the labor needed to provide each service, improving consistency of service delivery, reducing the risk of mistakes and surprises, and maintaining the gains made over time.

A summary of the CMMI-SVC model is provided below. The items marked "(svc)" in red are the major changes compared to the CMMI-DEV model.


Summary of CMMI-SVC and changes compared to CMMI-DEV
At Maturity Level 2, a new Process Area has been added that contains the basic steps for service delivery. At Maturity Level 3 the engineering practices of CMMI-DEV (that were used to define and build components) have been replaced by practices to define and build services.


CMMI® for Services, Version 1.2

The new Process Areas are summarized below.

Service Delivery: The purpose of Service Delivery (SD) is to deliver services in accordance with service agreements.

Capacity and Availability Management: The purpose of Capacity and Availability Management (CAM) is to ensure effective service system performance and ensure that resources are provided and used effectively to support service requirements.

Incident Resolution and Prevention: The purpose of Incident Resolution and Prevention (IRP) is to ensure timely and effective resolution of service incidents and prevention of service incidents as appropriate.

Service System Transition: The purpose of Service System Transition (SST) is to deploy new or significantly changed service system components while managing their effect on ongoing service delivery.

Service Continuity: The purpose of Service Continuity (SCON) is to establish and maintain plans to ensure continuity of services during and following any significant disruption of normal operations.

Service System Development: The purpose of Service System Development (SSD) is to analyze, design, develop, integrate, verify, and validate service systems, including service system components, to satisfy existing or anticipated service agreements. [This is an optional Process Area.]

Strategic Service Management: The purpose of Strategic Service Management (STSM) is to establish and maintain standard services in concert with strategic needs and plans.

Neil Potter of The Process Group is trained and certified to teach the services class and conduct appraisals. Contact us with your needs Contact us.

* Information source = CMMI® for Services, Version 1.2, http://www.sei.cmu.edu/cmmi/tools/svc/download.cfm


® CMMI is registered in the U.S. Patent and Trademark Office by Carnegie Mellon University.


[Top of page]




Tidbit #4: Measuring a Process

If your organization is using defined processes for project and organizational tasks, you might be ready for some measures to objectively see how well they are being implemented. Measurement data can help an organization identify strengths, weaknesses and provide historical data for future planning. In this article, we give example measures for some common processes used within a project.

If you are using CMMI and implementing Generic Practice 3.2*, the ideas listed below are examples of what could be measured to obtain insight into specific process implementations. Tailor these examples to fit your needs or use them as a starting point to generate your own measurements.

In the examples, the term Earned Value is used. Some organizations use Earned Value Management to track project work. Each project task is assigned a value, and when that task is complete, the project records that value to indicate how much of the total project is complete. When process steps such as design, verification, risk and project tracking are included in a project's schedule, the completion of these steps is reflected in the total earned value for the project. When these process steps are skipped, or become stalled, the EVM system reflects these problems.

[Definition: # = Number of]

Requirements Management
Planned/actual effort/schedule to perform the process
#Requirements, growth, volatility over time
#Non-compliances for this process

Project Planning and Management
Planned/actual effort/schedule to perform the process
Final Earned Value number (Cost Performance Index, Schedule Performance Index) or planned vs. actual data showing how well planning and tracking went
#Non-compliances for this process

Risk Management
Planned/actual effort/schedule to perform the process
#Risks over time (increasing or decreasing)
#Risks realized or averted due to risk management
#Risks open vs. closed
#Non-compliances for this process

Configuration Management
Planned/actual effort/schedule to perform the process
#CM-related defects
#Percentage of bad builds
#Non-compliances for this process

Process and Product Assurance
Planned/actual effort/schedule to perform the process
Earned Value of the process assurance activities (i.e., whether all assurance activities were performed, and whether they were under/over budget)
#Requests for help vs. #unfrequented (or scheduled) audits (indicating how sought after the Quality Assurance group is)
#Non-compliances for this process

Measurement and Analysis
Planned/actual effort/schedule to perform the process
#Measures collected but unused
#Non-compliances for this process

Requirements Development
Planned/actual effort/schedule to perform the process
#Derived requirements (indicating the amount of initial ambiguity/completeness)
#Requirements, growth, volatility over time
#Defects in requirements documents, or defect density
#Non-compliances for this process

Design and Implementation
Planned/actual effort/schedule to perform the process
#Non-compliances for this process
#Defects in design and code/drawings, or defect density
#Output over time (e.g., code/changes/design per engineer-week)
#Non-compliances for this process

Product Integration
Planned/actual effort/schedule to perform the process
#Defects found or defect density
Build audit results (e.g., #bad builds)
#Non-compliances for this process

Verification
Planned/actual effort/schedule to perform the process
#Defects found in verification or defect density
#Non-compliances for this process

Validation
Planned/actual effort/schedule to perform the process
#Test cases
#Defects found in validation, defect density, or test pass/fail percentage
#Actual test cycles vs. planned
#Rate of defect find vs. defect resolution
#Non-compliances for this process

Decision Analysis and Resolution
Planned/Actual Effort to perform the process
Earned Value for DAR tasks
#DARs performed per project
#Non-compliances for this process

Process Improvement
Planned/actual effort/schedule to perform the process
Earned Value for improvement tasks
Adoption of processes over time (e.g., #processes or practices used, measured via a mini-assessment)
#Defects found in process assets
#Non-compliances for this process

Training
Planned/actual effort/schedule to perform the process
#Training hours planned vs. received
Training evaluation scores
#Non-compliances for this processes that were covered by training (i.e., did training actually train people)
#Non-compliances for this process

* CMMI® for Development, v1.2, CMU/SEI-2006-TR-008, pp 89, http://www.sei.cmu.edu/pub/documents/06.reports/pdf/06tr008.pdf

[Thanks to Ed, Bruce, Pat, Christof, Michael and John for the review.]


[Top of page]





Tidbit #5: Where do you Spend Your Time – Fulfillment or Demand?

Over the years, numerous time management models have been developed to help categorize and improve time allocation. Usually these models group activities by separating urgent and important initiatives from less pressing obligations.

An example of a time management model is provided in Figure 1. With this framework, all activities are categorized based on how important and urgent they are. The goal is to spend the majority of one’s time in quadrants I or II, and spend as little as possible on less important activities in quadrants III and IV.

 

Figure 1. Adapted from “The 7 Habits of Highly Effective People,” Stephen R. Covey, Free Press


The difference between the activities in Quadrant I and Quadrant II is that the activities in Quadrant I have urgent deadlines, and there is no room for errors or delays. The same work can be performed in Quadrant II, but it is planned to avoid extreme and chronic urgency. Quadrant II also includes improvement and preventative actions that reduce the overall volume of work in Quadrant I.

Individuals and teams that over-commit or make numerous errors tend to spend a lot of time in Quadrant I trying to catch up. While activities in this quadrant can produce growth and success, too much time spent here will only increase the volume of work in Quadrant I. For example, a deliverable that is rushed out full of mistakes will lead to a list of urgent repairs. If those repairs are rushed, more urgent repairs will result.

A good target is for 40-70% of activities to be in quadrant II. If you are spending more than 75% of your time on urgent items, you add excessive stress to your efforts and only increase the volume of Quadrant I work.

One might recognize that certain aspects of their life occupy each of the quadrants. Still, how much time do you spend in Quadrant II? The premise is that the more you spend on these activities, the more you can achieve with less stress. Quadrant I should not be empty since this is where the demand on you can cause growth.

Here are some examples of Quadrant II activities. When reading through them, identify some actions you can take.

Figure 2 provides a similar model to Figure 1; however, here the categories include additional names and are grouped in the graphical layout of an archery target to remind us where to focus.


Figure 2 – “Time Targets,” adapted from The Time of Your Life, by Anthony Robbins

Whichever representation you prefer, it is important that it be used to identify where time is spent now and to determine which actions you can take to shift your focus. In the end, one needs to be patient and make improvements incrementally and consistently.


[Top of page]

For related Process Group services, see http://www.processgroup.com/services.htm


Questions, comments? Contact us.

© The Process Group