<?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>Technology Trend Analysis</title>
	<atom:link href="http://setandbma.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://setandbma.wordpress.com</link>
	<description>From The Other Side</description>
	<lastBuildDate>Mon, 20 May 2013 07:54:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='setandbma.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Technology Trend Analysis</title>
		<link>http://setandbma.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://setandbma.wordpress.com/osd.xml" title="Technology Trend Analysis" />
	<atom:link rel='hub' href='http://setandbma.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Searching for causation</title>
		<link>http://setandbma.wordpress.com/2013/05/20/searching-for-causation/</link>
		<comments>http://setandbma.wordpress.com/2013/05/20/searching-for-causation/#comments</comments>
		<pubDate>Mon, 20 May 2013 07:54:28 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Analysis]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/2013/05/20/searching-for-causation/</guid>
		<description><![CDATA[Reblogged from Algorithms in Real Life: If you are an author, there are three things you worry about. How many have purchased the book? How many have read the book? How many have understood the book? If you have written the book with the aim of making money, then asking the first question is sufficient.&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/05/20/searching-for-causation/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3367&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<div class="reblog-post"><p class="reblog-from"><img alt='' src='http://2.gravatar.com/avatar/5df29b90454c0898b56226030ad0f6b8?s=25&amp;d=identicon&amp;r=G' class='avatar avatar-25' height='25' width='25' /> <a href="http://algorithmsinreallife.wordpress.com/2013/05/20/searching-for-causation/">Reblogged from Algorithms in Real Life:</a></p><div class="wpcom-enhanced-excerpt"><div class="wpcom-enhanced-excerpt-content">
<p>If you are an author, there are three things you worry about.</p>
<ol>
<li>How many have purchased the book?</li>
<li>How many have read the book?</li>
<li>How many have understood the book?</li>
</ol>
<p>If you have written the book with the aim of making money, then asking the first question is sufficient. If you believe that you have written a masterpiece and that it is important to you that as many should read it, then the second question is sufficient and you should not be worried about the first.</p>
</div> <p class="read-more"><a href="http://algorithmsinreallife.wordpress.com/2013/05/20/searching-for-causation/" target="_self"><span>Read more&hellip;</span> 359 more words</a></p></div></div> ]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/05/20/searching-for-causation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>Ant Colony Optimization</title>
		<link>http://setandbma.wordpress.com/2013/05/14/ant-colony-optimization/</link>
		<comments>http://setandbma.wordpress.com/2013/05/14/ant-colony-optimization/#comments</comments>
		<pubDate>Tue, 14 May 2013 06:47:20 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Analysis]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/2013/05/14/ant-colony-optimization/</guid>
		<description><![CDATA[Reblogged from Algorithms in Real Life: Many interesting meta-heuristics have been bio-inspired. Some of them are: Ant colony Optimization Cuckoo Search Genetic Algorithm Ant Colony Optimization This technique has been adapted from the studies carried out on the behavior of ants. It was observed that foraging ants quickly traversed the shortest path from the anthill&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/05/14/ant-colony-optimization/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3365&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<div class="reblog-post"><p class="reblog-from"><img alt='' src='http://2.gravatar.com/avatar/5df29b90454c0898b56226030ad0f6b8?s=25&amp;d=identicon&amp;r=G' class='avatar avatar-25' height='25' width='25' /> <a href="http://algorithmsinreallife.wordpress.com/2012/02/20/ant-colony-optimization/">Reblogged from Algorithms in Real Life:</a></p><div class="wpcom-enhanced-excerpt"><div class="wpcom-enhanced-excerpt-content"><a href="http://algorithmsinreallife.wordpress.com/2012/02/20/ant-colony-optimization/" target="_self"><img src="http://algorithmsinreallife.files.wordpress.com/2012/02/plain-path.jpg?w=640&h=195" alt="Click to visit the original post" class="size-full" /></a><ul class="thumb-list"><li><a href="http://algorithmsinreallife.wordpress.com/2012/02/20/ant-colony-optimization/" target="_self"><img src="http://algorithmsinreallife.files.wordpress.com/2012/02/phermone-path.jpg?w=72&h=72&crop=1" alt="Click to visit the original post" class="size-thumb" width="72" height="72" /></a></li></ul>
<p>Many interesting meta-heuristics have been bio-inspired. Some of them are:</p>
<ul>
<li>Ant colony Optimization</li>
<li>Cuckoo Search</li>
<li><a title="Genetic Algorithm" href="http://algorithmsinreallife.wordpress.com/2012/02/22/genetic-algorithm/">Genetic Algorithm</a></li>
</ul>
<p>Ant Colony Optimization</p>
<p>This technique has been adapted from the studies carried out on the behavior of ants. It was observed that foraging ants quickly traversed the shortest path from the anthill to the food source and back. This was initially proposed by Marco Dorigo in 1992 PhD thesis.</p>
</div> <p class="read-more"><a href="http://algorithmsinreallife.wordpress.com/2012/02/20/ant-colony-optimization/" target="_self"><span>Read more&hellip;</span> 436 more words</a></p></div></div> ]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/05/14/ant-colony-optimization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>Introduction to Algorithms, Heuristics and Meta-heuristics</title>
		<link>http://setandbma.wordpress.com/2013/05/07/introduction-to-algorithms-heuristics-and-meta-heuristics/</link>
		<comments>http://setandbma.wordpress.com/2013/05/07/introduction-to-algorithms-heuristics-and-meta-heuristics/#comments</comments>
		<pubDate>Tue, 07 May 2013 06:30:39 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Analysis]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/2013/05/07/introduction-to-algorithms-heuristics-and-meta-heuristics/</guid>
		<description><![CDATA[Reblogged from Algorithms in Real Life: At school I was always confused between Algorithms and Logarithms…Anagrams were meaningful later. Then I encountered heuristics and lately meta-heuristics. I tried to differentiate algorithms, heuristics and meta-heuristics. Additional words such as methods, steps and instructions also joined the fray. A simple definition of algorithm – Wikipedia defines it as&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/05/07/introduction-to-algorithms-heuristics-and-meta-heuristics/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3362&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<div class="reblog-post"><p class="reblog-from"><img alt='' src='http://2.gravatar.com/avatar/5df29b90454c0898b56226030ad0f6b8?s=25&amp;d=identicon&amp;r=G' class='avatar avatar-25' height='25' width='25' /> <a href="http://algorithmsinreallife.wordpress.com/2012/02/12/introduction-to-algorithms-heuristics-and-meta-heuristics/">Reblogged from Algorithms in Real Life:</a></p><div class="wpcom-enhanced-excerpt"><div class="wpcom-enhanced-excerpt-content">
<p>At school I was always confused between Algorithms and Logarithms…Anagrams were meaningful later. Then I encountered heuristics and lately meta-heuristics. I tried to differentiate algorithms, heuristics and meta-heuristics. Additional words such as methods, steps and instructions also joined the fray.</p>
<p>A simple definition of algorithm – Wikipedia defines it as – “it is an effective method expressed as a finite list of well-defined instructions for calculating a function”.</p>
</div> <p class="read-more"><a href="http://algorithmsinreallife.wordpress.com/2012/02/12/introduction-to-algorithms-heuristics-and-meta-heuristics/" target="_self"><span>Read more&hellip;</span> 393 more words</a></p></div></div> ]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/05/07/introduction-to-algorithms-heuristics-and-meta-heuristics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>4 Prerequisites for Reducing Sprint Duration</title>
		<link>http://setandbma.wordpress.com/2013/03/25/reduce-sprint-duration/</link>
		<comments>http://setandbma.wordpress.com/2013/03/25/reduce-sprint-duration/#comments</comments>
		<pubDate>Mon, 25 Mar 2013 05:06:05 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[reduce sprint duration]]></category>
		<category><![CDATA[sprint cycletime]]></category>
		<category><![CDATA[sprint duration]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3354</guid>
		<description><![CDATA[Agile manifesto has explicit stated preference for shorted sprints. Shorter sprints can ensure that: &#8220;Parkinson&#8217;s Law&#8221; does not set in, that is work does not expand to fill the available time &#8220;Understanding gap&#8221; between users and developers gets ironed out quickly &#8220;Quick response to change&#8221; becomes possible However, there are other factors which may make too&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/03/25/reduce-sprint-duration/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3354&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Agile manifesto has explicit stated preference for shorted sprints. Shorter sprints can ensure that:</p>
<ul>
<li>&#8220;Parkinson&#8217;s Law&#8221; does not set in, that is work does not expand to fill the available time</li>
<li>&#8220;Understanding gap&#8221; between users and developers gets ironed out quickly</li>
<li>&#8220;Quick response to change&#8221; becomes possible</li>
</ul>
<p>However, there are other factors which may make too short a sprint cycle counter productive.</p>
<h2>Factors influencing sprint duration</h2>
<p>There is a certain amount of overhead associated with each sprint. Every sprint requires some initial planning time plus validation, regression testing and integration time and effort at the end. This overhead is proportional to the total size of the software and the level of automation in place and does not depend on the number of stories delivered during the sprint. In short&#8230;</p>
<blockquote><p><span style="color:#ff0000;"><strong>Do not attempt short sprint cycle without a mature engineering practice.</strong></span></p></blockquote>
<p>Otherwise, it would lead the team to burn midnight oil and lead to frustration.</p>
<p>If the product owner is always available for the team&#8230;</p>
<p>If all the stories are clearly spelled out&#8230;</p>
<p>If there is no confusion or disagreement on how the user stories are to be implemented&#8230;</p>
<p>&#8230;then short sprints are fine. Otherwise, stories cannot be delivered in a short sprint.</p>
<blockquote><p><span style="color:#ff0000;"><strong>Do not attempt short sprint cycle without clear user stories.</strong></span></p></blockquote>
<p>But longer sprint may not be a solution because it will only introduce slack and waiting time. So, better idea would be to create a buffer of clearly defined user stories. Applying Kanban principles may help.</p>
<p>Third key point in deciding the sprint duration is the amount of time and effort required to implement a story. Several factors may influence that:</p>
<ul>
<li>Architectural complexity</li>
<li>Existing technical debt</li>
<li>Skill level of the team</li>
</ul>
<p>So &#8230;</p>
<blockquote><p><span style="color:#ff0000;"><strong>Do not attempt short sprint cycle if, for whatever reason, the team cannot implement stories fast enough.</strong></span></p></blockquote>
<h2>In short</h2>
<p>If you need to have short sprint cycles, do the following:</p>
<ol>
<li><span style="line-height:13px;">Improve your engineering practice to bring down the sprint overhead</span></li>
<li>Ensure availability of clearly defined user stories</li>
<li>Simplify your architecture and reduce technical debt</li>
<li>Improve the skill level of the team</li>
</ol>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<h2>Related Articles</h2>
<ul>
<li><a href="http://www.agilehelpline.com/2011/03/sprint-length.html">A Rule of Thumb: Ideal Sprint Length</a></li>
<li><a href="http://www.mitchlacey.com/blog/determining-sprint-length">Determining Sprint Length</a></li>
<li><a href="http://www.changepond.com/site/sprint-duration">Going the Agile way&#8230;what is the ideal length of a Sprint?</a></li>
<li><a href="http://www.cognizant.com/insights/perspectives/agile-scrum-sprint-length-whats-right-for-you">Agile Scrum Sprint Length: What&#8217;s Right for You?</a></li>
<li><a href="http://adiws.blogspot.in/2012/04/choosing-sprint-length.html">Choosing a sprint length</a></li>
<li><a href="http://agilediary.wordpress.com/2009/01/11/ideal-iteration-length-sprint-length-how-long-should-be-a-sprint-or-iteration/">Ideal Iteration Length, Sprint Length, How Long should be a Sprint or Iteration</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3354/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3354/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3354&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/03/25/reduce-sprint-duration/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>Distributed team in different timezone and Product Ownership</title>
		<link>http://setandbma.wordpress.com/2013/03/21/time-zone-difference-and-product-ownership/</link>
		<comments>http://setandbma.wordpress.com/2013/03/21/time-zone-difference-and-product-ownership/#comments</comments>
		<pubDate>Thu, 21 Mar 2013 09:44:36 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[proxy product owner]]></category>
		<category><![CDATA[time difference and product ownership]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3347</guid>
		<description><![CDATA[How do you work with a remote product owner who is in a different time zone with very little overlap of normal working hours? An agile puritan would have a simple answer &#8211; Don&#8217;t. There is an underlying assumption behind this statement. The assumption is that the product owner can provide an instant clarification and decision to&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/03/21/time-zone-difference-and-product-ownership/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3347&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>How do you work with a remote product owner who is in a different time zone with very little overlap of normal working hours?</p>
<p>An agile puritan would have a simple answer &#8211; <span style="color:#ff0000;"><strong>Don&#8217;t</strong></span>.</p>
<p>There is an underlying assumption behind this statement. The assumption is that the product owner can provide an instant clarification and decision to any of the following types of questions:</p>
<ol>
<li>About the domain of the problem</li>
<li>About the current process and workflow</li>
<li>About how the software is expected to work</li>
<li>About the business logic that needs to be implemented</li>
<li>About the usability of the software</li>
</ol>
<p>In real life is it possible for the product owner to provide immediate answer to all these types of question?</p>
<p>For questions of the type (1) and (2) it is possible. For other types of question it is possible only for small projects.</p>
<h2>Enterprise Scale Real Life Problem</h2>
<p>To be able to answer the types of question (3) and (4) the product owner need to have a complete mental picture of how the proposed software should work, have a complete picture of the proposed workflow and have a thorough understanding of the business process and logic.</p>
<p>Question type (5) cannot be answered without a formal usability test. In fact you may need a usability expert to provide that advice.</p>
<p>In short, many questions of the type (3), (4) and (5) requires deliberation, required consultation with other subject mater experts and with specialists.</p>
<p>Once you reconcile to this fact then you will realize that remote product owner may not be that much of productivity killer.</p>
<h2>It can be done!</h2>
<p>The good news is that people have tried and successfully done it with little bit (but not too much) of productivity loss.</p>
<ol>
<li>If there is no overlapping working hour then adjust the working hour to have an overlap.</li>
<li>Have a proxy product owner who is in the same location as the development team.</li>
<li>Use communication and collaboration tool to resolve issues.</li>
</ol>
<blockquote><p><span style="color:#008000;"><strong>In the world of ubiquitous communication and collaboration, it is naive to think that having a remote product owner in not feasible.</strong></span></p></blockquote>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<h2>Related Articles</h2>
<p>Why it is a bad idea:</p>
<ul>
<li><a href="http://www.benday.com/2012/03/25/scrum-vs-the-time-zone/">Scrum vs. The Time Zone</a></li>
</ul>
<p>How it can be made to work:</p>
<ul>
<li><a href="http://www.agilebuddha.com/agile/agile-offshore-create-effective-and-decisive-product-owner-proxy-to-offshore-team/">Agile Offshore: Create Effective and Decisive Product Owner Proxy to Offshore Team</a></li>
<li><a href="http://agile.techwell.com/articles/original/seven-strategies-handling-distributed-agile">Seven Strategies for Handling Distributed Agile</a></li>
<li><a href="http://tech.dir.groups.yahoo.com/group/scrumdevelopment/message/22224">US/India time zone difference and daily scrum</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3347/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3347/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3347&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/03/21/time-zone-difference-and-product-ownership/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>Evolutionary Architecture and Conway&#8217;s Law</title>
		<link>http://setandbma.wordpress.com/2013/03/19/conways-law/</link>
		<comments>http://setandbma.wordpress.com/2013/03/19/conways-law/#comments</comments>
		<pubDate>Tue, 19 Mar 2013 09:17:04 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[architectural decisions]]></category>
		<category><![CDATA[Conway's Law]]></category>
		<category><![CDATA[Melvin Conway]]></category>
		<category><![CDATA[organizational architectures]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3340</guid>
		<description><![CDATA[Way back &#8230; in 1968, Melvin Edward Conway, an early computer scientist, computer programmer, and hacker postulated that&#8230; Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. Or more concisely&#8230; Any piece of software reflects the organizational structure that produced it. For example, if you have&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/03/19/conways-law/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3340&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Way back &#8230; in 1968, Melvin Edward Conway, an early computer scientist, computer programmer, and hacker postulated that&#8230;</p>
<blockquote><p><strong>Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.</strong></p></blockquote>
<p>Or more concisely&#8230;</p>
<blockquote><p><strong>Any piece of software reflects the organizational structure that produced it.</strong></p></blockquote>
<p>For example, if you have four groups working on a compiler, you&#8217;ll get a 4-pass compiler!</p>
<p>This became known as the <a href="http://en.wikipedia.org/wiki/Conway's_law">Conway&#8217;s Law</a>.</p>
<p><a href="http://setandbma.files.wordpress.com/2013/03/mel-conway.png"><img class="alignnone  wp-image-3341" alt="Mel Conway" src="http://setandbma.files.wordpress.com/2013/03/mel-conway.png?w=270&#038;h=323" width="270" height="323" /></a></p>
<h2>Implication of Conway&#8217;s Law on Evolving Architecture</h2>
<p>Let us assume that there is some truth in Conway&#8217;s Law. Then what implication does have on large agile projects?</p>
<p>In agile project you do not do a &#8220;Big Up Front&#8221; architecture. You do it in smaller increments. You take the architectural decisions at the last responsible moment. So, the architecture of your software evolves parallel to the stories getting delivered.</p>
<p>Small agile project can have a flat structure, a single team and no hierarchy.</p>
<p>For larger projects you will necessarily have to create multiple teams. You will need to partition the problem and assign a slice of the problem to a team. There are different ways to partition the problem like &#8211; feature wise, component wise, technology wise, tier wise etc. But there is no escaping the fact that you need to partition your problem.</p>
<p>If we accept Conway&#8217;s Law then your architecture would reflect how you have partitioned the problem to assign the work to the team.</p>
<p>So, here is the question that you need to answer &#8211; in which order should you do the following:</p>
<ol>
<li>Split the problem</li>
<li>Form the teams</li>
<li>Arrive at the high level architecture</li>
</ol>
<p>How about&#8230;</p>
<blockquote><p><strong><span style="color:#008000;">&#8230;doing enough &#8220;Up Front Design&#8221; to be able to arrive at a high level architecture so that the problem can be split in such a in way that each slice can be assigned to a team?</span></strong></p></blockquote>
<h2>Research study that support Conway&#8217;s Law</h2>
<p><strong>Harvard Business School</strong>: <a href="http://www.hbs.edu/faculty/Publication%20Files/08-039.pdf">Exploring the Duality between Product and Organizational Architectures: A Test of the “Mirroring” Hypothesis</a></p>
<blockquote><p><strong><span style="color:#008000;">&#8230;products tend to “mirror” the architectures of the organizations in which they are developed &#8230; we find strong evidence to support the mirroring hypothesis&#8230;</span></strong></p></blockquote>
<p><strong>Microsoft Research</strong>: <a href="http://research.microsoft.com/apps/pubs/default.aspx?id=70535">The Influence of Organizational Structure On Software Quality: An Empirical Case Study</a></p>
<p>Well &#8230; this research is strictly not a validation of Conway&#8217;s Law but it remonstrates link between organization structure and software quality!</p>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<h2>More about Conway and his law:</h2>
<ul>
<li><a href="http://www.melconway.com/Home/Home.html">Mel Conway&#8217;s Home Page</a></li>
<li><a href="http://en.wikipedia.org/wiki/Melvin_Conway">Melvin Conway &#8211; Wikipedia page</a></li>
<li><a href="http://lunatractor.com/2012/10/02/conways-law-fred-brooks-and-agility/">Conway’s Law, Fred Brooks and Agility</a></li>
<li><a href="http://www.design.caltech.edu/erik/Misc/Conway.html">Conway&#8217;s Law</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3340/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3340&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/03/19/conways-law/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>

		<media:content url="http://setandbma.files.wordpress.com/2013/03/mel-conway.png" medium="image">
			<media:title type="html">Mel Conway</media:title>
		</media:content>
	</item>
		<item>
		<title>Are Large Software Projects like Eating an Elephant?</title>
		<link>http://setandbma.wordpress.com/2013/03/11/large-software-project/</link>
		<comments>http://setandbma.wordpress.com/2013/03/11/large-software-project/#comments</comments>
		<pubDate>Mon, 11 Mar 2013 10:47:02 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[emergent design]]></category>
		<category><![CDATA[evolutionary architecture]]></category>
		<category><![CDATA[right architecture]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3331</guid>
		<description><![CDATA[How do you eat an elephant? Simple &#8211; cut it into small pieces at eat one piece at a time. BUT&#8230; &#8230;is it really that simple? When you have a large software project it is too simplistic to assume that all you need to do is to decompose the problem to individual manageable chunk which&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/03/11/large-software-project/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3331&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>How do you eat an elephant? Simple &#8211; cut it into small pieces at eat one piece at a time.</p>
<p>BUT&#8230;</p>
<p>&#8230;is it really that simple?</p>
<p>When you have a large software project it is<strong> too simplistic</strong> to assume that all you need to do is to decompose the problem to individual manageable chunk which can be handled by one scrum team and then continuously keep integrating the code produced by the teams. Keep doing this and your software would be ready.</p>
<h2>4 Assumptions you make while splitting a problem</h2>
<p>In agile we call each chunk a user story. There is an underlying belief that it is possible to take one story at a time and code it into the application. The design of the application would <strong>emerge</strong> and the architecture of the application would <strong>evolve</strong>. But for that to happen the following assumptions must be valid:</p>
<p><strong>Granularity of the decomposition</strong>: Each story is not too large &#8211; one person code it within a couple of weeks.</p>
<p><strong>Loose coupling</strong>: Each story in not too interconnected with the rest of the already developed application &#8211; the code can be tested without too much complication.</p>
<p><strong>Ability to iterate</strong>: Every story can be plugged in easily &#8211; it does not necessitate too much change in the existing code base &#8211; it does not create too many regression error.</p>
<p><strong>Minimum emergent behavior</strong>: The impact of adding a story is predictable &#8211; when a new story is added then there is no unpredictable change in the behavior of the application.</p>
<p>There is no guarantee that this can be achieved for every problem. There is no scientific method which can be applied.</p>
<p>However, experience teaches us that a good architecture can enable this process.</p>
<blockquote><p><span style="color:#008000;"><strong>The best way to arrive at a good architecture is to find an expert who has solved a similar problem and has learned the hard way what not to do!</strong></span></p></blockquote>
<p>Such a person can make the problem as simple as possible but not simpler.</p>
<p>What if you cannot find such a person?</p>
<p>Then you will need to go through architectural cycles to arrive at the right architecture before user stories can be taken up.</p>
<p>You also need to keep in mind that any architectural decision once taken cannot be changed easily. It would involve too much rework. So, you should defer some of the architectural decision to the last responsible time.</p>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<h2>Related Articles:</h2>
<p><a href="http://www.noop.nl/2010/09/simplicity-a-new-model.html">Simplicity: A New Model</a></p>
<p><a href="http://www.jnd.org/dn.mss/simplicity_is_highly.html">Simplicity Is Highly Overrated</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3331/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3331/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3331&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/03/11/large-software-project/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>How do you think?</title>
		<link>http://setandbma.wordpress.com/2013/03/07/how-do-you-think/</link>
		<comments>http://setandbma.wordpress.com/2013/03/07/how-do-you-think/#comments</comments>
		<pubDate>Thu, 07 Mar 2013 11:07:28 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Random Thought]]></category>
		<category><![CDATA[Trend]]></category>
		<category><![CDATA[Programming Trend]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3320</guid>
		<description><![CDATA[How do you go about writing you program? Do you think in terms of: Programming construct Database design Abstract algorithm User interaction Looking back Way we think about writing a program has undergone several phases of evolution. The evolution has a close link with increasing complexity and technological progress. Flow chart era There was a&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/03/07/how-do-you-think/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3320&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>How do you go about writing you program?</p>
<p>Do you think in terms of:</p>
<ul>
<li>Programming construct</li>
<li>Database design</li>
<li>Abstract algorithm</li>
<li>User interaction</li>
</ul>
<h2>Looking back</h2>
<p>Way we think about writing a program has undergone several phases of evolution. The evolution has a close link with increasing complexity and technological progress.</p>
<h4>Flow chart era</h4>
<p>There was a time when it was considered a very bad practice to start writing code without drawing a flow chart.</p>
<p>Those were the days when the concept of interactive debugging did not exist. You would submit you deck of cards to the mainframe data center and wait for the result to come. One compilation means another long wait.</p>
<h4>Structured programming era</h4>
<p>Then came a revolt against GO TO.</p>
<p>People stopped using flowchart and started using structure chart.</p>
<h4>DB design era</h4>
<p>Since the time RDBMS became popular most programmers used to thing in terms of database design. They believed that if you get the database design correct then the rest of the application would fall in place. They thought in terms of Entity-Relationship diagram and Database Normalization.</p>
<p>The ability to write an optimized SQL statement was a prized quality for a programmer!</p>
<h4>Event Driven programming era</h4>
<p>Once GUI became popular, structured thinking could not be used to solve the new class of program required.</p>
<p>That is when event driven programming and thinking in terms of even became popular. A new classes of tools and programming languages evolved. They were clubbed under the title of 4GL or 4th generation languages.</p>
<p>The event thinking and DB thinking coexisted. That was the Client-Server era. The debate was about what code should go into the DB stored procedure and what code should go into the event.</p>
<h4>Object Oriented programming era</h4>
<p>Then came Web. It needed HTML and multi-tiered application development. Event driven programming could not address this challenge.</p>
<p>As a result O-O thinking became popular. New classes of programming languages emerged. Design patterns became popular.</p>
<p>O-O thinking was not very compatible with DB thinking, so the O-R or object relationship mapping tools became popular.</p>
<p>DB thinking started loosing its preeminent position. DB thinkers lamented that the new generation of programmers could not even write a simple SQL.</p>
<h4>Service Oriented programming era</h4>
<p>When the systems became interlinked it became too complex to design using only the O-O paradigm. That is when SOA or service oriented architecture emerged. It was more to supplement the O-O thinking than to replace it.</p>
<p>However, the business consultants and the product vendors wanted to hijack the SOA term to mean something much more than a way of building a multi-machine application. Fortunately, that was not a success and the S-O programming paradigm and the O-O paradigm learnt to amicably coexist.</p>
<h2>The Way Forward</h2>
<p>Again, we are at a crossroad. Desktop and laptop are no longer the only means to access the web. Keyboard and mouse are no longer the only input devices. Number of channel through which we interact with each other and with organizations is exploding.</p>
<p>In short, the technology scenario and complexity of interaction is changing and changing fast.</p>
<p>As we have seen in the past, any such change have invariably impacted how we think about programming.</p>
<p>Looks like the future is going to be SMAC.</p>
<p><strong>S</strong> = Social Media = User interaction design and Algorithm</p>
<p><strong>M</strong> = Mobile Computing  = User interaction design</p>
<p><strong>A</strong> = Analytics and Big Data = Algorithm</p>
<p><strong>C</strong> = Cloud Computing = Parallel Programming = (?) Functional Programming</p>
<blockquote><p><span style="color:#ff0000;"><strong>So, are we at the inflection point where we need to change how we go about writing program?</strong></span></p></blockquote>
<p>Are you ready to think beyond O-O design patterns? Beyond services?</p>
<p>Would you be comfortable thinking about user interaction design? About abstract algorithms?</p>
<blockquote><p><span style="color:#008000;"><strong>Can you afford not to?</strong></span></p></blockquote>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3320/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3320/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3320&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/03/07/how-do-you-think/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>Is Agile Elitist?</title>
		<link>http://setandbma.wordpress.com/2013/03/06/is-agile-elitist/</link>
		<comments>http://setandbma.wordpress.com/2013/03/06/is-agile-elitist/#comments</comments>
		<pubDate>Wed, 06 Mar 2013 07:26:22 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[agile modified]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3312</guid>
		<description><![CDATA[Best way to do software development is to get hold of master programmers. Get them to form a self organizing team and do the development in short increments. That is agile. What happens if you cannot find sufficient number of master programmers? Get as many master programmers as you can. For the rest of the&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/03/06/is-agile-elitist/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3312&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Best way to do software development is to get hold of master programmers. Get them to form a self organizing team and do the development in short increments.</p>
<p>That is agile.</p>
<p>What happens if you cannot find sufficient number of master programmers?</p>
<p>Get as many master programmers as you can. For the rest of the team get programmers who aspire to become a master programmer and has a good chance of becoming one. Get them to form a self organizing team and do the development in short increments.</p>
<p>At the end of the development cycle the aspiring master programmers would have taken steps towards becoming master programmers. Few of the may indeed have become master programmers.</p>
<p>That is also agile.</p>
<p>But&#8230;</p>
<p><span style="font-size:13px;line-height:19px;">What if you cannot find enough programmers who aspire to and capable of become master programmers?</span></p>
<h2>What choices do you have?</h2>
<p>Somehow attract the right people. Pay more &#8230; create the right atmosphere &#8230; make the environment challenging &#8230; build a learning culture &#8230; solve interesting problem &#8230;</p>
<p>Wait till you assemble the right team.</p>
<p>What if your business imperative does not provide you with the luxury of time?</p>
<p>What if you organization culture, structure, dynamics is not conducive for creating such teams?</p>
<h2>Should you reinvent your organization?</h2>
<p>Do you think it would be easy? Do you think it would be possible to undertake such a transition? Do you think every organization can do it successfully?</p>
<p>What if there aren&#8217;t enough people in the world who aspire to and capable of become master programmers?</p>
<p>What about the software development problem that is not good enough to get master programmers interested?</p>
<h2>Should you take sub-optimal approach?</h2>
<p>How about building your team with best people that you can assemble?</p>
<p>This team may require the guidance of a master, may require to be managed, may need a process to follow and they may need to be directed.</p>
<p>Majority of the team members may not aspire to become a master programmer. They may visualize their career to follow a different path.</p>
<p>Many organizations may have no choice but to choose such a path.</p>
<p>The question is&#8230;</p>
<p><span style="color:#008000;"><strong>&#8230;can they adopt agile? </strong></span></p>
<p>or</p>
<p><span style="color:#ff0000;"><strong>&#8230;is agile reserved only for the elite team?</strong></span></p>
<p>If they do adopt agile, would an agile expert turn around, put his nose up and say that is not agile?</p>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<h2>Related Article</h2>
<ul>
<li><a href="http://blogs.forrester.com/mike_gualtieri/11-10-12-agile_software_is_a_cop_out_heres_whats_next">Agile Software Is A Cop-Out; Here’s What’s Next</a></li>
<li><a href="http://practicalagility.blogspot.in/2011/10/agile-is-cop-out.html">Agile is a Cop-Out?</a></li>
<li><a href="http://www.quora.com/Tata-Consultancy-Services-TCS/Is-it-justified-that-companies-such-as-Google-Amazon-Microsoft-Directi-or-Walmart-offer-salaries-to-a-fresher-which-are-equal-to-those-offered-to-someone-with-7-8-years-of-experience-in-companies-such-as-TCS-Cognizant-Infosys-Accenture-or-Wipro-Does-a-fresher-at-Google-really-deliver-more-value-as#ans2169192">Is it justified that companies such as Google, Amazon, Microsoft, Directi or Walmart offer salaries to a fresher which are equal to those offered to someone with 7-8 years of experience in companies such as TCS, Cognizant, Infosys, Accenture or Wipro? Does a fresher at Google really deliver more value as compared to a veteran in TCS? Is it not a waste of money?</a></li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3312/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3312/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3312&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/03/06/is-agile-elitist/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>
	</item>
		<item>
		<title>Agile, Offshoring and Dreyfus Model of Learning</title>
		<link>http://setandbma.wordpress.com/2013/02/21/dreyfus-model/</link>
		<comments>http://setandbma.wordpress.com/2013/02/21/dreyfus-model/#comments</comments>
		<pubDate>Thu, 21 Feb 2013 05:41:22 +0000</pubDate>
		<dc:creator>Udayan Banerjee</dc:creator>
				<category><![CDATA[Agile]]></category>
		<category><![CDATA[Agile Offshoring]]></category>
		<category><![CDATA[CMMI]]></category>
		<category><![CDATA[CMMi and Agile]]></category>
		<category><![CDATA[Dreyfus Model]]></category>
		<category><![CDATA[Dreyfus Model of Skill Acquisition]]></category>
		<category><![CDATA[people or process]]></category>

		<guid isPermaLink="false">http://setandbma.wordpress.com/?p=3295</guid>
		<description><![CDATA[Agile works! If you have any doubt about it just look at the adoption rate &#8230; look at the study results published &#8230; or just try it yourself. Offshoring also works! Again, if you have any doubt, just look at the growth of offshoring &#8230; look at the success of the success of the India&#160;&#8230; <a href="http://setandbma.wordpress.com/2013/02/21/dreyfus-model/">Read&#160;more</a><img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3295&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
				<content:encoded><![CDATA[<p>Agile works!</p>
<p>If you have any doubt about it just look at the adoption rate &#8230; look at the study results published &#8230; or just try it yourself.</p>
<p>Offshoring also works!</p>
<p>Again, if you have any doubt, just look at the growth of offshoring &#8230; look at the success of the success of the India based IT companies &#8230; try to find a reasonably large company which has no offshore presence.</p>
<h2>People or Process &#8230; which is more important?</h2>
<p>If you are following agile methods then &#8230; obviously &#8230; people are more important. In fact it is clearly stated in the Agile manifesto. Of course, the manifesto does not say that process is not important but it emphasizes that people are more important than process and tool.</p>
<p>If you are into offshoring then the clear winner is process. Almost all large offshoring outfit have focused on process and have adopted SEI-CMMi model. On the same vein, CMMi does not say the people are not important, but the focus is clearly on processes and practices.</p>
<p>But, is this not contradictory?</p>
<h2>Dreyfus Model of Skill Acquisition</h2>
<p>One possible explanation is that both people and process are important. Successful agile implementation does not ignore process. Similarly, successful offshoring does not ignore people.</p>
<p>However, a better explanation can be found in the <a href="http://en.wikipedia.org/wiki/Dreyfus_model_of_skill_acquisition">Dreyfus Model of Skill Acquisition</a>.</p>
<p>If you search the net you will find tons of material explaining what the model is and I have included few of the at the end of this post. However, the simplest and the shortest explanation comes from <a href="http://sethgodin.typepad.com/seths_blog/2010/10/getting-smart-about-the-hierarchy-of-smart.html">Seth Godin</a>:</p>
<p>The Dreyfus model of skill acquisition posits that there are five stages people go through:</p>
<ol>
<li><span style="font-size:13px;line-height:19px;"><strong>Novice</strong> = wants to be given a manual, told what to do, with no decisions possible</span></li>
<li><span style="font-size:13px;line-height:19px;"><strong>Advanced beginner</strong> = needs a bit of freedom, but is unable to quickly describe a hierarchy of which parts are more important than others</span></li>
<li><span style="font-size:13px;line-height:19px;"><strong>Competent</strong> = wants the ability to make plans, create routines and choose among activities</span></li>
<li><span style="font-size:13px;line-height:19px;"><strong>Proficient</strong> = the more freedom you offer, the more you expect, the more you&#8217;ll get</span><span style="font-size:13px;line-height:19px;"> </span></li>
<li><span style="font-size:13px;line-height:19px;"><strong>Expert</strong> = writes the manual, doesn&#8217;t follow it</span></li>
</ol>
<p><a href="http://setandbma.files.wordpress.com/2013/02/dreyfus-model.png"><img class="alignnone  wp-image-3301" alt="Dreyfus Model" src="http://setandbma.files.wordpress.com/2013/02/dreyfus-model.png?w=461&#038;h=343" width="461" height="343" /></a></p>
<h2>Offshore Software Development, CMMi and Process Focus</h2>
<p>When the offshoring started, the workforce comprised of Novices and Advanced Beginner with a handful of experts guiding them. The growth of offshoring was too fast to move the Advanced Beginners to become Competent in the required number.</p>
<p>Therefore, it was logical for the organizations to focus on gaining process expertise and the most logical choice was the SEI &#8211; Capability Maturity Model (CMMi). The focus was on &#8220;Conformance to Requirement&#8221;. It was necessary to have more people to do the same work but that could be absorbed through the huge gap of salary.</p>
<p>Every project needed to find at least on expert. That expert could guide the team and interact with the onsite people. Projects which could not find such experts failed badly.</p>
<p>The growth of the offshoring industry have validated this approach.</p>
<h2>Agile Methods and People Focus</h2>
<p>Agile methods became popular where enough number of Competent and Proficient software developers where available. Once a developer becomes Competent he is ready and willing to take ownership of his work.</p>
<blockquote><p>&#8220;&#8230;you might see folks at this level typically described as “having initiative” and being “resourceful.” They tend to be in a leadership role in the team&#8230;even at this level, practitioners can’t apply agile methods the way we would like—there isn’t yet enough ability for reflection and self correction&#8230;&#8221; - <em>Andrew Hunt</em></p></blockquote>
<p>Agile methods were ideally suited for Proficient software developers. All you needed to do was to&#8230;</p>
<blockquote><p>&#8220;&#8230;Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done&#8230;&#8221; &#8211; 5th principle behind agile manifesto!</p></blockquote>
<p>It is no surprise that agile methods worked and worked very well.</p>
<h2>The story of offshoring is not over yet!</h2>
<p>Offshoring growth came down from the ridiculous  30-50% per year to more down to earth 10-15%. That allowed more time to have sufficient numbers of Competent and Proficient developers. There are around 2 million ITES professional in India and even if only a small percentage can be classified as Competent and Proficient developers, you still land up with a huge number!</p>
<blockquote><p><span style="color:#008000;"><strong>No wonder the India software industry has started looking beyond &#8220;Conformance to Requirement&#8221;</strong></span></p></blockquote>
<h2>What about the expert?</h2>
<blockquote><p>The expert observes the world but trusts his inner vision. He concerns himself with the depth and not the surface, with the fruit and not the flower.</p>
<p>When expert leads, the team is hardly aware that he exists. He is content to serve as an example and not to impose his will. He doesn&#8217;t talk, he acts. When this is done, the team says, &#8220;Amazing: we did it, all by ourselves!&#8221;</p>
<p>The expert shapes events as they come. He steps out of the way and lets the design speak for itself. His workings remain a mystery, he just shows the results.</p></blockquote>
<p>This might sound familiar to you because this is an condensed and modified version of <a href="http://www.ibm.com/developerworks/rational/library/4032.html">The Tao of the Software Architect</a>.</p>
<p><a href="https://plus.google.com/115245729836417020851" rel="author">Udayan Banerjee on Google+</a></p>
<h2>Related Articles</h2>
<ul>
<li><a style="font-size:13px;line-height:19px;" href="http://media.pragprog.com/titles/ahptl/chap2.pdf">Pragmatic Thinking and Learning &#8211; Refactor Your “Wetware&#8221; (Chapter 2)</a> - by Andrew Hunt (one of the 17 original signatories of agile manifesto)</li>
<li><a style="font-size:13px;line-height:19px;" href="http://www.slideshare.net/cynthiajoffrion/dreyfus-model-of-skills-acquisition">Dreyfus Model Of Skills Acquisition</a></li>
<li><a href="http://sethgodin.typepad.com/seths_blog/2010/10/getting-smart-about-the-hierarchy-of-smart.html">Getting smart about the hierarchy of smart</a> - by Seth Godin</li>
</ul>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/setandbma.wordpress.com/3295/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/setandbma.wordpress.com/3295/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=setandbma.wordpress.com&#038;blog=3978262&#038;post=3295&#038;subd=setandbma&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://setandbma.wordpress.com/2013/02/21/dreyfus-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://2.gravatar.com/avatar/e99f60a8446205a46db50631643d5201?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Udayan</media:title>
		</media:content>

		<media:content url="http://setandbma.files.wordpress.com/2013/02/dreyfus-model.png?w=640" medium="image">
			<media:title type="html">Dreyfus Model</media:title>
		</media:content>
	</item>
	</channel>
</rss>
