<?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>Now here's a thought &#187; Work</title>
	<atom:link href="http://rick.measham.id.au/category/work/feed/" rel="self" type="application/rss+xml" />
	<link>http://rick.measham.id.au</link>
	<description>Random thoughts from a random brain</description>
	<lastBuildDate>Sat, 19 Sep 2009 13:21:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Geek Herding</title>
		<link>http://rick.measham.id.au/200908/geek-herding/</link>
		<comments>http://rick.measham.id.au/200908/geek-herding/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 14:31:16 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=153</guid>
		<description><![CDATA[
Forgive me reader, for I have sinned. It&#8217;s been some time since I last posted to this site.
I haven&#8217;t stopped writing, but instead have been trying to &#8217;seed&#8217; my new site with content. There&#8217;s only so many words in my head at any one time! Anyway, it&#8217;s now ready to be revealed to the world.
A [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Geek Herding" href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=image&amp;utm_campaign=launch" target="_blank"><img src="http://geek-herding.com/images/geek_herding_explorations_in_the_art_of_managing_software_developers.png" alt="Geek Herding" /></a></p>
<p>Forgive me reader, for I have sinned. It&#8217;s been some time since I last posted to this site.</p>
<p>I haven&#8217;t stopped writing, but instead have been trying to &#8217;seed&#8217; my <a href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=text&amp;utm_campaign=launch" target="_blank">new site</a> with content. There&#8217;s only so many words in my head at any one time! Anyway, it&#8217;s now ready to be revealed to the world.</p>
<p>A year and a half ago I was promoted into management at the company I work for. And then I was left to work it out for myself. Thrown in the deep end.</p>
<p>I&#8217;m a resourceful kind of guy so I managed to find many resources to help me become the best manager I could. The more I studied the topic, the more I wanted to have my say on it too. I wanted especially to talk about people management (leadership) from the &#8216;vertical&#8217; slice of Software Development. That&#8217;s what I&#8217;ve done as a career for many years, and it&#8217;s who I&#8217;m now leading. So, without further ado, I present <a href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=url&amp;utm_campaign=launch" target="_blank">http://geek-herding.com</a></p>
<p>While this blog will continue, I&#8217;m going to be restricting it to thinks that aren&#8217;t work related as I want to really push <a href="http://geek-herding.com/?utm_source=here's%2Ba%20thought&amp;utm_medium=text&amp;utm_campaign=launch" target="_blank">Geek Herding</a>.</p>
<p>I&#8217;m interested in your feedback, though if you&#8217;re not in the software development industry, or interested in leadership and people management, it might be a little bit boring.</p>
<p>On the other hand, if you&#8217;re interested in either topic, I&#8217;d love it if you:</p>
<ul>
<li>Read the articles</li>
<li>Commented on the articles</li>
<li>Promoted the articles (if you&#8217;re tweeting, please use #geekherding so I find the tweet!)</li>
</ul>
<p>Even better, I&#8217;m going to be looking for Guest Bloggers soon, so have a think if you have anything you might have to say on the topic.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200908/geek-herding/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Announcing a release day before you build</title>
		<link>http://rick.measham.id.au/200904/announcing-a-release-day-before-you-build/</link>
		<comments>http://rick.measham.id.au/200904/announcing-a-release-day-before-you-build/#comments</comments>
		<pubDate>Fri, 10 Apr 2009 07:33:23 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=137</guid>
		<description><![CDATA[When there's an idea mooted, a lot needs to be considered before going to market. But if you were to write a detailed spec for everything  --  including mockups for every screen and functional detail for every action -- without discussing the basic concept with every stake holder, you'd often waste a lot of time.]]></description>
			<content:encoded><![CDATA[<p>January 22, a boardroom somewhere:</p>
<p style="padding-left: 30px;"><strong>Marketing</strong>: I have an idea for a new product, how long will it take to build?</p>
<p style="padding-left: 30px;"><strong>Developer</strong>: We&#8217;d need a more complete spec.</p>
<p style="padding-left: 30px;"><strong>Marketing</strong>: OK, but just putting your finger in the air ..</p>
<p style="padding-left: 30px;"><strong>Developer</strong>: Maybe two weeks, so call it four.</p>
<p>January 23, in the customer newsletter:</p>
<p style="padding-left: 30px;"><strong>Marketing</strong>: Our new product will be released on Feb 28th! Huzzah!</p>
<p>Sound familiar? I&#8217;m sure this happens again and again in software development companies the world over. I&#8217;ve certainly experienced it many times.</p>
<p>The problem, of course, is made up of many issues. Here&#8217;s three obvious issues:</p>
<ol>
<li>Marketing just have an idea for a product. There&#8217;s no detailed spec. There&#8217;s no screens, no functional spec. yet they expect an estimate.</li>
<li>The developer provided an estimate without qualification</li>
<li>Despite a long history of &#8216;bad&#8217; estimates from developers, marketing believed the estimate and passed it on to customers.</li>
</ol>
<p>And here&#8217;s two more not-so-obvious, but very real issues:</p>
<ol>
<li>The estimate give by the developer is given in isolation. Even if accurate, it totally ignores existing workload.</li>
<li>A new product (or feature or enhancement) isn&#8217;t just about writing code.</li>
</ol>
<h2>Fixing the problem</h2>
<p>Let&#8217;s break the problem down into the listed issues and explore each of them.</p>
<h3>No detailed spec.</h3>
<p>When there&#8217;s an idea mooted, a lot needs to be considered before going to market. But if you were to write a detailed spec for everything  &#8211;  including mockups for every screen and functional detail for every action &#8212; without discussing the basic concept with every stake holder, you&#8217;d often waste a lot of time.</p>
<p>So the normal practice is to discuss the idea with each stake-holder to get a basic understanding of the project.</p>
<p>Imagine you rang someone to build you a pergola and you had not measured the size you wanted or considered any of the details like materials. Before you go ahead and research all that detail, you need to know if the project is even feasible. So you ring a random builder. What&#8217;s the best way to get an estimate without tying each other down to price? I like to call it the zeroes method. ie, &#8220;how many zeroes&#8221;?  Will it cost two-zeroes? $0 to $99? Or three? $100 to $999? Four? Five?</p>
<p><em>For development, I think the best question (at this stage) is what time-unit are we looking at? Is it days? Weeks? Months or Years?</em></p>
<h3>The developer gave an estimate without qualification</h3>
<p>OK, so it&#8217;s what was asked of him. And we do like to please. At first the developer doesn&#8217;t want to give an estimate. After all, he hasn&#8217;t seen the full scope. But then he figures that marketing aren&#8217;t dumb, they know that without a full scope there&#8217;s no way the estimate can be anywhere near accurate. So he caves in and thinks about the product.</p>
<p>The developer&#8217;s initial thought is &#8216;2 weeks&#8217;. But he&#8217;s aware that things never go as planned and so ups that to a month. (Note that he&#8217;s switched units .. when you hear that happen, it&#8217;s a good sign that the estimate is just a guestimate)</p>
<p>At this point the developer should have said: <em>I cannot give you any reasonable estimate that will assist with product planning without a full spec.. But I understand that you don&#8217;t want to spend the time writing a full spec if the development time isn&#8217;t feasible. From what you&#8217;ve told me *thus far*, we would be looking at weeks rather than months. That said, I&#8217;d be happy to give you a proper estimate once the full spec is clarified.</em></p>
<h3>Marketing believed the estimate</h3>
<p>This is probably the biggest mistake in this scenario. Marketing always want estimates. Developers give estimates. Development always takes longer.</p>
<p>There&#8217;s a two-fold problem here:</p>
<p>First, marketing treated the estimate as an actual estimate rather than as a finger-in-the-air estimate based on a totally inadequate solution description.</p>
<p>Second, they compound this mistake by believing the number. The developer knows that estimates are always wildly optimistic, so he says &#8220;Maybe two weeks, so make it four&#8221;. But marketing should, by now, also know that anything the developer says is wildly optimistic and say to themselves &#8220;It&#8217;s always under, so let&#8217;s make it 8&#8243;.</p>
<p><em>Once both parties have over-estimated, we now have enough information </em>to write a full spec <em>but not enough to to to market.</em></p>
<p style="text-align: center;"><em>* </em><em>* </em><em>*<br />
</em></p>
<p>Now, let&#8217;s consider those other two issues that compound the problem. The<em></em>se two issues exist even when the developer is making an educated estimate based on a fully delivered spec.</p>
<h3>The estimate is given in isolation</h3>
<p>When a developer is asked how long something will take to write, even if he has every bit of information he needs, the answer will be given in man-time, not clock-time. This means that a four-week development job will take four man-weeks. Or 20 developer-days if you prefer.</p>
<p>An estimate of four weeks only means &#8220;in four weeks time&#8221; when:</p>
<ul>
<li>he is sitting around waiting for the next project to start</li>
<li>the previous project has no outstanding bugs that will need fixing</li>
<li>he doesn&#8217;t need to provide assistance to customer service</li>
<li>he doesn&#8217;t have meetings with his manager or team or company</li>
<li>he doesn&#8217;t need to help the boss set up his new laptop</li>
<li>his brain isn&#8217;t also worrying over the global financial crisis</li>
<li>there are no public holidays and he has no annual leave booked</li>
<li>he doesn&#8217;t get sick</li>
<li>&#8230; and probably another thousand or so caveats.</li>
</ul>
<p><em>When marketing is given an estimate from a developer, they need to consider scheduling as well as the actual estimate. They need to consider that the estimate is in man-days rather than calendar days.</em></p>
<h3>A new product isn&#8217;t just code</h3>
<p>This issue has nothing to do with the developer, but has everything to do with communication between marketing and the product owner (or whatever your company calls the person who manages the entire product).</p>
<p>If a developer estimates (once given a full spec) four weeks and the scheduler says it will start in two weeks and the developer will have around 80% of his time to give to the project, then the estimated date for completion of development is in 7 weeks time.</p>
<p>But that isn&#8217;t a go-to-market date. That is the date at which the documentation team can start to prepare the new user manuals. It&#8217;s the date that customer service can begin to learn how to support the product. It&#8217;s the date that user acceptance testing can begin. It&#8217;s the date from which the accounts team can get their billing systems ready. It&#8217;s certainly not the date that the product is going live.</p>
<p>In order to estimate the go-to-market date, every one of these (and many other) tasks need to be similarly spec&#8217;d and estimated. Will user-acceptance testing take two weeks? What if there&#8217;s serious usability problems? Does the acconts department need the developers to do some extra coding in order to be able to properly bill the service? If there&#8217;s any changes to the service after UAT, what does that mean for documentation.</p>
<p>So, given all that, why is only the development team expected to estimate the time to build before there&#8217;s any sort of spec? And even after there&#8217;s a spec, why isn&#8217;t anyone else expected to talk about time estimates?</p>
<h2>Wrapping it all up</h2>
<p>Before there&#8217;s a complete spec, any estimates are finger-in-the-air. This should never be assumed, both parties need to agree on this every time:</p>
<p style="padding-left: 30px;"><em>&#8220;I&#8217;ll give you a finger-in-the-air estimate, but I need you to understand that it is no way binding or anywhere near accurate&#8221;</em></p>
<p>Give finger-in-the-air estimates as a time unit:</p>
<p style="padding-left: 30px;"><em>&#8220;Weeks rather than months&#8221;</em></p>
<p>If there must be a number, over estimate until you have every bit of detail &#8212; on both ends:</p>
<p style="padding-left: 30px;"><em>&#8220;I think two weeks, so I&#8217;ll say four&#8221;</em></p>
<p style="padding-left: 30px;"><em>&#8220;He said four, so I&#8217;ll think eight&#8221;</em></p>
<p>Agree that once there is a full spec, a tighter estimate will be given, but that it is given in isolation:</p>
<p style="padding-left: 30px;"><em>&#8220;Now I have the full spec, I&#8217;ve mapped it out to take about 12 weeks to write the code. However this is 12 weeks in isolation. Experience shows that between everything else that happens, I get the equivilent of 60% of my time I can dedicate to a single project, therefore you should expect the project to go to UAT in 20 weeks.&#8221;</em></p>
<p>Acknowledge over and over again that development isn&#8217;t the only part of the project:</p>
<p style="padding-left: 30px;"><em>&#8220;While I&#8217;m happy to give you this estimate based on the full spec, we need to agree that after I&#8217;ve finished writing it there will be an undefined amount of time required to do user acceptance testing as well as sales, support and accounts product training and anything else that needs to happen before the product goes to market.&#8221;</em></p>
<p>If I haven&#8217;t made it clear already: Never assume the other party is thinking about things in a complete and rational manner. Even if you&#8217;re &#8220;just a developer&#8221;, make a list of things that need to happen after you&#8217;ve finished, before the product is released, and ask how preparation is going for each of them. You&#8217;ll earn a lot of kudos for knowing to think about these external things as well as possibly saving yourself (and the company) a lot of grief.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200904/announcing-a-release-day-before-you-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>High Five!</title>
		<link>http://rick.measham.id.au/200902/high-five/</link>
		<comments>http://rick.measham.id.au/200902/high-five/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 23:33:35 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[Funny]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://rick.measham.id.au/?p=127</guid>
		<description><![CDATA[We hired a new guy at work a couple of years back (how time flies!) who started trying to give everyone a &#8216;high five&#8216;. It was rather strange an uncomfortable &#8212; after all we&#8217;d never had deliberate physical contact with each other before &#8212; but the intention was pure so I joined in and high-fived [...]]]></description>
			<content:encoded><![CDATA[<p>We hired <a href="http://h4c.kr/">a new guy</a> at work a couple of years back (how time flies!) who started trying to give everyone a &#8216;<a href="http://en.wikipedia.org/wiki/High_five">high five</a>&#8216;. It was rather strange an uncomfortable &#8212; after all we&#8217;d never had deliberate physical contact with each other before &#8212; but the intention was pure so I joined in and high-fived him.</p>
<p>Time has passed and now high-fiving is the norm. It&#8217;s a great way of saying &#8220;well done&#8221; or &#8220;I agree&#8221;.</p>
<p>There&#8217;s also developed a guerrilla version where someone says &#8220;High Five!&#8221; and just as you&#8217;re about to make contact they yell something like &#8220;Telstra rules!&#8221;  It&#8217;s too late. You&#8217;re committed. You find yourself &#8216;agreeing&#8217; to the absurd statement.</p>
<p>I now think that there&#8217;s not enough high-fiving in the world. High-fives cheer you up and make you feel good.</p>
<p>Obviously <em>Improv Everywhere</em> felt the same so they headed down to the escalators at a New York subway station to hand out high-fives to everyone.</p>
<a href="http://rick.measham.id.au/200902/high-five/"><em>Click here to view the embedded video.</em></a>
<p>You can read and see more of their high-five campaign over at the <a href="http://improveverywhere.com/2009/02/09/high-five-escalator/">improv everywhere blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200902/high-five/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moving Job</title>
		<link>http://rick.measham.id.au/200503/moving-job/</link>
		<comments>http://rick.measham.id.au/200503/moving-job/#comments</comments>
		<pubDate>Thu, 24 Mar 2005 03:34:04 +0000</pubDate>
		<dc:creator>RickMeasham</dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Work]]></category>

		<guid isPermaLink="false">http://wp.rick.measham.id.au/?p=5</guid>
		<description><![CDATA[Yesterday I formally resigned from my job at 3d3.com. As of April 26th I&#8217;ll be working for MailGuard, a company that does outsourced mail handling for business (they stop virii and spam getting in and out!)
The job is in the city (or just out of it really) so I&#8217;ll be back on public transport which [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I formally resigned from my job at 3d3.com. As of April 26th I&#8217;ll be working for MailGuard, a company that does outsourced mail handling for business (they stop virii and spam getting in and out!)<br />
The job is in the city (or just out of it really) so I&#8217;ll be back on public transport which is a relief.  It&#8217;s still perl development, and I might work a couple of days a week from home, so even less travel time.  That&#8217;s about all I know for now .. tell you more later.</p>
]]></content:encoded>
			<wfw:commentRss>http://rick.measham.id.au/200503/moving-job/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
