<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Art of Software Reuse &#187; Planning</title>
	<atom:link href="http://artofsoftwarereuse.com/tag/planning/feed/" rel="self" type="application/rss+xml" />
	<link>http://artofsoftwarereuse.com</link>
	<description>Enabling Organizational Agility using Systematic Software Reuse</description>
	<lastBuildDate>Sun, 29 Jan 2012 15:13:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='artofsoftwarereuse.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://0.gravatar.com/blavatar/867ea3399412f403d50af9d95344fa89?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Art of Software Reuse &#187; Planning</title>
		<link>http://artofsoftwarereuse.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://artofsoftwarereuse.com/osd.xml" title="Art of Software Reuse" />
	<atom:link rel='hub' href='http://artofsoftwarereuse.com/?pushpress=hub'/>
		<item>
		<title>Why Developers Make Tactical Code Changes</title>
		<link>http://artofsoftwarereuse.com/2009/11/03/why-developers-make-tactical-code-changes/</link>
		<comments>http://artofsoftwarereuse.com/2009/11/03/why-developers-make-tactical-code-changes/#comments</comments>
		<pubDate>Wed, 04 Nov 2009 02:45:40 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[deadlines]]></category>
		<category><![CDATA[design assumptions]]></category>
		<category><![CDATA[developers]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[software reuse]]></category>
		<category><![CDATA[tactical]]></category>

		<guid isPermaLink="false">http://artofsoftwarereuse.com/?p=1659</guid>
		<description><![CDATA[There is saying that every speech is actually three speeches &#8211; the speech you planned to give, the one you gave, and the one you wish you gave. I think software development is very similar in spirit. Most software professionals want to produce high quality code. Yet,there is a difference between code that they write [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=1659&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>There is saying that every speech is actually three speeches &#8211; the speech you planned to give, the one you gave, and the one you wish you gave. I think software development is very similar in spirit. Most software professionals want to produce high quality code. Yet,there is a difference between code that they write and what they wish they wrote.</p>
<p>There are a whole host of tactical code changes that creep into an application or product line which will have a negative impact for the long term. By tactical I mean short-sighted changes that corrupts the sanctity of the codebase &#8211; maybe it violates encapsulation, breaks the design principles that we meant to be followed, introduces needless coupling, worsens technical debt, and so on.<em> </em></p>
<p><em>Why are these tactical changes being made?</em> This question is extremely relevant to systematic reuse &#8211; whether you are pursuing reuse via objects, component based development, service orientation, or a combination of these. Here are some of my observations on why this happens:</p>
<ul>
<li>Time pressure &#8211; the need for meeting deadlines. Often senior developers are fully aware of the right place to add code yet proceed with tactical changes. If technical debt is consciously taken on, this isn&#8217;t too bad. But, are these always conscious decisions?</li>
<li>Unwillingness to question key design assumptions (e.g. not considering ill effects of tight coupling between entities or systems) and not addressing <a href="http://artofsoftwarereuse.com/2009/10/19/systematic-reuse-success-factor-6-address-support-needs/">support needs</a>.</li>
<li>Not considering the need to support multiple concurrent versions. Backward compatibility and client integration needs aren&#8217;t considered at development time.</li>
<li>Lack of knowledge about <a href="http://artofsoftwarereuse.com/2009/09/12/the-assetmap-useful-resource/">existing capabilities</a> in the codebase. It could also be inadequate knowledge about planned assets, or the roadmap for <a href="http://artofsoftwarereuse.com/2009/10/17/application-transformation-via-reuse/">application transformation</a>. This could be due to lack of communication and/or the developer being new to a team.</li>
<li>Thinking about changes within the context of short-term deliverables only. This usually manifests itself in seemingly harmless code changes that mushroom into bigger problems later &#8211; adding a method in a convenient place rather than the appropriate one or cutting and pasting a variation of existing functionality.</li>
<li>Lack of collective code ownership &#8211; if it isn&#8217;t my code or i didn&#8217;t write the first version why take the initiative to make it better?</li>
<li>Inadequate knowledge of team&#8217;s coding and design standards and practices. Where should a new component be added? who will review the code to ensure that it is reusable? how do i let other developers know? how do i <a href="http://artofsoftwarereuse.com/2009/10/21/systematic-reuse-success-factor-7-document/">document</a> assets?</li>
</ul>
<p>Do these reasons resonate with your experience? What could be added to this list?</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong> <a href="http://twitter.com/home?status=http://wp.me/ptCiB-qL"><img title="tweet this" src="http://softwarereuse.files.wordpress.com/2009/10/twitter2.png?w=32&#038;h=32" alt="tweet this" width="32" height="32" /></a> <a href="http://del.icio.us/post?url=http://wp.me/ptCiB-qL&amp;title=Why Developers Make Tactical Code Changes"><img title="del.icio.us:Why Developers Make Tactical Code Changes" src="http://softwarereuse.files.wordpress.com/2009/10/dellicious.png?w=32&#038;h=32" alt="add to del.icio.us" width="32" height="32" /></a></strong> <a href="http://www.facebook.com/sharer.php?u=http://wp.me/ptCiB-qL&amp;title=Why Developers Make Tactical Code Changes"><img title="facebook:Why Developers Make Tactical Code Changes" src="http://softwarereuse.files.wordpress.com/2009/10/48x48.png?w=32&#038;h=32" alt="post to facebook" width="32" height="32" /></a></p>
<br /> Tagged: deadlines, design assumptions, developers, Planning, software reuse, tactical <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/1659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/1659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/1659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/1659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/1659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/1659/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/1659/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/1659/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=1659&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/11/03/why-developers-make-tactical-code-changes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/10/twitter2.png" medium="image">
			<media:title type="html">tweet this</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/10/dellicious.png" medium="image">
			<media:title type="html">del.icio.us:Why Developers Make Tactical Code Changes</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/10/48x48.png" medium="image">
			<media:title type="html">facebook:Why Developers Make Tactical Code Changes</media:title>
		</media:content>
	</item>
		<item>
		<title>Using Agile Practices for Building Reusable Services</title>
		<link>http://artofsoftwarereuse.com/2009/11/02/using-agile-practices-for-building-reusable-services/</link>
		<comments>http://artofsoftwarereuse.com/2009/11/02/using-agile-practices-for-building-reusable-services/#comments</comments>
		<pubDate>Tue, 03 Nov 2009 01:43:36 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[agile]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[DRY]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[software reuse]]></category>
		<category><![CDATA[user stories]]></category>

		<guid isPermaLink="false">http://artofsoftwarereuse.com/?p=1706</guid>
		<description><![CDATA[I wrote earlier about using agile software reuse and the key ingredients that are beneficial when pursuing such a strategy. In this post, I want to summarize how agile practices can be used to build reusable service capabilities. Practice How is this practice supported? Why is this practice supported? User stories Examine user stories within [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=1706&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I wrote earlier about using <a href="http://artofsoftwarereuse.com/2009/09/25/building-reusable-assets-with-agile-practices/">agile software reuse</a> and the <a href="http://artofsoftwarereuse.com/2009/08/20/agile-software-reuse-key-ingredients/">key ingredients</a> that are beneficial when pursuing such a strategy. In this post, I want to summarize how agile practices can be used to build reusable service capabilities.</p>
<div style="font-size:x-small;font-family:Sans-serif;">
<table style="border-style:solid;border-width:1px;" border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr bgcolor="#cccccc">
<td width="20%" valign="top"><strong>Practice</strong></td>
<td width="40%" valign="top"><strong>How is this practice supported?</strong></td>
<td width="40%" valign="top"><strong>Why is this practice supported?</strong></td>
</tr>
<tr>
<td width="20%" valign="top">User stories</td>
<td width="40%" valign="top">Examine user stories   within the context of the overall reuse strategy. Differentiate functionality   for the overall domain vs. for a single application. Match story with known   service and identify development and refactoring tasks.</td>
<td width="40%" valign="top">User stories are the   primary means for getting requirements for services. User stories can be used   to recognize common functionality across services. It bridges business needs   with reusable services.</td>
</tr>
<tr bgcolor="#cccccc">
<td width="20%" valign="top">Don’t Repeat Yourself</td>
<td width="40%" valign="top">Code reviews done to   remove duplication across existing and new services. Review code at multiple   levels of granularity – source code snippets, classes, services, and across   the domain services inventory. Prefer building only domain services.</td>
<td width="40%" valign="top">Ensure services are   reusable and do not have channel/technology/transport coupling.Keeps codebase light by   removing unwanted code. Helps leverage internal and/or external solutions for   functionality that is outside of your core domain.</td>
</tr>
<tr>
<td width="20%" valign="top">Refactoring</td>
<td width="40%" valign="top">Heavily used for two   primary purposes: iterative service development and legacy asset leverage.   Refactoring used to identify and fix service limitations (functional and   technical). Align user stories to known set of service refactorings.   Refactoring also used to wrap legacy functionality and loosen coupling among   legacy systems.</td>
<td width="40%" valign="top">Refactoring is the   foundational technique to achieve agility and helps deliver functional   services iteratively. Refactoring is also necessary since domain knowledge   and business strategy gets refined over time. Legacy assets can quickly be   put to use as part of the service inventory by refactoring them saving time   and money.</td>
</tr>
<tr bgcolor="#cccccc">
<td width="20%" valign="top">Done, Done</td>
<td width="40%" valign="top">Unit and integration   test the service, perform necessary refactorings, add suite of tests to the   continuous integration process, and document service in the service catalog.</td>
<td width="40%" valign="top">Ensure reuse-friendly   techniques are performed and quality isn’t comprised when adding/updating   services to the domain inventory.</td>
</tr>
<tr>
<td width="20%" valign="top">Release planning</td>
<td width="40%" valign="top">Only build services when   there is a known consumer. Support backward compatibility using service   wrappers and co-existence using versioning. Bundle enhancements across   multiple services.</td>
<td width="40%" valign="top">Deliver business value   early with service orientation. Maximize service reuse across initiatives by   releasing early and often. Reduces burden on development team and allows   graceful migration path for consumers.</td>
</tr>
<tr bgcolor="#cccccc">
<td width="20%" valign="top">Iteration planning</td>
<td width="40%" valign="top">Plan iteration scope   using prioritized list of user stories. This list will in turn drive new   service development and updates to existing ones. Allocate time for service   development, decomposing legacy code, perform reviews, refactoring, integrate   with continuous builds, as well as documentation.</td>
<td width="40%" valign="top">Capture assumptions and   known refactorings to continuously deliver working software and address   limitations over multiple releases. Iterations help build reusable services   over time greatly minimizing schedule risk.</td>
</tr>
</tbody>
</table>
</div>
<p>This isn&#8217;t an exhaustive list of agile practices that facilitate reuse &#8211; consider these as a starting point.</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong> <a href="http://twitter.com/home?status=http://wp.me/ptCiB-rw"><img title="tweet this" src="http://softwarereuse.files.wordpress.com/2009/10/twitter2.png?w=32&#038;h=32" alt="tweet this" width="32" height="32" /></a> <a href="http://del.icio.us/post?url=http://wp.me/ptCiB-rw&amp;title=Using Agile Practices for Building Reusable Services"><img title="del.icio.us:Using Agile Practices for Building Reusable Services" src="http://softwarereuse.files.wordpress.com/2009/10/dellicious.png?w=32&#038;h=32" alt="add to del.icio.us" width="32" height="32" /></a></strong> <a href="http://www.facebook.com/sharer.php?u=http://wp.me/ptCiB-rw&amp;title=Using Agile Practices for Building Reusable Services"><img title="facebook:Using Agile Practices for Building Reusable Services" src="http://softwarereuse.files.wordpress.com/2009/10/48x48.png?w=32&#038;h=32" alt="post to facebook" width="32" height="32" /></a></p>
<br /> Tagged: agile, DRY, Planning, refactoring, software reuse, user stories <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/1706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/1706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/1706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/1706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/1706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/1706/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/1706/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/1706/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=1706&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/11/02/using-agile-practices-for-building-reusable-services/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/10/twitter2.png" medium="image">
			<media:title type="html">tweet this</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/10/dellicious.png" medium="image">
			<media:title type="html">del.icio.us:Using Agile Practices for Building Reusable Services</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/10/48x48.png" medium="image">
			<media:title type="html">facebook:Using Agile Practices for Building Reusable Services</media:title>
		</media:content>
	</item>
		<item>
		<title>Have a plan for every reusable software asset</title>
		<link>http://artofsoftwarereuse.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/</link>
		<comments>http://artofsoftwarereuse.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/#comments</comments>
		<pubDate>Sun, 10 May 2009 15:57:42 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[agility]]></category>
		<category><![CDATA[iteration]]></category>
		<category><![CDATA[software reuse]]></category>
		<category><![CDATA[tactics]]></category>

		<guid isPermaLink="false">http://softwarereuse.wordpress.com/?p=119</guid>
		<description><![CDATA[Have a plan for every reusable asset. At a minimum the plan needs to address: The scope of the asset&#8217;s functionality for your immediate deliverable The asset&#8217;s place in within your product line The impact to your existing design and overall architecture Tentative road-map for evolving the reusable asset over several iterations or releases You [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=119&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Have a plan for every reusable asset. At a minimum the plan needs to address:<a href="http://del.icio.us/post?url=http://softwarereuse.wordpress.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/&amp;title=Have a plan for every reusable asset"><img class="size-full wp-image-473 alignright" title="plan" src="http://softwarereuse.files.wordpress.com/2009/05/plan.jpg?w=450" alt="plan"   /></a></p>
<ol>
<li>The scope of the asset&#8217;s functionality for your immediate deliverable</li>
<li>The asset&#8217;s place in within your product line</li>
<li>The impact to your existing design and overall architecture</li>
<li>Tentative road-map for evolving the reusable asset over several iterations or releases</li>
</ol>
<p>You don&#8217;t have to get answers for all these areas rightaway! The point is to think about them so you can make decisions on scope and effort. In the midst of an iteration there will be several questions about whether or not to invest time in refactoring or developing a feature. You can use this tiny list as a guide to help you make decisions on what to refactor or build and whether or not it is in line with your overall strategy.</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong><a href="http://del.icio.us/post?url=http://softwarereuse.wordpress.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/&amp;title=Have a plan for every reusable asset"><img title="del.icio.us:Have a plan for every reusable asset" src="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif?w=450" alt="add to del.icio.us" /></a></strong>: <a href="http://digg.com/submit?url=http://softwarereuse.wordpress.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/&amp;title=Have a plan for every reusable asset"><img title="Digg it:Have a plan for every reusable asset" src="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif?w=450" alt="Digg it" /></a> : <a href="http://www.facebook.com/sharer.php?u=http://softwarereuse.wordpress.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/&amp;title=Have a plan for every reusable asset"><img title="facebook:Have a plan for every reusable asset" src="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif?w=450" alt="post to facebook" /></a>: <a href="http://www.stumbleupon.com/submit?url=http://softwarereuse.wordpress.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/&amp;title=Have a plan for every reusable asset"><img title="Stumble it:Have a plan for every reusable asset" src="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif?w=450" alt="Stumble It!" /></a> : <a href="http://reddit.com/submit?url=http://softwarereuse.wordpress.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/&amp;title=Have a plan for every reusable asset"><img title="reddit:Have a plan for every reusable asset" src="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif?w=450" alt="" /></a> :</p>
<br /> Tagged: agile, agility, iteration, Planning, software reuse, tactics <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=119&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/05/10/have-a-plan-for-every-reusable-software-asset/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/05/plan.jpg" medium="image">
			<media:title type="html">plan</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif" medium="image">
			<media:title type="html">del.icio.us:Have a plan for every reusable asset</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif" medium="image">
			<media:title type="html">Digg it:Have a plan for every reusable asset</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif" medium="image">
			<media:title type="html">facebook:Have a plan for every reusable asset</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif" medium="image">
			<media:title type="html">Stumble it:Have a plan for every reusable asset</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif" medium="image">
			<media:title type="html">reddit:Have a plan for every reusable asset</media:title>
		</media:content>
	</item>
		<item>
		<title>Risks with software reuse</title>
		<link>http://artofsoftwarereuse.com/2009/05/07/risks-with-software-reuse/</link>
		<comments>http://artofsoftwarereuse.com/2009/05/07/risks-with-software-reuse/#comments</comments>
		<pubDate>Fri, 08 May 2009 02:21:23 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[disadvantages]]></category>
		<category><![CDATA[pitfalls]]></category>
		<category><![CDATA[refactoring]]></category>
		<category><![CDATA[software reuse]]></category>
		<category><![CDATA[tactics]]></category>

		<guid isPermaLink="false">http://softwarereuse.wordpress.com/?p=468</guid>
		<description><![CDATA[Why should you care about risks with reuse? Because, these risks are real not made up and can make the difference between success and failure for your development effort. Here are a few risks that spring to mind: Needless complexity Inflexible design/will cost too much to modify Domain irrelevance Inadequate documentation/training/awareness Ability to meet deadlines/dates [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=468&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Why should you care about risks with reuse? Because, these risks are real not made up and can make the difference between success and failure for your development effort. Here are a few risks that spring to mind:</p>
<ul>
<li>Needless complexity</li>
<li>Inflexible design/will cost too much to modify</li>
<li>Domain irrelevance</li>
<li>Inadequate documentation/training/awareness</li>
<li>Ability to meet deadlines/dates (schedule risk)</li>
<li>Increased development, testing, and maintenance costs</li>
<li>Pursuit of technical elegance/architectural purity</li>
</ul>
<p>These are not all the risks with reuse but the major ones that I have come across.</p>
<p>Now, what do you with these? You do what leaders do and that is address them head on. Instead of sulking about these you should plan and execute mitigation steps for these. <a href="http://www.refactoring.com/">Refactoring</a> is the fundamental technique for addressing these risks! Take another look at the above list. You can use refactoring to handle most of these if not all of them.</p>
<ul>
<li>Needless complexity &#8211; build only what you absolutely need with just enough abstraction. Refactor needless layers and abstractions. Keep things as simple as possible.</li>
<li>Inflexible design/will cost too much to modify &#8211; refactor your design to focus flexibility on the variations inherent in your problem domain. Not everything needs to be flexible!</li>
<li>Domain irrelevance &#8211; Build only what is relevant to your domain. If you are not sure, <a href="http://softwarereuse.wordpress.com/2009/03/27/not-sure-if-something-is-reusable-delay-the-decision/">don&#8217;t commit prematurely</a>.</li>
<li>Ability to meet deadlines/dates (schedule risk) &#8211; cannot take a reusable asset to the planned design target? Plan to pursue refactoring these in your future iterations</li>
<li>Increased development, testing, and maintenance costs &#8211; don&#8217;t build domain irrelevant reusable assets. Every asset you build should be for a real business need. Refactor the rest so as to leverage existing solutions &#8211; watch your costs go way down.</li>
<li>Pursuit of technical elegance/architectural purity &#8211; again, refactor imperfections over time. Think incremental and iterative.</li>
</ul>
<p>I am not saying this will solve all your problems and address all the risks. But, it will get you on the right path. If you step back and focus on what is essential and what you know is likely to vary you can adjust your efforts accordingly.</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong><a href="http://del.icio.us/post?url=http://softwarereuse.wordpress.com/2009/05/07/risks-with-software-reuse/&amp;title=Risks with software reuse"><img title="del.icio.us:Risks with software reuse" src="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif?w=450" alt="add to del.icio.us" /></a></strong>: <a href="http://digg.com/submit?url=http://softwarereuse.wordpress.com/2009/05/07/risks-with-software-reuse/&amp;title=Risks with software reuse"><img title="Digg it:Risks with software reuse" src="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif?w=450" alt="Digg it" /></a> : <a href="http://www.facebook.com/sharer.php?u=http://softwarereuse.wordpress.com/2009/05/07/risks-with-software-reuse/&amp;title=Risks with software reuse"><img title="facebook:Risks with software reuse" src="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif?w=450" alt="post to facebook" /></a>: <a href="http://www.stumbleupon.com/submit?url=http://softwarereuse.wordpress.com/2009/05/07/risks-with-software-reuse/&amp;title=Risks with software reuse"><img title="Stumble it:Risks with software reuse" src="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif?w=450" alt="Stumble It!" /></a> : <a href="http://reddit.com/submit?url=http://softwarereuse.wordpress.com/2009/05/07/risks-with-software-reuse/&amp;title=Risks with software reuse"><img title="reddit:Risks with software reuse" src="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif?w=450" alt="" /></a> :</p>
<br /> Tagged: disadvantages, pitfalls, Planning, refactoring, software reuse, tactics <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/468/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/468/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/468/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=468&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/05/07/risks-with-software-reuse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif" medium="image">
			<media:title type="html">del.icio.us:Risks with software reuse</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif" medium="image">
			<media:title type="html">Digg it:Risks with software reuse</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif" medium="image">
			<media:title type="html">facebook:Risks with software reuse</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif" medium="image">
			<media:title type="html">Stumble it:Risks with software reuse</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif" medium="image">
			<media:title type="html">reddit:Risks with software reuse</media:title>
		</media:content>
	</item>
		<item>
		<title>Systematic Software Reuse Podcast Updated&#8230;</title>
		<link>http://artofsoftwarereuse.com/2009/04/26/systematic-software-reuse-podcast-updated/</link>
		<comments>http://artofsoftwarereuse.com/2009/04/26/systematic-software-reuse-podcast-updated/#comments</comments>
		<pubDate>Sun, 26 Apr 2009 13:30:16 +0000</pubDate>
		<dc:creator>vijaynarayanan</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Planning]]></category>
		<category><![CDATA[Reuse]]></category>
		<category><![CDATA[podcast]]></category>
		<category><![CDATA[software reuse]]></category>

		<guid isPermaLink="false">http://softwarereuse.wordpress.com/?p=369</guid>
		<description><![CDATA[Just posted the second episode on software product lines based approach. Like this post? Subscribe to RSS feed or get blog updates via email. : : : : Tagged: Planning, podcast, software reuse<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=369&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><div id="attachment_1639" class="wp-caption alignright" style="width: 101px"><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=315376533"><img class="size-full wp-image-1639  " title="Art of Software Reuse Podcast" src="http://softwarereuse.files.wordpress.com/2009/04/itunes_icon.jpg?w=450" alt="Want to listen using iTunes?"   /></a><p class="wp-caption-text">Using iTunes?</p></div><img class="alignleft size-full wp-image-842" title="podcast" src="http://softwarereuse.files.wordpress.com/2009/04/podcast.png?w=450" alt="podcast"   /></p>
<p>Just posted the <a href="http://softwarereuse.wordpress.com/systematic-reuse-podcast-series/">second episode</a> on software product lines based approach.</p>
<p><strong>Like this post?</strong> Subscribe to <a href="http://feeds2.feedburner.com/SoftwareReuseInTheRealWorld">RSS feed</a> or get blog <a href="http://feedburner.google.com/fb/a/mailverify?uri=SoftwareReuseInTheRealWorld&amp;loc=en_US">updates via email</a>.</p>
<p style="text-align:right;"><strong><a href="http://del.icio.us/post?url=http://softwarereuse.wordpress.com/2009/04/26/systematic-software-reuse-podcast-updated/&amp;title=Systematic Software Reuse Podcast Updated..."><img title="del.icio.us:Systematic Software Reuse Podcast Updated..." src="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif?w=450" alt="add to del.icio.us" /></a></strong>: <a href="http://digg.com/submit?url=http://softwarereuse.wordpress.com/2009/04/26/systematic-software-reuse-podcast-updated/&amp;title=Systematic Software Reuse Podcast Updated..."><img title="Digg it:Systematic Software Reuse Podcast Updated..." src="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif?w=450" alt="Digg it" /></a> : <a href="http://www.facebook.com/sharer.php?u=http://softwarereuse.wordpress.com/2009/04/26/systematic-software-reuse-podcast-updated/&amp;title=Systematic Software Reuse Podcast Updated..."><img title="facebook:Systematic Software Reuse Podcast Updated..." src="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif?w=450" alt="post to facebook" /></a>: <a href="http://www.stumbleupon.com/submit?url=http://softwarereuse.wordpress.com/2009/04/26/systematic-software-reuse-podcast-updated/&amp;title=Systematic Software Reuse Podcast Updated..."><img title="Stumble it:Systematic Software Reuse Podcast Updated..." src="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif?w=450" alt="Stumble It!" /></a> : <a href="http://reddit.com/submit?url=http://softwarereuse.wordpress.com/2009/04/26/systematic-software-reuse-podcast-updated/&amp;title=Systematic Software Reuse Podcast Updated..."><img title="reddit:Systematic Software Reuse Podcast Updated..." src="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif?w=450" alt="" /></a></p>
<br /> Tagged: Planning, podcast, software reuse <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/softwarereuse.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/softwarereuse.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/softwarereuse.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/softwarereuse.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/softwarereuse.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/softwarereuse.wordpress.com/369/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/softwarereuse.wordpress.com/369/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/softwarereuse.wordpress.com/369/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=artofsoftwarereuse.com&amp;blog=7058737&amp;post=369&amp;subd=softwarereuse&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://artofsoftwarereuse.com/2009/04/26/systematic-software-reuse-podcast-updated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/edf4a0cc88a15552fecbf78099c790ac?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">vijay</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/04/itunes_icon.jpg" medium="image">
			<media:title type="html">Art of Software Reuse Podcast</media:title>
		</media:content>

		<media:content url="http://softwarereuse.files.wordpress.com/2009/04/podcast.png" medium="image">
			<media:title type="html">podcast</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/delicious.gif" medium="image">
			<media:title type="html">del.icio.us:Systematic Software Reuse Podcast Updated...</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/digg.gif" medium="image">
			<media:title type="html">Digg it:Systematic Software Reuse Podcast Updated...</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2008/02/facebookcom.gif" medium="image">
			<media:title type="html">facebook:Systematic Software Reuse Podcast Updated...</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/stumbleit.gif" medium="image">
			<media:title type="html">Stumble it:Systematic Software Reuse Podcast Updated...</media:title>
		</media:content>

		<media:content url="http://sunburntkamel.files.wordpress.com/2006/11/reddit.gif" medium="image">
			<media:title type="html">reddit:Systematic Software Reuse Podcast Updated...</media:title>
		</media:content>
	</item>
	</channel>
</rss>
