<?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>www.hans-eric.com &#187; project management</title>
	<atom:link href="http://www.hans-eric.com/category/project-management/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hans-eric.com</link>
	<description>Hans-Eric Grönlund on software development</description>
	<lastBuildDate>Thu, 29 Jul 2010 17:32:29 +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>The Boy Scout Rule</title>
		<link>http://www.hans-eric.com/2010/07/26/the-boy-scout-rule/</link>
		<comments>http://www.hans-eric.com/2010/07/26/the-boy-scout-rule/#comments</comments>
		<pubDate>Mon, 26 Jul 2010 15:27:57 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[opinion]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/?p=405</guid>
		<description><![CDATA[You may have heard of The Boy Scout Rule. (I hadn’t until I watched a recorded presentation by “Uncle Bob”.)
You should always leave the camp ground cleaner than you found it.
Applied to programming, it means we should have the ambition of always leaving the code cleaner than we found it. Sounds great, but before we [...]]]></description>
			<content:encoded><![CDATA[<p>You may have heard of The Boy Scout Rule. (I hadn’t until I watched <a title="InfoQ: Robert C. Martin on Bad Code" href="http://www.infoq.com/presentations/Robert-C.-Martin-Bad-Code">a recorded presentation by “Uncle Bob”</a>.)</p>
<blockquote><p>You should always leave the camp ground cleaner than you found it.</p></blockquote>
<p>Applied to programming, it means we should have the ambition of always leaving the code cleaner than we found it. Sounds great, but before we set ourselves to the mission we might benefit from asking a couple of questions.</p>
<p>1. What is clean code?<br />
2. When and what should we clean?</p>
<h3>Clean Code</h3>
<p>What is clean code? <a title="Definition: Clean Code" href="http://en.wiktionary.org/wiki/clean_code">Wictionary defines it</a> like so:</p>
<blockquote><p>software code that is formatted correctly and in an organized manner so that another coder can easily read or modify it</p></blockquote>
<p>That, by necessity, is a rather vague definition. The goal of being readable and modifiable to another programmer, although highly subjective, is pretty clear. But what is a correct format? What does an organised manner look like in code? Let’s see if we can make it a little more explicit.</p>
<h3>Code Readability</h3>
<p>The easiest way to mess up otherwise good code is to make it inconsistent. For me, it really doesn’t matter where we put brackets, if we use camelCase or PascalCase for variable names, spaces or tabs as indentations, etc. It’s when we mix the different styles that we end up with sloppy code.</p>
<p>Another way to make code difficult to take in is to make it compact. Just like any other type of text, code gets more readable if it contains some space.</p>
<p>Although the previous definition mentions nothing about it, good naming of methods, classes, variables, etc, is at the essence of readable code. Code with poorly named abstractions is not clean code.</p>
<h3>Organized for Reusability</h3>
<p>Formatting code is easy. Designing for readability, on the other hand, is harder. How do we organize the code so that it is easily read and modifiable?</p>
<p>One thing we know, is that long chunks of code is more difficult to read and harder to reuse. So, one goal should be to have small methods. But to what cost? For instance, should we refactor code like this?</p>
<pre class="brush: csharp;">
SomeInterface si = (SomeInterface)someObject;
doSomething(si);
</pre>
<p>Into this?</p>
<pre class="brush: csharp;">
doSomething((SomeInterface)someObject);
</pre>
<p>What about code like this?</p>
<pre class="brush: csharp;">
string someString;
if (a &gt;= b)
  someString = “a is bigger or equal to b”;
else
  someString = “b is bigger”;
</pre>
<p>Into this?</p>
<pre class="brush: csharp;">
string someString = a &gt;= b ? “a is bigger or equal to b” : “b is bigger”;
</pre>
<p>In my opinion, the readability gains of the above refactorings are questionable. Better than reducing the number of rows in more or less clever ways, is to focus on improving abstractions.</p>
<h3>Extract &#8217;til you drop</h3>
<p>Abstractions are things with names, like methods or classes. You use them to separate the whats from the hows. They are your best weapons in the fight for readability, reusability and flexibility.</p>
<p>A good way to improve abstractions in existing code is to extract methods from big methods, and classes from bulky classes. You can do this until there is nothing more to extract. As Robert C. Martin puts it, extract until you drop.</p>
<p>That leads me to my own definition of clean code.</p>
<p>• It is readable.<br />
• It is consistent.<br />
• It consists of fine grained, reusable abstractions with helpful names.</p>
<h3>When to clean</h3>
<p>Changing code is always associated with risk and “cleaning” is no exception. You could:</p>
<p>• Introduce bugs<br />
• Cause build breaks<br />
• Create merge conflicts</p>
<p>So, there are good reasons not to be carried away. A great enabling factor is how well your code is covered by automatic tests. Higher code coverage enables more brutal cleaning. A team with no automatic testing should be more careful, though, about what kind of cleaning they should do.</p>
<p>Also, to avoid annoying your fellow programmers it’s best to avoid sweeping changes that may result in check-in conflicts for others. Restrict your cleaning to the camp ground, the part of the code that you’re currently working on. Don’t venture out on forest-wide cleaning missions.</p>
<p>If the team does not share common coding rules, there&#8217;s a risk that you end up in &#8220;Curly Brace Wars&#8221;, or other <a title="On Religious Wars in Software" href="http://haacked.com/archive/2006/02/08/OnReligiousWarsinSoftware.aspx">religious software wars</a> driven by team members&#8217; individual preferences. This leads to inconsistency, annoyance and loss of energy. The only way to avoid it is to agree upon a common set of code rules.</p>
<p>With all that said, I have never imposed “cleaning” restrictions on my teams. They are allowed to do whatever refactorings they find necessary. If they are actively “cleaning” the code it means they care about quality, and that’s the way I like it. In the rare cases excessive cleaning cause problems, most teams will handle it and change their processes accordingly.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2010/07/26/the-boy-scout-rule/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>The Essence of Project Management</title>
		<link>http://www.hans-eric.com/2010/07/20/the-essence-of-project-management/</link>
		<comments>http://www.hans-eric.com/2010/07/20/the-essence-of-project-management/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 13:57:33 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/?p=345</guid>
		<description><![CDATA[I have a very simple philosophy when managing software development projects. It keeps me from derailing in this ever changing environment that is our craft. Regardless of whatever methodology and practices we currently use, I turn to these three questions for guidance.

Is the team as productive as it can be?
Is it doing the right things?
Is [...]]]></description>
			<content:encoded><![CDATA[<p>I have a very simple philosophy when managing software development projects. It keeps me from derailing in this ever changing environment that is our craft. Regardless of whatever methodology and practices we currently use, I turn to these three questions for guidance.</p>
<ol>
<li>Is the team as productive as it can be?</li>
<li>Is it doing the right things?</li>
<li>Is it delivering on expectations?</li>
</ol>
<p>To me those questions represent the essence of project management. Finding the answers, identifying the impediments and removing them are what I consider my most important tasks as a project manager; not to impose <a title="Agile Project Management Delivers Nothing" href="http://www.hans-eric.com/2010/01/22/apm-delivers-nothing/">a particular methodology</a>.</p>
<h3>Productive teams</h3>
<p>Good questions to ask while analyzing the productivity of a team might be:</p>
<ul>
<li>Does the team contain the right people?</li>
<li>Is it getting rapid answers?</li>
<li>Is it getting quick feedback?</li>
<li>Is it optimized for long term or short term productivity?</li>
</ul>
<p>In software development, the only measure of team productivity is its ability to produce working software. So if you want to maximize your team’s productivity you should focus on <a title="Programmer or Developer" href="http://www.hans-eric.com/2007/09/04/programmer-or-developer/">those capable of creating software</a>. Make sure they can spend as much time as possible producing customer value.</p>
<p>For that reason, I think twice before I ask my developers to perform some compliance activity, like writing a report. It’s almost always better to have someone else do stuff like that. If I need information I can always ask, and if writing a report is necessary, I can collect the information and write the report myself. That way I contribute to keeping the team focused and productive, which is more important than to ease my own work load.</p>
<p>Monitoring the team’s productivity is an important task of the project manager. I do this mainly by being around the team a lot. Taking an interest in each individual’s working situation and task at hand is the best way to pick up problems and impediments.<br />
Other important sources of information (although not as efficient as <a title="Management By Walking Around" href="http://www.businessdictionary.com/definition/management-by-walking-around-MBWA.html">MBWA</a>) are the <a title="Daily Scrum" href="http://www.mountaingoatsoftware.com/scrum/daily-scrum">daily meetings</a> and <a title="Sprint Retrospective Meeting" href="http://abrachan.wordpress.com/scrum/scrum/sprint-retrospective-meeting/">iteration retrospective</a>.</p>
<p>If you’re really lucky; with the right material and inspiring goals, <a title="Is Your Team Jelled?" href="http://www.hans-eric.com/2007/08/13/is-your-team-jelled/">the team jells</a> and becomes hyper productive. That is every project manager’s dream, but few get to experience it.</p>
<h3>Efficient teams</h3>
<p>But being productive is not enough. What we really want is efficiency, and to be efficient you need to be both productive and produce the right things. Right in this sense means the right features, with the right quality, in the right order.</p>
<p>To eliminate the risk of producing wrong features you need to work closely with the customer. Make the feedback loop as short as possible, preferably by utilizing an onboard customer, or at least by holding regular <a title="Sprint Review Meeting" href="http://www.mountaingoatsoftware.com/scrum/sprint-review-meeting">review meetings</a>.</p>
<p>Another thing you’d really want to do is to have the planned features prioritized. For some reason many customers (here in Sweden at least) are generally unwilling to do this for you.<br />
“I decided what I want to include in the release, didn’t I? All those features are equally important.”</p>
<p>The problem with leaving priorities to the team is that the system will be developed in an arbitrary order, most likely with the easiest features first. While that may have a value in some situations, the downside is that it decreases the project’s chance of success. The reason is, that without customer value as the leading beacon, chances are that you’ll end up with a lot more bells and whistles than you can afford. And when you find that out it’ll be too late to rectify.</p>
<h3>Dealing with expectations</h3>
<p>How do you define project success? Here is one definition:</p>
<p><strong>If the output is in line with what the customer expects, the project is successful.</strong></p>
<p>The good thing with this definition is that it implies another variable to work with besides output, namely customer expectations. If the answer is yes to both questions 1 and 2 above, we know we are maximizing the output. But if that still isn’t good enough, we have only one option left. We must change the customer’s expectations, or fail.</p>
<p>Again, the best way to tune the customer expectations is a tight feedback loop. If the customer sees the progress regularely, she will adjust her expectations accordingly, or have a chance to react to reality. Either way, the chance for success increases.</p>
<p>Never lose focus on the end goal.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2010/07/20/the-essence-of-project-management/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I am a ScrumBut</title>
		<link>http://www.hans-eric.com/2010/03/26/i-am-a-scrumbut/</link>
		<comments>http://www.hans-eric.com/2010/03/26/i-am-a-scrumbut/#comments</comments>
		<pubDate>Fri, 26 Mar 2010 11:41:32 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/?p=279</guid>
		<description><![CDATA[Many organizations that are going agile are experiencing difficulties in applying the whole concept. Most of them yield and make some kind of adaption to better suit their current situation. Ken Schwaber, the father of Scrum, thinks this is just a way to avoid dealing with the true problems in the organization. He calls them [...]]]></description>
			<content:encoded><![CDATA[<p>Many organizations that are going agile are experiencing difficulties in applying the whole concept. Most of them yield and make some kind of adaption to better suit their current situation. Ken Schwaber, the father of Scrum, thinks this is just a way to avoid dealing with the true problems in the organization. He calls them &#8220;ScrumButs&#8221;.</p>
<p><object id="mbox_player_0a99deb71f13e2ca87" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="416" height="234" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowScriptAccess" value="always" /><param name="allowFullscreen" value="true" /><param name="src" value="http://www.motionbox.com/external/hd_player/type%253Dsd%252Cvideo_uid%253D0a99deb71f13e2ca87" /><param name="name" value="mbox_player_0a99deb71f13e2ca87" /><param name="allowfullscreen" value="true" /><embed id="mbox_player_0a99deb71f13e2ca87" type="application/x-shockwave-flash" width="416" height="234" src="http://www.motionbox.com/external/hd_player/type%253Dsd%252Cvideo_uid%253D0a99deb71f13e2ca87" name="mbox_player_0a99deb71f13e2ca87" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
<p>In my organization we only fulfill two thirds of <a href="http://www.crisp.se/scrum/checklist">the Scrum Checklist</a>, so I guess that makes us ScrumButs. I&#8217;m not going to feel bad about it though; Change takes time and we&#8217;re pretty happy we&#8217;ve gotten as far as we have. But Ken&#8217;s right, we really should do something about our most difficult problems and go the full ten yards. Maybe later. <img src='http://www.hans-eric.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2010/03/26/i-am-a-scrumbut/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>APM Delivers Nothing</title>
		<link>http://www.hans-eric.com/2010/01/22/apm-delivers-nothing/</link>
		<comments>http://www.hans-eric.com/2010/01/22/apm-delivers-nothing/#comments</comments>
		<pubDate>Fri, 22 Jan 2010 14:36:18 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/?p=235</guid>
		<description><![CDATA[I&#8217;m reading Jim Highsmith&#8217;s book Agile Project Management. It&#8217;s a good book, as the frequent use of my marker pen shows, except for maybe this one sentence:
&#8220;APM reliably delivers innovative results to customers within cost and schedule constraints.&#8221;
Let me take that sentence out of its context and make a point I believe needs to be [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m reading Jim Highsmith&#8217;s book <a href="http://www.amazon.com/gp/product/0321658396?ie=UTF8&amp;tag=wwwhansericco-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0321658396">Agile Project Management</a><img class=" ervsvfmifhhqkeerdblp ervsvfmifhhqkeerdblp ervsvfmifhhqkeerdblp ervsvfmifhhqkeerdblp ervsvfmifhhqkeerdblp ervsvfmifhhqkeerdblp" style="border:none !important; margin:0px !important;" src="http://www.assoc-amazon.com/e/ir?t=wwwhansericco-20&amp;l=as2&amp;o=1&amp;a=0321658396" border="0" alt="" width="1" height="1" />. It&#8217;s a good book, as the frequent use of my marker pen shows, except for maybe this one sentence:</p>
<blockquote><p>&#8220;APM reliably delivers innovative results to customers within cost and schedule constraints.&#8221;</p></blockquote>
<p>Let me take that sentence out of its context and make a point I believe needs to be stressed. <strong>Software development methodologies </strong>(Agile Project Management in this case)<strong> delivers nothing!</strong> People, on the other hand, do.</p>
<p>Some years ago I developed a special interest in software development methodologies. Since then I&#8217;ve spent much time reading literature on Scrum, eXtreme Programming, etc, aiming to optimize the processes we use in our projects. During that time I&#8217;ve learned a lot, but also come to realize that I&#8217;ve been focusing too much on the wrong things.</p>
<p>In the past I thought the problems we were experiencing were problems with the methodology, an easy conclusion to draw from the propaganda-like information out there. However, I&#8217;ve found that the methodology matters little in comparison to the quality of my project team. Today I focus more on the team, the product, and the customer, and less on the latest within agile.</p>
<p>Thus, my formula for a successful project is this:</p>
<ul>
<li>Spend less energy on the methodology; i.e. pick a simple one and adapt it when (and only when) needed, or stick to the one you&#8217;re currently using</li>
<li>Do more to get the right people</li>
<li>Make sure they are motivated and connected</li>
<li>If you think you&#8217;ll fail, <a title="Fail fast" href="http://www.hans-eric.com/2007/10/02/tools-of-the-effective-developer-fail-fast/">do it fast</a></li>
</ul>
<h3>Summary</h3>
<p>If we focus too much on the methodology, and give it too much importance, we risk loosing sight on the real goal, namely producing the right system. And for that you need the right people.</p>
<p>Cheers!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2010/01/22/apm-delivers-nothing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tools of The Effective Developer: Rule of Three!</title>
		<link>http://www.hans-eric.com/2007/12/03/tools-of-the-effective-developer-rule-of-three/</link>
		<comments>http://www.hans-eric.com/2007/12/03/tools-of-the-effective-developer-rule-of-three/#comments</comments>
		<pubDate>Mon, 03 Dec 2007 11:43:06 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[books]]></category>
		<category><![CDATA[habits]]></category>
		<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[tools]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/2007/12/03/tools-of-the-effective-developer-rule-of-three/</guid>
		<description><![CDATA[I&#8217;m an impatient person, of the kind that are comfortable with making quick decisions on loose grounds, but prepared to change when more information gets available. This attitude has served me well, but also put me in trouble when important decisions were made too hastily. That&#8217;s why I always use The Rule of Three nowadays.
I [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m an impatient person, of the kind that are comfortable with making quick decisions on loose grounds, but prepared to change when more information gets available. This attitude has served me well, but also put me in trouble when important decisions were made too hastily. That&#8217;s why I always use The Rule of Three nowadays.</p>
<p>I first came across this version of The Rule of Three in Johanna Rothman and Esther Derby&#8217;s excellent book, <a href="http://www.amazon.com/gp/product/0976694026?ie=UTF8&amp;tag=wwwhansericco-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0976694026">Behind Closed Doors</a><img src="http://www.assoc-amazon.com/e/ir?t=wwwhansericco-20&amp;l=as2&amp;o=1&amp;a=0976694026" style="border: medium none  ! important; margin: 0px ! important; display: none" border="0" height="1" width="1" />. The idea is to brainstorm solutions to a given problem, and not stop until you have at least three options to choose from. Listing the pros and cons of each solution helps you make a good decision.</p>
<p>With The Rule of Three I&#8217;m forced to think broader. I need to widen my view to find possible solutions other than the first that springs to mind. I&#8217;ve found that this process makes me explore the original solution better, and the risk of overlooking a good option is greatly reduced. Also, two different solutions can sometimes be combined into a new, even better one.</p>
<p>The Rule of Three can be applied in many ways, within a group or by yourself. It&#8217;s a cheap way to build better foundations for your decisions. That&#8217;s why I embrace The Rule of Three.</p>
<p><em>Previous posts in the Tools of The Effective Developer series:</em></p>
<ol>
<li><a href="http://www.hans-eric.com/2007/08/31/tools-of-the-effective-developer-personal-logs/">Tools of The Effective Developer: Personal Logs</a></li>
<li><a href="http://www.hans-eric.com/2007/09/05/tools-of-the-effective-developer-personal-planning/">Tools of The Effective Developer: Personal Planning</a></li>
<li><a href="http://www.hans-eric.com/2007/09/25/tools-of-the-effective-developer-programming-by-intention/">Tools of The Effective Developer: Programming By Intention</a></li>
<li><a href="http://www.hans-eric.com/2007/09/27/tools-of-the-effective-developer-customer-view/">Tools of The Effective Developer: Customer View</a></li>
<li><a href="http://www.hans-eric.com/2007/10/02/tools-of-the-effective-developer-fail-fast/">Tools of The Effective Developer: Fail Fast!</a></li>
<li><a href="http://www.hans-eric.com/2007/10/29/tools-of-the-effective-developer-make-it-work-first/">Tools of The Effective Developer: Make It Work &#8211; First!</a></li>
<li><a href="http://www.hans-eric.com/2007/11/16/tools-of-the-effective-developer-whetstones/">Tools of The Effective Developer: Whetstones</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2007/12/03/tools-of-the-effective-developer-rule-of-three/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>The Firepower of Teams</title>
		<link>http://www.hans-eric.com/2007/11/28/the-firepower-of-teams/</link>
		<comments>http://www.hans-eric.com/2007/11/28/the-firepower-of-teams/#comments</comments>
		<pubDate>Wed, 28 Nov 2007 13:53:12 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/2007/11/28/the-firepower-of-teams/</guid>
		<description><![CDATA[I just finished reading an interesting post by Ben Collins-Sussman. In an attempt to argue that distributed version control is not the silver bullet, he classifies us and puts us into two groups, which he calls the 80% and the 20%.
 The 20% folks are what many would call “alpha” programmers — the leaders, trailblazers, [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished reading <a href="http://blog.red-bean.com/sussman/?p=79" title="Version Control and “the 80%”">an interesting post by Ben Collins-Sussman</a>. In an attempt to argue that distributed version control is not the silver bullet, he classifies us and puts us into two groups, which he calls the 80% and the 20%.</p>
<blockquote><p> The 20% folks are what many would call “alpha” programmers — the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90’s; the people who write lisp compilers and learn Haskell on weekends “just for fun”; they actively participate in open source projects; they’re always aware of the latest, coolest new trends in programming and tools.</p>
<p>The 80% folks make up the bulk of the software development industry. They’re not stupid; they’re merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them — usally VS.NET if they’re doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They’ve never used Linux, and aren’t very interested in it anyway. Many have never even used version control. If they have, it’s only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers.</p></blockquote>
<p>Ben took a lot of heat for his oversimplification. People, it seems, don&#8217;t like to be categorized, a fact I too discovered when trying to make <a href="http://www.hans-eric.com/2007/09/04/programmer-or-developer/" title="Programmer or Developer?">a distinction between Developers and Programmers</a>. They especially don&#8217;t like to hear that they&#8217;re mediocre, not special, or less worth, which is the undertone of Ben&#8217;s 80% category.</p>
<p>During my military service I learned that statistically, only two soldiers in a group of eight would be effective in a combat situation. The rest would be pinned down, unable to return fire. Thus, one could say that the firepower of a squad comes from a fraction of it&#8217;s soldiers. I think this is often true for development teams as well. A few members are accountable for a majority of the produced value.</p>
<p>The funny thing is, that some of the best value-bringers I&#8217;ve met in my career does not fit the 20% alpha-geek group defined by Ben. And many of the &#8220;elite&#8221; programmers, the ones that do fit the description, have been remarkably inefficient. One reason for this could be that bleeding edge isn&#8217;t always the best strategy to achieve business value.</p>
<p>So, the question we should ask ourselves is not whether we&#8217;re in the 20%, it&#8217;s: Do I add to the firepower of my team? What can I do to bring more value?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2007/11/28/the-firepower-of-teams/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Part time project engagement &#8211; no thanks!</title>
		<link>http://www.hans-eric.com/2007/08/20/part-time-project-engagement-no-thanks/</link>
		<comments>http://www.hans-eric.com/2007/08/20/part-time-project-engagement-no-thanks/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 15:03:11 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/2007/08/20/part-time-project-engagement-no-thanks/</guid>
		<description><![CDATA[I am currently employed at a government owned, medium sized company. The company&#8217;s IT-division is struggling to satisfy the diverse needs of the other divisions, and is constantly undermanned. One clear indicator of this is multiple project engagement among developers. It has become the default state.
It&#8217;s understandable that management give in to the pressure and [...]]]></description>
			<content:encoded><![CDATA[<p>I am currently employed at a government owned, medium sized company. The company&#8217;s IT-division is struggling to satisfy the diverse needs of the other divisions, and is constantly undermanned. One clear indicator of this is multiple project engagement among developers. It has become the default state.<br />
It&#8217;s understandable that management give in to the pressure and tries to squeeze the most out of its staff, but unfortunately it is counterproductive. It&#8217;s because the more goals you push onto someone, the less commitment he or she can put into each one. And as we all know: if commitment goes down, production goes down.</p>
<p>You form a project to achieve a specific goal, a goal you want to reach as soon as possible. So projects are all about focus, and you can not focus on more than one task at a time. It&#8217;s inevitable that you&#8217;ll lose time juggling projects. Thus, part time engagement makes projects move slower.</p>
<p>So, what to do? The same things you always do when resources are scarce: prioritize, divide and conquer. Always form teams that work full time on a single project. They will be more productive, and if you&#8217;re lucky they might even jell. Let the teams finish before you assign a new task. Instead, see to it that projects are small and can be completed within relatively short time. If a project swells and get big, find the smallest set of features that would still be useful, and form the project around that. Remember, the process of iteration can be applied at the project level too.</p>
<p>Project iteration has several advantages: it increases the closure frequency which helps keeping the teams performance rate high, it increases the chance of success for the individual project, and it releases something useful to the users sooner. And, it provides a constant stream of opportunities for you to make new strategical decisions based on small manageable projects.</p>
<p>To conclude this rather messy post: Don&#8217;t mess with my team, let us stay focused and finish what we have set out to do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2007/08/20/part-time-project-engagement-no-thanks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Is your team jelled?</title>
		<link>http://www.hans-eric.com/2007/08/13/is-your-team-jelled/</link>
		<comments>http://www.hans-eric.com/2007/08/13/is-your-team-jelled/#comments</comments>
		<pubDate>Mon, 13 Aug 2007 14:02:00 +0000</pubDate>
		<dc:creator>Hans-Eric</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software development]]></category>

		<guid isPermaLink="false">http://www.hans-eric.com/2007/08/13/is-your-team-jelled/</guid>
		<description><![CDATA[Do you work in a team that jell? Then you know the feeling that comes when the team starts to do everything right: solving problems before they even surface, finishing every iteration early, delivering high quality software &#8211; while having fun. That feeling is something you will never forget, and you should consider yourself extremely [...]]]></description>
			<content:encoded><![CDATA[<p>Do you work in a team that jell? Then you know the feeling that comes when the team starts to do everything right: solving problems before they even surface, finishing every iteration early, delivering high quality software &#8211; while having fun. That feeling is something you will never forget, and you should consider yourself extremely lucky to have experienced it. It&#8217;s very uncommon.</p>
<p>One cannot make every team jell. All you can do is provide the basic ingredients and hope for the magic to kick in. All teams in a jelled state have this in common:</p>
<ul>
<li>A jelled team has a specific goal, a goal that is shared by all members.</li>
<li>All members of a jelled team have a high sense of responsibility and commitment.</li>
<li>All members of a jelled team feel they are accomplishing something of value.</li>
<li>All members of a jelled team take interest in each others work, since it&#8217;s part of their goal.</li>
<li>The members are enjoying themselves. They long to get to work to spend time together while moving the project forward. Laughter is frequent.</li>
<li>A jelled team has great communication: with customers, management and in between members.</li>
</ul>
<p>As a project manager, if your team enters the jelled state you should step back and let the team dynamics do the work. Concentrate on keeping the team jelled, which most of the time is the same as doing nothing at all. Focus on protecting the team from unimportant external interference, and on stuff that boost the team&#8217;s confidence and wellbeing.</p>
<p>Appreciation and the sense of completion is very important to keep a team jelled for a long period of time. I once read (don&#8217;t remember where) about a team manager that hung a bell in the center of the workplace. The developers were instructed to ring the bell whenever they had done something good. It may sound silly but it&#8217;s actually one of the best ideas I&#8217;ve ever heard to boost team spirit. Whenever the bell rung people left whatever work they were doing to join the bell ringer and hear about his accomplishments. That team fed appreciation to itself, and provided a constant feeling of accomplishment.</p>
<p>So, how do you know if your team is jelled? Well, one way would be to hang such a bell in a strategic location. If the bell starts ringing on a regular basis chances are good that your team is jelled. If people also leave their workstations to cheer with the happy fellow &#8211; then you know for sure.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hans-eric.com/2007/08/13/is-your-team-jelled/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.506 seconds -->
