<?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>The CIO Code</title>
	<atom:link href="http://ciocode.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://ciocode.com</link>
	<description>The human side of information technology governance.</description>
	<lastBuildDate>Thu, 17 Dec 2009 00:17:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='ciocode.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>The CIO Code</title>
		<link>http://ciocode.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://ciocode.com/osd.xml" title="The CIO Code" />
	<atom:link rel='hub' href='http://ciocode.com/?pushpress=hub'/>
		<item>
		<title>Two Gaps: Vision and Estimation</title>
		<link>http://ciocode.com/2009/12/16/two-gaps-vision-and-estimation/</link>
		<comments>http://ciocode.com/2009/12/16/two-gaps-vision-and-estimation/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 00:14:31 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software development principles]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=171</guid>
		<description><![CDATA[I&#8217;ve been thinking about how hard it is to align expectations between business and technical teams for awhile&#8211;like, every time someone says &#8220;exactly!&#8221; or &#8220;what were you thinking?!&#8221; when my team delivers software. I&#8217;ve been trying to come up with a model that isolates the parts: what the customer envisions, what the customer asks for, [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=171&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been thinking about how hard it is to align expectations between business and technical teams for awhile&#8211;like, every time someone says &#8220;exactly!&#8221; or &#8220;what were you thinking?!&#8221; when my team delivers software.<span id="more-171"></span></p>
<p>I&#8217;ve been trying to come up with a model that isolates the parts: what the customer envisions, what the customer asks for, and what the technical team estimates. There is a great cartoon circulating that I hope you&#8217;ve seen, with a swing seen by different stakeholders&#8230;everything from three swings on top of each other to a tire on a rope. My hope is that by isolating the dimensions of vision and requirement, we&#8217;ll be better able to manage expectations and risk. Hopefully the visuals will help those visual thinkers show how naturally we end up in different places.</p>
<p><a href="http://ciocode.files.wordpress.com/2009/12/estimation-circle1.jpg"><img class="alignnone size-full wp-image-173" title="The Vision Gap with Circular Assumptions" src="http://ciocode.files.wordpress.com/2009/12/estimation-circle1.jpg?w=420&#038;h=298" alt="An image showing requirements and vision gaps with more data points." width="420" height="298" /></a></p>
<p>So here&#8217;s how it works: The outer blue circle represents what the business wants. They have come up with a great idea that will help them and they are ready to have something done. The little black dots represent the information they share with the technical team that become requirements. They may be exhaustive and explicit in laying out the vision, but, ultimately, the data points are what are documented and reflected back to the business.</p>
<p>This is where it gets tricky. When the business sees the data points, they impart their vision onto the image and extrapolate from those points to their encompassing vision. To them, the data points mean &#8220;they got it!&#8221; If you build a system that addresses those points, we&#8217;ll be successful.</p>
<p>Meanwhile, the technical team is thinking: &#8220;OK. I&#8217;ve got four points. That&#8217;s a square.&#8221; Or what I&#8217;m calling the &#8220;Vision Gap.&#8221; The difference between what a customer is envisioning and what is going to be built for them.</p>
<p>To make matters worse, when the technical team sits down to estimate the development time for the task, they inevitably miss the mark. They can estimate all the tasks they know need to be completed, but inevitably there are challenges that can&#8217;t be anticipated. I call this the Estimation Gap. It&#8217;s just the difference between what an estimator estimates and what actually needs to happen.</p>
<p>Knowing that there is always that gap, though, teams that perform together consistently can apply metrics from prior projects to arrive at an estimation of the gap between requirements and actual work. At Heuristic Solutions, we call that the &#8220;management reserve,&#8221; which I&#8217;ve written about elsewhere. This is time and budget that probably will need to be spent to close the gap between requirements and estimations. All of that, of course, is the responsibility of the technical team. If they get that wrong, they pay for it.</p>
<p>The more problematic side, of course, is the gap between the &#8220;circular&#8221; customer vision and the &#8220;square&#8221; set of requirements. There is not much to do about that after the fact, so we have to do a lot more work on expectations up front:</p>
<ul>
<li>Make sure the business knows that it is possible to have many interpretations of the requirements and that there will be refinement along the way.</li>
<li>Make sure the business knows that they won&#8217;t get anything that isn&#8217;t in the requirements. Just because you talked about it in a meeting one time doesn&#8217;t mean it&#8217;s going to happen. If it&#8217;s not written down, it&#8217;s not going to happen.</li>
<li>Make sure the business has contingency funding of their own so that as vision is clarified, it can grow to meet their vision.</li>
</ul>
<p>The right side of the diagram shows how we close the gap when we gather more information. More time and effort will yield more data points that align with the customer vision. Tools such as use cases and wire frames provide additional data to close the gap between vision, requirements, and estimations.</p>
<p>It&#8217;s not exactly news to say that the more we invest in requirements and design up front, the more aligned we will be. That being said, there are diminishing returns to the requirements and design process. Does everything need to be designed to the most finite level? Absolutely not. In most cases, projects can tolerate differences between vision and execution. Few organizations can afford to analyze problems so thoroughly that there is no variation, and frankly, a lot of the time would be wasted.</p>
<p>What this diagram shows, I hope, is not just that we achieve greater alignment by gathering more data, but that when we choose an arbitrary cut-off point, there will be a gap. As long as we have some sense of the gap and contingency planning to handle it when we confront it, we&#8217;ll achieve the right measure of resilience to help us succeed.</p>
<p>I&#8217;ve tried another diagram with an oval to illustrate that while circles are nice and symmetrical, the other dynamic in all of this is that the gap between analysis and vision is not going to be uniform. There will be some parts of the vision that can be intuited and others that can&#8217;t. We take a risk when we need to intuit. Doing so can yield remarkable efficiencies, but can also lead to unexpected gaps. Knowing the risk, we&#8217;ll be in a position to close the gap when we need to.</p>
<p><a href="http://ciocode.files.wordpress.com/2009/12/estimation-oval.jpg"><img class="alignnone size-full wp-image-174" title="Vision Gap with Oval" src="http://ciocode.files.wordpress.com/2009/12/estimation-oval.jpg?w=420&#038;h=333" alt="Gap between vision, requirements, and estimations with ovals." width="420" height="333" /></a></p>
<p>The Vision Gap with a less consistent vision.</p>
<p>How would you draw your experience with this?</p>
<p><a href="http://ciocode.files.wordpress.com/2009/12/estimation-circle.jpg"></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/171/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/171/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/171/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=171&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/12/16/two-gaps-vision-and-estimation/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>

		<media:content url="http://ciocode.files.wordpress.com/2009/12/estimation-circle1.jpg" medium="image">
			<media:title type="html">The Vision Gap with Circular Assumptions</media:title>
		</media:content>

		<media:content url="http://ciocode.files.wordpress.com/2009/12/estimation-oval.jpg" medium="image">
			<media:title type="html">Vision Gap with Oval</media:title>
		</media:content>
	</item>
		<item>
		<title>Build or Buy: Thoughts from ASAE Tech Swap</title>
		<link>http://ciocode.com/2009/12/14/build-or-buy-thoughts-from-asae-tech-swap/</link>
		<comments>http://ciocode.com/2009/12/14/build-or-buy-thoughts-from-asae-tech-swap/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 20:17:05 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Software development principles]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=162</guid>
		<description><![CDATA[I had the pleasure of joining a few folks at the ASAE Tech Swap on 12/9 last week. The topic was on Build or Buy. I think if we talk about this again, we&#8217;ll probably be using new terms, as our exploration touched upon the very rich continuum regarding constructing new sofware vs acquiring existing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=162&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had the pleasure of joining a few folks at the ASAE Tech Swap on 12/9 last week. The topic was on Build or Buy. I think if we talk about this again, we&#8217;ll probably be using new terms, as our exploration touched upon the very rich continuum regarding constructing new sofware vs acquiring existing software. I&#8217;ve been thinking about what new words we might use. . .<span id="more-162"></span></p>
<p>A term that was new to me in this context was the word &#8220;adopt&#8221; to designate acquiring software without performing modifications to it. I like this terms because it implies you aren&#8217;t doing anything to the original. The paradigm for this acquisition strategy is to purchase something like QuickBooks that possesses a built-in business process that organizations are unlikely to modify.</p>
<p>In the continuum of adopt vs build, we identified several points:</p>
<ul>
<li>Adopt and do nothing (e.g., Microsoft Word, PowerPoint)</li>
<li>Adopt and configure to suit business practices within the application (e.g., Salesforce)</li>
<li>Adopt and configure to suit using consultants (e.g., Microsoft CRM)</li>
<li>Acquire commercial software and customize (e.g., SharePoint, Raiser&#8217;s Edge, most association management systems)</li>
<li>Acquire open source software and customize (e.g., Moogle, Drupal)</li>
<li>Build using an application server to accelerate development (e.g., Cold Fusion)</li>
<li>Build using proprietary or open source components to accelerate development (e.g., corporate class libraries)</li>
<li>Build from scratch using class libraries and design patterns (e.g., Microsoft MVC, factory patterns, AJAX libraries)</li>
<li>Build from scratch using core libraries (e.g., develop unique base patterns)</li>
</ul>
<p>These examples are archetypes which won&#8217;t hold up under the closest scrutiny. Microsoft Word, for instance, has extensive capabilities to customize and configure. That being said, I believe most people who purchase Word do so to gain its innate capabilities, not because of its ability to support macros and .NET development.</p>
<p>In working towards a set of criteria to make this choice, let&#8217;s remember the fundamental goal: what is the most cost effective means to achieve a business end?</p>
<p>The answer to that question is too big for any single entry, but here are some of the factors that can go into answering the question:</p>
<ul>
<li>At what level does the functionality you seek exist already?</li>
<li>What is the cost to implement existing functionality?</li>
<li>What is the cost to modify functionality to match yours?</li>
<li>To what extent are your business practices a strategically valuable differentiator?</li>
</ul>
<p>The answer to these questions? The process of real examination of business practices, both existing and desired, in-depth requirements analysis, attention to, but not limitations of existing skill sets, and, above all, razor-sharp focus on strategic outcomes. It&#8217;s easy to get lost in the weeds of a decision like this. Let&#8217;s just make sure when it comes to making this decision, we don&#8217;t lose sight of what we are trying to accomplish.</p>
<p>There&#8217;s more to come. . .</p>
<p>Have you developed any rules of thumb for software acquisition? Let me know your stories!</p>
<p>For more information on the ASAE Tech Swaps, check out the ASAE Calendar of Events: <a href="http://www.asaecenter.org/programsevents/calendar.cfm?CalendarID=15482&amp;navItemNumber=14535&amp;navItemNumber=24387">http://www.asaecenter.org/programsevents/calendar.cfm?CalendarID=15482&amp;navItemNumber=14535&amp;navItemNumber=24387</a></p>
<p>Also, put the ASAE 2010 Technology Conference on your calendar for February 10-12 here at the Washington Convention Center. There is more information at ASAE: <a href="http://www.asaecenter.org/ProgramsEvents/EventDetail.cfm?EventID=675695">http://www.asaecenter.org/ProgramsEvents/EventDetail.cfm?EventID=675695</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/162/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/162/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/162/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=162&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/12/14/build-or-buy-thoughts-from-asae-tech-swap/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>The miracle of software</title>
		<link>http://ciocode.com/2009/11/13/the-miracle-of-software/</link>
		<comments>http://ciocode.com/2009/11/13/the-miracle-of-software/#comments</comments>
		<pubDate>Fri, 13 Nov 2009 19:58:53 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Innovation]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Resilience]]></category>
		<category><![CDATA[Software development principles]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=157</guid>
		<description><![CDATA[So how is it that we can have statistics like: 75% percent of software ends in failure: over budget, late, or just abandoned? I haven&#8217;t dissected these statistics recently, but I think there is something wrong if we look at a phenomenon that has a 75% failure rate. If only 25% of efforts succeed, I&#8217;m [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=157&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>So how is it that we can have statistics like: 75% percent of software ends in failure: over budget, late, or just abandoned? I haven&#8217;t dissected these statistics recently, but I think there is something wrong if we look at a phenomenon that has a 75% failure rate. If only 25% of efforts succeed, I&#8217;m inclined to think software is just inherently hard. The ones that succeed are the exceptions: the miracles.<span id="more-157"></span></p>
<p>As many of you know who follow my thinking, they key to successful projects is <a href="http://ciocode.com/2009/11/05/the-resilient-project/#more-142">resilience</a>: <a href="http://ciocode.com/2009/11/05/the-resilient-project/#more-142">how well a project adapts to change</a>. The implication of this line of reasoning is that success or failure has nothing to do with the software and everything to do with how the software is built. In short, not the end, but the means to the end.</p>
<p>The reason successful software projects are miraculous is that they require such an incredible combination of factors to succeed:</p>
<ul>
<li>The idea for the software has to be good in the first place</li>
<li>The expression of the idea for the software has to be well articulated</li>
<li>The understanding of the idea from those listening has to be accurate</li>
<li>The translation of the idea into an action plan has to be successful</li>
<li>The execution of the action plan has to be successful</li>
<li>The darn code in the software has to be accurate</li>
<li>The testers figuring out whether the software is accurate need to do their job well</li>
<li>The people using the software need to know what the software is supposed to do</li>
<li>The people using the software need to use it properly</li>
<li>The problem you built software for still have the same problem when it&#8217;s done</li>
</ul>
<p>And all of this in an environment in which every day things will change: the workplace, the technology, the people building the thing, the people using it and the reality of having even more good ideas as we go (plus a lot of bad ones).</p>
<p>How hard is that?</p>
<p>Well, 25% hard.</p>
<p>Under those circumstances, I would offer that the 25% success rate is nothing short of miraculous.</p>
<p>Now don&#8217;t get me wrong. Those of us in the business are not stepping back attributing success to a higher power (although that might have a role here, as well). Instead, we are constantly working on the factors that lead to success.</p>
<p>Microsoft has an article out that has some very good insight into the characteristics of successful software teams: <a href="http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx">http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx</a>. This article is particularly useful if you are in a position of either managing a development effort or managing a vendor relationship. There are a variety of sources that can help you determine whether you are going to achieve a level of productivity and quality in the process.</p>
<p>In addition to all the factors they cite, I&#8217;m going to offer this as part of the miracle of success: successful, resilient projects need all of that <em>and</em> resilient people. People who themselves are willing to look at the situation half full and with a prospect of success (thanks to Seth on the <a href="http://www.heuristics.net">Heuristics </a>team for pointing that out).</p>
<p>So I wonder: if we think of successful projects as miraculous, will we have more of them? I&#8217;d say anecdotally, yes!</p>
<p>What do you think?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/157/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/157/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/157/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=157&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/11/13/the-miracle-of-software/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>The Resilient Project</title>
		<link>http://ciocode.com/2009/11/05/the-resilient-project/</link>
		<comments>http://ciocode.com/2009/11/05/the-resilient-project/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 23:19:38 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Ideas]]></category>
		<category><![CDATA[Innovation]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Resilience]]></category>
		<category><![CDATA[Software development principles]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=142</guid>
		<description><![CDATA[I think I&#8217;ve found the new &#8220;Paradigm Shift&#8221; for the next decade: Resilience. Many thinkers are coming to the conclusion that we simply can&#8217;t prevent bad things from happening, so let&#8217;s focus on making sure that when (not if) they happen, our work can go on. I&#8217;ve had a number of conversations with people in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=142&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I think I&#8217;ve found the new &#8220;Paradigm Shift&#8221; for the next decade: Resilience.</p>
<p>Many thinkers are coming to the conclusion that we simply can&#8217;t prevent bad things from happening, so let&#8217;s focus on making sure that when (not if) they happen, our work can go on. I&#8217;ve had a number of conversations with people in a variety of fields that suggest this is an ascendant concept. You heard it here first, folks!</p>
<p>Here are some of the disciplines that seem to be embracing resilience as a value:<span id="more-142"></span></p>
<ul>
<li>Urban planning: communities can examine how they will continue to prosper under different circumstances. Communities built around single industries (e.g., steel or manufacturing) or transportation choices (e.g., cars) may have a more difficult time adjusting to change.</li>
<li>Mental health: resilience is a trait in individuals that allows them to maintain a positive attitude even during times of stress and change. Resilience is about looking at the &#8220;glass half full&#8221; and looking forward rather than backward.</li>
<li>Responses to terrorism: if we can&#8217;t keep people from blowing themselves up (not that we should try), let&#8217;s make sure when (not if) it happens, the walls don&#8217;t crumble around us</li>
</ul>
<p>For software project and IT governance, resilience is about responding to the inevitable changes that occur in projects. As clear as our vision might be when we start an initiative, we inevitable learn something during the project that causes us to change direction. A resilient project will have the characteristics to embrace change and stay on course to core goals. I&#8217;ve already written a couple of posts about how projects can be more resilient with concepts like the <a title="Manage change with a management reserve" href="http://ciocode.com/2009/10/05/manage-change-with-a-management-reserve/">management reserve</a> and  <a title="Promise of Predictability Part I" href="http://ciocode.com/2009/09/08/the-promise-of-predictability-part-i/">Predictability as a promise (Part I)</a>  and <a title="The Promise of Predictability Part II" href="http://ciocode.com/2009/09/08/the-promise-of-predictability-part-ii/">Part II</a> that give some bounds around setting expectations for change.</p>
<p>Don&#8217;t get me wrong: let&#8217;s not stop trying to &#8220;get it right the first time.&#8221;  Resilience isn&#8217;t about promoting change! Change is always expensive. So the key becomes something like helping the business make the right decisions at the right time. Decisions made too early or too late risk loss of productivity. Good decisions made whey are needed keep us moving forward.</p>
<p>How do we make sure good decisions are made at the right time? We have a few tools like Agile methodologies that at least spread out the decisions, but, like any tool, Agile is not an answer in and of itself. Agile just tells us we don&#8217;t have to make all of our decisions up front and expect them to be fixed. Instead, iterative processes just force us to recognize that we can&#8217;t get everything right the first time, so we might as well change in small increments instead of big ones. I have a few more thoughts coming on &#8220;how to decide when to decide,&#8221; but you&#8217;ll have to wait.</p>
<p>What&#8217;s your definition of a &#8220;resilient&#8221; project?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/142/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/142/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/142/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=142&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/11/05/the-resilient-project/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>Five steps for effective system conversions</title>
		<link>http://ciocode.com/2009/10/08/how-to-think-about-system-conversions/</link>
		<comments>http://ciocode.com/2009/10/08/how-to-think-about-system-conversions/#comments</comments>
		<pubDate>Thu, 08 Oct 2009 21:45:22 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software development principles]]></category>
		<category><![CDATA[System conversion]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=133</guid>
		<description><![CDATA[Does anyone remember just how hard it was to give birth to their children? I think it&#8217;s safe to say, if our memories were accurate, we&#8217;d have a lot fewer kids. . . The same selective memory applies to system conversions. Here are some lessons learned that might help your next system conversion be a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=133&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Does anyone remember just how hard it was to give birth to their children? I think it&#8217;s safe to say, if our memories were accurate, we&#8217;d have a lot fewer kids. . . The same selective memory applies to system conversions. Here are some lessons learned that might help your next system conversion be a little less painful.<span id="more-133"></span></p>
<p>As hazardous as it is to undertake any ambitious software development project, systems conversions can be especially dangerous. On the one hand, rebuilding a system offers a promise of skipping some of the growth pains that occurred as the original system was deployed. On the other, if expectations about the new system are not managed carefully, the new system is likely to be even more problematic than the original roll-out. Even if the process is smoother than the original, people&#8217;s selective memory is likely to raise the stakes.</p>
<p> Here are some thoughts to achieve Predictability and Understanding in a system conversion.</p>
<p>Step 1: Right thinking</p>
<p>Before you take any steps, get your head on straight. The functioning system is only a representation of what the system will be. It is not the full picture of what needs to be done. One person&#8217;s experience of the system will not be the same as another&#8217;s, so you need to do as much work to understand what goes on outside the system as you would have to build the system originally. You may know what the &#8220;system does&#8221; just by looking at it, but you don&#8217;t know &#8220;how people use the system.&#8221; The principle of Understanding in this case is that it is more important to understand the people than it is to understand the system.</p>
<p>One way to think of the existing system is as a functional prototype. It provides invaluable information about system behaviors, but it does not tell you anything about human behaviors. You still need other kinds of supporting documentation to understand those human behaviors.</p>
<p>Step 2: Take the right steps</p>
<p>If you think of a system conversion as any other system development project that has the advantage of a working prototype, you have a head start on Understanding, but you are a long way from being done. You still need to complete all the other tasks you would on any other system to achieve common Understanding:</p>
<ul>
<li>Involve executive stakeholders to determine the priority of existing functionality;</li>
<li>Establish a defined list of features that will be converted;</li>
<li>Involve end users to understand how they use the system. You don&#8217;t need wireframes, but you will need use cases;</li>
<li>Make sure people understand that if a task doesn&#8217;t make it into a use case, it won&#8217;t end up in the new system; it is the end user&#8217;s responsibility to validate that the feature list is complete; and</li>
<li>Involve technical stakeholders in the requirements process, including architects, programmers, and quality assurance personnel.</li>
</ul>
<p>Step 3: Negotiate and set expectations</p>
<p>Predictability dictates that an enormous amount of details will need to be negotiated before any development commences. As requirements are being gathered, it is critical to know and manage expectations with regard to the new system. Some of the details to work out are:</p>
<ul>
<li>Does the graphical user interface need to be an exact match?</li>
<li>If the graphical user interface doesn&#8217;t need to be an exact match, are there specific areas that do?</li>
<li>Does the functionality need to be exact, or is it possible to introduce innovations to reduce the number of steps for a process?</li>
<li>If the functionality does not need to be an exact match across the board, are there specific areas that people are more sensitive to?</li>
<li>What do we do with existing system defects? Do we fix them? Do we log them for later resolution?</li>
</ul>
<p>You&#8217;ll achieve a measure of predictability if you firm up these answers before you start.</p>
<p>Step 5: Plan releases with use cases in mind</p>
<p>In planning release cycles, make sure to prioritize development efforts to anticipate dependencies. Studying use cases carefully will help avoid scenarios in which areas of functionality are completed but cannot be released because dependencies have not been completed.</p>
<p>Step 4: Proceed &#8220;Agilly&#8221;</p>
<p>As with all system development projects, expect change. The principle of Predictability is not to see the future, but to make sure we are prepared to make decisions when we need to. Make sure you have project infrastructure to identify change and adapt. Deploy these strategies to keep teams in alignment:</p>
<ul>
<li>Show converted functionality early and highlight areas of difference. Doing this early will help teams modulate expectations.</li>
<li>Build the system iteratively so that the impact of change can be assessed in small increments instead of large ones.</li>
</ul>
<p>Step 5: Plan your roll-out strategy</p>
<p>The test of Predictability will happen during the system roll-out. As with other systems, it is helpful to have a pilot group that is more savvy and tolerant to help with initial release. There are always surprises, so make sure your first audience can appreciate them.</p>
<p>Expect some additional challenges to your roll-out, including:</p>
<ul>
<li>Resistance to change: in general, change is &#8220;bad,&#8221; so expect people to be unhappy just because something is different; make sure you give your audience enough time to become familiar with the system before letting them reject it.</li>
<li>Missing functionality: Most likely, there will be areas of the new system that were missed in the original specifications. Usually, these are alternate paths, boundary conditions, or work-arounds that people have become familiar with but could articulate in their use cases. Prepare your audience for this likelihood and plan to make modifications as issues arise.</li>
<li>Defects: As well as a system can be tested, there will be defects in the system that were not present in the old system. Set expectations around this regarding the number of defects that is &#8220;acceptable.&#8221; You can use calculations regarding Mean Time to Defect to project an acceptable level of error. If fewer defects were reported than the threshold, you can be a hero. If there are more, the reaction will still be more favorable than if the expectation is &#8220;zero.&#8221;</li>
</ul>
<p>To summarize: don&#8217;t shortcut the software development lifecycle just because you have an existing system. Make use of the existing system to clarify expectations, but make sure you capture requirements like any other system. Involve your stakeholders and set good expectations, and you&#8217;ll achieve great success. Who knows: people might actually WANT to remember this one! </p>
<p>I&#8217;d love to hear from you what lessons you&#8217;ve learned to help succeed at system conversions.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/133/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/133/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/133/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=133&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/10/08/how-to-think-about-system-conversions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>Manage change with a Management Reserve</title>
		<link>http://ciocode.com/2009/10/05/manage-change-with-a-management-reserve/</link>
		<comments>http://ciocode.com/2009/10/05/manage-change-with-a-management-reserve/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 17:26:41 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Project Management]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=125</guid>
		<description><![CDATA[Projects fail because we don&#8217;t manage change well. One of the impacts of change is that new or changed needs have budgetary impact. If we have a restricted budget, we end up without the resources to accommodate change as it arises. One of the classic traps of a fixed cost contract is the difficulty we [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=125&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Projects fail because we don&#8217;t manage change well. One of the impacts of change is that new or changed needs have budgetary impact. If we have a restricted budget, we end up without the resources to accommodate change as it arises. One of the classic traps of a fixed cost contract is the difficulty we have managing change. Done right, fixed cost establishes <a href="http://ciocode.com/2009/09/01/four-principles-of-software-development/">Predictability</a> and manages risk. Thought about incorrectly, fixed cost leads us predictably into the land of the 75% project failure rates. The manage reserve will help us stay in the 25%.<span id="more-125"></span></p>
<p>The principle of a management reserve is to allocate funds to accommodate change as it arises. This is different from a buffer, in which we recognize that tasks most likely take longer than we think they will. Instead, it is a margin that we define in advance that has no purpose other than to be allocated to managing change. It allows us to have a fixed cost contract while providing a framework in which to evaluate and accommodate change.</p>
<p>I&#8217;m a big fan of fixed cost contracts: figure out how much you want to spend on something and then share the risk and reward with the people building it. The service provider bears the risk of the project costing more and the reward of completing early.</p>
<p>The problem is, by itself, a fixed-cost contract does not provide the tools to manage either risk or reward. While it provides a budgetary number, it does not provide a framework for change management.</p>
<p>The fixed-cost contracts we have worked with have tended towards one of these options:</p>
<ul>
<li>Cap with justification: we start with a number and know it won&#8217;t change unless we need it to change; or</li>
<li>Zero-sum: start with a number and as new tasks come up, chop off low-priority items</li>
</ul>
<p>Neither of these accounts for change in a manner to preserve either Predictability or Productivity.</p>
<p>Cap with Justification attempts to achieve Predictability by setting a cap on effort. The problem with this, is that if you don&#8217;t know what your true cost threshold is, you really don&#8217;t have a budget. You just have a starting point. The reality of the starting point, is that those who write the checks will see it as a budget. When change arises, you know you will need to go back to the well, and the degree to which you need to fight for new funds depends upon circumstances beyond your control. If justifying the change requires considerable impact analysis and negotiation with sponsors, you can lose significant Productivity. So Cap with Justification fails to be Predictable because you don&#8217;t know what your real cost threshold is, and it fails to be Productive because you have to spend a lot of time in change management.</p>
<p>As much as the problems with Cap with Justification have on Predictability and Productivity, the Zero-Sum model is worse. The Zero Sum model proposes that for every new item or change, something needs to be removed. The problem with this model is that under any real circumstances, you will get LESS than you originally decided you needed. Change will not just off-set previously defined functionality. You will also have wasted the time to analyze and specify the original functionality. You will lose additional functionality in the process of performing impact analysis.</p>
<p>The Solution: Management Reserve</p>
<p>With a management reserve, sponsoring organizations are able to be responsive to change. They know they have both an initial budget and a reserve, and they have the means to make decisions for an application to grow into the management reserve. Service providers make use of management reserve to make specific investments in productivity. Combined, the teams can enter into a contractual relationship with the tools to manage change without losing productivity.</p>
<p>As with most tools, the concept of a management reserve is also not a solution in and of itself. Organizations need to have robust change control models, and they need to have a means of allocating the right amount of funds to the reserve.</p>
<p>Look for more thoughts on how much management reserve to allocate and how to make decisions to allocate it to your projects.</p>
<p>How do you manage change?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/125/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/125/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/125/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=125&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/10/05/manage-change-with-a-management-reserve/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>Your fires are out&#8211;now what do you do?</title>
		<link>http://ciocode.com/2009/09/30/your-fires-are-out-now-what-do-you-do/</link>
		<comments>http://ciocode.com/2009/09/30/your-fires-are-out-now-what-do-you-do/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 18:57:57 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Metrics]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=119</guid>
		<description><![CDATA[I had a great conversation the other day with a CIO I have been working with for some time who said: &#8220;I don&#8217;t know what to do now. . .all my problems have been solved.&#8221; While she said it as a joke, as with most jokes, there is an element of truth. Most of us [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=119&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I had a great conversation the other day with a CIO I have been working with for some time who said: &#8220;I don&#8217;t know what to do now. . .all my problems have been solved.&#8221;<span id="more-119"></span></p>
<p>While she said it as a joke, as with most jokes, there is an element of truth. Most of us are so focused on solving immediate problems that if they went away, we wouldn&#8217;t know what to do.</p>
<p>So what to do when you don&#8217;t know what to do? Plan!</p>
<p>As enviable as this person&#8217;s predicament might seem, don&#8217;t be so sure that you would know what to do yourself. Without a strong framework for planning and without clear strategic objectives, we are left with a sense that we are sitting on a peak and the only option we have is to fall down.</p>
<p>So how do you develop a plan? My recommendation is to organize your goals in two categories: mission-oriented goals and effectiveness-oriented goals. Mission-oriented goals assume that you are enabling others to pursue the mission of the organization while effectiveness-oriented goals relate to your internal measures for success. I recommend thinking about these along the lines of <a href="http://ciocode.com/2009/09/01/four-principles-of-software-development/" target="_self">Predictability, Understanding, Productivity, and Quality</a>, as you can see in some of my other posts. </p>
<p>It is much easier to develop mission-oriented goals if you have a strategic plan. To some extent, this can be an intellectual exercise of breaking everything down along the mission-strategy-goal-tactic model. From there, you can meet with other departments to determine how you can support their pursuit of mission.</p>
<p>Without a strategic plan, the task can be a little trickier, but your task still involves learning what departments are trying to accomplish. Their tasks may not be clearly aligned with mission, but at least if you are aligned with them, you will assist overall organizational effectiveness.</p>
<p>Some of the criteria to incorporate are those in the &#8220;CIO Code,&#8221; which proposes that everything you do have a measurable outcome. The planning process gives you the ability to determine how you are going to measure success before you complete a task.</p>
<p>So for those of you who aspire to being able to plan, Get Ready! You&#8217;ll get there, and it won&#8217;t be easy once you are there. Just keep focused on the discipline of defining priorities and outcomes, and your plans will make sure to keep the fires out.</p>
<p>What have you found helpful when constructing a plan?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/119/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/119/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/119/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=119&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/09/30/your-fires-are-out-now-what-do-you-do/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>Emergent strategy: tactical thinking in strategic context</title>
		<link>http://ciocode.com/2009/09/22/emergent-strategy-tactical-thinking-in-strategic-context/</link>
		<comments>http://ciocode.com/2009/09/22/emergent-strategy-tactical-thinking-in-strategic-context/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 16:16:03 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Process]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=114</guid>
		<description><![CDATA[How often are you in a situation in which you can&#8217;t address the big picture because you are stuck in the weeds? You don&#8217;t have a strategic plan and you are too busy putting out fires to think about the long term. I have found one of the most effective means to keep momentum up [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=114&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>How often are you in a situation in which you can&#8217;t address the big picture because you are stuck in the weeds? You don&#8217;t have a strategic plan and you are too busy putting out fires to think about the long term. I have found one of the most effective means to keep momentum up is to have a clear sense of what is tactical and strategic. <span id="more-114"></span></p>
<p>In a business environment that shuns strategic planning, we can&#8217;t succeed by focusing solely on tactical matters. We also can&#8217;t succeed if we don&#8217;t put out the fires. By differentiating tactical and strategic matters, we can craft an &#8220;emergent&#8221; strategy that helps us address immediate concerns without losing sight of the big picture.</p>
<p>Here are some steps to help create an emergent strategy.</p>
<p>Step One: Know that you have a problem!</p>
<p>Like any 12-step program, knowing you have a problem is the only way to solve it. So know this: strategic problems never go away and if they aren&#8217;t resolved, your tactical issues won&#8217;t either.</p>
<p>Step Two: Ask the question: strategic or tactical?</p>
<p>When establishing an agenda for a meeting or defining scope for a task, determine which it is: is the outcome a solution or is the outcome clarity of purpose?</p>
<p>I&#8217;ve found these definitions helpful:</p>
<p>Tactical: This is an execution plan that has as its objective the resolution of a known issue. A is broken so let&#8217;s fix A. We&#8217;ll need to address B and C to address A, so let&#8217;s get those fixed. Tactical is all about troubleshooting and getting things done.</p>
<p>Strategic: This is the conceptual and goal-oriented conversation. This is a matter of determining why we are doing something and what criteria will guide our decision-making moving forward. This is all a process of moving from ambiguity and chaos to structure and predictability.</p>
<p>Step Three: Use a parking lot</p>
<p>Be true to your conversation: if you are trying to fix a systems error, stay focused on the error and its resolution. If, as you are examining the error, you realize that your processes led to the error or if in the course of resolving the defect you recognize a pattern, make sure you both: a) raise the strategic issue and b) don&#8217;t become distracted by it. It may be that adjusting your tactical approach to a more strategic one is feasible and it may not be, but don&#8217;t confuse the two.</p>
<p>Step Four: Schedule time to review strategic issues</p>
<p>Most of the issues you put inthe &#8220;Strategic&#8221; parking lot aren&#8217;t going to go away. Track them in a central repository and schedule a periodic meeting to review them. You&#8217;ll be amazed at how a weekly 30  minute conversation that prioritizes strategic issues can start knocking them off the list. You&#8217;ll find that you are much more likely to recognize patterns and anticipate problems with even a modicum of attention. Knowing what needs to be done and why helps turn some of the strategic initiatives into tactical projects that make a profound difference.</p>
<p>Step five: I&#8217;m stopping here! (we don&#8217;t need 12 steps, do we?)</p>
<p>One of the profound outcomes of maintaining a strategic parking lot, is that it gives you a terrific starting point from which to request additional resources. By definition, strategic issues are those whose impact will be far reaching. Knowing what they are will help you prioritize and assess impact. </p>
<p>Evaluating and prioritizing issues belongs in a separate post, but you can imagine the teasers: how does the issue relate to organizational mission? how will the issue improve <a title="Principles of software development" href="http://ciocode.com/2009/09/01/four-principles-of-software-development/" target="_self">Predictability</a>, <a title="Principles of software development" href="http://ciocode.com/2009/09/01/four-principles-of-software-development/" target="_self">Understanding</a>, <a title="Principles of software development" href="http://ciocode.com/2009/09/01/four-principles-of-software-development/" target="_self">Productivity</a>, or <a title="Principles of software development" href="http://ciocode.com/2009/09/01/four-principles-of-software-development/" target="_self">Quality</a>?</p>
<p>So, how do you craft an emergent strategic plan? If you can&#8217;t do it up front, do it as you go. You not only might make progress on your strategic goals, you might even find that strategic planning is more effective when done in the context of your real life.</p>
<p>Here&#8217;s one for you: how do you address strategy when you are buried in the day-to-day?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/114/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/114/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/114/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=114&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/09/22/emergent-strategy-tactical-thinking-in-strategic-context/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>The promise of predictability: Part II</title>
		<link>http://ciocode.com/2009/09/08/the-promise-of-predictability-part-ii/</link>
		<comments>http://ciocode.com/2009/09/08/the-promise-of-predictability-part-ii/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 21:40:42 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Governance]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software development principles]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=107</guid>
		<description><![CDATA[In my last post, I discussed the task of developing a promise and scrutinizing it. Part II deals with how to execute a promise and how to hold people accountable to the promise. When it comes to execution, the promise really comes down to this: this project will change over time; we are skilled in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=107&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>In my last post, I discussed the task of developing a promise and scrutinizing it. Part II deals with how to execute a promise and how to hold people accountable to the promise. When it comes to execution, the promise really comes down to this: this project will change over time; we are skilled in letting you know that something has changed; and we have the tools to help you adjust to the new circumstances.<span id="more-107"></span></p>
<p>Knowing that change will happen, the hardest part of managing a software project is often recognizing that a change has happened. It is so difficult to define a project carefully enough to recognize all of the details, that most often when something changes, it is invisible to all parties until the project goals are at risk. That is why so often the news of a late delivery comes late: something changed, no one said anything about it, and all of a sudden we are going to miss a deadline. This is also why models such as the Capability Maturity Model are so helpful at improving predictability. If we have a way to recognize change, we have a way of managing it.</p>
<p>Keeping a promise is more than project management, but project management is the key discipline to keep parties on a project aligned. I am a strong proponent of the Project Management Institute (PMI) Project Management Professional (PMP) certification, and insist that any project manager I work with is certified. We are aiming for predictability, after all, so it makes sense that project managers implement projects to a defined standard.</p>
<p>This is not a blog about project management, so I won&#8217;t delive into the details of each artifact of the PMI Body of Knowledge (PMBOK). However, I do want to highlight the deliverables and their objectives that have proven themselves useful at maintaining predictability.</p>
<p>In general, each of these artifacts is designed to: a) create a baseline of expectations; and b) manage the impact of changes to expectations. The artifacts I find especially helpful include:</p>
<ul>
<li>A Project Charter: this document defines an initiative so that we understand what we are trying to accomplish. The purpose of this document is to have a common reference point to the assumptions we made early in the project. Some of these are bound to change, and, if they do, the changes will need to be analyzed to determine if they have an impact on the project. Some of the details to capture are:
<ul>
<li>Objectives</li>
<li>Outcomes</li>
<li>Stakeholders</li>
<li>Sponsors</li>
<li>Budget</li>
<li>Time line</li>
<li>Risks</li>
<li>Constraints</li>
</ul>
</li>
<li>Project Plan: The purpose of this document is for people to understand the dependencies among tasks so that as change happens, we understand the implications. The purpose of this document is NOT to move bars on a Gantt chart from 0% to 100%. We know that change will happen over the course of a project. The tough part is knowing what happens to everything else if something new comes up.</li>
<li>Requirements documentation: The requirements document captures the details of what we are going to build. The key challenge is producing documentation that is illuminating for all stakeholders. If it is too technical, you&#8217;ll lose the subject matter audience; if you make it too business-oriented, you&#8217;ll miss the technical implications of the system. The approach I have found to represent the best balance among these is one of Use Cases, which provide discrete, goal-oriented, tasks for the system. I&#8217;m sure I&#8217;ll get into this more somewhere else.</li>
<li>Change management protocol: We know change is going to happen, so we need a way to raise changes and respond to them. We need to know who can provide the information to evaluate a change and we need to know the impact of the change on the whole project.</li>
<li>Frequent cross-team meetings: I am a big fan of the Agile approach to daily standups, in which the entire team convenes for 15 minutes to assess risks and obstacles. The more frequently we discuss issues of substance, the more minor corrections we can make to the project to help it achieve its objectives.</li>
</ul>
<p>There are countless other tools that can help baseline a project and manage change, but these represent some of the minimal artifacts and processes that work in any environment. Regardless of whether you are a developer or a sponsor, careful scrutiny of the tools used to manage change will be a strong indicator of project success.</p>
<p>As I mentioned in Part I, you need a good promise to execute from, but without the tools and discipline, the promise is only as good as the execution. You can be certain that when the promise is broken during execution, we are no less likely to be profoundly disappointed.</p>
<p>What tools have you found particularly useful? What have you found not to be useful?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/107/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/107/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/107/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=107&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/09/08/the-promise-of-predictability-part-ii/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
		<item>
		<title>The promise of predictability: Part I</title>
		<link>http://ciocode.com/2009/09/04/the-promise-of-predictability-part-i/</link>
		<comments>http://ciocode.com/2009/09/04/the-promise-of-predictability-part-i/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 17:32:57 +0000</pubDate>
		<dc:creator>Christopher Butcher</dc:creator>
				<category><![CDATA[Process]]></category>
		<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Software development principles]]></category>

		<guid isPermaLink="false">http://ciocode.com/?p=97</guid>
		<description><![CDATA[The whole point of delivering work is to deliver what you said you would deliver. So how do we execute to the principle of Predictability? Let&#8217;s think about it as a promise. I&#8217;ve been talking to a lot of people recently about &#8220;brand promise.&#8221; The idea being that when someone hires you to do something, they [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=97&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The whole point of delivering work is to deliver what you said you would deliver. So how do we execute to the principle of Predictability? Let&#8217;s think about it as a promise.<span id="more-97"></span></p>
<p>I&#8217;ve been talking to a lot of people recently about &#8220;brand promise.&#8221; The idea being that when someone hires you to do something, they are hiring your organization because your organization promises to do something. It&#8217;s different from a contract, because that is spelled out very carefully. Instead, the brand promise is catchier and yet, in many ways, no less binding than a contract. A brand promise is something closer to Miller Lite&#8217;s &#8220;Tastes Great, Less Filling&#8221; tag line, or Budweiser&#8217;s &#8220;Drinkability&#8221; campaign. If the product doesn&#8217;t live up to the tag line, theoretically, people stop buying the product.</p>
<p>I like the notion of a promise in the context of the principle of Predictability, because when we enter into a work agreement, all of the emotional factors of a promise enter into the equation. When we fail to deliver something according to an agreement, the reality is rarely free of emotion. People feel personally let down, disappointed, and even angry.</p>
<p>If we focus on the dynamics of a promise, we can differentiate two &#8220;points of failure:&#8221; the promise itself and the execution of the promise. Promises can fail for a variety of reasons, but it can be helpful to differentiate whether it is the initial promise that is to blame or the way the promise was acted upon. </p>
<p>Let&#8217;s look at how promises can be wrong:</p>
<ul>
<li>Bad intent: obviously there is always the possibility that when someone makes a promise to you, there is an explicit intent to mislead. My experience is that this is rare. A more common scenario is that people are so desparate to make a sale or take a job that their intention simply exceeds their knowledge or skill and overwhelms the rest of the variables.</li>
<li>Bad information: people can make a promise based on faulty information. This is much more often the case in bad vendor relationships. People make promises based on what they know, and the information they base their promise on is just inadequate to the task. Since we almost always need to make promises without all the information we need, bad information is just solved with a good &#8220;definition.&#8221;</li>
<li>Bad expertise: it is very common for people to make bad promises based on bad information not just because the information itself was bad, but because the questions asked to obtain the information were themselves flawed. If the person asking the questions doesn&#8217;t know enough to obtain the right information, the promise is doomed from the start. This also can be mitigated by &#8220;definition,&#8221; but we are less likely to see a good definition from someone without the expertise to define.</li>
<li>Bad definition: Poor definition is both a cause and a result of bad information and bad expertise. With the right expertise, you are likely to see good questions, good definitions of what is to be done, and a host of exclusions and assumptions that govern expectations. The right definition will draw attention to unknowns and risks so that as new information unfolds, expectations can be amended.</li>
</ul>
<p>So why does this matter? It matters because we want to be in relationships in which promises are kept. When evaluating a vendor, we can focus on some of the key variables that we know are going to impact their ability to deliver what they promise: Are they asking good questions? When they make a proposal, do they qualify based on their knowledge? We are almost never going to know if someone is lying to us to get our business, but by examining definitions carefully and reviewing the information that has been shared, we&#8217;ll have a much better sense of what the outcome of a project is going to be.</p>
<p>So what is the key to predictability? Start with making sure you&#8217;ve made a good promise. Then let&#8217;s move on to execution. Stay tuned for Part II.</p>
<p>What do you think?</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/ciocode.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/ciocode.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/ciocode.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/ciocode.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/ciocode.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/ciocode.wordpress.com/97/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/ciocode.wordpress.com/97/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/ciocode.wordpress.com/97/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=ciocode.com&amp;blog=5707767&amp;post=97&amp;subd=ciocode&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://ciocode.com/2009/09/04/the-promise-of-predictability-part-i/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1e2b20e50466ebe38d3bf6b8f709cd3d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Christopher</media:title>
		</media:content>
	</item>
	</channel>
</rss>
