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

<channel>
	<title>{codesqueeze} &#187; Software Process</title>
	<atom:link href="http://www.codesqueeze.com/category/software-process/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codesqueeze.com</link>
	<description>Ideas for building efficient developers and software</description>
	<lastBuildDate>Wed, 28 Dec 2011 16:55:01 +0000</lastBuildDate>
	
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Correct Process Guides Us (Tracer Architecture Cont.)</title>
		<link>http://www.codesqueeze.com/the-correct-process-guides-us-tracer-architecture-cont/</link>
		<comments>http://www.codesqueeze.com/the-correct-process-guides-us-tracer-architecture-cont/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 07:54:10 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Software Process]]></category>
		<category><![CDATA[Thought Stuff]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=1063</guid>
		<description><![CDATA[

Here is my big thought for the day:
The correct process implicitly guides people into correct behavior. The correct architecture forces code into the correct patterns.
A few weeks ago I wrote about how Tracer Bullet Architects show true leadership by creating clear and direct paths prior to the entire team coming aboard is probably the most [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/the-correct-process-guides-us-tracer-architecture-cont/">The Correct Process Guides Us (Tracer Architecture Cont.)</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/08/god1.jpg" alt="Futurama God" title="Futurama God" width="200" height="136" class="right"/>
</p>
<p>Here is my big thought for the day:</p>
<blockquote><p>The correct process implicitly guides people into correct behavior. The correct architecture forces code into the correct patterns.</p></blockquote>
<p>A few weeks ago I wrote about how <a href="http://www.codesqueeze.com/how-to-be-a-tracer-bullet-architect/">Tracer Bullet Architects</a> show true leadership by creating clear and direct paths prior to the entire team coming aboard is probably the most important activity of a successful project.</p>
<p>However, I would like to take this one step further and suggest that if [as a team leader] you install the most correct process people will want to participate in correct and efficient behavior.  </p>
<p>For example, when Napster was first introduced millions of people illegally downloaded music. Why? Not because they were bad people, but because they had no other mechanism for which to purchase (and own) digital copies of their favorite songs.  Apple came along with iTunes giving people the first reasonably priced and easy to purchase model which included digital ownership &#8211; and the rest is history. <strong>People want to do the right thing and will</strong> given the correct means.  </p>
<p>Building on this concept, it is possible to create project infrastructures that force developers to adhere to good practices such as <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">SOLID</a>.  Seriously&#8230;I have done it.  Some of these architectures would range from MVC/DI/IoC/Mock goodness to Tiered/Stubs/Statics/MockingIsEvil grossness, and each was a good fit given current company.  It was the architectures that enforced clean lines of responsibility, increased testability, and [as a result] increased stability.</p>
<p>Of course people can break processes, of course they can break code, but if the correct solution is in place &#8211; <strong>they have to try really hard to do the wrong thing.</strong>  If people continually are breaking process or code, then the answer is easy &#8211; you currently have the wrong solution in place.</p>
<p>Creating a zero friction environment is rarely rewarded by your peers; however, it is the most rewarding personal achievement one can accomplish.</p>
<blockquote><p>
If you do something correct, it is as if you did nothing at all. -God (as seen on Futurama)</p></blockquote>
<p><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/companies-arent-progressive-but-people-are/" rel="bookmark" title="April 6, 2009">Companies Aren&#8217;t Progressive (But People Are&#8230;)</a></li>
<li><a href="http://www.codesqueeze.com/metrics-and-weath-its-all-relative/" rel="bookmark" title="February 16, 2009">Metrics and Wealth &#8211; It&#8217;s All Relative</a></li>
<li><a href="http://www.codesqueeze.com/why-new-developers-should-consider-contracting/" rel="bookmark" title="October 22, 2008">Why New Developers Should Consider Contracting</a></li>
<li><a href="http://www.codesqueeze.com/the-blame-game-how-necessary-is-traceability/" rel="bookmark" title="July 14, 2008">The Blame Game: How Necessary Is Traceability?</a></li>
<li><a href="http://www.codesqueeze.com/dont-go-for-the-doughnut/" rel="bookmark" title="September 21, 2008">Don&#8217;t Go For The Doughnut</a></li>
</ul>
<p><!-- Similar Posts took 3.645 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/the-correct-process-guides-us-tracer-architecture-cont/">The Correct Process Guides Us (Tracer Architecture Cont.)</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fthe-correct-process-guides-us-tracer-architecture-cont%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fthe-correct-process-guides-us-tracer-architecture-cont%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/the-correct-process-guides-us-tracer-architecture-cont/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>How Many Bedrooms Did You Say?</title>
		<link>http://www.codesqueeze.com/how-many-bedrooms-did-you-say/</link>
		<comments>http://www.codesqueeze.com/how-many-bedrooms-did-you-say/#comments</comments>
		<pubDate>Mon, 04 May 2009 07:24:57 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=900</guid>
		<description><![CDATA[

As we all know, perhaps the largest communication problem between a client and the developer is the misinterpretation of requirements.  Client verbalizes what he/she wants, we believe we have the same mind&#8217;s eye of the scope and implementation of those ideas, and thus go merrily on our way down the wrong path.
For example, let&#8217;s [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/how-many-bedrooms-did-you-say/">How Many Bedrooms Did You Say?</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/05/house.gif" alt="house" title="house" width="200" height="150" class="right" />
</p>
<p>As we all know, perhaps the largest communication problem between a client and the developer is the <strong>misinterpretation of requirements</strong>.  Client verbalizes what he/she wants, we believe we have the same mind&#8217;s eye of the scope and implementation of those ideas, and thus go merrily on our way down the wrong path.</p>
<p>For example, let&#8217;s say we use the simple example of the task &#8211; &#8220;Build Me A House&#8221;.  Without a shadow of a doubt, the very first question that needs to be asked is &#8211; &#8220;How many bedrooms?&#8221;.  </p>
<p>Unfortunately, alternative (and less important) questions are prioritized ahead of the basics:</p>
<ul>
<li>What materials should we use?</li>
<li>What is your budget?</li>
<li>What is your time frame?</li>
<li>What about details X,Y,Z?</li>
</ul>
<p>Do not read me wrong, these are very important questions to ask, but they are important questions to ask after the most important question of all &#8211; assuming I don&#8217;t have all the information, <strong>roughly how big is this thing?</strong></p>
<p>About now I am assuming you have 2 outstanding questions; why prioritize the rough size question above all others and what is up with this stupid bedroom analogy? </p>
<p>Why prioritize size and complexity before questions such as budget and time? Simple, <strong>knowing the size and complexity will trigger a defensive response</strong> when the answer to all other questions are not inline with the size. For example, assume we know the budget and time frame when presented with a size or complexity that does not match, instead of being defensive and pessimistic <strong>it is common for us to become optimistic</strong> and believe we can get it done under those constraints.  This of course is a huge mistake.</p>
<p>As for the bedroom analogy, the underlying moral of the story is &#8211; <strong>find estimation cornerstones</strong>.  In houses, you make huge assumptions on roughly how large a house is based on how many bedrooms it has.  4 bedrooms? Probably 2 bathrooms, 1400-2200 ft, and a yard&#8230;.just a guess, but you see my point.</p>
<p>Without a doubt, you will be able to find those weird 2 bedroom mansions, 4 bedroom apartments, and standard suburbia 4 bedroom houses with swimming pools and marble kitchens; however, those are the exception and not the norm.  By asking how many &#8220;bedrooms&#8221; you should be able to make a huge amount of assumptions up until you get hit with a modification that breaks the norm. These &#8220;normality breakers&#8221; however are commonly very out in the open (nobody expects a house builder to come in on time and under budget if you neglected to mention the swimming pool and sun room, therefore it gets mentioned).</p>
<p>There are tons of estimation cornerstones (some which I myself am experimenting with) such as:</p>
<ul>
<li>How many Epics / Themes can I detect early on? (for those using <a href="http://www.codesqueeze.com/the-easy-way-to-writing-good-user-stories/">user stories</a>)</li>
<li>How many Roles / Persona have been mentioned?</li>
<li>How many integration points are needed?</li>
</ul>
<p>Depending on your environment, there might be a completely different set of criteria you might look at as a &#8220;bedroom&#8221;; however, I do believe that you will always be able to find at least one.  The client budget and time frame is always on the forefront of the discussion; however, those are variables that [regardless of what they say] are mutable, their need for a 3 bedroom house is not.</p>
<p> <br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/" rel="bookmark" title="March 16, 2009">Refinance Your Technical Debt Just Like Your Mortgage</a></li>
<li><a href="http://www.codesqueeze.com/why-are-you-asking-me-this-question/" rel="bookmark" title="May 26, 2009">Why Are You Asking Me This Question?</a></li>
<li><a href="http://www.codesqueeze.com/the-broken-iron-triangle-is-broken/" rel="bookmark" title="September 24, 2007">The Broken Iron Triangle Is Broken</a></li>
<li><a href="http://www.codesqueeze.com/rearranging-furniture-for-an-unfocused-client/" rel="bookmark" title="September 10, 2007">Rearranging Furniture for an Unfocused Client</a></li>
<li><a href="http://www.codesqueeze.com/the-dangers-of-git-r-done/" rel="bookmark" title="June 25, 2007">The Dangers of Git &#8216;R Done</a></li>
</ul>
<p><!-- Similar Posts took 3.677 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/how-many-bedrooms-did-you-say/">How Many Bedrooms Did You Say?</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fhow-many-bedrooms-did-you-say%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fhow-many-bedrooms-did-you-say%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/how-many-bedrooms-did-you-say/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Companies Aren&#8217;t Progressive (But People Are&#8230;)</title>
		<link>http://www.codesqueeze.com/companies-arent-progressive-but-people-are/</link>
		<comments>http://www.codesqueeze.com/companies-arent-progressive-but-people-are/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 07:49:30 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Human Factors]]></category>
		<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=779</guid>
		<description><![CDATA[

Something was recently said to me that struck a small nerve:
You know Max, one thing you don&#8217;t get is that you have worked for a ton of progressive and agile companies.  There are tons of developers stuck in crappy process and code working for companies that just will never get it&#8230;
Although it would be [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/companies-arent-progressive-but-people-are/">Companies Aren&#8217;t Progressive (But People Are&#8230;)</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/04/courage.gif" alt="courage" title="courage" width="200" height="134" class="right" />
</p>
<p>Something was recently said to me that struck a small nerve:</p>
<blockquote><p>You know Max, one thing you don&#8217;t get is that you have worked for a ton of progressive and agile companies.  There are tons of developers stuck in crappy process and code working for companies that just will never get it&#8230;</p></blockquote>
<p>Although it would be a company&#8217;s best interest to be involved in process improvements &#8211; <strong>is it really the responsibility of the company to invoke process improvements?</strong></p>
<p>A business (in a nutshell) needs to concentrate on one thing &#8211; stability.  With that realization many thing become apparent; however, for this argument hopefully it is clear that most [successful] companies will not make radical changes to the same processes and procedures that caused success in the first place.</p>
<p>Additionally, because most of the company employees are <em>&#8220;so deep in the forest, they can&#8217;t see the trees&#8221;</em> <strong>it is hard for most companies to see their inefficiencies</strong>.  Even worse, some companies have identified their weaknesses and after years of inaction towards a solution have written off the inefficiencies as the cost of doing business.</p>
<p>With no reason backed with business value all <a href="http://www.codesqueeze.com/your-software-process-sucks-resistance-to-change/">companies will actually resist change</a>.  Therefore, it is <strong><em>your</em> responsibility to start the change</strong> from within the company.</p>
<p>First off, you most understand the pain caused by the inefficiency, and therefore can best translate the relief of that pain with a given business value.  Secondly, if not you then who?  If you have enough courage to talk badly behind someones back, but can&#8217;t muster the courage to confront the problem, that makes you a coward.  <strong>Nobody is going to fight your fights but you. </strong></p>
<p>I have worked for some crappy companies, but I have never left a company without leaving it in a better place.  The company didn&#8217;t change me, I brought the change with me.</p>
<p><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/your-software-process-sucks-resistance-to-change/" rel="bookmark" title="June 14, 2007">Your Software Process Sucks : Resistance To Change</a></li>
<li><a href="http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/" rel="bookmark" title="March 16, 2009">Refinance Your Technical Debt Just Like Your Mortgage</a></li>
<li><a href="http://www.codesqueeze.com/the-correct-process-guides-us-tracer-architecture-cont/" rel="bookmark" title="August 24, 2009">The Correct Process Guides Us (Tracer Architecture Cont.)</a></li>
<li><a href="http://www.codesqueeze.com/your-software-process-sucks-the-prelude/" rel="bookmark" title="June 13, 2007">Your Software Process Sucks : The Prelude</a></li>
<li><a href="http://www.codesqueeze.com/what-fraggle-rock-can-teach-you-about-the-art-of-letting-go/" rel="bookmark" title="December 1, 2008">What Fraggle Rock Can Teach You About The Art Of Letting Go</a></li>
</ul>
<p><!-- Similar Posts took 3.751 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/companies-arent-progressive-but-people-are/">Companies Aren&#8217;t Progressive (But People Are&#8230;)</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fcompanies-arent-progressive-but-people-are%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fcompanies-arent-progressive-but-people-are%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/companies-arent-progressive-but-people-are/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>How To Correctly Sandbag Your Estimates</title>
		<link>http://www.codesqueeze.com/how-to-correctly-sandbag-your-estimates/</link>
		<comments>http://www.codesqueeze.com/how-to-correctly-sandbag-your-estimates/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 07:58:26 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=751</guid>
		<description><![CDATA[

All to often I hear this phrase during an estimation meeting:

I think it&#8217;s about 20 hours, but let&#8217;s say 24 to fudge it a little&#8230;
Estimating this way brings a false sense of security that you have allotted more time than needed.  Probably more correct, that small amount of extra hours placed on the estimation [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/how-to-correctly-sandbag-your-estimates/">How To Correctly Sandbag Your Estimates</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/03/sandbag.gif" alt="sandbag" title="sandbag" width="148" height="199" class="right" />
</p>
<p>All to often I hear this phrase during an estimation meeting:</p>
<blockquote><p>
I think it&#8217;s about 20 hours, but let&#8217;s say 24 to fudge it a little&#8230;</p></blockquote>
<p>Estimating this way brings a <strong>false sense of security</strong> that you have allotted more time than needed.  Probably more correct, that small amount of extra hours placed on the estimation only shortened the gap between an optimistic timeline and reality. So why is this a poor estimation?</p>
<h3>Single Point Estimations Stink</h3>
<p>I have said this many times, and I will say it again &#8211; single point estimations stink.  Sure you can tell the difference between a 1 hour task and a 2 hour task, but can you really tell the difference between a 20 hour task and a 24 hour task.  Probably not.</p>
<p><em><strong>Solution:</strong></em> Learn to <a href="http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/">break down your estimations</a> in smaller pieces.  For larger tasks, ensure you are estimating in ranges or with a process that implicitly includes a fudge factor such as <a href="http://www.codesqueeze.com/whiteboard-wednesday-benefits-of-point-estimation/">Planning Poker (Point Estimation)</a>.</p>
<h3>Fudge Factor Is Not Based On Fact</h3>
<p>In the example above, where did the extra 4 hours come from?  The majority of the time it is a gut feeling, but why can&#8217;t it be fact?</p>
<p><em><strong>Solution:</strong></em> Keep track of your estimations and actual development time &#8211; you can&#8217;t fix what you can&#8217;t measure.  Next, measure and understand your estimation variances.  This will give you 2 action plans:  </p>
<ol>
<li>You can correctly pad your estimates with actual mathematical variance to improve estimation confidence.</li>
<li>You can now understand and measure estimation improvement (for example, 20% variance improved to 17% variance).</li>
</ol>
<h3>Presents 100% Confidence</h3>
<p>Even with all your body language, chair shifting, ummming, and pre-warnings; <strong>most managers will take exactly what you say for gospel</strong>. That is because when you estimate in this fashion, you are presenting the posture to your manager, <em>&#8220;I&#8217;m the expert and I know it will be right around 20 hours&#8221;</em>.  </p>
<p><em><strong>Solution:</strong></em> Learn how to present your non-confidence in a manner that does not put the project responsibility on your shoulders.  Learn to speak in <a href="http://www.codesqueeze.com/never-be-responsible-for-your-estimations-again/">estimation confidence levels</a> that allows you to ask your manager, <em>&#8220;I am 90% confident I can get it done in 200 hours, but if I say 100 hours I am only 30% confident.  How much risk are <strong>YOU</strong> willing to take on?&#8221;</em></p>
<p><br/></p>
<p>Learning to sandbag your estimates is not about tossing a couple of extra hours on a task.  It is about truly understanding the things you can know, and articulating risk and concern about the things you can&#8217;t know.  This way you and your manager can pad those estimations together and on the same page.<br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/never-be-responsible-for-your-estimations-again/" rel="bookmark" title="September 3, 2007">Never Be Responsible For Your Estimations Again</a></li>
<li><a href="http://www.codesqueeze.com/mr-yuk-says-project-roadmaps-are-poisonous/" rel="bookmark" title="April 28, 2008">Mr. Yuk Says Project Roadmaps Are Poisonous</a></li>
<li><a href="http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/" rel="bookmark" title="March 9, 2009">Suck At Estimation? Use The 2 Day Crutch Method.</a></li>
<li><a href="http://www.codesqueeze.com/do-managers-prey-on-developer-pride/" rel="bookmark" title="October 10, 2007">Do Managers Prey on Developer Pride?</a></li>
<li><a href="http://www.codesqueeze.com/comfort-vs-confidence-a-thin-line-between-apathy-and-assurance/" rel="bookmark" title="March 24, 2008">Comfort vs. Confidence &#8211; A Thin Line Between Apathy and Assurance</a></li>
</ul>
<p><!-- Similar Posts took 4.083 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/how-to-correctly-sandbag-your-estimates/">How To Correctly Sandbag Your Estimates</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fhow-to-correctly-sandbag-your-estimates%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fhow-to-correctly-sandbag-your-estimates%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/how-to-correctly-sandbag-your-estimates/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Refinance Your Technical Debt Just Like Your Mortgage</title>
		<link>http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/</link>
		<comments>http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 07:25:22 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=697</guid>
		<description><![CDATA[

Technical debt always has the same 3 questions:

How much is the technical debt really costing us?
How much will it cost to pay down this debt?
How will I know it is time to pay down this debt?

If developers can not provide the evidence of business value for paying off technical debt (by answering all of these [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/">Refinance Your Technical Debt Just Like Your Mortgage</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/03/mortgage.gif" alt="mortgage" title="mortgage" class="right" />
</p>
<p><a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx">Technical debt</a> always has the same 3 questions:</p>
<ol>
<li>How much is the technical debt really costing us?</li>
<li>How much will it cost to pay down this debt?</li>
<li>How will I know it is time to pay down this debt?</li>
</ol>
<p><strong>If developers can not provide the evidence of business value</strong> for paying off technical debt (by answering all of these questions), the majority of the time <strong>project stakeholders will defer paying</strong> off technical debt. </p>
<p>So how does one answer all of these questions in a way that can be understood by a project stakeholder?  </p>
<h4>1. Keep track of time spent working around the debt</h4>
<p>First off, <strong>is it really debt?</strong>  Sure it might suck working with it&#8230;sure it might not be the new cool thing&#8230;but is it really debt?  Is it really causing you slow down and pain?  <strong>It is not debt if the pain is not measurable</strong>, and you can&#8217;t insinuate potential improvement if you neglected to measure it.</p>
<p>Measuring can be as simple as keeping a log of time spent fixing bugs in a particular area, or logging perceived extra time spent working around a crappy 3rd party library.  In short, <strong>find a way to measure your pain</strong> in a quantifiable manner that can be perceived by anyone as money and time wasted. </p>
<p><em>Answers the question: &#8220;How much is the technical debt really costing us?&#8221;</em></p>
<h4>2. Estimate how much it will take to pay off the debt</h4>
<p>Estimating how much time and effort it will take to pay off the debt is perhaps the easiest of the questions to answer.  Simply put together your battle plan for the refactor and estimate it out.  Feathers in <a href="http://www.amazon.com/gp/product/0131177052?ie=UTF8&#038;tag=codes-20&#038;linkCode=as2&#038;camp=1789&#038;creative=390957&#038;creativeASIN=0131177052">Working Effectively with Legacy Code</a> might even suggest actually doing the refactor 70% through and then throw it away just to truly understand the size and steps to support the change for real.</p>
<p><em>Answers the question: &#8220;How much will it cost to pay down this debt?&#8221;</em></p>
<h4>3. Determine a tipping point of when it makes sense to refinance (pay it off)</h4>
<p>Now that we have measured both the <strong>cost of the debt (debt interest)</strong> and the <strong>cost of the refactor (debt refinance costs)</strong>, we can frame in the answer to if it makes sense to eliminate the debt by using a house mortgage analogy.</p>
<p>When refinancing your house mortgage there is only one question, <em>&#8220;Am I going to stay in the house long enough to see a positive return on the reduction of my interest over the cost of refinancing?&#8221;. </em></p>
<p>Simply put, if it costs $3,000 to refinance and it saves you $500 a month, will you be staying in that house for at least another 6 months in order to see a return on investment?</p>
<p>The exact same goes for software: if the data access layer is causing us 60 hours a month in lost time, and it will cost 300 hours to refactor, does it make sense to pay this off right now knowing we will see a return in productivity in 5 months?</p>
<p><em>Answers the question: &#8220;How will I know it is time to pay down this debt?&#8221;</em></p>
<p>To summarize, presenting the short and long term project costs of technical debt is as easy as putting it in a simple house mortgage analogy.  However, remember that ultimately it is the stakeholder&#8217;s decision of how they wish to carry their technical debt.  Perhaps it makes more business sense to spend more money now than save money later or they emotionally are just not ready to refinance.  Make your case, show the business value, and the majority of the time you will get that signature for the refactor.<br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/why-your-manager-doesnt-like-to-throw-away-work-and-you-do/" rel="bookmark" title="January 14, 2008">Why Your Manager Doesn&#8217;t Like To Throw Away Work (And You Do)</a></li>
<li><a href="http://www.codesqueeze.com/why-are-you-asking-me-this-question/" rel="bookmark" title="May 26, 2009">Why Are You Asking Me This Question?</a></li>
<li><a href="http://www.codesqueeze.com/whiteboard-wednesday-why-team-velocity-slows-down/" rel="bookmark" title="February 4, 2009">Whiteboard Wednesday: Why Team Velocity Slows Down</a></li>
<li><a href="http://www.codesqueeze.com/how-many-bedrooms-did-you-say/" rel="bookmark" title="May 4, 2009">How Many Bedrooms Did You Say?</a></li>
<li><a href="http://www.codesqueeze.com/companies-arent-progressive-but-people-are/" rel="bookmark" title="April 6, 2009">Companies Aren&#8217;t Progressive (But People Are&#8230;)</a></li>
</ul>
<p><!-- Similar Posts took 4.180 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/">Refinance Your Technical Debt Just Like Your Mortgage</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Frefinance-your-technical-debt-just-like-your-mortgage%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Frefinance-your-technical-debt-just-like-your-mortgage%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/refinance-your-technical-debt-just-like-your-mortgage/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Suck At Estimation? Use The 2 Day Crutch Method.</title>
		<link>http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/</link>
		<comments>http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 07:10:32 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=682</guid>
		<description><![CDATA[

Perhaps the biggest problem area for the software industry is the inability to accurately estimate work.  However, this is only because people allow themselves to give out wild ass guesses on very coarse grained and undefined pieces of work.  
For example, with fairly high confidence we can tell the difference between a 1 [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/">Suck At Estimation? Use The 2 Day Crutch Method.</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/03/crutch.gif" alt="crutch" title="crutch" class="right" />
</p>
<p>Perhaps the biggest problem area for the software industry is the inability to accurately estimate work.  However, this is only because <strong>people allow themselves to give out wild ass guesses</strong> on very coarse grained and undefined pieces of work.  </p>
<p>For example, with fairly high confidence we can tell the difference between a 1 hour task and a 2 hour task, but it is improbable that someone can tell you the difference between a 34 hour task and a 35 hour task.  Here in lies the answer, <strong>better estimation comes from estimating smaller bits of work</strong>.</p>
<p>Regardless if you call them features or user stories, your <strong>chunks of work need to be broken down</strong> into eatable bite-sized pieces (smaller yields more accuracy).  So what is small enough?  The answer is the 2 Day Crutch Method. </p>
<p>There is only one rule of the 2 Day Crutch Method &#8211; <strong>break down features/stories whose estimations are bigger than 2 days</strong>.</p>
<p>This single rule causes you to practice many good habits:</p>
<ul>
<li>Forces further exploration/discussion of unknown or large features</li>
<li>Insists task break downs of lengthy known features</li>
<li>Teaches the wisdom of knowing when something is really unknown</li>
</ul>
<p>Now I am sure that people are asking why it is called the &#8220;crutch&#8221; method.  Simply put, this practice is meant to only be a crutch to aid you in your journey to being a better estimator.  Depending on your team, you may need to run this process for a year or perhaps a mere month or two.  I am not going to be as dogmatic as to suggest that all features can be broken down into parts that will take less than 2 days to accomplish; however, I can say that <strong><em>most</em> features do fit into the 2 day method</strong>.</p>
<p>Whether to get some brush up practice or to fix some real estimation problems, every team should occasionally challenge themselves with the 2 day estimation method.  I promise you will see benefits in 2 days or less or your money back guaranteed! </p>
<p><em>Update: If you are doing User Stories, this method really helps for you to frame in the differences between Themes and User Stories.  Most people understand Epics fairly easily, but get a little hung up on the granularity differences between Themes and Stories.  In short, this method might be able to flush out those differences; fits in 2 days = Story, bigger than 2 days = Theme.  </em></p>
<p><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/how-to-invest-in-your-user-stories/" rel="bookmark" title="August 25, 2008">How To INVEST In Your User Stories</a></li>
<li><a href="http://www.codesqueeze.com/how-to-correctly-sandbag-your-estimates/" rel="bookmark" title="March 30, 2009">How To Correctly Sandbag Your Estimates</a></li>
<li><a href="http://www.codesqueeze.com/the-easy-way-to-writing-good-user-stories/" rel="bookmark" title="August 20, 2008">The Easy Way to Writing Good User Stories</a></li>
<li><a href="http://www.codesqueeze.com/mr-yuk-says-project-roadmaps-are-poisonous/" rel="bookmark" title="April 28, 2008">Mr. Yuk Says Project Roadmaps Are Poisonous</a></li>
<li><a href="http://www.codesqueeze.com/tool-review-slickedit-tools/" rel="bookmark" title="June 18, 2008">Tool Review: SlickEdit Tools</a></li>
</ul>
<p><!-- Similar Posts took 4.165 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/">Suck At Estimation? Use The 2 Day Crutch Method.</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fsuck-at-estimation-use-the-2-day-crutch-method%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fsuck-at-estimation-use-the-2-day-crutch-method%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/suck-at-estimation-use-the-2-day-crutch-method/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Metrics and Wealth &#8211; It&#8217;s All Relative</title>
		<link>http://www.codesqueeze.com/metrics-and-weath-its-all-relative/</link>
		<comments>http://www.codesqueeze.com/metrics-and-weath-its-all-relative/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 07:12:02 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Quality Controls]]></category>
		<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/?p=623</guid>
		<description><![CDATA[

While in the midst of other developers, I often find myself in funny little debates about metric analysis.  Which metric values determine complexity, which determine quality, and most importantly which of these values are &#8220;correct&#8221;.
A common target of these debates is Code Coverage Percentages (case in point &#8211; Is Code Coverage Really All That [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/metrics-and-weath-its-all-relative/">Metrics and Wealth &#8211; It&#8217;s All Relative</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src="http://www.codesqueeze.com/wp-content/2009/02/turtle.gif" alt="Turtle with Rocket" title="turtle" width="250" height="136" class="right" />
</p>
<p>While in the midst of other developers, I often find myself in funny little debates about metric analysis.  Which metric values determine complexity, which determine quality, and most importantly which of these values are &#8220;correct&#8221;.</p>
<p>A common target of these debates is Code Coverage Percentages (case in point &#8211; <a href="http://www.kevinwilliampang.com/post/Is-Code-Coverage-Really-All-That-Useful.aspx">Is Code Coverage Really All That Useful</a>).  Some argue that 100% code coverage must be maintained, others argue that there is low <a href="http://www.codesqueeze.com/whiteboard-wednesday-the-roi-of-testing/">ROI in maintaining that level of testing</a>. </p>
<p>However in the end, regardless of metric and regardless of it&#8217;s value &#8211; what matters most is that metrics relation to your satisfaction.  In other words, <strong>a metric value is only as valuable as the relational context and environment in which it is applied</strong>.</p>
<p>Alright, I still feel that definition is a little to wordy, so let me explain with an analogy&#8230;</p>
<p>It has been scientifically proven numerous times that <a href="http://www.telegraph.co.uk/scienceandtechnology/science/sciencenews/3315638/Relative-wealth-%27makes-you-happier%27.html">people are happier when they are relatively wealthier</a> than their neighbors, rather than just being wealthy.  In short, a upper middle class family surrounded by middle class families is more content with their monetary status than the poorest man living on Billionare&#8217;s Avenue.  Hard to imagine I know&#8230;</p>
<p>Metric analysis needs to be perceived in the same way.  There is no &#8220;correct&#8221; value of Code Coverage Percent (nor any other metric) because <strong>it is all relative to your team and previous metric goals</strong>.  For example, a team just learning to unit test might find it a great achievement to hit 70% code coverage results, a venerated team might find shame in not achieving 100%, while another team&#8217;s goals might be transfixed on ROI and call 90% &#8220;good enough&#8221;.  All of these metric goals are perfectly correct in their own ways because they are directly proportional to the teams attempting to achieve them.</p>
<p>Just remember the fundamental reason why you started caring about the metrics in the first place, so that you can drive yourself to become healthier, wealthier, and wiser each and every day.  Focus on that and before you know it you will be the richest kid on the block.<br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/squeezed-links-november-2007/" rel="bookmark" title="November 21, 2007">Squeezed Links: November 2007</a></li>
<li><a href="http://www.codesqueeze.com/the-blame-game-how-necessary-is-traceability/" rel="bookmark" title="July 14, 2008">The Blame Game: How Necessary Is Traceability?</a></li>
<li><a href="http://www.codesqueeze.com/concentrated-codesqueeze-january-2008/" rel="bookmark" title="February 1, 2008">Concentrated Codesqueeze: January 2008</a></li>
<li><a href="http://www.codesqueeze.com/does-your-team-have-stds/" rel="bookmark" title="November 26, 2007">Does Your Team Have STDs?</a></li>
<li><a href="http://www.codesqueeze.com/3-simple-ways-to-avoid-making-code-smells/" rel="bookmark" title="July 9, 2007">3 Simple Ways To Avoid Making Code Smells</a></li>
</ul>
<p><!-- Similar Posts took 4.188 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/metrics-and-weath-its-all-relative/">Metrics and Wealth &#8211; It&#8217;s All Relative</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fmetrics-and-weath-its-all-relative%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fmetrics-and-weath-its-all-relative%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/metrics-and-weath-its-all-relative/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Estimation Is Not For Accountability (It&#8217;s For Visibility)</title>
		<link>http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/</link>
		<comments>http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 07:37:07 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Estimation]]></category>
		<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/</guid>
		<description><![CDATA[

Almost all software teams run some sort of software process whether it&#8217;s Scrum, Agile, Waterfall, or Scumerfall.  Each and every one of these processes includes a window of time (for example, Scrum uses the concepts of 1 week iterations).
A recent comment made me about fall out of my chair.  Paraphrasing:
One of the best [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/">Estimation Is Not For Accountability (It&#8217;s For Visibility)</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src='http://www.codesqueeze.com/wp-content/2008/12/glasses.gif' alt='Glasses' class="right"/>
</p>
<p>Almost all software teams run some sort of software process whether it&#8217;s Scrum, Agile, Waterfall, or Scumerfall.  Each and every one of these processes includes a window of time (for example, Scrum uses the concepts of 1 week iterations).</p>
<p>A recent comment made me about fall out of my chair.  Paraphrasing:</p>
<blockquote><p>One of the best reasons [from a management perspective] to adopt Scrum is the fact that iterations are &#8220;accountable commitments&#8221; to what the team could accomplish in a week&#8230;</p></blockquote>
<p>Screeeech.  No.  <strong>Estimations are <em>not</em> meant to be used as accountability rulers.  They are meant for visibility.</strong>  </p>
<p>But don&#8217;t we need estimations so that we can make business decisions and commitments; therefor aren&#8217;t they for accountability?  Although, the last sentence would suggest a maybe&#8230;still a resounding &#8211; no.</p>
<p>Let me make something perfectly clear to everyone reading &#8211; <strong>nobody should ever be held accountable for estimations</strong>.  Estimations are naturally shitty, wrong, and optimistic, so why even continue to do them?  Because we need the business visibility of how long software is going to take, and as a measurement stick if we can continue the current game plan or react to a different (less optimistic) reality.</p>
<p>I want to repeat that &#8211; <strong>it gives early visibility to know that our business schedules will work, or early warning they will not so we can react accordingly.</strong> </p>
<p>So you are a team manager a few weeks away from a deadline that appears is not going to be meet.  What are you to do?  Here are a few things to avoid:</p>
<ul>
<li>Ignore the early warning signs and pray for a miracle</li>
<li>Guilt or force your team into working overtime</li>
<li>Don&#8217;t start preparing upper-management that timelines may slip</li>
<li>Post Deadline: Chew out your team for not making the deadline</li>
</ul>
<p>Alright, what should you do?  Here are a few ideas:</p>
<ul>
<li>Realign management strategy</li>
<li>Bribe the team into working late with food, bonuses, or tech gizmos</li>
<li>Post Deadline: Aid your team in providing better estimations</li>
</ul>
<p>Being middle management should be one of the hardest jobs.  I have equated <a href="http://www.codesqueeze.com/the-officers-vs-sergeants-syndrome/">software management to being an Army Sergeant</a>, and how you handle the tough decisions of this scenario really draw parallel.  You don&#8217;t push hard against the officers &#8211; shit rolls down hill onto your troops.  You don&#8217;t rally the troops to accomplish the mission &#8211; the overall strategy goes to hell.  Either way, you are not a popular person but that is because you make all the hard decisions that everyone else skirts around.</p>
<p><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/quit-sweeping-known-uncertainity-under-the-rug/" rel="bookmark" title="May 2, 2008">Quit Sweeping Known Uncertainity Under The Rug</a></li>
<li><a href="http://www.codesqueeze.com/the-officers-vs-sergeants-syndrome/" rel="bookmark" title="November 19, 2007">The Officers vs. Sergeants Syndrome</a></li>
<li><a href="http://www.codesqueeze.com/the-blame-game-how-necessary-is-traceability/" rel="bookmark" title="July 14, 2008">The Blame Game: How Necessary Is Traceability?</a></li>
<li><a href="http://www.codesqueeze.com/mr-yuk-says-project-roadmaps-are-poisonous/" rel="bookmark" title="April 28, 2008">Mr. Yuk Says Project Roadmaps Are Poisonous</a></li>
<li><a href="http://www.codesqueeze.com/never-be-responsible-for-your-estimations-again/" rel="bookmark" title="September 3, 2007">Never Be Responsible For Your Estimations Again</a></li>
</ul>
<p><!-- Similar Posts took 4.193 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/">Estimation Is Not For Accountability (It&#8217;s For Visibility)</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Festimation-is-not-for-accountability-its-for-visibility%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Festimation-is-not-for-accountability-its-for-visibility%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/estimation-is-not-for-accountability-its-for-visibility/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Quit Putting Your Solution In My Feature Request!</title>
		<link>http://www.codesqueeze.com/quit-putting-your-solution-in-my-feature-request/</link>
		<comments>http://www.codesqueeze.com/quit-putting-your-solution-in-my-feature-request/#comments</comments>
		<pubDate>Mon, 24 Nov 2008 07:05:27 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Software Process]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/quit-putting-your-solution-in-my-feature-request/</guid>
		<description><![CDATA[

A timeless process anti-pattern is when customers create a feature request and completely neglect to frame it in the phrase of a problem, rather they fill in what they perceive to be the solution. I simply call these &#8211; solution requests.
So what does the anatomy of a solution request really look like?  Let&#8217;s first [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/quit-putting-your-solution-in-my-feature-request/">Quit Putting Your Solution In My Feature Request!</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src='http://www.codesqueeze.com/wp-content/2008/11/goldfish.gif' alt='Goldfish' class="right" />
</p>
<p>A timeless process anti-pattern is when customers create a feature request and completely neglect to frame it in the phrase of a problem, rather <strong>they fill in what they perceive to be the solution</strong>. I simply call these &#8211; <strong>solution requests</strong>.</p>
<p>So what does the anatomy of a solution request really look like?  Let&#8217;s first look what a good user story might look like:</p>
<blockquote><p>
As a paid customer, I can export my daily budget numbers to a spreadsheet.
</p></blockquote>
<p>Simple and small little user story.  It doesn&#8217;t exactly explain <em>why</em> the problem exists, but some user stories are only <strong>meant to facilitate communication so the developer can understand the problem better</strong>.</p>
<p>Now here is a &#8220;solution&#8221; request:</p>
<blockquote><p>
As a paid customer, I can export my daily budget numbers to a spreadsheet.  This will be accomplished by putting a button on the accounts page.  This spreadsheet will be in CSV format with column A being the Total number, and D32 being the sum of all numbers.
</p></blockquote>
<p>This user story sucks, and rightfully so for a number of reasons:</p>
<h3>Implementation Expectations</h3>
<p>Who is it that makes feature requests? CEOs, paying customers, managers&#8230;in short, people from the top.</p>
<p><strong>Solution requests are a Usability Engineers nightmare.</strong>  Expectations to accomplish the feature (with the proposed solution) leaves very little maneuvering room if you are not willing to fight for it.  Who knows usability habits better &#8211; a designer or the secretary?</p>
<h3>Lack of Problem Understanding</h3>
<p>Most user stories and feature requests are purposefully left vague as to engage the developer in conversation about the problem domain and possible solutions.  When a feature request already has a solution, developers never have the chance to learn the problem domain that they are developing for.  </p>
<p>It is necessary for quality solutions that the developer eventually becomes a domain expert in the problems that the software is trying to solve.</p>
<h3>Solution, Party of 1</h3>
<p>Assuming you have ignored my last two bullet points and have implemented the solution request.  Probability is you have a solution that only solves <em>one</em> persons needs.  </p>
<p>Without understanding the true problem, nor giving thought to how other people might benefit from the feature, you have created a feature that will probably be consumed by only one person (if that).</p>
<p><br/></p>
<p>Allowing your clients and customers to create solution requests is just another weak link in the process chain that will allow for them to overrun and manipulate your design, process, and sometimes success of a project.  Nip this anti-pattern in the butt by almost sounding Alex Trebek-ish,</p>
<blockquote><p>Can you please phrase that in a problem?</p></blockquote>
<p><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/how-to-invest-in-your-user-stories/" rel="bookmark" title="August 25, 2008">How To INVEST In Your User Stories</a></li>
<li><a href="http://www.codesqueeze.com/the-dangers-of-git-r-done/" rel="bookmark" title="June 25, 2007">The Dangers of Git &#8216;R Done</a></li>
<li><a href="http://www.codesqueeze.com/when-quality-service-affects-quality-software/" rel="bookmark" title="August 27, 2007">When Quality Service Affects Quality Software</a></li>
<li><a href="http://www.codesqueeze.com/the-easy-way-to-writing-good-user-stories/" rel="bookmark" title="August 20, 2008">The Easy Way to Writing Good User Stories</a></li>
<li><a href="http://www.codesqueeze.com/2-pennies-and-a-tootsie-roll/" rel="bookmark" title="July 19, 2007">2 Pennies and a Tootsie Roll</a></li>
</ul>
<p><!-- Similar Posts took 4.363 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/quit-putting-your-solution-in-my-feature-request/">Quit Putting Your Solution In My Feature Request!</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fquit-putting-your-solution-in-my-feature-request%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fquit-putting-your-solution-in-my-feature-request%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/quit-putting-your-solution-in-my-feature-request/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Is Product Splintering The Future Of Software?</title>
		<link>http://www.codesqueeze.com/is-product-splintering-the-future-of-software/</link>
		<comments>http://www.codesqueeze.com/is-product-splintering-the-future-of-software/#comments</comments>
		<pubDate>Mon, 20 Oct 2008 07:22:00 +0000</pubDate>
		<dc:creator>Max Pool</dc:creator>
				<category><![CDATA[Software Process]]></category>
		<category><![CDATA[Thought Stuff]]></category>

		<guid isPermaLink="false">http://www.codesqueeze.com/is-product-splintering-the-future-of-software/</guid>
		<description><![CDATA[

Recently, I read an interesting thought about how the future of all software is bloatware.  While I do agree with this, I feel the extreme holds true as well that in the future (or even now) we will be saturated with smaller niche products otherwise known as &#8211; Product Splintering.
Product Splintering is a marketing [...]<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/is-product-splintering-the-future-of-software/">Is Product Splintering The Future Of Software?</a></p>
]]></description>
			<content:encoded><![CDATA[<p class="inline">
<img src='http://www.codesqueeze.com/wp-content/2008/10/toothpaste.gif' alt='Toothpaste' class="right"/>
</p>
<p>Recently, I read an interesting thought about how <a href="http://performancing.com/future-all-software-bloatware">the future of all software is bloatware</a>.  While I do agree with this, I feel the extreme holds true as well that in the future (or even now) we will be saturated with smaller niche products otherwise known as &#8211; <strong><em>Product Splintering</em></strong>.</p>
<p>Product Splintering is <strong>a marketing term to describe when a company purposefully splits or &#8220;splinters&#8221; a product</strong> into multiple products.  You need not look any farther than your toothpaste isle to see an example of this in action.  A Mega-Does-Everything Toothpaste does not exist; instead we have whiteners, fresheners, kid friendly, and clean mint.  They have essentially made one core product and spun 10-20 unique niche products from it.</p>
<p>Why would a company do this instead of creating one really great product?  There are a number of reasons&#8230;</p>
<h3>Niche &#8220;Me&#8221; Fullfillment</h3>
<p>First and foremost with product splintering is the marketers ability to <strong>prey on the consumers want to feel &#8220;special&#8221;</strong>.  This is exactly why modern coffee shops tolerate people ordering triple-shot-grande-non-fat-dry-cappuccino (yep, that&#8217;s my order).</p>
<p>When you go niche, <strong>people feel they are getting a specialized just-for-them product</strong>.  The connection between the consumers current problem and a prominent solution increases the ability for a sale.  </p>
<p>For example, although Toothpaste X may whiten teeth better than Super Whitening Toothpaste Y, Toothpaste Y has the higher ability to sell to consumers looking for that specific attribute.  <strong>The consumer will implicitly connect more with the product willing to solve their current problem</strong> (i.e. yellow teeth). Rinse and repeat with numerous dental problems, and you have an army of products willing to solve any specific problem.</p>
<p>Software in the future may also become <strong>smaller and more specialized solving only the one or two biggest problems</strong>.</p>
<h3>Market Saturation</h3>
<p>Is it better to have one product on the shelf or ten?  You guessed it, having more products on the shelf all branded in the same fashion takes up more physical real estate on the shelf.  In turn, <strong>it takes up more of your attention and raises the probability for you to buy</strong> their product.</p>
<p>This actually happens on the internet all the time.  Think about it &#8211; is it better to own one video game store or twenty video game stores?  Bigger footprint in the search engines, bigger footprint in PPC, and a higher probability for resales even if the consumer changes stores.</p>
<h3>The New Factor</h3>
<p>People love &#8220;new&#8221; stuff, and this is why small business will always have a chance.  Is toothpaste new?  Nope.  Cars, nope.  Underwear, nope.  Yet there are plenty of &#8220;new&#8221; products coming out in those niches, some of which on nothing more than rebranded original products.</p>
<p>When we splinter products and apply different names to them, it gives us a better opportunity to remarket the old as &#8220;new&#8221;</p>
<p><br/></p>
<p>So where does all this hip, new marketing information take us?  Well, it does point exactly to the model that some Micro ISV&#8217;s are taking to publish their software solutions.  <a href="http://37signals.com/">37 Signals</a> probably being at the forefront of this niche, single solution products &#8211; but there are many many others.  How about all those XHTML splicing services such as <a href="http://www.psdgator.com">PSD Gator</a>?  One problem, one service option.  </p>
<p>Is bloatware still a problem in future software? Of course, without question.  Is product splintering an equal player in this ever growing web world. Yes&#8230;yep&#8230;you know it&#8230;you betcha&#8230;it&#8217;s a go&#8230;you get the point&#8230;. ;)</p>
<p><br/><br/><strong>Similar Posts:</strong>
<ul class="similar-posts">
<li><a href="http://www.codesqueeze.com/customer-polarizing-why-microsoft-will-always-be-a-mediocre-giant/" rel="bookmark" title="July 7, 2008">Customer Polarizing &#8211; Why Microsoft Will Always Be A Mediocre Giant</a></li>
<li><a href="http://www.codesqueeze.com/if-you-arent-the-caretaker-why-are-you-the-product-owner/" rel="bookmark" title="April 27, 2009">If You Aren&#8217;t The Caretaker, Why Are You The Product Owner?</a></li>
<li><a href="http://www.codesqueeze.com/what-your-dog-can-teach-you-about-building-teams/" rel="bookmark" title="February 11, 2008">What Your Dog Can Teach You About Building Teams</a></li>
<li><a href="http://www.codesqueeze.com/sell-yourself-with-business-benefits-and-not-geek-speak/" rel="bookmark" title="November 3, 2008">Sell Yourself With Business Benefits (And Not Geek Speak)</a></li>
<li><a href="http://www.codesqueeze.com/extra-squeezed-links-july-2007/" rel="bookmark" title="July 26, 2007">Extra Squeezed Links: July 2007</a></li>
</ul>
<p><!-- Similar Posts took 4.453 ms --></p>
<p><strong>[Advertisement]</strong> - Atlassian provides zero-friction <a href="http://www.atlassian.com/software/jira/">bug tracking</a> and <a href="http://www.atlassian.com/software/bamboo/">continuous integration</a> solutions for software development teams. Visit <a href="http://www.atlassian.com/">Atlassian</a> for free 30 day product trials. 
<hr/>
Copyright 2009 - <a href="http://www.codesqueeze.com/">{codesqueeze}</a> - <br/><br/><a href="http://www.codesqueeze.com/is-product-splintering-the-future-of-software/">Is Product Splintering The Future Of Software?</a></p>
<div class="tweetmeme_button" style="margin-right: 10px;"><a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Fwww.codesqueeze.com%2Fis-product-splintering-the-future-of-software%2F"><img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Fwww.codesqueeze.com%2Fis-product-splintering-the-future-of-software%2F" height="61" width="51" /></a></div>]]></content:encoded>
			<wfw:commentRss>http://www.codesqueeze.com/is-product-splintering-the-future-of-software/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

