Showing posts with label requirements management. Show all posts
Showing posts with label requirements management. Show all posts

Tuesday, September 2, 2014

What’s the difference between Verification and Validation, and how do I figure out which project practices support which process area?

[Dear Readers, for the past several months, our good friend Pat O’Toole, CMMI expert and seasoned consultant, has been collaborating with us on a monthly series of CMMI-related posts, "Just the FAQs." Our goal with these posts is to provide answers to the most frequently asked questions about the CMMI, SCAMPI, engineering strategy and software process improvement. This month Pat clarifies some of the misconceptions about Verification and Validation.  Take it away, Pat! ~ the CMMI Appraiser]


[PAT: Note – there are a number of verification/validation misconceptions I am going to address in this article.  In other words, I’m not going to constrain myself to answering the question – but why shouldn’t THAT surprise you!] 

The CMMI addresses this question very explicitly, and yet the question keeps coming up.  In the “Introductory Notes” of BOTH Verification and Validation, the model states: “verification ensures that ‘you built it right;’ whereas validation ensures that ‘you built the right thing.”  All you have to do is follow that advice and you can’t go wrong differentiating between the two.


Yeah, right!  To me, this pithy explanation is “cute,” but operationally useless.  For example, if I’m conducting system testing, am I’m trying to ensure that the developers built it right, or am I’m trying to ensure that they built the right thing.  I THINK it’s both – isn’t it?

Over the years I have developed what I believe is a much more useful heuristic – one that’s 90% “good enough” and certainly much easier to apply.  Consider this alternative explanation…

When performing something that smells like V&V, take a look at who is involved in the activity.  If it’s just our engineers and testers, then it’s probably a verification activity.  The best the technical folks can hope to do is to compare the product they’re building or testing to the requirements everyone agreed to, and look for deviations that need to be addressed.  Verification is ensuring the work products meet the requirements.

On the other hand, if the customer, user, or a customer/user surrogate (e.g., Product Management) is involved in a product evaluation activity, this tilts the scale much more heavily toward validation.  When a customer looks at a system we are building on their behalf, they are much less interested in comparing it to the documented requirements, and much more concerned about whether the product is going to solve their problem, be usable by their people, and run on their already-overloaded computers.  These concerns reflect those of validation – fitness for use and the ability to work in the intended operational environment.

So let’s test this to see if it’s easy to apply and helps us to reach the right conclusions.  If we employed only “Stepford” engineers and testers, we would start each project with perfect requirements that were perfectly understood, build the product accordingly and then perform perfect verification that discovered and remediated all deviations from the requirements.  In such a perfect world there would be nothing left to find in validation!

However in our non-Stepford, imperfect world, I contend that any problems found in validation likely results from one of three conditions:
  1. We missed a requirement; (“You didn’t tell us the pinball machine is for a cruise ship!”)
  2. We misunderstood a requirement (“You meant NAUTICAL miles?”) and/or
  3. Our verification activities failed to catch it (“Oooops!”).
Given this new rule of thumb, which product-related evaluation activities are verification, and which are validation?  See if your answers agree with mine…
  1. Unit testing – it’s just us engineers, which would lead us to verification.  However, in the CMMI, all discussions related to unit testing is found in the Technical Solution process area under SP3.1 Implement the Design – so maybe it’s neither.  Ah, but TS SP3.1, subpractice 4, “Perform unit testing of the product component as appropriate,” has a reference to the Verification process area, so our first instinct was right after all!
  2. Integration testing – it’s typically just us engineers and testers, so verification.  However, if the user, customer, or their surrogate participate in some or all of these activities, that also brings a validation component to this activity.  (A single activity CAN be both verification and validation.)
  3. System testing – same as integration testing.
  4. Qualification / customer acceptance testing – because the user, customer, and/or their surrogate are typically involved in such activities, they are primarily validation.
  5. Prototyping – it depends.  If it’s a prototype like sample webpages or mocked up reports or modified process flow diagrams that are intended to be shared with the customer/user to make sure that we’re going down the right path to meet their needs, then it’s validation.  If it’s an engineering prototype – one used to decide which of three alternative technical approaches will best meet the stringent performance requirements (for example), then it’s verification.
One additional note about Customer Acceptance Testing … some people mistakenly believe that if their customer performs unassisted acceptance testing then validation is covered.  What these people appear to forget, however, is that the CMMI is intended to enhance your organization’s capability to develop high quality products, not your customers’!  Your customers’ ability (or lack thereof) to perform thorough acceptance testing says nothing about your organization’s capability (or lack thereof) to perform validation.

Another common misconception about validation is that “Validation = Customer Acceptance Testing.” Validation’s ‘Introductory Notes’ points out, “…validation is performed early (concept/exploration phases) and incrementally throughout the product lifecycle.”  The CMMI legal lawyers will object, saying that the “Introductory Notes” are only “informative” model components – reminding us that only the goals are required!  To address the objection, gently guide them to Requirements Development SG3, “Analyze and Validate the Requirements” – objection overruled!

