<?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>select * &#187; teamwork</title>
	<atom:link href="http://aptoma.com/select.star/category/teamwork/feed/" rel="self" type="application/rss+xml" />
	<link>http://aptoma.com/select.star</link>
	<description>web-development, and other issues we really, really care about</description>
	<lastBuildDate>Thu, 22 Apr 2010 19:53:48 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Limit Work to Capacity</title>
		<link>http://aptoma.com/select.star/2010/04/22/limit-work-to-capacity/</link>
		<comments>http://aptoma.com/select.star/2010/04/22/limit-work-to-capacity/#comments</comments>
		<pubDate>Thu, 22 Apr 2010 19:50:18 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[Monday School]]></category>
		<category><![CDATA[process]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1233</guid>
		<description><![CDATA[Hard work does not pay off. At least not if your ultimate goal is to improve at what you do. And not if what you do is quality product development.
In that case you need to build in slack for learning into the system. You want everyone to have time for sharing, improving and learning continuously, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://cheese-burger.net/"><img class="alignright size-medium wp-image-1248" title="Picture 1" src="http://aptoma.com/select.star/wp-content/uploads/2010/04/Picture-1-300x179.png" alt="" width="300" height="179" /></a><a href="http://olvemaudal.wordpress.com/2010/02/12/hard-work-does-not-pay-off/">Hard work does not pay off</a>. At least not if your ultimate goal is to improve at what you do. And not if what you do is quality product development.</p>
<p>In that case you need to build in slack for learning into the system. You want everyone to have time for sharing, improving and learning continuously, and you want to be able to come home from work with energy to pursue your goals for personal skill development even further.</p>
<p>It&#8217;s great fun to be good at what you choose to spend your life doing.</p>
<p>Since the primary raw materials in software product development are skills and intellect, rapid learning is the prime goal and the capital for product development. Fail to invest in raw materials for your business, and you&#8217;ll soon run out of stock. Don&#8217;t <em>allow</em> for time to learn, rather, <em>require</em> it.</p>
<h3>Running a system at 100% yields all sorts of problems.</h3>
<p>Symptoms include</p>
<ul>
<li>You stop talking to each other. &#8220;Sorry, can&#8217;t help, have to go do this thing that is  really urgent&#8221;</li>
<li>You start building technical debt. &#8220;If I just skip to write that test (it&#8217;s really hard to write), then I can save 2 hours today to get to the next thing I have to do.&#8221;</li>
<li>Shallow bug-fixing. &#8220;Need to fix this bug real fast, in order to get the other 4 bugs done, too! No time for digging further&#8221; Root cause analysis and regression testing get skimped on.</li>
<li>Useful, although sometimes inconclusive and somewhat directionless, discussions plainly stops happening.</li>
<li>Stress activates your lizard brain, which numbs the rational being. You are in survival mode.</li>
<li>Work gets less inspiring and fun, which slows things down. Inspiration is high-octane fuel.</li>
<li>People get exhausted, and energy-level is low during, and after work hours. You need to &#8220;relax&#8221; on Facebook at work and in front of the TV at home, instead of doing inspirational learning.</li>
</ul>
<p><a href="http://aptoma.com/select.star/wp-content/uploads/2010/04/congestion.jpg"><img class="alignnone size-full wp-image-1243" title="congestion" src="http://aptoma.com/select.star/wp-content/uploads/2010/04/congestion.jpg" alt="" width="550" height="306" /></a></p>
<p style="text-align: right;"><span style="color: #808080;">(Picture from </span><a href="http://en.wikipedia.org/wiki/File:Moscow_traffic_congestion.JPG"><span style="color: #808080;">Wikimedia commons</span></a><span style="color: #808080;">)</span></p>
<p>If you have trouble grasping the concept, picture a congested highway. If you remove a small percentage of the cars, you get a magnitude of improvement in throughput and speed. <a href="http://en.wikipedia.org/wiki/Traffic_congestion">This is a fact</a>.</p>
<p>Did you ever try to squeeze a washing machine 100% full? No clothes get cleaned. Remove 10 or 20% of the clothes, and you have a winner.</p>
<h3><strong>Don&#8217;t maximize utilization.<br />
Build in time for learning, improving and sharing.</strong></h3>
<p>If you, as we have been, find yourself in this mess. There are several ways to get out of it.</p>
<ol>
<li><strong>Say no.</strong> If you never say no, you don&#8217;t have a strategy &#8212; say no to the least important stuff. Saying no is hard, scary and extremely useful.</li>
<li><strong>If you work for a consultancy firm, give up</strong>. Incentives for maximizing utilization is too high in consultancy companies, as they get paid for &#8220;productive hours&#8221; only. Quit your job, and go to work in a product development company, or a skilled in-house team. Anything but most consultancy firms, they will cannibalize you.</li>
<li><strong>Scale up capacity to meet demand</strong>. What can I say, <a href="http://aptoma.com/career">we are hiring</a>.</li>
</ol>
<h3><strong>Quantified</strong></h3>
<p>This is no science, but if I would be forced to put some numbers on this, I&#8217;d say that:</p>
<ul>
<li>Build in approximately 20% learning/sharing time during normal work hours. Yes, that&#8217;s one whole day a week. We use it for our <a href="http://aptoma.com/select.star/category/monday-school/">monday school</a>, impulsive discussions, reading, friday meeting (our arena for general discussions on processes) and blogging, to mention some activities.</li>
<li> If you want, you can probably &#8220;work&#8221; 60 hours a week or more without any danger of burning out, but <em>only as long as</em> that time is spent balanced and having fun, learning and improving/being productive &#8212; and only if personal situation allows for it without sacrificing time spent on other important values, like your kids.</li>
<li>Don&#8217;t build overtime into your standard operating procedures. Required overtime doing &#8220;productive&#8221; work should be the rare exception, not the default.</li>
</ul>
<p>Find a sustainable pace where you are balancing learning, improving, being productive and all of the time having fun. That&#8217;s an important ingredient in the recipe for success.</p>
<p>By the way, did I mention that <a href="http://aptoma.com/career">we&#8217;re hiring</a> or that <a href="http://aptoma.com/career">we&#8217;re hiring</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/04/22/limit-work-to-capacity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Scrum, No More</title>
		<link>http://aptoma.com/select.star/2010/02/11/no-scrum-no-more/</link>
		<comments>http://aptoma.com/select.star/2010/02/11/no-scrum-no-more/#comments</comments>
		<pubDate>Wed, 10 Feb 2010 23:11:59 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[process]]></category>
		<category><![CDATA[teamwork]]></category>
		<category><![CDATA[communication]]></category>
		<category><![CDATA[demo]]></category>
		<category><![CDATA[goals]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[retrospect]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sprint]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1158</guid>
		<description><![CDATA[After listening to Olve Maudal at the Lean  Meetup in Oslo yesterday, and after reading some of his tweets today (@olvemaudal)  I realized that we never informed our readers that we are not doing  Scrum anymore. I don&#8217;t think we have for 9 months or more. We were quite  elaborate, if [...]]]></description>
			<content:encoded><![CDATA[<p>After listening to Olve Maudal at the Lean  Meetup in Oslo yesterday, and after reading some of <a id="z1-s" title="his tweets today" href="http://twitter.com/olvemaudal/status/8899445418">his tweets today</a> (@<a id="trp5" title="olvemaudal" href="http://twitter.com/olvemaudal">olvemaudal</a>)  I realized that we never informed our readers that we are not doing  Scrum anymore. I don&#8217;t think we have for 9 months or more. We were quite  elaborate, if not evangelical, about our experiments with it <a id="f_ph" title="here on  this blog" href="http://aptoma.com/select.star/?tag=scrum">here on this blog</a>, so I figured it&#8217;s over due to let you  know.</p>
<p>It&#8217;s official: <strong>We&#8217;re not doing Scrum anymore.</strong></p>
<p>I  will take the time to elaborate on why, and I&#8217;ll reflect on what we&#8217;ve  learned from our experiences.</p>
<p><a href="http://aptoma.com/select.star/wp-content/uploads/2010/02/scrum-period-overview1.jpg"><img class="alignnone size-full wp-image-1166" title="scrum-period-overview" src="http://aptoma.com/select.star/wp-content/uploads/2010/02/scrum-period-overview1.jpg" alt="" width="550" height="205" /></a></p>
<h3>Why are we not scrumming?</h3>
<p>The  shortlist:</p>
<ol>
<li><strong>Iterations were too long</strong> &#8211; It would  sometimes feel like a waterfall in miniature. Reality for most development teams is that circumstances change constantly, and developing the capacity to adapt to these changes are more important than planning iterations carefully, which is just a form of guesswork.</li>
<li><strong>Too much  overhead</strong> &#8211; Sprint planning felt a bit forced. We had to decide what  to do for days or weeks to come, and ended up with requirements churn.  Beyond a certain point during planning, we went into congestion, and  stopped caring about the details.</li>
<li><strong>Our sprints are too diverse</strong> &#8211; Sprint goals ended up  so diverse sometimes that we ended  up more often than not with the sprint goal of &#8220;<em>Finish all tasks</em>&#8221; which  was a quite uninspiring goal. (We tried very hard to create good sprint goals)</li>
<li><strong>Demos  not often enough</strong> &#8211; We need to show off the feature we just made <em>right now</em>,  not in 14 or 30 days at the demo. That is way to late for us. Demoing should  be an integral part of each feature or improvement you make. You need to  be close to, and intimate, with real users. If we had investors or any other formal  committee of sponsors that  needed to approve everything we did, we would  see the use of such &#8220;demo roundups&#8221; at regular intervals.</li>
<li><strong>Too long release  cycles</strong> &#8211; The scrum process batches a lot of changes, improvements,  bugfixes and new features into periodical releases. We are working on <a id="j2e6" title="continuous deployment" href="../2010/01/21/notes-on-continuous-deployment/">continuous deployment</a> with a  steady stream of product improvements, which allows for more predictable releases and better fail-tolerance.</li>
<li><strong>&#8220;Scrum is just the easy parts of XP&#8221;  &#8211; </strong>It&#8217;s a quote from Kent Beck, although he does not like to be quoted on that one.  This is why most are doing Scrum in combination with XP of course. I think you in many cases are  better off with XP without Scrum, but that&#8217;s another story. We&#8217;re not  doing XP in its purest form, either. Even though  XP has much stricter coding practices, XP also has its limitations. The  <a id="l.fx" title="lean startup movement" href="http://www.startuplessonslearned.com/2008/09/lean-startup.html">lean startup movement</a> (which  Kent Beck himself seems to be quite interested in) complements the  weaker parts of XP &#8212; the customer feedback part, especially in the  initial phases of product development.</li>
</ol>
<p>You might see a  pattern here: We&#8217;re still doing most, or all, scrum practices, just more  often and in smaller chunks. This brings us closer to Lean.</p>
<h3>What  did we learn from it?</h3>
<p><strong>You should have a Product Backlog</strong>, and  it should be a very simple sortable list. The emphasis should be on  keeping it short, however. A long list of features becomes an  administrative overhead. We found ourselves sifting through much of the same  tasks from sprint planning to sprint planning. Too much got captured in  the sprint backlog. We are still using product backlogs actively.</p>
<p><strong>You  should hold sprint planning meetings.</strong> The problem with the  scrum-format of it is that it has more emphasis on creating a plan up  front (i.e. the waterfall comparison), than it has on the planning  itself. If planning is a monthly activity (or bi-weekly, or whatever  your sprint length is in scrum), you end up reading your plan more than  you spend time planning. We find that planning is at its best a  continuous, on demand, activity. Do more of it, often, but in smaller  chunks, and keep less of it lying around. I will have to agree with <a id="lk75" title="the Dwight" href="http://en.wikipedia.org/wiki/Dwight_D._Eisenhower">the Dwight</a> on this one : <em>Plans are nothing;  planning is everything.</em></p>
<p><strong>Daily scrums solves a non-existing  problem</strong> &#8211; I&#8217;m sure that it is not hard to find team that would  benefit from daily scrums. If you are such a team, chances are you are  not communicating enough. We find that by hanging out on the project  IRC-channel doing continuous micro-coordination and sharing information, and by hooking up on Skype to discuss challenges and  problems on-screen <em>as they arise</em> we have nothing left to coordinate or  discuss on the daily scrums. Everyone is in the loop on what is happening.</p>
<p><strong>Retrospects  are pure beauty.</strong> Again, the problem with scrum for us is not that it is has  bad practices (it has the best of practices, actually). The problem is  that it is performed to seldom to have the desired effect. Retrospect is  not an activity, it is a mindset, and has to permeate everything you  do, and should be done on a continuous basis. Ask these questions about  every little project, task and experiment you run. What went well? What  could be better? What will I focus on improving? It&#8217;s key to learning, and learning is essential.</p>
<h3>Under what  circumstances would we consider scrum?</h3>
<p>If we ever find ourselves in a  multi-team environment with quite large teams (5-10 per team), with  sponsors that needed formal updates and demos, we would be sure to  consider both scrums and scrum of scrums.</p>
<h3><strong>So, was all our  Scrumming just a waste of time?</strong></h3>
<p>No way. It was a learning  experience.</p>
<p>Never forget this: <strong>There is no silver bullet</strong>.  You should try different stuff, be critical and analytical in the  process, ask why to just about everything, and you will learn a lot. Shed each practice that fails to materialize into concrete value for your development process. In the end, no process formalities will save you, your  diverse experience will.</p>
<h3>What will we do differently?</h3>
<p>We will  continue to draw inspiration from Scrum, Lean, XP, Lean Startup,  Customer Development, Continuous Deployment, etc. But instead of changing ourselves to  fit the process (as was much the case with our scrum-efforts), we will look at the core of their ideas, extract their  essence and see how they could apply to our existing and intuitive way  of doing things;</p>
<p><em><strong>If being a keen student of processes and  development theory has taught us only one thing, it is that we should  trust our gut feeling, our sense of what is purposeful and what is common  sense, and that most of our current practices are worth keeping, and improving. </strong></em></p>
<p>I advise you to try to improve the quality of how  your team already, and intuitively go about doing the work. Do not change the way you work entirely in an attempt to magically  achieve quality and speed. This way you can better preserve what you already got figured out, and at the same time be improving continuously.</p>
<h3>In plain words, what are we doing now?</h3>
<p>We still do a lot of the scrum practices. We just do them more often, and in smaller chunks. You might even say continuously, to some extent. We have learned to cherish planning over plans, and a retrospective mindset over bi-weekly formal retrospects. We write less plans, we take less notes. Communication flows more freely instead of formally in batches.</p>
<p>We get more done, and with increased quality, and we also have Scrum to thank for it, but definitely not only Scrum.</p>
<p>One of our biggest ongoing project nowadays is our establishment of <a href="http://aptoma.com/select.star/2010/01/21/notes-on-continuous-deployment/">Continuous Deployment</a> practices, and all the discipline that goes with such a strategy. (It requires some coordination when you have servers deployed all over Europe, as we do) You will need to optimize the entire value stream to achieve this. We&#8217;ll keep you posted on how it evolves, and the benefits our customers and we reap from it.</p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/02/11/no-scrum-no-more/feed/</wfw:commentRss>
		<slash:comments>22</slash:comments>
		</item>
		<item>
		<title>Notes on Continuous Deployment</title>
		<link>http://aptoma.com/select.star/2010/01/21/notes-on-continuous-deployment/</link>
		<comments>http://aptoma.com/select.star/2010/01/21/notes-on-continuous-deployment/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 22:00:50 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[process]]></category>
		<category><![CDATA[teamwork]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=1073</guid>
		<description><![CDATA[Scenario: A customer has a problem with your software. His questions makes you think and you get an idea for a feature improvement. A good one! Act on it.

Plan it
Code it
Test it
Commit it
Deploy it

Nothing out of the ordinary, it seems. The seemingly new thing about continuous deployment is that we remove all the waiting in [...]]]></description>
			<content:encoded><![CDATA[<p>Scenario: A customer has a problem with your software. His questions makes you think and you get an idea for a feature improvement. A good one! Act on it.</p>
<ul>
<li>Plan it</li>
<li>Code it</li>
<li>Test it</li>
<li>Commit it</li>
<li>Deploy it</li>
</ul>
<p>Nothing out of the ordinary, it seems. The seemingly new thing about continuous deployment is that we remove all the waiting in between each of these steps. That is, we don&#8217;t batch changes before to testing them. You test immediately what you just coded. You commit it. Not to a branch due for merging in a week. No, directly to trunk. And you even deploy it at once to production. Done. Clear your mind of it, enjoy, relax, spend some time doing something proactive.</p>
<p>Develop, test, commit, deploy. One feature, bug-fix or improvement at a time. That is the mantra for continuous deployment.</p>
<p>Some developers, and perhaps particularly managers, will find the idea crazy at first. Release immediately? Omigod. But frequently this sensation of safety in postponing something, is not rooted in any real benefits, and there seems to be no rational answer to the question of: why wait? Did your code ever get better during the night? Some will even argue that big feature releases is a marketing invention, invented to squeeze more money out of customers frustrated with the bugs in the current version. This practice of batching changes in releases in turn got embraced by the industry as the professional way of conducting business. I could easily add this to my list of <a href="http://aptoma.com/select.star/2010/01/03/3-major-problems-with-the-software-industry/">major problems with the software industry</a>.</p>
<p>Wouldn&#8217;t it be nice to deliver a bug-fix the same day it was reported? The same hour, even? It might just be possible if you are continuously deploying product improvements like this, kaizen-style.</p>
<h3><strong>Where does this idea come from?</strong></h3>
<p>The idea of continuous deployment comes from the lean school of thought. In the mindset of lean kanban pull systems &#8212; where you are constantly looking to remove waste and minimize your batch-sizes &#8212; grouping a lot of big software changes together in big batches and big releases makes no sense.</p>
<p>Even <a href="http://code.flickr.com/blog/2009/12/02/flipping-out/">Flickr is doing continuous deployment</a> these days.</p>
<p>The whole idea is to respond to customer &#8220;pull&#8221;. The customer needs something now. The clock starts ticking. Is the feature more useful if you wait a bit before you start coding it? No. Then start now. Is the feature better if you wait with testing after coding it? No. Then test now. Wait until tomorrow to integrate into version system? Is that better? No. Then integrate. Does thing get better if we wait to deploy that new feature? No. Then deploy it. Stop your clock. The shorter the time, the better for the customer. And better for quality, it seems. And the better for you, the coder. Unreleased code is stressful. Released, working code, is stress free. The code works. It&#8217;s proven.</p>
<blockquote><p><em>After a few iterations, our fear level was actually lower than how we used to feel after a staged release. Because we were committing less code per release, we could correlate issues to a release with certainty. (From <a href="http://www.startuplessonslearned.com/2010/01/case-study-continuous-deployment-makes.html">Case Study: Continuous deployment makes releases non-events</a>)</em></p></blockquote>
<p>Bugs that are not discoverable in testing are easier to find and fix if you released only one feature, than if you batched a months worth of changes together in one big bang release. Or so the lean school of thought states. I agree. You would have written the code hours ago, and probably say &#8216;a-ha!&#8217; the second you hear about it. 20 minutes later, a bug-fix is released. Why wait?</p>
<p><strong>A few resources on lean from Amazon:</strong></p>
<ul>
<li><a href="http://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783">Software Development: An Agile Toolkit</a></li>
<li><a href="http://www.amazon.com/Implementing-Lean-Software-Development-Concept/dp/0321437381/ref=pd_bxgy_b_img_b">Implementing Lean Software Development: From Concept to Cash</a></li>
<li><a href="http://www.amazon.com/Lean-Thinking-Corporation-Revised-Updated/dp/0743249275/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1264106246&amp;sr=1-1">Lean Thinking: Banish Waste and Create Wealth in Your Corporation</a></li>
<li><a href="http://www.amazon.com/Toyota-Way-Jeffrey-Liker/dp/0071392319">The Toyota Way</a></li>
</ul>
<h3>What does it take?</h3>
<p>Not surprisingly, continuous deployment requires a high level of team discipline. No goofing off and no more fixing everything <em>mañana</em> in testing. Practices such as <a href="http://www.shmula.com/987/jeff-bezos-5-why-exercise-root-cause-analysis-cause-and-effect-ishikawa-lean-thinking-six-sigma">5 Why root cause analysis</a>, extensive testing and automation will be required. But it will all lead you to better quality and higher iteration speed. <a href="http://aptoma.com/select.star/2010/01/08/quality-and-speed-a-primer-in-team-design/">Speed and quality</a>, it is all related.</p>
<p>Eric Ries writes on O&#8217;Reilly Radar about &#8220;<a href="http://radar.oreilly.com/2009/03/continuous-deployment-5-eas.html">Continuous Deployment in 5 easy steps</a>&#8220;. Eric Ries has gotten a lot of traction with his <a href="http://www.startuplessonslearned.com/2008/09/lean-startup.html">Lean Startup movement</a> lately. And you can follow his thoughts and reports on personal experience on continuous deployment on his blog <a href="http://www.startuplessonslearned.com/">http://www.startuplessonslearned.com/</a></p>
<h3>Look ahead</h3>
<p>Will we pursue this issue of continuous deployment any further? In the name of delivering a high quality experience to our customers and users now, when they still need it: <em>yes we will.</em></p>
<p>If you will join us in this, please follow <a href="http://feeds.feedburner.com/aptoma/selectstar">this blog on RSS</a> or follow <a href="http://twitter.com/aptoma">the company</a> or <a href="http://twitter.com/geirber">the author</a> on twitter. If you digg it, then <a href="http://digg.com/programming/Notes_on_Continuous_Deployment">digg it</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/01/21/notes-on-continuous-deployment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Quality and speed. A primer in team design.</title>
		<link>http://aptoma.com/select.star/2010/01/08/quality-and-speed-a-primer-in-team-design/</link>
		<comments>http://aptoma.com/select.star/2010/01/08/quality-and-speed-a-primer-in-team-design/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 15:00:34 +0000</pubDate>
		<dc:creator>Geir Berset</dc:creator>
				<category><![CDATA[teamwork]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[speed]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://aptoma.com/select.star/?p=970</guid>
		<description><![CDATA[How you design your team has a great deal to say for the speed and quality of the resulting work the team will do.

Speed
The ultimate ideal for speed is a one-man show.
There&#8217;s this one guy doing everything in the project. He is competent in engineering practices such as software design, scaling and testing, and he [...]]]></description>
			<content:encoded><![CDATA[<p>How you design your team has a great deal to say for the speed and quality of the resulting work the team will do.</p>
<p><img class="size-full wp-image-1035 alignnone" title="Leading the Race" src="http://aptoma.com/select.star/wp-content/uploads/2010/01/racecar.jpg" alt="" width="560" height="222" /></p>
<h3>Speed</h3>
<p>The ultimate ideal for speed is a one-man show.</p>
<p>There&#8217;s this one guy doing everything in the project. He is competent in engineering practices such as software design, scaling and testing, and he excels in design, user experience and what not.</p>
<p>When he has an idea, he considers it. He weighs it back and forth. Then a decision is made, right there on the spot. No waiting, no straying, no nothing &#8212; just an idea, wham bam, a decision. All while taking a shower or having a cup of coffee. Soon he&#8217;s back at the keyboard implementing it, testing it, committing it, deploying it.</p>
<p>The next thing you know users are using it, providing their feedback and insight.</p>
<p>Did you notice the lack of all-day design committees (probably reaching no consensus, scheduling follow-up meetings the next week). Notice the lack of a board of directors that takes weeks to assemble into one room. Notice the lack of calling, facilitating and planning endless project-meetings. No extensive change processes. No writing frequent status reports. No large specifications documents needed to keep in sync for review and approval, there is no handing over documentation between <em>the design phase</em> and the <em>implementation phase</em>.</p>
<p>With the one-man show, it&#8217;s just <em>wham bam thank you ma&#8217;m</em>. It&#8217;s like a ninja &#8212; the ultimate warrior mastering all needed disciplines needed to win the war, and he&#8217;s calling the shots faster than you can say <em>cheeseburger.</em></p>
<p>&#8211; Cheese (I chopped your head of) burger.<em></em></p>
<p><em><img class="alignnone size-full wp-image-1037" title="rollsroyce" src="http://aptoma.com/select.star/wp-content/uploads/2010/01/rollsroyce.jpg" alt="" width="560" height="179" /><br />
</em></p>
<h3><strong>Quality</strong></h3>
<p>But say the ultimate goal is quality, not speed.<strong><br />
</strong></p>
<p>The ultimate ideal for quality is hordes of different specialists working the project. They work in teams, or they might even separated into entire departments or companies dedicated to one profession each. One of these teams consists of the best designers the world has to offer. Another team has the best programmers and there&#8217;s a team of the best usability experts in the field.</p>
<p>At the start of the project all sit together until everyone agrees what problem we are solving, and how we want to solve it. If new challenges arise underway, they will gather to discuss and to agree how to adapt.</p>
<p>We start the project, and we are passing the project from team to team, giving each of them the time they want, and do not interrupt them until they&#8217;re done. They will ask for your input when they need it.</p>
<p>When they are finished, you should have the best quality money can buy, shouldn&#8217;t you? After all they had all the time in the world, and they were not interrupted.</p>
<h3><strong>Speed or Quality?</strong></h3>
<p>Now, all you have to do is choose, will you need <em>speed </em>or will you need<em> quality</em> in your particular project? Choose your strategy from the two outlined above thereafter. Unfortunately, it&#8217;s not that easy. Or, rather: luckily there&#8217;s more to it.</p>
<h3>The problem with speed</h3>
<p>With the one man show, you are very exposed to obtaining one or more crappy qualities on your software product. Your guy will have his strenghts, and there is bound to be weaknesses. So you end up with the best user interface, but a crappy test-suite making the software unmaintainable. Or perhaps you have a delightful backend, but a user interface that sucks. Or maybe your ninja is so anal about every quality that he is failing to build up speed in the first place.</p>
<p>It just does not scale, and you are very exposed to this individual&#8217;s priorities.</p>
<p>Ultimately the lack of tests, the poor scalability or the increasing complexity will stop the project dead in its tracks. So much for the ultimate speed ideal. It was fun while it lasted, but it did not last. Project stops. Try again.</p>
<h3>The problem with quality</h3>
<p>OK, so you chose the smart path and aimed for quality. You landed the big budget and told everyone to do their very best, and gave them all the time in the world.</p>
<p>I&#8217;m sorry to report that problems seems to pile up for these kind of teams as well.</p>
<p>So your user experience department spends a week, a month, two months, or whatever time it takes to craft the best user experience possible for the problem they are solving. Then your design department spends a week, a month, two months, or whatever time it takes to create the best design of their life. They hand it over to engineering, and, as they go off to win a design award, the engineers have a go at fulfilling all the promising features that the UX-team wire-framed now fitted with the award winning design. They spend a week, a month, two months or whatever it takes to create the very best implementation. Their algorithms are featured in next years text-books for the university students.</p>
<p>Only now the solution solves yesterdays, yestermonths or even yesteryears problems.</p>
<p><strong>The core problem with this quality approach:</strong><strong> </strong>While each of your teams were busy creating the best user experience, the best design, the best algorithms, someone else were busy making the most accurate solution for the problem.</p>
<p>And as if that wasn&#8217;t enough, they were adapting to the problem as it changed in character. The problem always does that. Change, that is. At least in the field of software product development.</p>
<p>No problem, you&#8217;re thinking! Let&#8217;s just pass the ball back to UX, on to design and then back to engineering. That will show them!, in just 1 month or 2months or n months time, that is.</p>
<p>Oops, and there&#8217;s that change of problem to solve again. Darn it. Your project is behind, and your award winning design and algorithm are not solving the right problem. Quality wasted.</p>
<p>Turns out that time available and uninterrupted focus in each discipline is far from the only factors which affect the total quality of the project.</p>
<p><strong>Solution accuracy is also a quality. </strong>Too often forgotten, but probably among the most important ones.</p>
<h3>The solution lies in team design</h3>
<p>In order to realize the solution, you will first have to buy into the assertion that:</p>
<p><strong>You need quality to achieve speed, and you need speed to achieve quality.</strong></p>
<p>This means that you should not choose either speed or quality. You should aim for both, as they tend reinforce one another. It might feel counter intuitive or even paradoxical, but it holds out.</p>
<p>The team design solution you are looking for draws inspiration from both worlds: the overly optimistic one man show (the ninja) and the bureaucratic silo process with a lot of specialists in their own departments passing the project from silo to silo in total isolation from one another.</p>
<p>You need speed <em>and</em> you need quality.</p>
<p><strong>It&#8217;s really quite simple to explain (and very hard to execute)</strong></p>
<p>You need one guy calling the shots, and you need specialists backing up and implementing in quality what he dictates. They all need to interact in a cross functional environment and they also need time to dedicate themselves to their specialties, creating price-worthy work within their profession.</p>
<p>You need to <em>strike the fine balance</em> in your team design to get the speed of cross functional teams, combined with the qualities of the isolated teams. Your continued efforts to ensure both will ensure that these two disciplines reinforce one another to achieve the best quality software you can produce.</p>
<blockquote><p><em>&#8220;Accept and embrace the risks, even plan how to mitigate them, but don&#8217;t  avoid them.&#8221;</em></p></blockquote>
<h4>There are, of course, loads of challenges.</h4>
<ol>
<li>Why should the teams of specialists trust the chief engineer&#8217;s decisions, and thus back his ideas with a 100% commitment and enthusiasm?
<ul>
<li>The centralized decision-maker will have to be a respected individual, an individual in which all team members place their trust. (Challenge: These individuals are hard to come by, and they have to invest a lot of energy into understanding everything about all parts of the project)</li>
</ul>
</li>
<li>How will the chief engineer be able to know all about everything in the project?
<ul>
<li>Do not underestimate the capacity of man, given the opportunity to focus. The chief engineer will focus on two things : knowing everything about the project, and developing a deep relationship and understanding of the problem to solve (i.e. getting intimate with the customer group). He makes it happen through this focus.</li>
<li>Also, he must be wise and humble. He must be so humble as to pull information from specialists whenever it is needed to reach the best possible decision for the project. Just as much as he knows where to get all the information he needs &#8212; he does not himself possess it. He is trusted to do this, and his trust among his peers gets strengthened all the more when actually doing it.</li>
</ul>
</li>
<li>What if the chief engineer is hit by a bus?
<ul>
<li>A very common question from concerned prospects. The truth is that unless the chief engineer has had a brilliant protege at his side all this time that can step in immediately and take over, your development process will grind to a halt. At least for some time. Consider the alternative for a moment, before gasping in repulsion. Your alternative is a process similar to <em>design by committee (a lot of people involved in every project decision), </em>in which case your development process will grind to a halt from day one. Surely and you will be safeguarded from loosing momentum, but it&#8217;s not worth is when the solution is to never really building any in the first place. And that&#8217;s just not a smart strategy. Accept and embrace the risks, even plan how to mitigate them, but don&#8217;t avoid them.</li>
</ul>
</li>
</ol>
<p>There are surely more challenges with this approach than my shortlist above, and you&#8217;ll have to develop the capacity to deal with them. Nobody said this would be easy. I just asserted that it will be the right thing to do. And it will. Master this, and it will make you strong, fast and of high quality.</p>
<h3>Summary: The solution in a simple list</h3>
<p>You know you love lists. <em>I know you love lists.</em> That&#8217;s why I&#8217;m willing to oversimplify the answer to this complex problem, and state it in a few simple bullet points below. Be sure, however, that you set out to absorb these ideas beyond this list, and follow up on the recommended reading, in order to make your team design better and better with time. Kaizen.</p>
<ol>
<li><strong>Keep decision making centralized</strong> at a wise, trusted, experienced and respected source.</li>
<li><strong>Ensure a steady flow of cross-functional communication</strong> between specialist teams to keep everyone aligned towards the ultimate goal of creating the best overall solution for the problem &#8212; not just the best design or algorithm in isolation.</li>
<li><strong>Ensure that each professional discipline has enough isolated time</strong> so they are able to produce work they are proud of.</li>
</ol>
<h3>Am I making this up? (AKA: References)</h3>
<p>The concept has been tried and tested not only by us, but in larger scale by Lean inventor Toyota (their chief engineer role), by Gore (the Gore-tex manufacturer) who refuse to scale beyond 150 people per factory in order to keep it small enough for one guy to pull all the threads and have direct contact with everyone involved.</p>
<p>Toyota relies on the chief engineer role in every new product development process. Their future existence relies (more and more) on their ability to come up with new designs that accurately address the needs of the marketplace, and just for this reason they have the chief engineering role, which also makes them one of the best in this field. The others are following in their tracks.</p>
<p>Both of these companies has enjoyed great success as a result of their strategies.</p>
<ul>
<li><a href="http://www.amazon.com/Toyota-Way-Jeffrey-Liker/dp/0071392319">The Toyota Way</a> by Jeffrey Liker address the chief engineering role.</li>
<li>The <a href="http://www.amazon.com/s/ref=nb_ss?url=search-alias%3Daps&amp;field-keywords=poppendieck+lean&amp;x=0&amp;y=0">Poppendieck series in Lean </a>comes highly recommended if you find these theories intriguing. (<a href="http://www.youtube.com/watch?v=HOJX91SpcMo">Wisdom seldom come wrapped as a 20 year old kid in a suit</a>)</li>
<li>Also you can read about &#8220;the genius of the and&#8221; in the much quoted book <a href="http://www.amazon.com/Built-Last-Successful-Visionary-Essentials/dp/0060516402">Built To Last</a>.</li>
</ul>
<p>There is no silver bullet. You&#8217;ll need to experiment with team design to master it. My best advice would be, that you give it a shot in the small, and in the process you should read the references provided. See how it goes, revise, celebrate your ability to spot your failures, acknowledge your victories and try again.</p>
<p>Repeat indefinitely.</p>
<p>If you like this post and want more, <a href="http://feeds.feedburner.com/aptoma/selectstar">enter the fourth dimension</a>. You can subscribe by email to the right.</p>
<h3>Disclaimer</h3>
<p>Never mistake team design to be the silver bullet. There is no silver bullet. Good team design will not help if you have team members that lack the skills or the motivation to excel within their respective fields. You need excellent individual skills in each team member to pull this one of, and you need to put full trust in them.</p>
<p>It&#8217;s not a development strategy for the faint of heart, or for the micro managing control freak.</p>
]]></content:encoded>
			<wfw:commentRss>http://aptoma.com/select.star/2010/01/08/quality-and-speed-a-primer-in-team-design/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
