<?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>Communicat.us &#187; Development</title>
	<atom:link href="http://communicat.us/blog/p/tag/development/feed" rel="self" type="application/rss+xml" />
	<link>http://communicat.us/blog</link>
	<description>a place where IBM Federal Architects communicate with you and you &#34;communicate with us&#34;</description>
	<lastBuildDate>Fri, 18 Jun 2010 14:33:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Requirements driven or capability driven development?</title>
		<link>http://communicat.us/blog/p/29</link>
		<comments>http://communicat.us/blog/p/29#comments</comments>
		<pubDate>Fri, 10 Jul 2009 19:34:00 +0000</pubDate>
		<dc:creator>Fred Mervine</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://communicat.us/2009/07/10/requirements-driven-or-capability-driven-development/</guid>
		<description><![CDATA[Capability driven development is a big topic these days, especially in the DoD. What does that mean? Should system acquisition, design and development be driven by capabilities or by requirements? We first need to understand the difference between requirements and capabilities. One easy way to express that is: What capabilities do we need to obtain [...]]]></description>
			<content:encoded><![CDATA[<p>Capability driven development is a big topic these days, especially in the DoD. What does that mean? Should system acquisition, design and development be driven by capabilities or by requirements? </p>
<p>We first need to understand the difference between requirements and capabilities.</p>
<p>One easy way to express that is:</p>
<p>What <strong>capabilities </strong>do we need to obtain and exercise in order to meet our <strong>requirements</strong>?</p>
<p>For the end user, it is often easier to express their needs in terms of the activities necessary to meet the requirements. If we call that a capability, then we can name it, categorize it, analyze it; and then acquire and deploy it. We can then measure its efficacy to determine if it indeed did meet the requirements.</p>
<p>Having a catalog of well defined capabilities that are already proven to meet various requirements, or can be shown to be insufficient in a measurable way, allows architects to design using known components, assembled in well defined ways, to produce predictable results and/or to design improvements to mitigate insufficiencies.</p>
<p>When we consider a Service Oriented Architecture, the <em>Services</em> are simply capabilities that have been instantiated and deployed. In a sense, Capabilities are abstract services.</p>
<p>If we can characterize, categorize and name capabilities and provide a catalog of them, then we can maximize reuse at a much earlier stage in the design and deployment of Services in a SOA. <em></em></p>
<p> <em>
<p><em>Success is getting what you want. Happiness is wanting what you get.&quot;</em> <em></em></p>
<p> </em><em>
<p><em>- Brother Dave Gardner&#160;&#160;&#160;&#160;&#160;&#160;&#160; </em></p>
<p> </em>
<p>Requirements are what we want &#8211; Capabilities are what we get.</p>
<p>The SOA CORE Architecture team&#8217;s goal is to be able to map the customers&#8217; requirements, expressed as capabilities and match them to the capabilities provided by our products. Our sales team will succeed to the extent that our marketing teams correctly read the market and its requirements and then our development teams produced products that provide capabilities that meet those requirements. </p>
<p>The customers&#8217; requirements and the identification of the capabilities to meet them, including non functional requirements, define the &quot;solution&quot;.</p>
<p>Requirements go into the product specification. Developers produce the product that provides capabilities to meet those requirements.</p>
<p>Matching the capabilities defined in the &quot;solution&quot; with the capabilities provided by the products results in one, or possibly, more candidate architectures. One or more of them may be chosen to be implemented depending on the customer&#8217;s situation.</p>
<p>Expressed (more or less) mathematically:</p>
<p>A problem can be expresses as a set of requirements <strong></strong></p>
<p> <strong>
<p><strong>Problem = {Requirement}</strong></p>
<p> </strong>
<p>A solution to a problem can be expressed as a set of capabilities that meet the requirements <strong></strong></p>
<p> <strong>
<p><strong>Solution (Problem) = {Solution Capability}</strong></p>
<p> </strong>
<p>So a solution of a problem &#8211; i.e., its set of requirements &#8211; is a mapping of the requirements of the problem onto a set of Solution Capabilities <strong></strong></p>
<p> <strong>
<p><strong>Solution ({Requirements}) = {Solution Capability}</strong></p>
<p> </strong>
<p>Architecture can be expressed as an assembly of products &#8211; i.e., the capabilities of those products <strong></strong></p>
<p> <strong>
<p><strong>Architecture (Solution) = {Product Capabilities}</strong></p>
<p> </strong>
<p>The architecture of a solution is a mapping of the Solution Capabilities onto the Product Capabilities <strong></strong></p>
<p> <strong>
<p><strong>Architecture ({Solution Capability}) = {Product Capabilities}</strong></p>
<p></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://communicat.us/blog/p/29/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