I firmly believe that most organizations perform more validation than they give themselves credit for.  To lift the veil on these hidden validation activities, ask questions about customer/user/Product Management involvement throughout the life cycle.  What kinds of things do you get them involved in, and what does that involvement entail?  Do you show them mocked-up webpages, sample reports, etc. to elicit their opinions? 

And what kinds of changes do you make based their feedback?  Questions like these will reveal that hidden validation activities that most development groups perform.

Keep in mind that the CMMI suggests that blissful ignorance of performing such activities is better than nothing – in fact, it’s called “capability level 1” – but it’s not as good as actually doing such validation activities “on purpose” – which is the purview of capability levels 2 and 3.  The model also suggests that relying on project managers or engineers to “do what they feel is right” demonstrates more of an individual capability than an organizational capability.  The CMMI would suggest explicitly establishing and institutionalizing the system of practices that provides an organizational validation capability.  You’re probably exhibiting many of the behavioral patterns already, but the model is encouraging you to support it in a way that ensures it is performed consistently, consistently performed, and improved over time.

I have saved what I consider the most important point for the very end – and that is that the amorphous dividing line between verification and validation is something that is only of interest to us CMMI model geeks and that such discussions should probably not be conducted in front of the engineers and testers.  Not only do we embarrass ourselves when such bickering occurs in public, but they really don’t care!  What they DO care about is developing products that delight the customer.  They don’t get hung up on whether a particular activity is “verification” or “validation” – if it’s the right thing to do, they do it.  And THAT’s as it should be!

© Copyright 2014: Process Assessment, Consulting & Training and Broadsword Solutions

“Just the FAQs” is written/edited by Pat O’Toole and Jeff Dalton.  Please contact the authors at pact.otoole@att.net and jeff@broadswordsolutions.com to suggest enhancements to their answers, or to provide an alternative response to the question posed.  New questions are also welcomed!

Tuesday, January 7, 2014

"A process area is not a process" - what does THAT mean?



[Dear Readers, our good friend Pat O’Toole, CMMI expert and seasoned consultant, is collaborating with us on a new monthly series of CMMI-related posts, "Just the FAQs." Our goal with these posts is to provide answers to the most frequently asked questions about the CMMI, SCAMPI, engineering strategy and software process improvement. Today, Pat addresses a commonly asked question about CMMI process areas - "A process area is not a process? What does THAT mean?" Take it away, Pat! ~ the CMMI Appraiser]

Thanks, Jeff! Perhaps a bit of historical background might give you a better understanding of what this statement is intended to convey. When the Software Engineering Institute (SEI) first decided to construct the “CMM for Software,” one of the CMMI-DEV’s three predecessor models, they elicited proposed content from high quality software development organizations by convening a meeting in Pittsburgh and inviting representatives from a select group of 15-20 companies. Each representative was instructed to come prepared to discuss those practices executed on the projects and within the organization that made them “world class.”


At this meeting, each of these good practices was written on an index card and pinned on the wall for all to see (the Post-It Note equivalent of the day). The group then went through an affinity diagramming exercise, clustering like practices together in related groups. After several rounds of segmentation, these groupings eventually became the 18 key process areas of the CMM for Software, and later evolved into the 22 process areas of the CMMI-DEV.

Had it been a different group of companies, or even different representatives from the same companies, these good practices may have been grouped differently. The key process areas were simply a way to organize the identified set of 316 practices, rather than a way to perform the work. So the CMMI is simply a taxonomy of good engineering, project management, and support practices. The process areas catalogue the model’s contents; the way the practices are actually performed may be quite different.

Take Measurement and Analysis, for example. The first practice, SP 1.1 – Establish Measurement Objectives, may be performed by senior and middle management through the annual strategic and tactical planning sessions. The other practices that support goal 1, SP 1.2 – SP 1.4 – which essentially establish an infrastructure for measuring things in a repeatable way – may be performed by some organizational Metrics Group that is responsible for generating Metric Specifications for standard measures. The actual capture and consumption of measures as suggested by the four practices that support specific goal 2, however, may be performed by various:

  • Project teams (e.g., project size, effort, cost and scheduled measures)
  • Product teams (e.g. customer satisfaction, defect density, and mean time to failure measures)
  • Process teams (e.g., trying to understand the average time it takes for a submitted requirement change request to be analyzed and dispositioned by the Change Control Board), and
  • Organizational groups (e.g. Human Resources focusing on annual turnover measures and interview-to-hire ratios)

These are perfectly legitimate ways to perform the practices suggested by the Measurement and Analysis process area, but the process steps that actually support the performance of the various CMMI MA practices within a given organization may be scattered throughout various organizational and project processes – and that’s OK!

For organizations that conduct small, low complexity projects, most of the practices associated with the project management process areas (PP, PMC, SAM, IPM and RSKM) may reside in a single Project Management Process. Alternatively for extremely large and complex projects, the project may execute several processes that, collectively, cover the first specific goal of the Project Planning process area.

