<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tyner Blain &#187; CMMI</title>
	<atom:link href="http://tynerblain.com/blog/category/software-process-improvement/cmmi/feed/" rel="self" type="application/rss+xml" />
	<link>http://tynerblain.com/blog</link>
	<description>Software product success.</description>
	<lastBuildDate>Sun, 26 Feb 2012 15:00:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>CMMI and RMM One Minute Survey</title>
		<link>http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/</link>
		<comments>http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/#comments</comments>
		<pubDate>Sat, 03 Feb 2007 02:47:16 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Polls]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm levels]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[cmmi level]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 2]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level 5]]></category>
		<category><![CDATA[cmmi poll]]></category>
		<category><![CDATA[cmmi survey]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[rmm level]]></category>
		<category><![CDATA[rmm poll]]></category>
		<category><![CDATA[rmm survey]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/</guid>
		<description><![CDATA[See what CMMI levels and RMM levels other teams are using.  Take a minute out of your day to tell us your CMMI level and RMM level.  We all want to know, but we need your help - if you don't answer, you won't learn anything.  Thanks for clicking through!  And check back later to see the results as they come in.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F02%252F02%252Fcmmi-and-rmm-survey%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20and%20RMM%20One%20Minute%20Survey%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F02%2F02%2Fcmmi-and-rmm-survey%2F", "style": "big", "title": "CMMI and RMM One Minute Survey" });</script></div>
<p><img title="timed test" alt="timed test" src="http://sehlhorst.smugmug.com/photos/127153565-M.jpg" /></p>
<p>Please take <strong>one minute</strong> to answer the following two questions, because people need to know how their process maturity compares with everyone else. You&#8217;ll be answering two easy questions -</p>
<ul>
<li>What is your CMMI level?</li>
<li>What is your RMM level?</li>
</ul>
<p><strong>Background</strong></p>
<p>We just completed a series of six articles about <a title="Intro to CMMI and RMM" href="http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/">CMMI levels and RMM levels</a>.  We discussed how the two frameworks can be connected, and explored the reasons for trying to reach the next level on either scale.</p>
<p><strong>Question 1</strong></p>
<p>[poll=2]</p>
<p><strong>Question 2</strong></p>
<p>[poll=3]</p>
<p>Thanks for taking the survey, and if you have any thoughts about the results, just comment here.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+and+RMM+One+Minute+Survey+http%3A%2F%2Fbit.ly%2FfNMEAG+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/&amp;t=CMMI+and+RMM+One+Minute+Survey" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMMI Levels and RMM Level 5 &#8211; Integrated Requirements</title>
		<link>http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/</link>
		<comments>http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/#comments</comments>
		<pubDate>Fri, 02 Feb 2007 03:00:37 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level2]]></category>
		<category><![CDATA[cmmi level5]]></category>
		<category><![CDATA[cmmi levels]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/</guid>
		<description><![CDATA[In our introduction to mapping RMM levels to CMMI levels, we presented background info on CMMI, introduced the IBM article on RMM levels, and posted an initial mapping structure. In this article, we will look at the definition of RMM level 5. We also look at the mapping from RMM level 5 to various CMMI levels.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F02%252F01%252Fcmmi-and-rmm-level-5%252F%22%2C%20%22shorturl%22%3A%20%22http%3A%2F%2Fbit.ly%2FhU89GI%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20Levels%20and%20RMM%20Level%205%20-%20Integrated%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F02%2F01%2Fcmmi-and-rmm-level-5%2F", "shorturl": "http://bit.ly/hU89GI", "style": "big", "title": "CMMI Levels and RMM Level 5 - Integrated Requirements" });</script></div>
<p><img title="Book 5 in a stack of 5 books" src="http://sehlhorst.smugmug.com/photos/125462917-M.jpg" alt="Book 5 in a stack of 5 books" /></p>
<p><strong>Background</strong></p>
<p>In our <a title="Mapping CMMI to RMM - Introduction" href="http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/">introduction to mapping RMM levels to CMMI levels</a>, we presented <a title="Foundation Series explaining CMMI levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">background info on CMMI</a>, introduced the IBM article on RMM levels, and posted an initial mapping structure. In this article, we will look at the definition of RMM level 5. We also look at the mapping from RMM level 5 to various CMMI levels.</p>
<p><img title="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" alt="CMMI to RMM Mapping" /></p>
<p>(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>In the previous article in the series, we looked at how <a title="Mapping RMM Level 3 to CMMI Levels" href="http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/"></a><a title="RMM Level 4 Processes Analyzed" href="http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/">RMM level 4 &#8211; traced requirements</a> processes map to CMMI levels.</p>
<p><strong>RMM Level 5 &#8211; Integrated Requirements</strong></p>
<p>In RMM level 4 we discussed the benefits of establishing traceability <em>within</em> the scope of the requirements realm.  This traceability helped us with tracking the impact of changes and validation of requirements,  and it helped us with reporting and management functions that improved our insight and lessened our efforts.</p>
<p>RMM level 5 extends this traceability concept <em>beyond</em> the requirements realm.  We can extend tracing into development, testing and documentation, as well as project management.</p>
<p><strong>Delivery Scheduling</strong></p>
<p>Each delivery of our software includes a set amount of functionality.  We prefer using a <a title="How To Use timeboxes" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">timebox approach for planning</a> those deliveries.  We also suggest using <a title="Communicating a Release Schedule with Use Cases" href="http://tynerblain.com/blog/2006/07/19/communicating-a-release-schedule-with-use-cases/">use cases as the &#8220;pieces&#8221; of functionality</a> that are delivered.  We also have proposed an approach to <a title="Scheduling Requirements Changes" href="http://tynerblain.com/blog/2006/04/10/scheduling-requirements-changes-part-1/">managing changes to the delivery schedule</a>.  This overall process is a form of integration of requirements, and is dependent upon having organized, structured, traced requirements.  It also requires us to create linkages between implementation elements/effort and the requirements that are supported.</p>
<p><strong>Quality Assurance</strong></p>
<p>There are two elements of integration between QA and requirements.  The first is in defining test cases based on use cases.  Each use case drives the creation of one or more test cases that are used to validate that the delivered software meets the requirements.</p>
<p>The second element is in tracking and management of bugs.  We have a triage process for determining how to address bugs.  Those <a title="Where Bugs Come From" href="http://tynerblain.com/blog/2006/01/22/where-bugs-come-from/">bugs can come from anywhere</a> &#8211; and sometimes they come from incorrect requirements.  Establishing relationships between requirements and bugs allows us to manage the defect resolution process more effectively.</p>
<p><strong>Documentation</strong></p>
<p>When we write documentation, our goal is to have the reader know how to accomplish something that they want to do.  When we develop software, we define the things that users will be able to do.  It only makes sense to <a title="Use Case Driven Documentation" href="http://tynerblain.com/blog/2006/10/10/use-case-driven-documentation/">structure documentation around use cases</a>.</p>
<p><strong>Mapping CMMI Levels to RMM Level 5</strong></p>
<p>In our diagram, we show the following mappings for RMM level 5:</p>
<ul>
<li>CMMI level 0 &#8211; No Entry</li>
<li>CMMI level 1 &#8211; No Entry</li>
<li>CMMI level 2 &#8211; No Entry</li>
<li>CMMI level 3 &#8211; Requirements <strong>Should Be</strong> Integrated</li>
<li>CMMI level 4 &#8211; Requirements <strong>Should Be</strong> Integrated</li>
<li>CMMI level 5 &#8211; Requirements <strong>Should Be</strong> Integrated</li>
</ul>
<p><strong>For CMMI Level 0 through CMMI Level 2</strong> &#8211; when our process is unmanaged, and unstructured, integration doesn&#8217;t matter.  <a title="Fix the process first, then the tools" href="http://tynerblain.com/blog/2006/02/15/requirements-management-software-will-not-solve-the-problem/">Requirements management software will not solve our problems</a>.</p>
<p><strong>For CMMI Level 3 through CMMI Level 5</strong> &#8211; Being able to quantify the performance of our process, and improve our process based on that feedback both require an element of instrumentation and insight into our techniques and tools. Attempting to do that meaningfully without additional structure and traceability will provide limited benefit.  If we&#8217;re investing this level of effort in our requirements process, we should extend it to include our overal software development process by integrating to other systems.</p>
<p><strong>From a CMMI Level Perspective</strong></p>
<p>The previous analysis basically looked at the “RMM level 5″ column in our grid, and inspected the relative decisions for each “CMMI level” row. Now we will look at it by reviewing the CMMI levels, and seeing how they map to the RMM level.</p>
<p>A quick review of the same chart (so you don’t have to scroll up and down):</p>
<p><img title="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" alt="CMMI to RMM Mapping" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>At CMMI level 1 through CMMI level 3, we don’t address integration with other systems.  We want to focus on getting a cohesive and powerful requirements management process in place before we look at integrating it to our other processes.</p>
<p>At CMMI levels 4 and 5 we are measuring and improving on our process. We require traceability as a key component to our quantified analysis and instrumentation.  We should be extending that traceability beyond the requirements realm to maximize the value of what we are doing.</p>
<p><strong>Summary</strong></p>
<ul>
<li>RMM level 5 specifies that requirements documents are organized, structured, and traceable &#8211; both to each other and to other systems.</li>
<li>Once we reach a company-standard process (CMMI level 3) we should be at RMM level 5, but we must have reached RMM level 2.</li>
<li>RMM level 5 is never <em>required</em> to achieve any of the CMMI levels &#8211; but it is valuable and encouraged.</li>
</ul>
<p>Don&#8217;t forget to take our <a title="CMMI Level and RMM Level Polls" href="http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/"><em>One Minute Survey on CMMI and RMM Levels</em></a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+Levels+and+RMM+Level+5+%E2%80%93+Integrated+Requirements+http%3A%2F%2Fbit.ly%2FhU89GI+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/&amp;t=CMMI+Levels+and+RMM+Level+5+%E2%80%93+Integrated+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CMMI Levels and RMM Level 4 &#8211; Traced Requirements</title>
		<link>http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/</link>
		<comments>http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/#comments</comments>
		<pubDate>Thu, 01 Feb 2007 03:00:32 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level2]]></category>
		<category><![CDATA[cmmi level5]]></category>
		<category><![CDATA[cmmi levels]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/</guid>
		<description><![CDATA[In our introduction to mapping RMM levels to CMMI levels, we presented background info on CMMI, introduced the IBM article on RMM levels, and posted an initial mapping structure. In this article, we will look at the definition of RMM level 4. W also look at the mapping from RMM level 4 to various CMMI levels.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F01%252F31%252Fcmmi-and-rmm-level-4%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20Levels%20and%20RMM%20Level%204%20-%20Traced%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F01%2F31%2Fcmmi-and-rmm-level-4%2F", "style": "big", "title": "CMMI Levels and RMM Level 4 - Traced Requirements" });</script></div>
<p><img alt="Book 4 in a stack" title="Book 4 in a stack" src="http://sehlhorst.smugmug.com/photos/125462915-M.jpg" /></p>
<p><strong>Background</strong></p>
<p>In our <a title="Mapping CMMI to RMM - Introduction" href="http://tynerblain.com/2007/01/25/cmmi-and-rmm-intro/">introduction to mapping RMM levels to CMMI levels</a>, we presented <a title="Foundation Series explaining CMMI levels" href="http://tynerblain.com/2006/03/10/foundation-series-cmmi-levels-explained/">background info on CMMI</a>, introduced the IBM article on RMM levels, and posted an initial mapping structure. In this article, we will look at the definition of RMM level 4. W also look at the mapping from RMM level 4 to various CMMI levels.</p>
<p><img title="CMMI to RMM Mapping" alt="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /></p>
<p>(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>In the previous article in the series, we looked at how <a title="Mapping RMM Level 3 to CMMI Levels" href="http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/">RMM level 3 &#8211; structured requirements</a> processes map to CMMI levels.</p>
<p><strong>RMM Level 4 &#8211; Traced Requirements</strong></p>
<p>RMM level 4 builds upon the previous three levels &#8211; structured, organized, and documented requirements.  With an organization of structured requirements, we can overlay the notion of tracing between requirements.</p>
<p>Consider the <a title="Intro to structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured requirements approach</a> we adapted from Karl Wiegers.</p>
<p><img title="structured requirements relationships" alt="structured requirements relationships" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" /></p>
<p>In this structured approach, there is a notion of <em>dependence</em>.</p>
<ul>
<li>Goals depend upon use cases in order to be achieved.</li>
<li>Goals depend upon non-functional requirements to define their achievability.</li>
<li>Use cases depend upon functional requirements to enable their execution.</li>
<li>Use cases depend upon non-functional requirements to characterize their effectiveness.</li>
<li>Functional requirements depend upon designs, which depend upon implementation.</li>
</ul>
<p>This structure of dependency represents the real-world reliance of one artifact on another.  In an ongoing software development project, we can be making changes to any of these elements.  <em>Those changes can impact other elements</em>.</p>
<p>As an example, we could change a use case.  The goal that <em>depends upon</em> that use case might be affected.  Our changes may affect the functional and non-functional requirements upon which the use case <em>depends</em>.</p>
<p>Traceability allows us to say <em>this</em> use case relies on <em>those</em> requirements.  It represents relationships between specific artifacts.  We can use traceability to reduce the effort (and errors) associated with propogating changes through the dependency network.</p>
<p>We can also use traceability to enable interesting aggregations of reporting information.  For example, we could identify the percentage of completion of a given use case &#8211; by looking at the percentage completion of all implementation elements that support all design elements upon which the use case depends.  Other analogous relationships can be created to meet other reporting objectives.</p>
<p>We can also use traceability to validate completeness (IBM uses the word &#8220;coverage&#8221; in their article) of our specification.  We can review a goal, and ask the question: &#8220;Are all of the use cases required to achieve this goal defined?&#8221;  We can also validate in the other direction: &#8220;Are all of these use cases required to achieve that goal?&#8221;  We covered this specific example in our article, <a title="Use Cases and Completeness Validation" href="http://tynerblain.com/blog/2006/07/06/requirement-completeness-validation-with-use-cases/"><em>Completeness Validation With Use Cases</em></a>.  This also applies to the <a title="Validating Requirements Completion" href="http://tynerblain.com/blog/2006/06/08/writing-complete-requirements/">completeness validation</a> of other artifacts in the requirements hierarchy.</p>
<p><strong>Mapping CMMI Levels to RMM Level 4<br />
</strong></p>
<p>In our diagram, we show the following mappings for RMM level 4:</p>
<ul>
<li>CMMI level 0 &#8211; No Entry</li>
<li>CMMI level 1 &#8211; No Entry</li>
<li>CMMI level 2 &#8211; Requirements<strong> Should Be</strong> Traced</li>
<li>CMMI level 3 &#8211; Requirements <strong>Should Be</strong> Traced</li>
<li>CMMI level 4 &#8211; Requirements <strong>Must Be</strong> Traced</li>
<li>CMMI level 5 &#8211; Requirements <strong>Must Be</strong> Traced</li>
</ul>
<p><strong>For CMMI Level 0 and CMMI Level 1</strong> &#8211; when our process is unmanaged, and unstructured, traceability does not provide value &#8211; it creates confusion.<br />
<strong>For CMMI Level 2 and CMMI Level 3 </strong>- A valuable process must include organization of documented of requirements. Those documents should also be structured and traced.<br />
<strong>For CMMI Level 4 and CMMI Level 5</strong> &#8211; Being able to quantify the performance of our process, and improve our process based on that feedback both require an element of instrumentation and insight into our techniques and tools. Attempting to do that meaningfully without additional structure and traceability will provide limited benefit.</p>
<p><strong>From a CMMI Level Perspective</strong></p>
<p>The previous analysis basically looked at the “RMM level 4″ column in our grid, and inspected the relative decisions for each “CMMI level” row. Now we will look at it by reviewing the CMMI levels, and seeing how they map to the RMM level.</p>
<p>A quick review of the same chart (so you don’t have to scroll up and down):</p>
<p><img title="CMMI to RMM Mapping" alt="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>At CMMI level 1, we don&#8217;t address traceability  We would focus on reaching CMMI level 2 before reaching RMM level 4.</p>
<p>At CMMI level 2 and CMMI level 3, we <em>require</em> that the documentation be organized.  A managed process without some form of organization and consistent documentation is a <em>poorly</em> managed process.  We also suggest that an RMM level of at least 3, and ideally 4 be adopted.</p>
<p>At CMMI levels 4 and 5 we are measuring and improving on our process. We require traceability as a key component to our quantified analysis and instrumentation.</p>
<p><strong>Summary</strong></p>
<ul>
<li>RMM level 4 specifies that requirements documents are organized, structured, and traceable.</li>
<li>CMMI level 2 specifies that there is a <em>managed</em> process &#8211; in our case, one for managing requirements, and it should involve structure and traceability as components that simplify that management.</li>
<li>A process must be at RMM level 4 before it can reach CMMI level 4.</li>
</ul>
<p>Check out the next article, <a title="CMMI Levels and RMM Level 5 - Integrated Requirements" href="http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/"><em>CMMI Levels and RMM Level 5</em></a> or  take our <a title="CMMI Level and RMM Level Polls" href="http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/"><em>One Minute Survey on CMMI and RMM Levels</em></a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+Levels+and+RMM+Level+4+%E2%80%93+Traced+Requirements+http%3A%2F%2Fbit.ly%2FdNrtI9+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/&amp;t=CMMI+Levels+and+RMM+Level+4+%E2%80%93+Traced+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMMI Levels and RMM Level 3 &#8211; Structured Requirements</title>
		<link>http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/</link>
		<comments>http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/#comments</comments>
		<pubDate>Wed, 31 Jan 2007 03:00:32 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level2]]></category>
		<category><![CDATA[cmmi level5]]></category>
		<category><![CDATA[cmmi levels]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/</guid>
		<description><![CDATA[topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F01%2F30%2Fcmmi-and-rmm-level-3%2F", "style": "big", "title": "CMMI Levels and RMM Level 3 - Structured Requirements" }); Background In our introduction to mapping RMM levels to CMMI levels, we presented background info on CMMI, introduced the IBM article on RMM levels, and posted an initial mapping structure. In this article, we will look at the definition [...]]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F01%252F30%252Fcmmi-and-rmm-level-3%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20Levels%20and%20RMM%20Level%203%20-%20Structured%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F01%2F30%2Fcmmi-and-rmm-level-3%2F", "style": "big", "title": "CMMI Levels and RMM Level 3 - Structured Requirements" });</script></div>
<p><img alt="3rd book in a stack of 5 books" title="3rd book in a stack of 5 books" src="http://sehlhorst.smugmug.com/photos/125462912-M.jpg" /></p>
<p><strong>Background</strong></p>
<p>In our <a title="Mapping CMMI to RMM - Introduction" href="http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/">introduction to mapping RMM levels to CMMI levels</a>, we presented <a title="Foundation Series explaining CMMI levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">background info on CMMI</a>, introduced the IBM article on RMM levels, and posted an initial mapping structure. In this article, we will look at the definition of RMM level 3. We also question the language used and reinterpret some of what IBM suggests. Finally, we look at the mapping from RMM level 3 to various CMMI levels.</p>
<p><img title="CMMI to RMM Mapping" alt="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /></p>
<p>(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>In the previous article in the series, we looked at how <a title="Mapping RMM Level 1 to CMMI Levels" href="http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/">RMM level 2 &#8211; organized requirements documents processes</a> map to CMMI levels.</p>
<p><strong>RMM Level 3 &#8211; Structured Requirements</strong></p>
<p>RMM level 1 requires us to document our requirements.  RMM level 2 requires us to organize that documentation and use consistent formatting for the documents.  RMM level 3 introduces the concept of using structured requirements, as well as the idea of requirements having attributes.  The first notion relates to the relationships between requirements, and the second is a way of apply structure <em>to the requirements</em> so that we can reason about them more effectively.</p>
<p><strong>Structured Requirements</strong></p>
<p>The first thing that the IBM team identifies is the need to identify different types of requirements.  Avoid all of the naming bugaboos, and consider the notion of identifying different structures of <em>artifacts</em> in the software development process.  We have a series of elements of information that we need to understand and articulate in order to travel from an identified market need to a delivered software product.</p>
<p>There are many different approaches to documenting requirements.  We all struggle to agree on particular naming conventions.  We use <a title="Many Different Forms of Requirements Documents" href="http://tynerblain.com/blog/2006/01/20/document-proliferation/">different requirements documents</a> to represent different parts of the flow.</p>
<p>In <a title="Different Requirements Documents" href="http://tynerblain.com/blog/2006/08/24/alphabet-soup/"><em>Alphabet Soup &#8211; Requirements Documents</em></a>, we use the following diagram to try and summarize the stages of decomposition.</p>
<p><img alt="requirements continuum" title="requirements continuum" src="http://sehlhorst.smugmug.com/photos/69105247-O.png" /></p>
<p>This is the first level of decomposition &#8211; requirements (MRD or PRD) versus specification (SRS or FRS).</p>
<p>There&#8217;s another level of detail in the structuring of requirements, built on the work that Karl Wiegers has done.  It looks at the artifacts in more detail &#8211; and I believe is what the IBM team had in mind when they defined RMM level 3.  Here&#8217;s the version of the diagram that we developed in our article on <a title="Appreciating non-functional requirements" href="http://tynerblain.com/blog/2006/05/23/non-functional-requirements-era/">non-functional requirements</a>, and then reference as part of our <a title="Intro to structured requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">introduction to structured requirements</a>.  You can read more about this approach in those articles.</p>
<p><img alt="structured requirements framework" title="structured requirements framework" src="http://sehlhorst.smugmug.com/photos/71264266-M.jpg" /></p>
<p>We&#8217;ve also done some exploration of <a title="Combining interaction design and structured requirements" href="http://tynerblain.com/blog/2006/03/23/interaction-design-and-structured-requirements/">how to marry interaction design with structured requirements</a>.  The approach of starting with a user-centric perspective has a lot of benefits, and we believe there is a way to combine those benefits with the benefits inherent in a structured approach to requirements documentation.  Here&#8217;s the diagram we created that shows how we adapt our structured approach to an interaction design context.</p>
<p><img alt="interaction design and structured requirements framework" title="interaction design and structured requirements framework" src="http://sehlhorst.smugmug.com/photos/61228367-O.png" /></p>
<p>Regardless of the approach you take, the element that is relevant to having an RMM level 3 requirements process is the notion that different documents represent different types of requirements/constraints/designs.</p>
<p><strong>Requirement Structures</strong></p>
<p>The IBM team also talks about having <em>attributes</em> as part of requirements.  Unfortunately, this is a little bit of the &#8220;if you have a hammer, everything looks like a nail&#8221; syndrome.  What their suggestion implies is</p>
<ol>
<li>You have a notion of objects, and you use objects to represent requirements artifacts.</li>
<li>You apply the concept of attributes to structure the elements of information within those artifacts.</li>
<li>You have some means (human or machine) to reason about those <em>attributes</em> in a way that provides distinct value relative to reasoning about the artifacts.</li>
</ol>
<p>Their approach is unfortunate, if only because it appears presumptive, and perhaps biased.  I believe we can restructure their language into something design-agnostic that achieves the same objectives.</p>
<p>We propose that there are two relevant benefits that could be addressed with the <em>attributes-approach</em> they suggest:</p>
<ol>
<li><strong>Being able to manage and reason about the meta-data of a requirement artifact has value</strong>.  Meta-data are pieces of data that describe the data.  For example, who is the author of the document?  When was it last edited?  What is its priority?  To which other requirements is it related?  Being able to track, edit, and view this information allows us to make decisions about how and when to use the document.  It helps us plan activities and investments that are looking at the process as a whole &#8211; combining information about all of the requirements to make high level decisions.</li>
<li><strong>Structuring information within a requirement artifact has value</strong>.  Artifacts can be free-form text. That text can be organized into sections and lists and tables.  That type of organization is helpful to humans who read it.  It allows us to organize our content so that it is <a title="Writing requirements to be read" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">easier to read the requirements</a>.  Most good business writing has these elements &#8211; where the organization of information is suited to the content and its intended use.  To be at RMM level 3, we must also be at <a title="Looking at RMM Level 2 in detail" href="http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/">RMM level 2</a>, which requires consistent formatting.  Combining that consistency with structure makes it easier for people to read (and saves time when writing) requirements.  There is also benefit to using a structure that can be read by machines as well as humans.  When information has structure, it introduces the possibility of machine-reasoning, just as it improves human-consumption.  While machine-reasoning about elements of requirements documents is not a criterion of achieving RMM level 3, the IBM article implies that this benefit exists.  And it does exist.  Without going off on a tangent, we can at least easily envision the generation of a report based upon the status of all requirements scheduled for a given release.  This report can be created without formally structuring the information, but it is easier to create when we can reason about the structure of the information.</li>
</ol>
<p>I think this is exactly what IBM intended, and they just used an unfortunately <a title="Symbolic Words cloud our judgement" href="http://tynerblain.com/blog/2006/02/12/symbolism-and-communication/">symbolic word</a> &#8211; <em>attributes</em>.  The same criticism has been applied to much of our writing about the way we use the word <em>requirement</em>.</p>
<p><strong>Mapping CMMI Levels to RMM Level 3<br />
</strong></p>
<p>In our diagram, we show the following mappings for RMM level 3:</p>
<ul>
<li>CMMI level 0 &#8211; No Entry</li>
<li>CMMI level 1 &#8211; Requirements <strong>Should Be</strong> Structured</li>
<li>CMMI level 2 &#8211; Requirements<strong> Should Be</strong> Structured</li>
<li>CMMI level 3 &#8211; Requirements <strong>Should Be</strong> Structured</li>
<li>CMMI level 4 &#8211; Requirements <strong>Must Be</strong> Structured</li>
<li>CMMI level 5 &#8211; Requirements <strong>Must Be</strong> Structured</li>
</ul>
<p><strong>For CMMI Level 0</strong> &#8211; when our process is so ad-hoc that documentation of requirements is questionable, discussions about how we organize and structure the requirements documents are irrelevant.</p>
<p><strong>For CMMI Level 1 through CMMI Level 3 </strong>- A valuable process must include documentation of requirements. Those documents really should be organized and structured.  Structure is essentially organization at the next level of detail, and it is worth doing.</p>
<p><strong>For CMMI Level 4 and CMMI Level 5</strong> &#8211; Being able to quantify the performance of our process, and improve our process based on that feedback both require an element of instrumentation and insight into our techniques and tools.  Attempting to do that meaningfully without additional structure will provide limited benefit.</p>
<p><strong>From a CMMI Level Perspective</strong></p>
<p>The previous analysis basically looked at the “RMM level 3″ column in our grid, and inspected the relative decisions for each “CMMI level” row. Now we will look at it by reviewing the CMMI levels, and seeing how they map to the RMM level.</p>
<p>A quick review of the same chart (so you don’t have to scroll up and down):</p>
<p><img alt="CMMI to RMM Mapping" title="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>At CMMI level 1, we <em>require</em> that requirements be written.  We suggest that they be organized and structured.</p>
<p>At CMMI level 2 and CMMI level 3, we <em>require</em> that the documentation be organized.  A managed process without some form of organization and consistent documentation is a <em>poorly</em> managed process.  We also suggest that an RMM level of at least 3, and ideally 4 be adopted.</p>
<p>At CMMI levels 4 and 5 we are measuring and improving on our process. We’ll address the higher CMMI levels in more detail as this series of articles continues.</p>
<p><strong>Summary</strong></p>
<ul>
<li>RMM level 3 specifies that requirements documents are organized, and structured.</li>
<li>CMMI level 2 specifies that there is a <em>managed</em> process &#8211; in our case, one for managing requirements.</li>
<li>A process must be at RMM level 2 and should be at level 3 or 4 to be at CMMI level 2 or CMMI level 3.</li>
<li>A process should be at RMM level 3 if it is at CMMI level 1.</li>
<li>A process should be at RMM level 4 if it is at CMMI level 2.</li>
</ul>
<p>Note that this implies that we would spend the extra effort to get to CMMI 3 before we would try and reach RMM level 5.</p>
<p>Check out the next article, <a title="CMMI Levels and RMM Level 4 - Traced Requirements" href="http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/"><em>CMMI Levels and RMM Level 4</em></a> or  take our <a title="CMMI Level and RMM Level Polls" href="http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/"><em>One Minute Survey on CMMI and RMM Levels</em></a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+Levels+and+RMM+Level+3+%E2%80%93+Structured+Requirements+http%3A%2F%2Fbit.ly%2FehrVHC+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/&amp;t=CMMI+Levels+and+RMM+Level+3+%E2%80%93+Structured+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMMI Levels and RMM Level 2 &#8211; Organized Requirements</title>
		<link>http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/</link>
		<comments>http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/#comments</comments>
		<pubDate>Tue, 30 Jan 2007 03:00:28 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level2]]></category>
		<category><![CDATA[cmmi level5]]></category>
		<category><![CDATA[cmmi levels]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/</guid>
		<description><![CDATA[In our introduction to mapping RMM levels to CMMI levels, we presented background info on CMMI, introduced the IBM article on RMM levels, and posted an initial mapping structure.  In this article, we will look at the definition of RMM level 2.  We also cover the tradeoffs and benefits of the practices it requires.  Finally, we look at the mapping from RMM level 2 to various CMMI levels.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F01%252F29%252Fcmmi-and-rmm-level-2%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20Levels%20and%20RMM%20Level%202%20-%20Organized%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F01%2F29%2Fcmmi-and-rmm-level-2%2F", "style": "big", "title": "CMMI Levels and RMM Level 2 - Organized Requirements" });</script></div>
<p><img title="Second in a stack of five books" alt="Second in a stack of five books" src="http://sehlhorst.smugmug.com/photos/125462909-M.jpg" /></p>
<p><strong>Background</strong></p>
<p>In our <a title="Mapping CMMI to RMM - Introduction" href="http://tynerblain.com/2007/01/25/cmmi-and-rmm-intro/">introduction to mapping RMM levels to CMMI levels</a>, we presented <a title="Foundation Series explaining CMMI levels" href="http://tynerblain.com/2006/03/10/foundation-series-cmmi-levels-explained/">background info on CMMI</a>, introduced the IBM article on RMM levels, and posted an initial mapping structure.  In this article, we will look at the definition of RMM level 2.  We also cover the tradeoffs and benefits of the practices it requires.  Finally, we look at the mapping from RMM level 2 to various CMMI levels.</p>
<p><img alt="CMMI to RMM Mapping" title="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /></p>
<p>(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>In the previous article in the series, we looked at how <a title="Mapping RMM Level 1 to CMMI Levels" href="http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/">RMM level 1 &#8211; written requirements processes</a> map to CMMI levels.</p>
<p><strong>RMM Level 2 &#8211; Organized Requirements</strong></p>
<p>RMM level 1 requires us to document our requirements, but doesn&#8217;t talk about how we document them.  We can use emails, store information in databases, spreadsheets, and screenshots.  But without an over-arching organization.  In RMM level 2, we have to organize our requirements documents, we have to use consistent formatting, and we have to deal with administrative issues like security and version control.</p>
<p><strong>The Case For Organizing Requirements</strong></p>
<p>There are two main drivers for organizing our requirements:</p>
<ul>
<li>The need to consume those requirements.</li>
<li>The need to change those requirements over time.</li>
</ul>
<p><strong>Consuming Requirements</strong></p>
<p>Requirements are written not just to organize our thoughts, but to <a title="How different team members view requirements" href="http://tynerblain.com/blog/2006/05/11/requirements-documents-one-mans-trash/">provide direction for the team</a>.  They are a form of <a title="Tips for Creating Targeted Communication" href="http://tynerblain.com/blog/2006/04/03/targeted-communication-three-tips/">targeted communication</a>.  The set the scope for software delivery, provide guidance in <a title="Three prioritization techniques" href="http://tynerblain.com/blog/2006/01/18/prioritizing-requirements-three-techniques/">making prioritization decisions</a>, and provide insight into what we will deliver &#8211; helping <a title="Managing a Release Schedule with Use Cases " href="http://tynerblain.com/blog/2006/07/19/communicating-a-release-schedule-with-use-cases/">manage the expecations of our customers</a>.</p>
<p>Organizing our requirements makes it easier to consume them. When we ask people to review our requirements, they will have more confidence, and experience less frustration, if they are consistently looking for documents in the same location.</p>
<p>This location could be a document repository, a shared drive on the network, a website, a portal site, or even organized in a file cabinet (?!).  The point is that they are always in the same place.  As the quantity of our requirements grows, they should also be organized in a logical way within that location.  At RMM level 2, any organization is valid &#8211; as long as it is consistent, it will provide value.</p>
<p><strong>Changing Requirements Over Time</strong></p>
<p>While documenting the requirements provides benefit, the disorganization comes at a cost.  Requirements change over time.  Our requirements documentation should change over time as well.</p>
<p>The biggest complaint with <a title="Intro To Waterfall and Incremental Processes" href="http://tynerblain.com/blog/2006/01/03/foundation-series-software-process-waterfall-process-versus-incremental-process/">waterfall projects</a> is that our understanding of the requirements does not change over time.  Requirements are a moving target.  With a waterfall project, we define a set of requirements, and then kick off the project &#8211; sort of a <em>fire and forget</em> model.  Months or years later, we deliver a product &#8211; and it will probably match our documented requirements.  While we were happily developing against the requirements we documented, the actual requirements have changed.  There&#8217;s a very high risk that what we deliver will not meet the evolved needs.</p>
<blockquote>
<ul>
<li>The Standish group reports that over 80% of projects are unsuccessful<br />
either because they are over budget, late, missing function, or a<br />
combination. (<a title="http://www.standishgroup.com/sample_research/chaos_1994_1.php" href="http://www.standishgroup.com/sample_research/chaos_1994_1.php">http://www.standishgroup.com/sample_research/chaos_1994_1.php</a>)</li>
<li>53 percent of projects cost 189 percent of their original estimate.</li>
<li>Average schedule overruns may be as high as 100%</li>
<li>Over 40% to 60% of defects in software are caused by poor requirements<br />
definition.</li>
<li>About One-Quarter of all projects are cancelled.</li>
<li>Customers do not use 20% of their product features.</li>
</ul>
<p><cite><a title="Statistics of Software Failure" href="http://tynerblain.com/blog/2005/12/28/why-we-should-invest-in-requirements-management/">Why We Should Invest in Requirements Management</a></cite></p></blockquote>
<p>While <em>poorly documented requirements</em> are certainly a factor in the statistics above, another factor is <em>no-longer-relevant</em> requirements.  These likely play out as features that are missing, features that are not used, and project cancellation (due to lack of relevance, or <a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">lack of ROI</a>).</p>
<p>When we don&#8217;t organize our requirements, then changing them becomes more expensive &#8211; we have to find them, modify them, and notify people that they&#8217;ve been changed.  It also becomes difficult to know if <em>this</em> document is <em>the latest</em> document.  Organization addresses this problem.</p>
<p><strong>Why Avoid Organization?</strong></p>
<p><img alt="cluttered inbox" title="cluttered inbox" src="http://sehlhorst.smugmug.com/photos/125955571-M.jpg" /></p>
<p>Organization does come at a cost.  We have to spend the time (and possibly money) to set up the repository.  We have to spend time to determine <em>how </em>we want to organize our requirements.  And we have to spend some time putting the documents into our organized repository.</p>
<p>We identified the benefits of getting data from an organized location.  What if we don&#8217;t do that very often?  If our requirements <em>approvers</em> never have to review the documents, then they don&#8217;t benefit from the effort we spent organizing the documents.  Perhaps we just have a meeting where get verbal approvals, or route them all with an email (Microsoft Outlook lets you put voting buttons on emails) for approval.</p>
<p>If we&#8217;re using a waterfall style project where we document the requirements once, and never change them, then each person on the implementation team can just print out a copy and refer to it when they need it.  Again, no benefit from organization.</p>
<p>We all recognize the costs of both of these approaches, but they do avoid a little bit of busy work.  It&#8217;s possible, however unwise, that some teams will take this approach, and thereby not benefit from organization.  Those teams might operate best at RMM level 1.</p>
<p><strong>The Case For Consistently Formatting Requirements</strong></p>
<p>By using consistent formatting, we make it easier for someone to read multiple requirements.  They can more easily compare and contrast the documented requirements.  They don&#8217;t have to spend cycles re-learning how to read each requirements document.  Once they become familiar with the format, they can ignore it, and spend time on the content of the document.</p>
<p>When we talk about <a title="Writing Consistent Requirements" href="http://tynerblain.com/blog/2006/06/09/big-ten-rules-writing-consistent-requirements/"><em>consistent </em>requirements</a>,  we are generally talking about the logical consistency of the statements within and across requirements &#8211; but the consistency of formatting also has value.  This formatting consistency is what RMM level 2 requires.</p>
<p><strong>Avoiding Consistency</strong></p>
<p>We save some time in training by not requiring people to write consistently.  However, the time we save is probably completely absorbed by the time people spend thinking about how to structure the requirements while writing them.  And we lose the benefits that come from reading requirements that use a consistent format.</p>
<p><strong>Requirements Administration</strong></p>
<p>The final element identified in RMM level 2 is the administrative perspective.  A focus on security, access, and version control is what the IBM team identifies as the relevant administrative issues.</p>
<p>Security and access are identified as elements that engender trust in the documentation.  We may be too agile or too trusting, but we don&#8217;t see those factors as being particularly relevant to trust.  They are certainly valuable when it comes to protecting against unwanted distribution of the information &#8211; but we are not generally concerned with people modifying the documents in unacceptable ways.  We&#8217;ll grudgingly admit that it is possible that a developer will open a requirements document and delete a requirement that he feels is inappropriate, or rewrite it so that it matches his implementation.  We just don&#8217;t think that it is a practical concern.</p>
<p>Version control, however, is very important.  The biggest trust issue we have is in being able to trust that we are reviewing the <em>latest version</em> of a requirements document.  Version control provides us with that benefit.  It also allows us to <em>undo</em> any untoward modifications of the document.  At a minimum, version control should consist of the persistence of previous versions of files.  This can be handled by using unique names for each version of the file, by storing copies of the file on a regular basis as backups, or by using version control.</p>
<p>Subversion is the best version control system (VCS) we know of.   If implementing a new VCS, we suggest using <a title="subversion home page" href="http://subversion.tigris.org/">subversion</a>.  It is open source, easy to administer, and best-of-breed.</p>
<p><strong>Mapping CMMI Levels to RMM Level 2</strong></p>
<p>In our diagram, we show the following mappings for RMM Level 2:</p>
<ul>
<li>CMMI level 0 &#8211; No Entry</li>
<li>CMMI level 1 &#8211; Requirements <strong>Should Be</strong> Organized</li>
<li>CMMI level 2 &#8211; Requirements <strong>Must Be</strong> Organized</li>
<li>CMMI level 3 &#8211; Requirements <strong>Must Be</strong> Organized</li>
<li>CMMI level 4 &#8211; Requirements <strong>Must Be</strong> Organized</li>
<li>CMMI level 5 &#8211; Requirements <strong>Must Be</strong> Organized</li>
</ul>
<p><strong>For CMMI Level 0</strong> &#8211; when our process is so ad-hoc that documentation of requirements is questionable, discussions about how we organize the requirements documents are irrelevant.  We&#8217;re talking about icing and candles when we don&#8217;t even know if we have a cake.</p>
<p><strong>For CMMI Level 1</strong> &#8211; A valuable process must include documentation of requirements.  Those documents really should be organized.  The benefits of versioning alone should make this an easy decision.  Placing the documents in known locations, and having them be written in a consistent format is valuable too.</p>
<p><strong>For CMMI Level 2 and higher</strong> &#8211; When we talk about a managed process, we are talking about bringing order to the chaos.  Centralizing the requirements in a repository, versioning the documents, and using consistent formatting all bring order.</p>
<p>Imagine a managed requirements process that does everything with the exception of applying consistent formatting to our documents.  Perhaps we have various authors of our requirements documents, and they write inconsistently.  There&#8217;s value in doing all of this, but it would be CMMI level 2, RMM level 1.  Only with all three elements (consistent location, consistent formatting, and versioned documents) would the process be both CMMI level 2 and RMM level 2.</p>
<p>We would definitely focus on moving from RMM level 1 to RMM level 2 before we would try and standardize our process across our company.  That standardization would be the move from CMMI level 2 to CMMI level 3.  Based on that perspective, we believe that an RMM level 2 process rating is a mandatory element of all CMMI levels above CMMI level 1.</p>
<p><strong>From a CMMI Level Perspective</strong></p>
<p>The previous analysis basically looked at the “RMM level 2″ column in our grid, and inspected the relative decisions for each “CMMI level” row. Now we will look at it by reviewing the CMMI levels, and seeing how they map to the RMM level.</p>
<p>A quick review of the same chart (so you don’t have to scroll up and down):</p>
<p><img title="CMMI to RMM Mapping" alt="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>At CMMI level 1, we <em>require</em> that requirements be written.  We suggest that they be organized and structured.</p>
<p>At CMMI level 2, we <em>require</em> that the documentation be organized.  A managed process without some form of organization and consistent documentation is a <em>poorly</em> managed process.</p>
<p>At CMMI level 3, we are standardizing our approach across our company. And at CMMI levels 4 and 5 we are measuring and improving on our process. We’ll address the higher CMMI levels in more detail as this series of articles continues.</p>
<p><strong>Summary</strong></p>
<ul>
<li>RMM level 2 specifies that requirements documents are organized.</li>
<li>CMMI level 2 specifies that there is a <em>managed</em> process &#8211; in our case, one for managing requirements.</li>
<li>A process must be at RMM level 2 to be at CMMI level 2.</li>
<li>A process should be at RMM level 3 if it is at CMMI level 1.</li>
</ul>
<p>Note that this implies that we would spend the extra effort to get to CMMI 3 before we would try and reach RMM level 5.</p>
<p>Check out the next article, <a title="CMMI Levels and RMM Level 3 - Structured Requirements" href="http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/"><em>CMMI Levels and RMM Level 3</em></a> or  take our <a title="CMMI Level and RMM Level Polls" href="http://tynerblain.com/2007/02/02/cmmi-and-rmm-survey/"><em>One Minute Survey on CMMI and RMM Levels</em></a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+Levels+and+RMM+Level+2+%E2%80%93+Organized+Requirements+http%3A%2F%2Fbit.ly%2FhNPPAF+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/&amp;t=CMMI+Levels+and+RMM+Level+2+%E2%80%93+Organized+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CMMI Levels and RMM Level 1 &#8211; Written Requirements</title>
		<link>http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/</link>
		<comments>http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/#comments</comments>
		<pubDate>Sat, 27 Jan 2007 04:27:40 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level2]]></category>
		<category><![CDATA[cmmi level5]]></category>
		<category><![CDATA[cmmi levels]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/</guid>
		<description><![CDATA[In our introduction to mapping RMM levels to CMMI levels, we presented background info on CMMI, introduced the IBM article on RMM levels, and posted an initial mapping structure.  In this article, we will look at the definition of RMM level 1.  We also cover the tradeoffs and benefits of the practices it requires.  Finally, we look at the mapping from RMM level 1 to various CMMI levels.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F01%252F26%252Fcmmi-and-rmm-level-1%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20Levels%20and%20RMM%20Level%201%20-%20Written%20Requirements%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F01%2F26%2Fcmmi-and-rmm-level-1%2F", "style": "big", "title": "CMMI Levels and RMM Level 1 - Written Requirements" });</script></div>
<p><img title="First book in stack" alt="First book in stack" src="http://sehlhorst.smugmug.com/photos/125462904-M.jpg" /></p>
<p>In our introduction to mapping RMM levels to CMMI levels, we presented background info on CMMI, introduced the IBM article on RMM levels, and posted an initial mapping structure.  In this article, we will look at the definition of RMM level 1.  We also cover the tradeoffs and benefits of the practices it requires.  Finally, we look at the mapping from RMM level 1 to various CMMI levels.</p>
<p><strong>Background</strong></p>
<p>In our <a title="Mapping CMMI to RMM - Introduction" href="http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/">introduction to mapping RMM levels to CMMI levels</a>, we presented <a title="Foundation Series explaining CMMI levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">background info on CMMI</a>, introduced the IBM article on RMM levels, and posted an initial mapping structure.</p>
<p><img alt="CMMI to RMM Mapping" title="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p><strong>RMM Level 1 &#8211; Written Requirements</strong></p>
<p>Level 1 of the requirements maturity model is defined at a high level as simply having written requirements.  IBM defines written requirements as <em>persistent</em>  documentation.  They point out that post-it notes and whiteboards don&#8217;t count.  Email discussions, word documents, spreadsheets and presentations all count.</p>
<p>IBM presents an argument of tradeoffs &#8211; as long as the cost of documenting requirements is exceeded by the benefits, it makes sense to write the requirements.  They point out three benefits of having written requirements:</p>
<ol>
<li>A <em>contract</em> is explicit, or <a title="Implicit Requirements" href="http://tynerblain.com/blog/2006/11/17/gathering-implicit-requirements/">implicit in the requirements</a>.  The documented requirements can be used to <a title="Setting Stakeholder Expectations" href="http://tynerblain.com/blog/2006/07/14/communicating-intent-with-stakeholders/">manage the customer&#8217;s expectations</a>, and can also be used to validate that what was promised was delivered.</li>
<li>Clear <a title="Communicating Intent to Implementation Team" href="http://tynerblain.com/blog/2006/07/17/communicating-intent-with-implementers/">direction for the implementation team</a> can be found in the requirements documents.</li>
<li>New team members can rely on the documented requirements as a means to get up to speed.</li>
</ol>
<p>While we strongly agree with the first two points &#8211; we think the third one is a bit of a stretch.  While having requirements documentation does help people get up to speed, it isn&#8217;t a <em>first-order</em> benefit.  Videotape a couple 1-hr presentations.  One presentation discussing the goals of the project, and one discussing (and whiteboarding) the architectural approach of the solution.  Put these on the server and let new people watch them.   Much more cost-effective at helping people get up to speed.  [Note - I'm pretty sure that I heard Alistair Cockburn suggest this approach or something like it in a podcast interview, so the credit for the idea is his, not ours.]</p>
<p>We would also add that documenting requirements is all but worthless if we don&#8217;t use the documents as tools to <a title="Requirements Conversations" href="http://tynerblain.com/blog/2005/12/27/managing-requirements-conversations/">support conversation</a> with our team members.  <a title="Why incremental delivery is good" href="http://tynerblain.com/blog/2006/04/18/two-big-benefits-of-incremental-delivery/">Incremental delivery</a> is a process that is dependent upon feedback.  We must get feedback from stakeholders, and from the implementation team.</p>
<p>Stakeholders will <a title="Verifying Correctness" href="http://tynerblain.com/blog/2006/07/10/verify-correct-requirements/">verify the correctness</a> and <a title="Validating Completeness" href="http://tynerblain.com/blog/2006/07/06/requirement-completeness-validation-with-use-cases/">validate the completeness</a> of the requirements.</p>
<p>The implementation team will provide feedback about the <a title="Writing unambiguous requirements" href="http://tynerblain.com/2006/06/12/writing-unambiguous-requirements/">clarity</a>, <a title="Writing verifiable requirements" href="http://tynerblain.com/2006/06/13/writing-verifiable-requirements/">verifiability</a>, and <a title="Writing attainable requirements" href="http://tynerblain.com/2006/06/07/writing-attainable-requirements/">feasibility</a> of the requirements as written.<br />
Requirements need to be <a title="Writing Verifiable Requirements" href="http://tynerblain.com/blog/2006/06/13/writing-verifiable-requirements/">written to support verification</a>.  The QA team and stakeholders are responsible for verifying that what was delivered is what was expected.  Technically, the delivery <em>must</em> match the requirements &#8211; but the requirements <em>should</em> match the expectations of the customer.</p>
<p><strong>One Step Above Chaos</strong></p>
<p>I like that the IBM guys name level zero as &#8220;Chaos.&#8221;  I&#8217;ve worked as a developer on projects without requirements.  It is chaos.  There&#8217;s a reason we write requirements.  They set expectations.  And theres a reason <a title="Why Requirements Approval Matters" href="http://tynerblain.com/blog/2007/01/09/requirements-approval/">why we review and approve the requirements</a>.  It&#8217;s essentially a form of structured <a title="5 Ways to Improve Your Listening Skills" href="http://tynerblain.com/blog/2006/01/27/top-five-ways-to-be-a-better-listener/">active listening</a>.</p>
<p><strong>Mapping to the CMMI Levels</strong></p>
<p>In our diagram, we show the following mappings for RMM Level 1:</p>
<ul>
<li>CMMI level 0 &#8211; Requirements <strong>Should Be</strong> Written</li>
<li>CMMI level 1 &#8211; Requirements <strong>Must Be</strong> Written</li>
<li>CMMI level 2 &#8211; Requirements <strong>Must Be</strong> Written</li>
<li>CMMI level 3 &#8211; Requirements <strong>Must Be</strong> Written</li>
<li>CMMI level 4 &#8211; Requirements <strong>Must Be</strong> Written</li>
<li>CMMI level 5 &#8211; Requirements <strong>Must Be</strong> Written</li>
</ul>
<p><strong>For CMMI level 0</strong> &#8211; even if we don&#8217;t have a formal process, we <em>really should be</em> writing our requirements &#8211; and using those documents to manage expectations, provide feedback (that we&#8217;re doing the right stuff), and scope and focus our efforts.</p>
<p><strong>For CMMI levels 1 and higher</strong> &#8211;  all of the measured CMMI levels require that we have a defined process.  Even with the disorganization of a team operating at CMMI level 1, we still need to have a process defined.  And a requirements management process that doesn&#8217;t involve documenting the requirements isn&#8217;t worth very much at all.</p>
<p>Note that documentation might be in the form of prototypes, wireframes, and JAD Session notes.  No one is saying that they have to be documented in any particular way.  In fact, at RMM level 1, they aren&#8217;t in a consistent format, and don&#8217;t use a <a title="Introduction to Structured Requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">structured requirements framework</a>.  Consistent formatting is an element of RMM level 2.  And RMM level 3 is focused on structured requirements.</p>
<p>The requirements documents may be scattered through a series of email debates, collaborative databases, and files on network share drives.  That&#8217;s fine for RMM level 1 &#8211; in fact, it is part of the definition of RMM level 1.  Organized requirements are a characteristic of RMM level 2.</p>
<p>Remember &#8211; CMMI Levels only represent <a title="Interpreting CMMI Levels" href="http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/">how a process is implemented</a> &#8211; they don&#8217;t characterize the effectiveness of any one process.</p>
<p><strong>From a CMMI Level Perspective</strong></p>
<p>The previous analysis basically looked at the &#8220;RMM level 1&#8243; column in our grid, and inspected the relative decisions for each &#8220;CMMI level&#8221; row.  Now we will look at it by reviewing the CMMI levels, and seeing how they map to the RMM level.</p>
<p>A quick review of the same chart (so you don&#8217;t have to scroll up and down):</p>
<p><img alt="CMMI to RMM Mapping" title="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p>At CMMI level 1, we <em>require</em> that requirements be written.  We suggest that they be organized and structured.</p>
<p>At CMMI level 2, we <em>require</em> that the documentation be organized.  A managed process without some form of organization and consistent documentation is a <em>poorly</em> managed process.</p>
<p>At CMMI level 3, we are standardizing our approach across our company.  And at CMMI levels 4 and 5 we are measuring and improving on our process.  We&#8217;ll address the higher CMMI levels in more detail as this series of articles continues.</p>
<p><strong>Summary</strong></p>
<ul>
<li>RMM level 1 specifies that requirements are documented.</li>
<li>CMMI .evel 1 specifies that there is a process &#8211; in our case, one for managing requirements.</li>
<li>A process must be at RMM level 1 to be at CMMI level 1.</li>
<li>A process should be at RMM level 2 or 3 if it is at CMMI level 1.</li>
</ul>
<p>Note that this implies that we would spend the extra effort to get to CMMI 2 before we would try and reach RMM level 4.</p>
<p>Check out the next article, <a title="CMMI Levels and RMM Level 2 - Organized Requirements" href="http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/"><em>CMMI Levels and RMM Level 2</em></a> or  take our <a title="CMMI Level and RMM Level Polls" href="http://tynerblain.com/2007/02/02/cmmi-and-rmm-survey/"><em>One Minute Survey on CMMI and RMM Levels</em></a>.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+Levels+and+RMM+Level+1+%E2%80%93+Written+Requirements+http%3A%2F%2Fbit.ly%2Ffzq4Mv+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/&amp;t=CMMI+Levels+and+RMM+Level+1+%E2%80%93+Written+Requirements" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CMMI Levels and Requirements Management Maturity Introduction</title>
		<link>http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/</link>
		<comments>http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/#comments</comments>
		<pubDate>Fri, 26 Jan 2007 04:15:39 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[Requirements management software]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm versus cmmi]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level2]]></category>
		<category><![CDATA[cmmi level5]]></category>
		<category><![CDATA[cmmi levels]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[requirements management]]></category>
		<category><![CDATA[requirements management maturity]]></category>
		<category><![CDATA[rmm]]></category>
		<category><![CDATA[rmm framework]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/</guid>
		<description><![CDATA[CMMI (Capability Maturity Model Integration) is a description of the level of enlightenment of a process.  It is essentially a measure of the quality and capability of a process.  There are five categories, into one of which every process will fall.  IBM took a similar approach to defining the requirements management process.  In this series of posts, we will marry the two frameworks.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2007%252F01%252F25%252Fcmmi-and-rmm-intro%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22CMMI%20Levels%20and%20Requirements%20Management%20Maturity%20Introduction%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2007%2F01%2F25%2Fcmmi-and-rmm-intro%2F", "style": "big", "title": "CMMI Levels and Requirements Management Maturity Introduction" });</script></div>
<p><img title="Five Levels" alt="Five Levels" src="http://sehlhorst.smugmug.com/photos/125462878-M.jpg" /></p>
<p>Welcome Readers of the <a title="Enterprise Architecture Carnival #3" href="http://enterprisearchitect.typepad.com/ea/2007/02/carnival_of_ent.html"><em>Carnival of Enterprise Architecture</em></a>!  We hope you enjoy this series of articles!</p>
<p>CMMI (Capability Maturity Model Integration) is a description of the level of enlightenment of a process.  It is essentially a measure of the quality and capability of a process.  There are five categories, into one of which every process will fall.  IBM took a similar approach to defining the requirements management process.  In this series of posts, we will marry the two frameworks.</p>
<p><strong>Background on CMMI Levels</strong></p>
<p>We wrote an <a title="Foundation Series on CMMI Levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">introduction to CMMI levels</a> last March.  In our article, we identified that there are five CMMI levels.  Technically, there are six CMMI levels, when you include level zero.  Level 0 is &#8220;undefined&#8221; by the CMMI, and represents an ad hoc process, or a lack of process.</p>
<p><strong>CMMI Levels</strong></p>
<ul>
<li><strong>CMMI Level 0. Undefined</strong>.  No real process.</li>
<li><strong>CMMI Level </strong><strong>1. Performed</strong>.  A process is defined, but disorganized.</li>
<li><strong>CMMI Level </strong><strong>2. Managed</strong>.  A defined process is managed.</li>
<li><strong>CMMI Level </strong><strong>3. Defined</strong>.  A managed process is standardized across the company.</li>
<li><strong>CMMI Level </strong><strong>4. Quantitatively Measured</strong>.  The performance of a standardized process is measured.</li>
<li><strong>CMMI Level </strong><strong>5. Optimizing</strong>.  Performance measurement is used as a feedback loop to improve the process.</li>
</ul>
<p><strong>Take CMMI Levels With A Grain of Salt</strong></p>
<p><img title="Salt Shaker" alt="Salt Shaker" src="http://sehlhorst.smugmug.com/photos/125475259-M.jpg" /></p>
<p>Just knowing the CMMI Level of a process is <em>not</em> enough to know if the process is any good.  By the same token, <a title="What CMMI Level should we use?" href="http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/">choosing a particular CMMI level</a>, and meeting the <em>technical</em> requirements of that level are not enough to assure a good process.</p>
<p><strong>Backgroundon RMM Levels</strong></p>
<p>The folks at <a title="RMM Levels" href="http://www.ibm.com/developerworks/rational/library/content/RationalEdge/feb03/ManagementMaturity_TheRationalEdge_Feb2003.pdf">IBM wrote an article in 2003</a>, where they defined five levels of maturity for requirements management processes.  All five of the requirements management maturity (RMM) levels all build on the previous level, with increasing capability.</p>
<ul>
<li><strong>RMM Level 0. Chaos</strong>.  No <em>persistent</em> documentation of requirements.</li>
<li><strong>RMM Level 1. Written Requirements</strong>.  <a title="Writing Good Requirements Documents" href="http://tynerblain.com/blog/2006/05/25/writing-good-requirements-the-big-ten-rules/">Writing requirements documents</a> (not emails and whiteboards).</li>
<li><strong>RMM Level 2. Organized Requirements</strong>.  Colocation, versioning, consistent formatting.</li>
<li><strong>RMM Level 3. Structured Requirements</strong>.  Defining <a title="Foundation Series on Structured Requirements" href="http://tynerblain.com/blog/2006/01/04/foundation-series-structured-requirements/">types of requirements</a> and their relationships.</li>
<li><strong>RMM Level 4. Traced Requirements</strong>.  Explicitly mapping the support-network of requirements.</li>
<li><strong>RMM Level 5. Integrated Requirements</strong>.  Integrating with the development environment and change management.</li>
</ul>
<p><strong>What IBM Didn&#8217;t Do</strong></p>
<p>They didn&#8217;t map their framework back into the CMMI framework (known as <em>CMM</em> at the time) except for the following comment in the introduction of their article:</p>
<blockquote><p>Those familiar with the CMM (Capability Maturity Model) from the Software Engineering Institute (SEI) will note some similarities to our parallel model, which has no direct relationship to the CMM save one: Achieving Level Five of the RMM will assuredly help an organization get to at least Level Three of the CMM.</p></blockquote>
<p>IBM put together a great framework for describing elements of <em>increasingly capable</em> requirements management processes.</p>
<p>That is what the SEI tried to do when they developed the CMMI.  Why couldn&#8217;t the IBM team just map their framework into the CMMI framework?</p>
<p><em>The problem is there is a mismatch between the two frameworks.</em></p>
<ul>
<li>The RMM framework describes steps and elements of a requirements management process.  Each step adds a level of capability to the process.  It might be more aptly named the requirements management <em>capability </em>framework.</li>
<li>The CMMI framework describes the strategic capabilities (maturity) of how a process is applied, without assessing the tactical capabilities of the process itself.</li>
</ul>
<p>The SEI recognized that the analysis of the tactical capabilities of any process would be different for every process, and left it to others to perform that work.  This is <em>almost</em> what the IBM team did.  We&#8217;re going to take a crack at it here.</p>
<p><strong>Mapping RMM Levels to CMMI Levels</strong></p>
<p>This is the first in a series of articles that will present a mapping of RMM levels to CMMI levels.  We like using CMMI as a means to evaluate our internal processes, notwithstanding the <a title="Challenges of using CMMI" href="http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/">challenges</a> we mentioned earlier.  We also like the framework that IBM presented for describing requirements management processes.</p>
<p><strong>Shoot First, Ask Questions Later</strong></p>
<p>There&#8217;s a lot more to write about this than we can put into a single article.  We&#8217;re going to tackle this as a series.  Even so, we put together an initial draft of how we think this will ultimately work out.  We&#8217;ll share that here now.  But we reserve the right to fix it when we find problems as we (and you!) put more effort into it.</p>
<p><img title="CMMI to RMM Mapping" alt="CMMI to RMM Mapping" src="http://sehlhorst.smugmug.com/photos/125472473-M.jpg" /><br />
(<a title="CMMI to RMM Mapping - Full Size" href="http://sehlhorst.smugmug.com/photos/125472463-M.jpg">larger version</a>)</p>
<p><strong>Articles In This Series</strong></p>
<ul>
<li><a title="Introduction to CMMI Levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">Foundation Series: CMMI Levels Explained</a></li>
<li><a title="What CMMI Level to Use" href="http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/">What CMMI Level Should We Use?</a></li>
<li><a title="Introduction to Mapping the RMM to the CMMI" href="http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/">CMMI Levels and RMM Introduction</a></li>
<li><a title="Mapping RMM Level 1 to CMMI" href="http://tynerblain.com/blog/2007/01/26/cmmi-and-rmm-level-1/">CMMI Levels and RMM Level 1 &#8211; Written Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 2 - Organized Requirements" href="http://tynerblain.com/blog/2007/01/29/cmmi-and-rmm-level-2/">CMMI Levels and RMM Level 2 &#8211; Organized Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 3 - Structured Requirements" href="http://tynerblain.com/blog/2007/01/30/cmmi-and-rmm-level-3/">CMMI Levels and RMM Level 3 &#8211; Structured Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 4 - Traced Requirements" href="http://tynerblain.com/blog/2007/01/31/cmmi-and-rmm-level-4/">CMMI Levels and RMM Level 4 &#8211; Traced Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 5 - Integrated Requirements" href="http://tynerblain.com/blog/2007/02/01/cmmi-and-rmm-level-5/">CMMI Levels and RMM Level 5 &#8211; Integrated Requirements</a></li>
<li>Don&#8217;t forget to take our <a title="Quick Poll on CMMI and RMM Levels" href="http://tynerblain.com/blog/2007/02/02/cmmi-and-rmm-survey/">One Minute Survey on CMMI and RMM</a>.</li>
</ul>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+CMMI+Levels+and+Requirements+Management+Maturity+Introduction+http%3A%2F%2Fbit.ly%2FdE8Bce+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/&amp;t=CMMI+Levels+and+Requirements+Management+Maturity+Introduction" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2007/01/25/cmmi-and-rmm-intro/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software Product Delivery &#8211; 20 Rules?</title>
		<link>http://tynerblain.com/blog/2006/12/07/software-product-delivery-rules/</link>
		<comments>http://tynerblain.com/blog/2006/12/07/software-product-delivery-rules/#comments</comments>
		<pubDate>Fri, 08 Dec 2006 04:00:30 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[delivery rules]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[prioritizing requirements]]></category>
		<category><![CDATA[requirements prioritization]]></category>
		<category><![CDATA[software developer]]></category>
		<category><![CDATA[software product delivery rules]]></category>
		<category><![CDATA[writing requirements]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/12/07/software-product-delivery-rules/</guid>
		<description><![CDATA[Rishikesh Tembe shared twenty rules for software product delivery last month. His rules are from the perspective of a former software developer. Some we like.  Some, not so much.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2006%252F12%252F07%252Fsoftware-product-delivery-rules%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Software%20Product%20Delivery%20-%2020%20Rules%3F%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F12%2F07%2Fsoftware-product-delivery-rules%2F", "style": "big", "title": "Software Product Delivery - 20 Rules?" });</script></div>
<p><img title="comedy and tragedy" alt="comedy and tragedy" src="http://sehlhorst.smugmug.com/photos/91902702-M.jpg" /></p>
<p>Rishikesh Tembe shared twenty rules for software product delivery last month.  His rules are from the perspective of a former software developer. Some we like.  Some, not so much.</p>
<p><strong>We Like</strong></p>
<p>Rishikesh has a short post with <a title="20 rules" href="http://productmusings.wordpress.com/2006/11/05/20-rules-for-delivering-software-products/">20 rules</a>.  Among those rules are some concepts that we feel like expanding upon:</p>
<blockquote><p>8. Do the riskiest part of the project first.</p></blockquote>
<p>This is a great idea (for developers and project managers) for a couple reasons.  Risk may be a function of technical feasibility or customer accceptance/value.  Risk may even be an <a title="No silver bullet" href="http://tynerblain.com/blog/2006/12/05/software-silver-bullet/">artifact of how we go about developing</a> our product &#8211; for example, <a title="offshoring models" href="http://tynerblain.com/blog/2006/03/31/four-outsourcing-models-for-software-development/">offshoring</a> introduces risks.  Risk is generally a nebulous, but bad thing to have in a project.  If a problem is known, a solution can be identified, addressed, and implemented.</p>
<p>Risks represent the <em>unknown unknowns</em>, or those problems that we don&#8217;t understand well enough to address them.  Big risks can be very scary &#8211; they jeopardize the <a title="Definition of ROI" href="http://tynerblain.com/blog/2006/02/01/definition-of-roi-return-on-investment/">ROI</a> of our project.  Lack of user adoption can affect the <a title="Definition of expected value" href="http://tynerblain.com/blog/2006/02/03/definition-of-expected-value/">expected value</a> to our customers, which will directly or indirectly affect our bottom line.</p>
<p><strong>Note:</strong> This is not meant to imply that <a title="Prioritizing across releases" href="http://tynerblain.com/blog/2006/03/08/prioritizing-software-requirements-across-releases/">prioritization of requirements by release</a> should be subservient to risk-mitigation.  The <a title="Prioritizing Requirement" href="http://tynerblain.com/blog/2006/02/17/prioritizing-software-requirements-am-i-hot-or-not/">most important stuff</a> should always be done first.  <a title="Release Scheduling" href="http://tynerblain.com/blog/2006/07/19/communicating-a-release-schedule-with-use-cases/">Within a particular release</a>, address the riskiest issues first.  <a title="Prioritizing by ROI" href="http://tynerblain.com/blog/2006/02/04/using-roi-for-requirements-is-a-risky-business/">Prioritize first</a>.  Mitigate second.</p>
<blockquote><p>10. Make sure you’re in total control of your toolset and improve it systematically</p></blockquote>
<p>This alludes to the general benefits of operating at a higher CMMI level.  As a <a title="Foundation Series on CMMI Levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">CMMI level five</a> organization, we would quantitatively measure and improve not only our tools but our processes.</p>
<blockquote><p>16. Build regression testing into the build process.</p></blockquote>
<p>We&#8217;ve talked about <a title="Foundation Series on Continuous Integration" href="http://tynerblain.com/blog/2006/05/08/foundation-series-continuous-integration/">continuous integration</a> in the past.  In our opinion, no other approach should be used to develop software.</p>
<p><strong>Not So Much</strong></p>
<blockquote><p>11. Do not take the clients’ deadlines literally &#8211; first accept the project, then renegotiate the deadline.</p></blockquote>
<p>Clients have deadlines for reasons.  They may be market-driven, or driven by internal politics or budget cycles.  While it is possible that a deadline is arbitrary, it is usually associated with a compelling event of some sort.  Any discussion of deadlines should be approached in the same way we <a title="Managing scope creep" href="http://tynerblain.com/blog/2006/03/13/managing-scope-creep-is-not-a-zero-sum-game/">manage <em>scope creep</em> as a relationship-building exercise</a>.</p>
<p>Project constraints, such as budgets and deadlines, are things that should be addressed collaboratively.  Our clients are our partners, not our opposition.</p>
<blockquote><p>13. Document the interfaces perfectly, but don’t document code (see next point).<br />
14. Be fanatical about the readability of code.</p></blockquote>
<p>Absolutes are rarely rational end-points, although presenting goals as absolutes can be effective in motivating <em>directional change</em> in an organization (with no expectation of actually achieving the goal).  More on that some other time.</p>
<p>Broken Windows, as Gladwell describes them, are absolutely detractors from any environment, and serve to degrade the performance of those who operate in the environment.  Code readability, micro kitchens, flexible schedules.  There are many <em>soft ROI</em> elements that make up the environment of a software developer.  Readability of code, like <a title="Writing for the purpose of reading" href="http://tynerblain.com/blog/2006/10/04/writing-for-the-purpose-of-reading/">readability of requirements</a>, is important.  A friend of mine used to joke that perl is a &#8220;write-only&#8221; language.  Notwithstanding his joke, code needs to be readable.  Even in perl.</p>
<p>Perl serves as a great example &#8211; elegance of code does not always coincide with syntactic simplicity.  Avoiding commenting of the code is just a bad idea.  People read code.  Make it readable.</p>
<p>There are times when incurring a temporary code-debt is pragmatically more useful than <a title="Using timeboxes (including code-debt discussion)" href="http://tynerblain.com/blog/2006/04/12/how-to-use-timeboxes-for-scheduling-software-delivery/">delaying a release or a feature</a> in order to polish the code.</p>
<p><strong>Conclusion</strong></p>
<p>There are some good ideas and some bad ones in the list.  Most of them are thought provoking, regardless.  We may eventually find a list of absolute rules we should all follow, and it would overlap with this list somewhat.  But for now, we&#8217;re still looking.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Software+Product+Delivery+%E2%80%93+20+Rules%3F+http%3A%2F%2Fbit.ly%2FfBI7YR+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/12/07/software-product-delivery-rules/&amp;t=Software+Product+Delivery+%E2%80%93+20+Rules%3F" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/12/07/software-product-delivery-rules/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What CMMI level should we use?</title>
		<link>http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/</link>
		<comments>http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/#comments</comments>
		<pubDate>Sun, 12 Mar 2006 18:51:15 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[application development outsourcing]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmmi level]]></category>
		<category><![CDATA[CMMI level 1]]></category>
		<category><![CDATA[cmmi level 2]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level 5]]></category>
		<category><![CDATA[CMMI level five]]></category>
		<category><![CDATA[CMMI level four]]></category>
		<category><![CDATA[CMMI level one]]></category>
		<category><![CDATA[CMMI level three]]></category>
		<category><![CDATA[CMMI level two]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[Outsourcing]]></category>
		<category><![CDATA[outsourcing software development]]></category>
		<category><![CDATA[process CMMI level]]></category>
		<category><![CDATA[process improvement]]></category>
		<category><![CDATA[software develoment process]]></category>
		<category><![CDATA[software process]]></category>
		<category><![CDATA[software product success]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/</guid>
		<description><![CDATA[The CMMI (Capability Maturity Model Integration) of a software development process is the measure of that process's capability. The goal of the measurement is to provide an assessment of the capability of a process with respect to creating software.  Our foundation series post on CMMI provides background information, while this post focuses on the danger of misusing CMMI ratings.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2006%252F03%252F12%252Fwhat-cmmi-level-should-we-use%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22What%20CMMI%20level%20should%20we%20use%3F%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F03%2F12%2Fwhat-cmmi-level-should-we-use%2F", "style": "big", "title": "What CMMI level should we use?" });</script></div>
<p><img alt="engineering scale" title="engineering scale" src="http://sehlhorst.smugmug.com/photos/59554030-M.jpg" /></p>
<p><em><strong>&#8220;What CMMI level should we use?&#8221;</strong></em> is not the right question, but it is the question most people ask.</p>
<p>The <a title="Foundation series explaining CMMI levels" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">CMMI (Capability Maturity Model Integration)</a> of a software development process is the measure of that process&#8217;s capability.  The goal of the measurement is to provide an assessment of the capability of a process with respect to creating software.  <a title="CMMI explained" href="http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/">Our foundation series post on CMMI</a> provides background information, while this post focuses on the danger of misusing CMMI ratings.</p>
<p><strong>1. The CMMI measurement is (mostly) a facade.</strong></p>
<p>With the exception of a CMMI level five (Optimizing) process, having a CMMI rating doesn&#8217;t mean that the process is good.  It means that the process is documented and managed (CMMI level two),  standardized within the company (CMMI level three), or quantitatively measured (CMMI level four).  Even CMMI level five status doesn&#8217;t tell us <em>how good</em> a process is, only that the team is actively focused on improving the process.</p>
<p>Having a documented process doesn&#8217;t make it a good process.  This is the main flaw.  If we documented a process that included steps like &#8220;developers create use cases&#8221; and &#8220;to certify a release, the developer installs the final build on his laptop&#8221;, we would qualify for CMMI level two.  If we standardize on our poor process, we reach the next CMMI level.  And we could measure &#8220;lines of code written per hour&#8221; and other skew quantifications of activity to achieve CMMI level four.The CMMI measurement isn&#8217;t entirely worthless &#8211; Carnegie Mellon has a track record of doing really great and smart stuff &#8211; CMMI is the best normalized measurement that anyone could come up with that would be <em>one-size-fits-all</em>.  The problem is that in order to make the measurement apply to everyone, it has been neutered to the point of not providing very much valuable information.</p>
<p>It is important to know that a company has a process and measures it&#8217;s performance.  It provides very valuable insight to know when a company is also optimizing that process (CMMI level five).</p>
<p><img title="mask" alt="mask" src="http://sehlhorst.smugmug.com/photos/59558763-M.jpg" /></p>
<p><strong>CMMI <em>alone</em> does not tell us enough about the process.</strong></p>
<p>Which team would we rather have developing software for us &#8211; a CMMI level 3 team, or a CMMI level 2 team?  We absolutely can not answer without more information.  If our conversation with a potential outsourcer goes like this, then we have a problem:</p>
<blockquote><p>&#8220;What is your CMMI level?&#8221;</p>
<p>&#8220;We operate our business at CMMI level four.&#8221;</p>
<p>&#8220;You&#8217;re hired!&#8221;</p></blockquote>
<p>If however, our conversation goes more like this, we&#8217;re in a good place:</p>
<blockquote><p>&#8220;Our technical guys have reviewed your process, and we like it.  How long have your people been using it, and can you give us a couple references of companies for whom you&#8217;ve used this process?&#8221;</p>
<p>&#8220;Thank you.  We received CMMI level four certification for this process two years ago.  Since this is our standard process, all of our reference accounts have benefited from this process &#8211; you can contact any of them.&#8221;</p>
<p>&#8220;You&#8217;re hired!&#8221;</p></blockquote>
<p>The key difference is that we&#8217;ve actually reviewed the process to determine it&#8217;s value.  The CMMI rating gives us some assurance that the process is followed rigorously.  ISO9000 certification, in the hardware world, suffers from the exact same problem.  In a nutshell, ISO9000 requires companies to say what they do, and do what they say.  It provides no insight into the value of what the company chooses to do.</p>
<p><strong>2. CMMI ratings create a false sense of security.</strong></p>
<p>It is very tempting for companies to advertise their CMMI level, especially with outsourcing companies, and especially with the global providers.  These companies can capitalize on the human instinct &#8211; out of sight is out of mind.  When companies outsource, they want to be able to &#8220;not worry about it&#8221;, and CMMI ratings can be engender a false sense of confidence in the outsourcing provider.</p>
<p>In addition to the implicit presumption that a documented process is a good process, it is also easy to assume that people who follow a process are at least competent at what they do.  There is no reason to presume this without reviewing the quality of their work.  We should always talk to referrals to find out their level of satisfaction with an outsourcer.</p>
<p>When we&#8217;re managing our own team, it is easy to fall in the &#8220;our process is broken&#8221; trap.  Very few people will tell you that it was their fault.  We&#8217;ve not yet heard someone say &#8220;I was not smart enough to solve the problem.&#8221; or &#8220;If I had worked harder, we would have made it.&#8221;  We have repeatedly heard &#8220;The process is broken.&#8221; and &#8220;I need better tools / a bigger team / more time and budget.&#8221;</p>
<p>The process may very well be broken.  Eventually, Chicken Little was right.  But achieving a CMMI level without fixing the process doesn&#8217;t fix the process.</p>
<p><img alt="handcuffs" title="handcuffs" src="http://sehlhorst.smugmug.com/photos/59567264-M.jpg" /></p>
<p><strong>3. Standardized processes can shackle innovators.<br />
</strong></p>
<p>Many people thrive on having a structured environment and process in which to work.  They actually do better work when given concrete tasks, discrete deliverables, and monitored timelines.  Very few innovators work best this way.  When creating differentiated products, an innovator may best be served with a differentiated process.  As a result, people who tend to gravitate towards standardized processes tend to create <a title="Differentiating your product" href="http://tynerblain.com/blog/2006/02/28/second-mover-opportunities-bringing-a-gun-to-a-knife-fight/">standardized (me-too) products</a>.<br />
Many innovative companies, like IDEO or Frog, solve a wide range of problems, from software to electronics, to toothpaste dispensers.  A single unified process would be either stifling or irrelevant if all of those teams had to use it.</p>
<p><img title="american football" alt="american football" src="http://sehlhorst.smugmug.com/photos/59569815-M.jpg" /></p>
<p><strong>4. Focusing on the process means not focusing on the product</strong></p>
<p>In a well-known play in American football,  the quarterback throws a long pass to a widereceiver who is running down the field.  The receiver attempts to catch the ball, avoid a tackle from the nearby defender, and keep running.  The receiver will occasionally drop the football, because he is too focused on avoiding the tackle and on running.  The commentators will point out that he needs to not think about getting tackled until he actually catches the football.  The receiver does not have his eye on the ball, metaphorically speaking.</p>
<p>Driving and rewarding our teams for the CMMI level of the process they follow is like rewarding them for avoiding tackles and running.  If this becomes a higher priority than writing great software (catching the pass), then they will do a methodical and rigorous job of following the process, and if we&#8217;re lucky, write great software along the way.  Our goal is the great software &#8211; we need to make sure we are managing our teams with the software as the highest priority.</p>
<p>When teams are focused on writing great software, then a great process can help them.  And CMMI can provide some affirmation (but not validation) that they are following a good process.</p>
<p><strong>The right question</strong></p>
<p>The right question is &#8220;How good is our process?&#8221;</p>
<p><a title="Software development process example" href="http://tynerblain.com/blog/2006/02/20/software-development-process-example/">A good process</a> can make a good team very good, and can make a great team invincible. A good process helps an incompetent team by providing us good information about their incompetence. A bad process at best annoys good and great people, but more commonly it dillutes their efforts or even derails their projects. It is important to understand the quality of the process being followed by the team. And investments in improving the process can be worthwhile (subject to the 80/20 rule).</p>
<p>CMMI, unfortunately, can not tell us if the team is competent. It can not tell us if the process is good. It can only tell us that a process is being followed (or measured).</p>
<p><strong>Conclusion</strong></p>
<p>We&#8217;ve used the phrase <em>neccessary but not sufficient</em> repeatedly when we describe important elements of software product success.  CMMI ratings fall into the same category.</p>
<p>In fairness, a team with a CMMI level five process is actively applying their ongoing analysis (CMMI level 4) to improving their process.  This is the one piece of CMMI data from which we are more likely to infer that the process is a good one.  However, as the SEI points out themselves in their documentation:</p>
<blockquote><p>Reaching CMMI level 4 or 5 for a process area is conceptually feasible but may not be economical except, perhaps, in situations where the product domain has become very stable for an extended period of time.</p></blockquote>
<p>With our focus on great software, we have to <a title="Prioritizing innovations across releases" href="http://tynerblain.com/blog/2006/03/08/prioritizing-software-requirements-across-releases/">prioritize innovation</a>, and more specifically <a title="Using Kano to prioritize differentiated innovation" href="http://tynerblain.com/blog/2006/02/27/prioritizing-software-requirements-kano-take-two/">differentiated innovation</a>.  By definition, this precludes us being in &#8220;stable&#8221; product domain.</p>
<p><strong>CMMI ratings are not what drive us.</strong></p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+What+CMMI+level+should+we+use%3F+http%3A%2F%2Fbit.ly%2F6cHAU+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/&amp;t=What+CMMI+level+should+we+use%3F" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/03/12/what-cmmi-level-should-we-use/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Foundation Series: CMMI Levels Explained</title>
		<link>http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/</link>
		<comments>http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/#comments</comments>
		<pubDate>Sat, 11 Mar 2006 05:55:07 +0000</pubDate>
		<dc:creator>Scott Sehlhorst</dc:creator>
				<category><![CDATA[CMMI]]></category>
		<category><![CDATA[Foundation series]]></category>
		<category><![CDATA[Process Improvement]]></category>
		<category><![CDATA[Software development]]></category>
		<category><![CDATA[capability maturity model]]></category>
		<category><![CDATA[capability maturity model integration]]></category>
		<category><![CDATA[cmm]]></category>
		<category><![CDATA[cmm level.cmmi level 1]]></category>
		<category><![CDATA[cmmi framework]]></category>
		<category><![CDATA[cmmi level]]></category>
		<category><![CDATA[cmmi level 2]]></category>
		<category><![CDATA[cmmi level 3]]></category>
		<category><![CDATA[cmmi level 4]]></category>
		<category><![CDATA[cmmi level 5]]></category>
		<category><![CDATA[cmmi overview]]></category>
		<category><![CDATA[intro to cmmi]]></category>
		<category><![CDATA[managing data]]></category>
		<category><![CDATA[sei cmmi]]></category>

		<guid isPermaLink="false">http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/</guid>
		<description><![CDATA[CMM is a numeric scale used to "rate" the maturity of a software development process or team.  In this context, maturity can be thought of like enlightenment.  An immature process is not much different from the old "infinite monkeys" yarn - maybe we get it right, but probably not.  A fully matured or enlightened process not only does it right, but improves itself over time.  The Software Engineering Institute (SEI) at Carnegie Mellon, my alma mater, created the CMM model in the late 80's and early 90's.  In this post, we will understand what each level represents.]]></description>
			<content:encoded><![CDATA[
<div class="topsy_widget_data topsy_theme_blue" style="float: right;margin-left: 0.75em; background: url(data:,%7B%20%22url%22%3A%20%22http%253A%252F%252Ftynerblain.com%252Fblog%252F2006%252F03%252F10%252Ffoundation-series-cmmi-levels-explained%252F%22%2C%20%22style%22%3A%20%22big%22%2C%20%22title%22%3A%20%22Foundation%20Series%3A%20CMMI%20Levels%20Explained%22%20%7D);"><script type="text/javascript">topsyWidgetPreload({ "url": "http%3A%2F%2Ftynerblain.com%2Fblog%2F2006%2F03%2F10%2Ffoundation-series-cmmi-levels-explained%2F", "style": "big", "title": "Foundation Series: CMMI Levels Explained" });</script></div>
<p><img title="CMU classroom" src="http://sehlhorst.smugmug.com/photos/50445724-M.jpg" alt="CMU classroom" /></p>
<p><strong>CMMI is the initialism for Capability Maturity Model Integration. </strong></p>
<p>CMMI is a numeric scale used to &#8220;rate&#8221; the maturity of a software development process or team. Maturity can be thought of like enlightenment.  An immature process is not much different from the old &#8220;infinite monkeys&#8221; yarn &#8211; maybe we get it right, but probably not.  A fully matured or enlightened process not only does it right, but improves itself over time.</p>
<p>The Software Engineering Institute (SEI) at Carnegie Mellon (Go Tartans!  BSME90) created the CMM model for software engineering in the late 80&#8242;s and early 90&#8242;s.  In an effort to consolidate multiple CMM models for different process areas, the SEI team created the CMMI in 2002.   In this post, we will understand what each level represents.</p>
<p>Technically, the name of the model is the <em>Capability Maturity Model Integration for Software</em> Engineering, or <em>SW-CMM</em>, but in practice people just use CMM.  The <a title="CMMI for software at CMU" href="http://www.sei.cmu.edu/pub/documents/02.reports/pdf/02tr028.pdf">645 page document</a> can be found on the <a title="CMU Software Engineering Institute" href="http://www.sei.cmu.edu/cmmi/">CMU SEI site</a>.</p>
<p><span id="more-138"></span></p>
<p><strong>Five levels of maturity in CMMI</strong></p>
<p>The folks at the SEI created five classifications or levels of process maturity.  Every software project can be classified into one of the levels.  The levels are progressively harder to achieve, and each builds on the previous level.  To be classified in a particular level, a process must meet all of the criteria of that level.  If a process meets all the criteria of level 2, and some of the criteria of level 3, then that process is considered to be a level 2 process.</p>
<p>Note that there is a level 0, or incomplete.  This level represents the absence or incompleteness of activity.  If we are developing software, we are at least at level 1.</p>
<ol>
<li>Performed.</li>
<li>Managed.</li>
<li>Defined.</li>
<li>Quantitatively Managed.</li>
<li>Optimizing.</li>
</ol>
<p><strong>CMMI Level 1: Performed</strong></p>
<p><img title="superstar photo" src="http://sehlhorst.smugmug.com/photos/59371234-M.gif" alt="superstar photo" /></p>
<p>The lowest possible CMMI level (there is no level 0) represents software development essentially in the absence of a process.  Specifically, the SEI defines level 1 as being achieved if the goals of the process are met.  If we are trying to write software, and we write software, then we are at level 1.  In practice, level 1 processes are the ones described as chaotic and unordered.  A team with a level 1 process can easily be dependent upon individual effort for success.</p>
<p>Most small software companies,  independent developers, as well as many corporate IT departments operate at level 1.  If we can point to projects that were &#8220;saved&#8221; by a <strong>superstar </strong>on the team, we are probably operating at CMMI level 1.  We love having superstars on our teams &#8211; we hate being dependent upon them for survival.</p>
<p><strong> CMMI Level 2: Managed</strong></p>
<p><img title="Manager" src="http://sehlhorst.smugmug.com/photos/59373141-M.gif" alt="Manager" /></p>
<p>SEI defines CMMI level two as follows:</p>
<blockquote><p>A managed process is a performed (capability level 1) process that is also planned and executed in accordance with policy, employs skilled people having adequate resources to produce controlled outputs, involves relevant stakeholders; is monitored, controlled, and reviewed; and is evaluated for adherence to its process description.</p></blockquote>
<p>Our interpretation:  take a CMMI level one process, and add a project manager to coordinate the chaos.  The distinction is that at this level, the activities are planned, and then managed according to the plan.  No additional insight is applied, just orchestration.</p>
<p><strong>CMMI Level 3: Defined</strong></p>
<p><img title="cookie cutter" src="http://sehlhorst.smugmug.com/photos/59373734-M.jpg" alt="cookie cutter" /></p>
<p>To achieve CMMI level three, we have to take a process that qualifies for CMMI level two, and institute it as a corporate standard.  Then we tailor and apply that standard process to individual projects.</p>
<p><strong>CMMI Level 4: Quantitatively Managed</strong></p>
<p><img title="measuring gage" src="http://sehlhorst.smugmug.com/photos/53239521-M.jpg" alt="measuring gage" /></p>
<p>When we incorporate quantitative measurement or statistical analysis tools as part of our process management process, we are operating at CMMI level four.  This level represents &#8220;hard&#8221; introspection that utilizes quantified data to improve the management of the current project within our defined project.</p>
<p><strong>CMMI Level 5: Optimizing</strong></p>
<p><img title="introspective robot" src="http://sehlhorst.smugmug.com/photos/59374288-M.jpg" alt="introspective robot" /></p>
<p>When we analyze the quantitative data from our projects and apply it to refining our processes for the future, we are operating CMMI level five.  This level represents an introspective approach to quantitative project management, combined with a continuous improvement objective.</p>
<p><strong>Articles In This Series</strong></p>
<ul>
<li><a title="Introduction to CMMI Levels" href="../2006/03/10/foundation-series-cmmi-levels-explained/">Foundation Series: CMMI Levels Explained</a></li>
<li><a title="What CMMI Level to Use" href="../2006/03/12/what-cmmi-level-should-we-use/">What CMMI Level Should We Use?</a></li>
<li><a title="Introduction to Mapping the RMM to the CMMI" href="../2007/01/25/cmmi-and-rmm-intro/">CMMI Levels and RMM Introduction</a></li>
<li><a title="Mapping RMM Level 1 to CMMI" href="../2007/01/26/cmmi-and-rmm-level-1/">CMMI Levels and RMM Level 1 &#8211; Written Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 2 - Organized Requirements" href="../2007/01/29/cmmi-and-rmm-level-2/">CMMI Levels and RMM Level 2 &#8211; Organized Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 3 - Structured Requirements" href="../2007/01/30/cmmi-and-rmm-level-3/">CMMI Levels and RMM Level 3 &#8211; Structured Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 4 - Traced Requirements" href="../2007/01/31/cmmi-and-rmm-level-4/">CMMI Levels and RMM Level 4 &#8211; Traced Requirements</a></li>
<li><a title="CMMI Levels and RMM Level 5 - Integrated Requirements" href="../2007/02/01/cmmi-and-rmm-level-5/">CMMI Levels and RMM Level 5 &#8211; Integrated Requirements</a></li>
<li>Don’t forget to take our <a title="Quick Poll on CMMI and RMM Levels" href="../2007/02/02/cmmi-and-rmm-survey/">One Minute Survey on CMMI and RMM</a>.</li>
</ul>
<p>- &#8211; -</p>
<p>Also check out the index of the <a title="Index of background topics in requirements and software" href="http://tynerblain.com/blog/foundation-series-index/"><em>Foundation  Series</em> posts</a> for other introductory articles.</p>

<div class="tweetthis" style="text-align:left;"><p> <a target="_blank" rel="nofollow" class="tt" href="http://twitter.com/intent/tweet?text=By+%40sehlhorst%3A+Foundation+Series%3A+CMMI+Levels+Explained+http%3A%2F%2Fbit.ly%2F2klqjC+" title="Post to Twitter"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/twitter/tt-twitter-big1.png" alt="Post to Twitter" /></a> <a target="_blank" rel="nofollow" class="tt" href="http://www.facebook.com/share.php?u=http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/&amp;t=Foundation+Series%3A+CMMI+Levels+Explained" title="Post to Facebook"><img class="nothumb" src="http://tynerblain.com/blog/wp-content/plugins/tweet-this/icons/en/facebook/tt-facebook-big4.png" alt="Post to Facebook" /></a></p></div>]]></content:encoded>
			<wfw:commentRss>http://tynerblain.com/blog/2006/03/10/foundation-series-cmmi-levels-explained/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>