So cataloguing practices for a process model like the CMMI, and organizing them to perform actual work may be significantly different. Remember that you only do appraisals every three years or so, but you work on projects every single day, so organize your processes to optimize the work performed on projects, and not that performed by appraisal teams!

Like this blog? Forward to your nearest engineering or software exec!

“Just the FAQs” is written/edited by Pat O’Toole and Jeff Dalton. Patrick O'Toole is Principal Consultant at PACT and Owner, PACT. Jeff Dalton is a Certified SCAMPI Lead Appraiser, Certified CMMI Instructor, ScrumMaster, author, and consultant with years of real-world experience with the CMMI in all types of organizations. Jeff pioneered agileCMMI, the leading methodology for incremental and iterative process improvement. He has taught thousands of students in CMMI trainings and has received an aggregate satisfaction score of 4.97 out of 5 from his students.

Please contact the authors at pact.otoole@att.net and jeff@broadsword.com to suggest enhancements to their answers, or to provide an alternative response to the question posed. New questions are also welcomed!

Visit www.broadswordsolutions.com for more information about engineering strategy, performance innovation , software process improvement and running a successful CMMI program.

To download eBooks about CMMI, visit Jeff’s Author Page on Amazon.




Friday, November 8, 2013

Why is REQM at ML2 while RD is at ML3?

Dear CMMI Appraiser, Why is Requirements Management (REQM) staged at ML2 while Requirements Development (RD) is staged at ML3? Don’t you have to develop requirements before you manage them?

[Dear Readers, our good friend Pat O’Toole, CMMI expert and seasoned consultant, is collaborating with us on a new monthly series of CMMI-related posts, "Just the FAQs." Our goal with these posts is to provide answers to the most frequently asked questions about the CMMI, SCAMPI, engineering strategy and software process improvement. To kick off the series, Pat addresses the MOST frequently asked CMMI-related question of all time - "Why is REQM at ML2 while RD is at ML3?" Take it away, Pat! ~ the CMMI Appraiser]

Thanks, Jeff! It does seem a bit strange that the CMMI authors suggest that you learn how to manage requirements better before you learn how to develop better requirements, doesn't it?  Almost like putting the cart before the horse.


But if you think about it, this situation is no stranger than the authors suggesting you learn how to plan and monitor your design, development, and test activities before you focus on performing those activities better (that is, Project Planning and Project Monitoring and Control are staged at ML2, and yet Technical Solution and Verification are staged at ML3).

In order to understand both of these situations, you have to remember that the CMMI isn't staged in the order that you actually DO things, rather it's staged in the order that the model authors suggest that you IMPROVE them. So the authors are suggesting that you should get better control over your ever-changing requirements as part of ML2’s focus on basic project management. They suggest you will be better served to wrestle this particularly sticky problem to the ground before you invest significant time and effort trying to get better requirements through ML3’s focus on more sophisticated and consistently performed engineering activities.

As indicated above, most people think that “project management” is the foundational concept of ML2, and if that works for you, then fine. But some of us view ML2 as “project triage” – let’s first focus on stabilizing the patient’s vital signs before we perform major surgery. In other words, we believe you should attempt to get some level of control over each project’s chaotic requirements, estimates, suppliers, and configuration items at ML2 before you start trying to establish better ways of performing the various engineering activities at ML3. After all, if you don’t allocate sufficient time to do more than “code and test” today (or, worse yet, just “code”), then what’s the point of trying to improve the engineering practices that you don’t allocate sufficient time and resources to perform anyway?

However, just because the CMMI authors felt that way should not prevent you from doing what is right for YOU – which, by the way, is the underlying philosophy of the continuous representation. If you perceive that your pain is more in the area of RD than REQM, then don't let the way the model is staged dissuade you from addressing things that you believe will alleviate your pain. After all, reducing pain and improving performance is what model-based improvement is really all about!

Like this blog? Forward to your nearest engineering or software exec!

“Just the FAQs” is written/edited by Pat O’Toole and Jeff Dalton. Patrick OToole is Principal Consultant at PACT and Owner, PACT. Jeff Dalton is a Certified SCAMPI Lead Appraiser, Certified CMMI Instructor, ScrumMaster, author, and consultant with years of real-world experience with the CMMI in all types of organizations. Jeff pioneered agileCMMI, the leading methodology for incremental and iterative process improvement. He has taught thousands of students in CMMI trainings and has received an aggregate satisfaction score of 4.97 out of 5 from his students.

Please contact the authors at pact.otoole@att.net and jeff@broadsword.com to suggest enhancements to their answers, or to provide an alternative response to the question posed. New questions are also welcomed!

Visit www.broadswordsolutions.com for more information about engineering strategy, performance innovation , software process improvement and running a successful CMMI program.

To download eBooks about CMMI, visit Jeff’s Author Page on Amazon.