<?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>rob bowley &#187; agile</title>
	<atom:link href="http://blog.robbowley.net/tag/agile/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.robbowley.net</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 10:05:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Self-organisation and team size</title>
		<link>http://blog.robbowley.net/2011/07/07/self-organisation-team-size/</link>
		<comments>http://blog.robbowley.net/2011/07/07/self-organisation-team-size/#comments</comments>
		<pubDate>Thu, 07 Jul 2011 12:37:48 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[self-organisation]]></category>
		<category><![CDATA[team size]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=1522</guid>
		<description><![CDATA[In my last post I talked about how self-organisation occurs and how we can try to make the most of it. This time I want to talk more specifically about team size and how I think it impacts self-organisation. I would argue that the difference between a group of individuals and a team is the [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://blog.robbowley.net/2011/05/08/self-organisation/">last post</a> I talked about how self-organisation occurs and how we can try to make the most of it. This time I want to talk more specifically about team size and how I think it impacts self-organisation.</p>
<p>I would argue that the difference between a group of individuals and a team is the ability of the group to adapt to maintain its interests. For example, an amateur football team needs to adapt to the opposition&#8217;s tactics to try and win games and stay competitive. If they couldn&#8217;t do this effectively they&#8217;d probably lose all their games, get relegated and eventually get so fed up they&#8217;d disband and spend their weekends playing golf instead.</p>
<p>As we know from my last article, that ability to adapt is when self-organisation occurs and therefore we can say self-organisation is a key component of effective team dynamics.</p>
<h4>Too big?</h4>
<p>A significant factor in being able to self-organise is for the people who make up a group to be able to communicate &amp; collaborate effectively and form the shared identity and shared goals which determine the group&#8217;s boundaries. This is one reason why agile proponents favour co-located teams and open plan offices, but there&#8217;s only so much that will help &#8211; 100 people working in the same office on the same project are going to struggle to maintain the types of quite intimate relationships which are required for self-organisation to emerge.</p>
<h4>Too small?</h4>
<p>Most attention seems to be focused on how large a group can become be before it starts to lose its ability to self-organise and work as a team, but I think it&#8217;s just as important to consider how <em>small </em>an effective team can be. If we look to sport we very rarely (if ever) see teams of less than 5 people and when we do it&#8217;s in sports such as rowing, where the complexity of the interactions between team members is low. When you only have 3 or 4 people in a team (as opposed to 10) the flexibility of the group to adapt to situations is limited by the  number of ways the group can organise itself.</p>
<p>For example, in a game of 3-a-side football (soccer) someone is invariably going to have to be responsible for guarding the goal to prevent the opposition just shooting from long range or provide some defence if one of the opposition breaks away whilst your team is attacking. This leaves the other two players little option but to pass it back and forth between each other, making it rather predictable for the opposition and frankly, not much of a spectator sport.</p>
<p>Adding one more person doubles the number of possible connections between the group. Adding two more almost quadruples it. As this is exponential the possible connections increases greatly with each new addition to the group, but this then comes back to how many people you can realistically maintain a relationship with within the boundaries of the group and the context of its environment, so clearly there&#8217;s a balance between the two.</p>
<h4>Software teams</h4>
<p>From what I can see the main objective of working in teams is <em>for the whole to be greater than the sum of its parts. </em>I&#8217;m not saying a &#8220;team&#8221; of 3 people won&#8217;t do a good job, but it will find it hard to behave like a team as it will struggle to reach and maintain the behaviours it needs to self-organise well &#8211; the limitations of the group become more acute. For example, when someone is on holiday or off sick it&#8217;s much harder to adapt to this and if you have junior or inexperienced people in the team you are very limited about how you can share work, as neither of them can work very well on their own or together.</p>
<p>Scrum proponents suggests the most effective size for software teams is between 5-9 people. Jeff Bezos introduced the concept of Two Pizza Teams &#8211; team&#8217;s are at the best size when comfortably fed by two large pizzas. In fact, doing a general search for optimum or effective team sizes finds that many people have come to a similar conclusion on the effectiveness of team sizes (see <a href="http://www.lifewithalacrity.com/2004/03/the_dunbar_numb.html">here</a> and <a href="http://www.noop.nl/2009/04/the-optimal-team-size-is-five.html">here</a>)  - that the team only really becomes a team with around 5 members, but starts to degrade when you reach 9.</p>
<p>If a small team (e.g. 2-3 people) is your only option then it&#8217;s certainly no disaster, but if your decision was how to best organise a larger number of people into contextual groups then it may be better to aim for somewhere a bit higher as the overhead of managing all the small teams combined with the increased complexity of the communication networks between the teams <em>and </em>the risk of knowledge silos may well outweigh any perceived benefits.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2011/07/07/self-organisation-team-size/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Self-organisation: it&#8217;s not a case of whether to, but making use of the fact it occurs</title>
		<link>http://blog.robbowley.net/2011/05/08/self-organisation/</link>
		<comments>http://blog.robbowley.net/2011/05/08/self-organisation/#comments</comments>
		<pubDate>Sun, 08 May 2011 16:17:44 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[self-organisation]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=1500</guid>
		<description><![CDATA[&#8220;The best architectures, requirements, and designs emerge from self-organizing teams&#8221; - Principles Behind the Agile Manifesto I&#8217;ve often had people say to me that we&#8217;re not really self-organising because we&#8217;re not all taking part in all the decisions made at our organisations, such as how the company is run or what products we should be [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><span style="font-size: medium;"><strong><em>&#8220;The best architectures, requirements, and designs </em></strong></span><br />
 <span style="font-size: medium;"><strong><em>emerge from self-organizing teams&#8221;</em></strong></span></p>
<p style="text-align: center;"><span style="font-size: small;"><strong><em>- </em></strong><em><a href="http://agilemanifesto.org/principles.html">Principles Behind the Agile Manifesto</a></em></span></p>
<p>I&#8217;ve often had people say to me that we&#8217;re not really self-organising because we&#8217;re not <em>all </em>taking part in all the decisions made at our organisations, such as how the company is run or what products we should be making. This is a misunderstanding of how self-organisation occurs. The fact is we&#8217;re constantly self-organising, it&#8217;s just most of the time we&#8217;re completely oblivious to the fact it&#8217;s happening.</p>
<p>For example, within a group of people (such as a workplace) there are many social sub-groups, such as the early morning runners, the ones that go to lunch together and the after work drinkers. They all naturally self-organise around shared goals &amp; desires. Even within a team where a highly autocratic management approach is in place, members of the team will self-organise around anything they can (such as making the tea or going out to buy some biscuits). The thing with self-organisation is it&#8217;s actually harder <em>not </em>to be doing it!</p>
<p>If you define self-organisation as when everyone in a team is able to control everything that affects it where do you stop? Your team? Your department? Organisation? City? Country? See where I&#8217;m going?</p>
<p>Self-organisation always occurs within boundaries defined by it&#8217;s context. For example, a football team might be a football pitch for 90 minutes, a group of friends on holiday the holiday villa they&#8217;re staying in or your department at work by the responsibilities it has.  Something or someone always sets these boundaries. If they did not exist self-organisation couldn&#8217;t occur.</p>
<h3>What causes self-organisation?</h3>
<p>A <a href="http://en.wikipedia.org/wiki/Complex_system">complex system</a>* will always be vulnerable to external events which are outside of it&#8217;s control, such as the opposite team, the weather or your customers or stakeholders. Self-organisation emerges when it becomes important to respond to these uncontrollable events in a manner which benefits the system. The ability to do so results in the system being <em>adaptive. W</em>e know that software development is complex so we can determine we&#8217;re in a <a href="http://en.wikipedia.org/wiki/Complex_adaptive_system">complex adaptive system</a>. It&#8217;s a huge subject and not the particular focus of this article so I won&#8217;t try to go into any more detail, but if it&#8217;s a new concept to you I strongly encourage you to investigate further.</p>
<h3>How to take advantage of the fact that it occurs</h3>
<p>When self-organisation is on your side it can be extremely valuable. If you&#8217;re working in a complex adaptive system it&#8217;s shown that by far the most effective way to allow that system to operate is to allow it to self-organise, because that&#8217;s what it will naturally try to do.</p>
<p>The problem is it&#8217;s not always on your side (if you&#8217;re an oppressive Arab dictator, for example) and will often work against your goals and objectives. I&#8217;ve often seen self-organisation criticised because this happens. I&#8217;ve also seen it criticised because a team is unable to self-organise effectively when allowed to do so. In both cases you may be tempted to blame the individuals in the team. This would be unjust because in reality it is the system to blame (and probably you as the controller of the system).</p>
<p>To enable self-organisation to work in your favour you need to understand and ideally define the system &#8211; set it&#8217;s boundaries and try to organise it in a manner which will encourage self-organisation to occur in a way which supports your objectives. This is often called <a href="http://en.wikipedia.org/wiki/Systems_thinking">Systems Thinking</a>. Again this is a large and well documented subject so there&#8217;s no need for me to elaborate further (i<span style="font-size: small;">f you&#8217;re looking for a good place to start though I thoroughly recommend <a href="http://www.noop.nl/">Jurgen Appelo</a>&#8216;s excellent book, <a href="http://www.management30.com/book/">Management 3.0</a>).</span></p>
<p>&nbsp;</p>
<p><span style="font-size: x-small;">*It&#8217;s widely held that software development <em>in general</em> exhibits the properties of being complex (as described in the <a href="http://en.wikipedia.org/wiki/Cynefin">Cynefin Model</a>). </span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2011/05/08/self-organisation/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>A formative experience</title>
		<link>http://blog.robbowley.net/2010/12/30/a-formative-experience/</link>
		<comments>http://blog.robbowley.net/2010/12/30/a-formative-experience/#comments</comments>
		<pubDate>Thu, 30 Dec 2010 13:06:25 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[experience report]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=1358</guid>
		<description><![CDATA[It may surprise some, but I&#8217;ve been at this agile lark for less than 4 years (or maybe that&#8217;s a lot?). I&#8217;ve been motivated by Jason Gorman&#8217;s recent post and case study (and some subsequent twitterings) to share some of my thoughts from working at BBC Worldwide1 at that time, a particular project I worked [...]]]></description>
			<content:encoded><![CDATA[<p>It may surprise some, but I&#8217;ve been at this agile lark for less than 4 years (or maybe that&#8217;s a lot?). I&#8217;ve been motivated by Jason Gorman&#8217;s <a href="http://parlezuml.com/blog/?postid=984">recent post and case study</a> (and some subsequent twitterings) to share some of my thoughts from working at BBC Worldwide<sup>1</sup> at that time, a particular project I worked on which has influenced me far more than anything I&#8217;ve been involved with before or since and how it all changed me (for the better).</p>
<h4>The Online Catalogue (OLC) project</h4>
<p>Shortly after I started at Worldwide I was moved into a team doing a re-write of the Online Catalogue (now renamed <a href="http://www.bbcworldwidetv.com">BBC Wordwide Sales</a> - essentially a sales device so broadcasters can find and view details on shows produced by the BBC they could purchase and broadcast on their own channels). It was the company&#8217;s first foray into Agile and both a great success and complete disaster.</p>
<p>It was a success because we were a great group of people being given the opportunity to determine how we wanted to work. We made many, many mistakes (inc. classics such as &#8220;done&#8221; being development complete i.e. not tested or released), but crucially we were learning and improving all the time.<sup>2</sup> It was an extremely empowering and motivating experience and created an incredible bond between the people in the team (although I don&#8217;t see them often I still consider many of them great friends today). The highly collaborative nature of the way we worked meant I learnt more in the first year than all of my career up to that point. The wonders of TDD, refactoring and pair programming were truly opened up to me. It wasn&#8217;t so much a jump as a giant leap. The news of our successes spread quickly and it wasn&#8217;t long before Agile software development was the de-facto approach.</p>
<p>No doubt you&#8217;re probably far more interested in why it was <em>not</em> a success and you&#8217;d be right to be (I learnt far more from what went wrong that what went well).</p>
<p>Crucially before development started a year had already been spent on analysis resulting in a use-case requirements document a <em>good inch thick</em> so we weren&#8217;t iterating on functionality, only incrementing in two weeks sprints (and knowing the audience I don&#8217;t think I need to explain further). Also the expectations on the project&#8217;s delivery were very optimistic. The combination of these two and the political and bureaucratic culture of the organisation meant failure was baked in from the start.</p>
<p>Shortly after development began it was evident it was going to take a lot longer than expected, but by that time the project had gathered too much momentum and too much money had been spent. At each management review the estimated completion date got longer and longer but each time no one was prepared to cut the scope or do the honourable thing and kill it. As is typical with <a href="http://en.wikipedia.org/wiki/Death_march_(software_development)">death marches</a> failure isn&#8217;t an option until it&#8217;s the only one left. The initial estimate was 3 months and the project was eventually completed 18 months (and well over a million pounds) later. The product itself? To it&#8217;s credit it was a much better engineered application than it&#8217;s predecessor and was a good foundation for future development, but in many ways it had less functionality than the product it was replacing.</p>
<p>The subsequent witch hunt was extremely unpleasant with the blame eventually being laid at the foot of the Lead Developer and Project Manager. Their estimates weren&#8217;t good enough. Fortunately our PM (who was actually excellent and by far the best I&#8217;ve ever worked with) had already left, which unfortunately meant the Lead Developer bore the brunt of it and his contract wasn&#8217;t renewed, which was undoubtedly a political gesture to higher management. There was no interest or barely any investigation into the root causes. When we did eventually do a project review the findings were filed away. It didn&#8217;t matter any more as blame had already been assigned and everyone had moved on.</p>
<p>I wouldn&#8217;t say we were completely without fault, there were many things within our power we would have done differently if in the same situation again, but I could say that about all the projects I&#8217;ve worked on since.</p>
<h4><strong>The community</strong></h4>
<p>Pete Camfield and Jason Gorman built a brilliant community, among other things introducing lunchtime sessions where they managed to get in many well known faces to do talks, but also encouraged us to do our own. I did my first ever presentation on &#8220;Test Smells&#8221; inspired by the <a href="http://xunitpatterns.com/">xUnit book</a> and have since presented at numerous conferences and events, something I can&#8217;t imagine I&#8217;d ever have had the courage to do without this opportunity. We also started a design patterns study group and a library (which I proudly curated).</p>
<p>Additionally the lead developers, coaches and some others (like myself) who were motivated to change things got together regularly to discuss how to do so (during the time I wrote an <a href="http://blog.robbowley.net/2008/04/13/times-they-are-a-changin/">article</a> which I think sums up the mood quite well).</p>
<p>Of course it&#8217;s no community without brilliant people, of which there were many (I daren&#8217;t name check for risking excluding or offending anyone).</p>
<h4><strong>Why I left</strong></h4>
<p>I think I&#8217;ve already alluded enough to the fact there were significant systemic issues with the organisation. I guess it&#8217;s somewhat inevitable (and not exclusive to BBCWW) that larger companies suffer somewhat from bureaucracy and the political environment that generates.</p>
<p>Most people I worked with were decent and just trying to do a good job, but the nature of the environment brought out the worst in people (in the same way buying a house in the UK seems turns everyone into cold-hearted monsters)<sup>3</sup> and this went all the way up the chain. We were able to optimise the way we worked within teams but efforts to change things beyond this were exhausting and mostly futile. It was ultimately an environment which suited politically minded career types rather than people who wanted to make a difference. I eventually got too frustrated with banging my head against the ceiling.<sup>4</sup></p>
<h4><strong>How it changed me</strong></h4>
<p>The combination of my experiences on the OLC project and the environment created by Pete and Jason changed me unrecognisably. I learnt that in an agile environment being a super brain developer (which I&#8217;ll never be) is really not that important. It matters far more if you give a shit and want to make things better. As my confidence in my abilities grew I became more vocal about what was wrong, at the beginning within our team, but soon (as most agile teams quickly realise) about what was wrong with the organisation which was causing many of our problems. Among other subjects my experiences on the OLC project inspired countless <a href="http://blog.robbowley.net/?s=estimation">articles</a> and conference sessions about (and a fascination with) estimation and predictability.</p>
<p>Most of all it showed me that, unlike my previous belief, most organisations are not ran very well, in fact they&#8217;re being run very badly, which means billions upon billions of pounds are increasingly and needlessly being wasted on software projects and thousands upon thousands of people are being stressed, frustrated and depressed by being involved in them. It showed me that there is a better way and that I get huge satisfaction from being involved in trying to improve that situation (well, at least not making it any worse).</p>
<h4><strong>Conclusion</strong></h4>
<p>Agile environments make people care. It means you&#8217;re much more exposed to your customers and stakeholders and spend a lot more time (than most people in your organisation) engaged in retrospecting and discussing problems. I&#8217;ve also noticed recently that people are much more critical on agile teams &#8211; something I thought was a bad sign but I&#8217;ve now realised the opposite is true<sup>5</sup></p>
<p>It has it&#8217;s downsides of course. More emotional engagement means more emotional attachment. I ride the peaks and troughs a lot and find it difficult to switch off.</p>
<p>It&#8217;s not as much the project or organisation it makes me care about as much as the people I work with, it just makes it all more <em>human.</em></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<h5><strong><em>Footnotes</em></strong></h5>
<p><sup>1</sup> BBC Worldwide is the commercial arm of the BBC, a wholly owned subsidiary and quite separate from the publicly funded corporation (although all it&#8217;s profits go back to fund the BBC).</p>
<p><sup>2</sup> <a href="http://blog.mattwynne.net/">Matt Wynne</a> and I presented our experiences of evolving from Scrum to Lean at XPDay 2008. Here&#8217;s a <a href="http://www.tomhume.org/2008/12/matt-wynne-rob-bowley-evolving-from-scrum-to-lean.html">write up</a> and here&#8217;s the <a href="http://www.slideshare.net/RossC0/evolving-from-scrum-to-lean-presentation">slides</a>.</p>
<p><sup>3</sup> This kind of behaviour is well documented by <a href="http://en.wikipedia.org/wiki/Complex_systems">complexity sciences</a> but most famously by the <a href="http://www.prisonexp.org/">Stanford Prison Experiment</a>.</p>
<p><sup>4</sup> I&#8217;d like to think this doesn&#8217;t have to be the case. I think at least part of the problem at BBC Worldwide was it suffered from having too many long termers (10 years was quite normal) meaning people were quite protective of their positions or not keen to make any noise/get off their comfy chairs with the consequence the status quo was very difficult to change. Also, within the development team the ratio was weighted too far towards contractors than permanent staff (I was perm) with the result that people either didn&#8217;t care or weren&#8217;t around long enough to make it stick. I understand the IT department has recently been through a major overhall with many people having left via redundancy and new management at the top, so I doubt my experiences are still relevant, however I&#8217;ve not heard anything to say it&#8217;s improved either. </p>
<p><sup>5</sup> A recent <a href="http://blog.benjaminm.net/2010/11/25/benny-devos-systems-thinking-in-financial-services/">experience report published by Benjamin Mitchell</a> found that a team involved in a System&#8217;s Thinking based approach were the most motivated but also more critical (than other areas of the business) of how well they were satisfying customers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2010/12/30/a-formative-experience/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Something in Agile needs fixing</title>
		<link>http://blog.robbowley.net/2009/12/14/something-in-agile-needs-fixing/</link>
		<comments>http://blog.robbowley.net/2009/12/14/something-in-agile-needs-fixing/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 18:41:17 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=1020</guid>
		<description><![CDATA[At the recent XPDay 2009 conference in London I organised an open space session under the title &#8220;Agile isn&#8217;t solving our customers problems because they&#8217;re not here&#8221;. It was driven by my feeling that whilst when Agile is being done well it is improving the reputation of software development, the impact it&#8217;s having is relatively [...]]]></description>
			<content:encoded><![CDATA[<p id="pageTitle">At the recent <a href="http://www.xpday.org/">XPDay 2009</a> conference in London I organised an open space session under the title <em><a href="http://xpday-london.editme.com/AgileNotSolvingOurCustomersProblemsBecauseTheyreNotHere">&#8220;Agile isn&#8217;t solving our customers problems because they&#8217;re not here&#8221;</a>. </em>It was driven by my feeling that whilst when Agile is being done well it is improving the reputation of software development, the impact it&#8217;s having is relatively minor. My biggest takeaway from the session is that nothing in our Agile toolkit really addresses the needs of our customers*.</p>
<p>In the short time I&#8217;ve been involved with the community I&#8217;ve seen almost no discussion or articles which involve any contribution from people outside of the IT department and none of the methodologies/name clouds I can think of appear to have been developed or evolved with any collaboration from the people driving the work.</p>
<p>I don&#8217;t mean to disparage all the hard work and enthusiasm people (I include myself) have put in to trying to make things better, I just think the fact that we&#8217;ve left out the most important people from our discussions has caused us a lot unecessary of pain.  Agile adoption is never a smooth affair, especially the process of &#8220;convincing&#8221; people outside of the development department. If we involved our customers more in the process of forming our principles, tools and methodologies we would surely get where we all want to be a lot more quickly. Remember, <strong><a href="http://blogs.harvardbusiness.org/bregman/2009/04/how-to-counter-resistance-to-c.html"><strong>people don&#8217;t resist change, they resist <em>being</em> changed</strong></a>. </strong></p>
<p>Here are some examples of what I mean:</p>
<ul>
<li>Speaking to my CEO in the pub the other day he said he often finds it &#8220;patronising&#8221; when we try and impress on him the importance of the the things we&#8217;re trying to do. </li>
<li>When I first started with Scrum I countlessly came up against resistance and cynicism when trying to encourage customers to participate in traditional Scrum meetings such as retrospectives, planning and stand ups. Nothing Scrum teaches prepares you for this (I&#8217;ve done both CSM and Estimating and Planning courses and read a lot otherwise).</li>
<li>The terminology we use (e.g. Scrum, Sprints, Stories, Kanban, eXtreme Programming) is totally immature in some people&#8217;s eyes.  One useful takeaway from the session was to stop using inappropriate terminology in front of customers.</li>
</ul>
<p>I have an enormous amount of respect for our CEO and others within our organisation for putting the trust they do in us even though they (understandably) find so much of what we do beguiling and irritating. In my experience you would be very lucky to be able to work with someone who is prepared to take that kind of risk &#8211; in most places I&#8217;ve worked you just don&#8217;t stand a chance.</p>
<p>For me, the flaw lies deep within Agile. It was never designed to address the needs of customers. XP and Scrum were designed for fixing dysfunctional environments. The terminology was designed to appeal to developers. When most of the Agile principles and methodologies were developed the need was different and they don&#8217;t appear to have evolved. New methodologies suffer the same &#8211; why does there have to be <a href="http://www.kanbandistilled.com/">an introductory guide to Kanban for Managers</a>? If we&#8217;re having to try and sell this stuff to people I think we&#8217;ve already lost most of the battle.</p>
<p>In the last 15 years or so most of the &#8220;microeconomic&#8221; problems with software development have been solved. The majority of people writing software may still not be doing it well, but the answers are there if you care to look. The big problems are still out there though and as a community we need to start addressing them and I think the only way we can do this is by getting our customers more involved in the debate.</p>
<p>This post is really a rallying call to all those that feel the same as I do. I&#8217;m keen to start doing something about this, but where do we start?</p>
<p><br class="spacer_" /></p>
<p><br class="spacer_" /></p>
<p><em>*I use the term customer here to mean anyone who is a customer of a development team.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/12/14/something-in-agile-needs-fixing/feed/</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>Read books and earn more money</title>
		<link>http://blog.robbowley.net/2009/08/18/read-books-and-earn-more-money/</link>
		<comments>http://blog.robbowley.net/2009/08/18/read-books-and-earn-more-money/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 15:38:11 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[learning]]></category>
		<category><![CDATA[softwarecraftsmanship]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=763</guid>
		<description><![CDATA[If I was going to offer one piece of advice to anyone aspiring to be a top class software developer* (apart from writing lots of code) it would be to read books. Not just any books though, books written by masters. Experience often counts for little in software development. If you&#8217;ve spent your whole career [...]]]></description>
			<content:encoded><![CDATA[<p>If I was going to offer one piece of advice to anyone aspiring to be a top class software developer* (apart from writing lots of code) it would be to read books. Not just any books though, books written by masters.</p>
<p>Experience often counts for little in software development. If you&#8217;ve spent your whole career in the same shop with little exposure to other languages or people outside your organisation it&#8217;s quite possible that some 21 year old upstart with a copy of <a href="http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?ie=UTF8&amp;qid=1250610035&amp;sr=8-1">Clean Code</a> under his or her arm will wipe the floor with you when it comes to effectively writing and maintaining software.</p>
<p>Granted, working with good or even great developers will mean a lot will rub off on you. I&#8217;ve learnt countless lessons from the people I&#8217;ve worked with, but if I look around me people are no older than 30 at most with an average of around 5 years developing software in probably no more than 3 different organisations.</p>
<p>People like Martin Fowler, Eric Gamma, Kent Beck, Robert C Martin, Craig Larman and Michael Feathers have been at it for 25 years or more and in that time have slowly built up the kind of reputation you only get from regularly being right.</p>
<p>Also granted, blogs are are an invaluable resource, but are rarely little more then a meme in someone&#8217;s head and give you nothing like the deep contextual insight you can get from a well written book. There is also little to assure you that the author is anymore likely to have a better idea than yourself. Believe me when I say there are many people blogging who rarely live up to the practices they preach and are no more or less likely than you to know the right or wrong way of doing something.</p>
<p>I have learnt a lot from both colleagues and blogs, but both pale to what I&#8217;ve learnt from the books I&#8217;ve read. I can comfortably say there is no way I would be where I am today without them and I strongly believe it will earn you more money. When you think of all the things you could do to try and put more folding stuff in you&#8217;re back pocket it&#8217;s a relatively simple win!</p>
<p>I&#8217;ve been inspired to write this after reading Eric Evans Domain Driven Design which has gone right into my top 5 books of all time. Why is it so good? It&#8217;s not because Eric has necessarily been born with some supernatural instinct for writing great software or that Domain Driven Design is going to save the planet. It&#8217;s because it&#8217;s full of the lessons that Eric has learnt in his long and illustrious career, carefully woven into a highly readable narrative. There&#8217;s nothing particularly new here. Like all the great books I&#8217;ve read it is no more than a distillation of the practices in the industry which through time have proven to be the most effective. I remember Martin Fowler once saying that people often asked him what would be the future of software development. His answer was that to see the future you only have to look to the past.</p>
<p>Below is a list of the books which significantly changed the way I think and work more than any other&#8217;s I&#8217;ve read. No doubt you&#8217;ve heard of them all already and are on a list of books to read in the back of your mind somewhere and I&#8217;m sure there are plenty of others that had as significant an impact on people as these have on me. However I think few will argue that any of these books do not deserve their place on this list. All I can say is get on and read them if you haven&#8217;t already.</p>
<p><strong><a href="http://www.amazon.co.uk/Refactoring-Improving-Design-Existing-Technology/dp/0201485672/ref=sr_1_1?ie=UTF8&amp;qid=1250609338&amp;sr=8-1">Refactoring: Improving the Design of Existing Code</a> </strong>by Martin Fowler<br />
<a href="http://www.amazon.co.uk/Domain-driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=sr_1_1?ie=UTF8&amp;qid=1250609380&amp;sr=8-1"><strong>Domain Driven Design: Tackling Conplexity in the Heart of Software</strong></a> by Eric Evans<br />
<a href="http://www.amazon.co.uk/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=sr_1_1?ie=UTF8&amp;qid=1250609400&amp;sr=8-1"><strong>Working Effectively with Legacy Code</strong></a> by Micheal Feathers<br />
<a href="http://www.amazon.co.uk/Software-Development-Principles-Patterns-Practices/dp/0135974445/ref=sr_1_2?ie=UTF8&amp;qid=1250609439&amp;sr=8-2"><strong>Agile Software Development: Principles, Patterns and Practices</strong></a> by Robert C Martin<br />
<a href="http://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882/ref=sr_1_1?ie=UTF8&amp;qid=1250609478&amp;sr=8-1"><strong>Clean Code: A Handbook of Agile Software Crafstmanship</strong></a> by Robert C Martin<br />
<a href="http://www.amazon.co.uk/xUnit-Test-Patterns-Refactoring-Signature/dp/0131495054/ref=sr_1_1?ie=UTF8&amp;qid=1250609523&amp;sr=8-1"><strong>xUnit Test Patterns: Refactoring Test Code</strong></a> by Gerard Meszaros<br />
<a href="http://www.amazon.co.uk/Lean-Software-Development-Agile-Toolkit/dp/0321150783/ref=sr_1_1?ie=UTF8&amp;qid=1250609543&amp;sr=8-1"><strong>Lean Software Development</strong></a> by Mary and Tom Poppendieck<br />
<a href="http://www.amazon.co.uk/Toyota-Way-Management-Principles-Manufacturer/dp/0071392319/ref=sr_1_1?ie=UTF8&amp;qid=1250609564&amp;sr=8-1"><strong>The Toyota Way: 14 Management Principles from the World&#8217;s Greatest Manufacturer</strong></a> by Jeffry LIker</p>
<p>*I am in no way professing to be a top class developer :)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/08/18/read-books-and-earn-more-money/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>What&#8217;s the difference between Lean and Agile?</title>
		<link>http://blog.robbowley.net/2009/06/23/whats-the-difference-between-lean-and-agile/</link>
		<comments>http://blog.robbowley.net/2009/06/23/whats-the-difference-between-lean-and-agile/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 08:09:59 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[toyota]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=696</guid>
		<description><![CDATA[There isn&#8217;t any. Certainly not enough to be able to draw a clear line between the two and start comparing the benefits of one against the other. Daniel Jones, the author of The Machine That Changed the World did a keynote at XPDay2008 and said from what he saw there wasn&#8217;t really much difference, apart [...]]]></description>
			<content:encoded><![CDATA[<p>There isn&#8217;t any.</p>
<p>Certainly not enough to be able to draw a clear line between the two and start comparing the benefits of one against the other. Daniel Jones, the author of The Machine That Changed the World did a keynote at XPDay2008 and said from what he saw there wasn&#8217;t really much difference, apart from the name. In fact, when they were looking for a name for Lean they thought about using Agile.</p>
<p>Agile came from Lean, the related processes came from people studying Demming, The Toyota Production System or through convergent evolution. The two guys who invented Scrum are Japanese and that&#8217;s no coincidence.  When I started reading about Toyota and Demming it all simply made sense to me and explained where Agile came from.</p>
<p>Then I found an article written by Craig Larman on the history of iterative development and that wrapped it up: <a href="http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf">http://www2.umassd.edu/SWPI/xp/articles/r6047.pdf</a></p>
<p>There is no point spending any time discussing and trying to find differences between what is essentially the same thing just written in a different way.</p>
<p>It reminds me of how the Jews and Christians went their separate ways and then came the Muslims and then they split up into the Sunni and Shia&#8217;s. They&#8217;ve all been fighting bitterly for the last 2000 years but all worship the same god. Go figure!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/06/23/whats-the-difference-between-lean-and-agile/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Snapshot of my team&#8217;s current practices</title>
		<link>http://blog.robbowley.net/2009/06/22/snapshot-of-current-practices/</link>
		<comments>http://blog.robbowley.net/2009/06/22/snapshot-of-current-practices/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 08:10:59 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[experience report]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[toyota]]></category>
		<category><![CDATA[xp]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=543</guid>
		<description><![CDATA[It seems these days there are countless methodologies, processes and practices to choose from when developing software and, somewhat ironically, the list seems to be growing at the rate of Moore&#8217;s law. I&#8217;ve read about, discussed, been on courses and been to conferences about a lot of them and the thing I&#8217;ve consistently found most [...]]]></description>
			<content:encoded><![CDATA[<p>It seems these days there are countless methodologies, processes and practices to choose from when developing software and, somewhat ironically, the list seems to be growing at the rate of Moore&#8217;s law. I&#8217;ve read about, discussed, been on courses and been to conferences about a lot of them and the thing I&#8217;ve consistently found most useful is talking to other practitioners about what they&#8217;re doing and what&#8217;s working (or not working) for them.</p>
<p>Recently there&#8217;s been a lot of (and subsequently <a href="http://www.xprogramming.com/blog/needles/my-named-cloud-is-better-than-your-named-cloud.htm">criticism of</a>) debate on message boards and blogs about the relative benefits of <a href="http://www.google.co.uk/search?q=agile+vs+scrum+vs+kanban">one paradigm versus the other</a>. <em> </em>Personally I don&#8217;t care much for subscribing to any particular paradigm and am much more interested in what works and what doesn&#8217;t (and in which circumstances) so my response is to publish what my team and company is <em>actually doing right now. </em>This is a snapshot of our current practices. Ask me again in 6 months and hopefully I&#8217;ll show you something very different.</p>
<p>The inspiration and influences for the way we work mostly come from <a href="http://agilemanifesto.org/">Agile</a>, <a href="http://www.controlchaos.com/">Scrum</a>, <a href="http://www.extremeprogramming.org/">Extreme Programming</a>, <a href="http://manifesto.softwarecraftsmanship.org/">Software Craftsmanship</a>, <a href="http://www.lean.org/">Lean</a>, <a href="http://www.amazon.co.uk/Lean-Software-Development-Agile-Toolkit/dp/0321150783">Lean Software Development</a>, <a href="http://www.limitedwipsociety.org/">Kanban Software Development</a> and <a href="http://www.amazon.co.uk/Toyota-Way-Management-Principles-Manufacturer/dp/0071392319">The Toyota Way</a>. It is all and none of these things.</p>
<h3><span style="font-weight: normal;">Context</span></h3>
<p>We are a small to medium size &#8220;start up&#8221; organisation working in the new media industry. The company employs around 60 people mainly based in the UK. The development department numbers around 20 co-located people. Agile practices are a relatively new introduction and the previous approach was of the typically chaotic type familiar to young businesses.  We mainly work in .Net using C# but also dabble in Ruby, Javascript and UI languages. The rest of the article mostly relates specifically to one of the teams working within the department but also addresses some of the practices of the department as a whole.</p>
<h3><span style="font-weight: normal;">Team</span></h3>
<p>The team is made up of 4-5 developers and a tester. There is no project manager at the team level &#8211; in the spirit of <a href="http://agilemanifesto.org/principles.html">self-organisation</a> (principle 11) the duties traditionally the responsibility of a PM are shared between the team members. The <a href="http://www.mountaingoatsoftware.com/product-owner">Product Owner</a> role is shared between the stakeholders within the organisation for the products the team is responsible for.</p>
<h3><span style="font-weight: normal;">Iterations</span></h3>
<p>We currently work in 1 week <a href="http://en.wikipedia.org/wiki/Iterative_and_incremental_development">Iterations</a>. It&#8217;s a new team who are also new to many of the agile concepts and doing this enables us to <a href="http://en.wikipedia.org/wiki/Heijunka">control the amount of work in progress</a>, focus on delivery, improve our <a href="http://www.codinghorror.com/blog/archives/000931.html">discipline</a> and most importantly have short feedback cycles so <a href="http://en.wikipedia.org/wiki/The_Toyota_Way#Section_IV:_Continuously_Solving_Root_Problems_Drives_Organizational_Learning">improvements</a> can be discussed and applied frequently. The downside is the overhead created by the amount of meetings. Once we&#8217;re comfortable the team is working well together we will have the opportunity to change this if desired (e.g. <a href="http://en.wikipedia.org/wiki/Continuous_Flow_Manufacturing">Continuous Flow</a>, changing the iteration length, changing the frequency of meetings).</p>
<h3><span style="font-weight: normal;">Meetings</span></h3>
<p>Each iteration we have the following meetings:</p>
<p><strong>Work Prioritisation</strong> &#8211; occurs iteration minus one. Stakeholders come together to raise and prioritise work not yet commited to.<br />
<strong>Requirements Gathering</strong> &#8211; occurs ad hoc when necessary. All the team is required to attend along with the customer/s to bash out requirements for work prioritised in the prioritisation meeting.<br />
<strong>Planning</strong> &#8211; occurs at the beggining of the iteration. Prioritised features (MMFs) which have been analysed are broken down into stories, discussed, estimated and commited to based on our current <a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110">velocity</a> (avg. over last 6 weeks)<br />
<strong><a href="http://www.think-box.co.uk/blog/2006/05/daily-stand-up-scrum-meeting.html"> Stand Up</a></strong> &#8211; occurs daily at 10am at the task board. Anyone outside the team is welcome to watch<br />
<strong><a href="http://retrospectivewiki.org/"> Retrospective</a></strong> &#8211; occurs at the end of the iteration. Any actions from the meeting are to be completed by the end of the next iteration.</p>
<h3><span style="font-weight: normal;">Requirements</span></h3>
<p><a href="http://blog.robbowley.net/wp-content/uploads/2009/06/uml.gif"><img class="alignright size-medium wp-image-686" style="border: 2px solid orange;" title="uml" src="http://blog.robbowley.net/wp-content/uploads/2009/06/uml-300x225.gif" alt="" width="300" height="225" /></a></p>
<p>Features are requested at the prioritisation session and use the <a href="http://en.wikipedia.org/wiki/User_story">User Story</a> format.</p>
<p>More detailed requirements are gathered during the requirements meetings mentioned above, with the customer/s and all team members present. We use whiteboards to bash out the requirements and convert them into acceptance criteria using the &#8220;<a href="http://dannorth.net/introducing-bdd">Given, When, Then</a>&#8221; format. We have a <a href="http://blog.robbowley.net/2009/04/29/team-principles/">rule</a> that no work can be commited to unless we&#8217;re happy we have a clear understanding of the requirements.</p>
<h3><span style="font-weight: normal;">Task Board</span></h3>
<p><a href="http://blog.robbowley.net/wp-content/uploads/2009/06/taskboard.jpg"><img class="alignnone size-medium wp-image-675" title="taskboard" src="http://blog.robbowley.net/wp-content/uploads/2009/06/taskboard-300x181.jpg" alt="" width="300" height="181" /></a></p>
<p>The task board is essentially a <a href="http://jamesshore.com/Blog/Kanban-Systems.html">Kanban</a> board with each stage of the delivery process separated into columns. We have an implicit limit of 2 stories in active, but otherwise have not applied limits to any other columns. Features (<a href="http://www.netobjectives.com/blogs/more-insights-on-epics-vs-mmfs">MMF</a>) are blue, the stories which make up the MMFs are yellow, bugs are pink and quick support tasks white. When a story is commited to, the feature card is moved into &#8220;commited&#8221;, above the titles of the columns and tracks the last related story.</p>
<h3><span style="font-weight: normal;">Measurement &amp; Metrics</span></h3>
<p><a href="http://blog.robbowley.net/wp-content/uploads/2009/06/dashboard.gif"><img class="alignnone size-medium wp-image-677" style="border: 2px solid orange;" title="dashboard" src="http://blog.robbowley.net/wp-content/uploads/2009/06/dashboard-300x195.gif" alt="" width="300" height="195" /></a></p>
<p>We use an Excel spreadsheet to hold the product backlog and track the data from the Kanban/Task board. Whenever an MMF moves to another column the date this occured is recorded. You can download a copy of the spreadsheet <a href="http://files.robbowley.net/ProductBacklog_And_Dashboard.xls">here</a> (you may want to check the calcs on the CFD, not sure they&#8217;re right). Among other things it calculates average cycle time, average <a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1110">velocity</a> and projections based on velocity. I&#8217;ve tried a few bespoke tracking tools (such as <a href="http://studios.thoughtworks.com/mingle-agile-project-management">Mingle</a>) and found nothing is as powerful and flexible as Excel.</p>
<p>We have a manual <a href="http://edn.embarcadero.com/article/32410">Cumulative Flow Diagram</a> (CFD) which each team member takes turns to update daily so everyone shares the responsibility (it is also their job to update the Excel spreadsheet each day). The CFD diagram only tracks the value delivered to the business (one unit = one MMF.<em> Measure the output, not the input</em>) and is also represented in the Excel spreadsheet. Why have both you may ask? <a href="http://en.wikipedia.org/wiki/The_Toyota_Way#Principle_7">Visibility</a>.</p>
<p><a href="http://blog.robbowley.net/wp-content/uploads/2009/06/cfd.jpg"><img class="size-medium wp-image-679 alignright" title="cfd" src="http://blog.robbowley.net/wp-content/uploads/2009/06/cfd-300x189.jpg" alt="" width="300" height="189" /></a></p>
<p>We have some rudamentry code metrics set up through our <a href="http://martinfowler.com/articles/continuousIntegration.html">continuous integration</a> framework such as <a href="http://www.ndepend.com/">NDepend</a> output and test coverage but are working towards something more visible and useful.</p>
<h3><span style="font-weight: normal;">Estimation</span></h3>
<p>Still very much a necessary <a href="http://blog.robbowley.net/2008/06/06/estimation/">evil</a>.</p>
<p>For comitting to work for an iteration we use <a href="http://en.wikipedia.org/wiki/Story_points">Story Points</a> using the fibonacci (1, 2, 3, 5, 8&#8230;) sequence and achieve them by playing <a href="http://www.planningpoker.com/detail.html">Planning Poker</a> with everyone who may be involved in the work required to take part. We will only estimate (and commit to) work we have already analysed and gathered requirements for.</p>
<p><a href="http://blog.robbowley.net/wp-content/uploads/2009/06/poker.jpg"><img class="size-medium wp-image-678 alignleft" title="poker" src="http://blog.robbowley.net/wp-content/uploads/2009/06/poker-300x256.jpg" alt="" width="300" height="256" /></a></p>
<p>For longer term planning, as we don&#8217;t yet have enough information to be able to use cycle time for projecting work completion, using the velocity based on points completed per iteration has proven a very powerful toool to be able to give the rest of the business a better idea of our capacity and timescales (previously they had none). However this has <a href="http://agilesoftwaredevelopment.com/blog/jackmilunsky/measuring-velocity-not-enough-determine-team-productivity">well known drawbacks</a> and we must be careful it does not get abused, as I have seen before (such as gaming of estimates, whether intentionally on subconsciously). Also, as we need to understand and have gathered the requirements to be able estimate this way it means there is very limited scope to how far into the future we can do this with any degree of confidence (as requirements will <a href="http://en.wikiquote.org/wiki/Heraclitus">change</a>). Once we have a reasonable amount of data in the system we will be able to use average cycle time, which will be much more powerful.</p>
<h3><span style="font-weight: normal;">Coding Practices</span></h3>
<p>Apart from the <a href="http://blog.robbowley.net/2009/04/29/team-principles/">rules</a> we&#8217;ve commited to as a team, <a href="http://en.wikipedia.org/wiki/Pair_programming">Pair Programming</a>, <a href="http://en.wikipedia.org/wiki/Unit_testing">Unit Testing</a>, <a href="http://www.refactoring.com/">Refactoring</a> and the best working principles and practices of the software industry are encouraged from the top of the department and applied rigorously but pragmatically.</p>
<p>At the request of the department members (as a result of a disucssion on collective responsibility) we created a development standards document which includes topics such as naming conventions and testing. As much as possible the document is vague on implementation details to prevent it from holding us back when better working practices come along. We use shared Resharper and Visual Studio settings to help us keep to these standards.</p>
<p>As mentioned below we also frequently hold sessions to improve our skills.</p>
<h3><span style="font-weight: normal;"><span style="font-weight: normal;">Automated Testing</span></span></h3>
<p>All new or modified code is covered by unit tests, integration tests (such as database interaction) and automated acceptance tests which test against the acceptance criteria (this last one is quite new territory).</p>
<h3><span style="font-weight: normal;"><a href="http://martinfowler.com/articles/continuousIntegration.html">Continuous Integration</a> and Deployment</span></h3>
<p>All projects are under continuous integration (we use <a href="http://www.jetbrains.com/teamcity/">TeamCity</a>) and we are working towards having all deployments doing the same. We have monitors on the wall which <a href="http://blog.robbowley.net/2009/04/30/creating-a-teamcity-currently-failed-builds-page/">show all the currently failing builds</a>. Do I need to mention we use source control?</p>
<p><img class="aligncenter size-full wp-image-683" title="83703920" src="http://blog.robbowley.net/wp-content/uploads/2009/06/83703920.jpg" alt="Failed builds monitor" /></p>
<h3><span style="font-weight: normal;">Roles and Responsibilities</span></h3>
<p>Every role in the department is covered by a document explaining their roles and responsibilities. They are written in a way which encourages self-organisation and collective responsiblity. You can download them <a href="http://files.robbowley.net/Roles&amp;Responsibilities.zip">here</a>. I will be talking about these descriptions more in a future article.</p>
<h3><span style="font-weight: normal;"><a href="http://en.wikipedia.org/wiki/The_Toyota_Way#Section_III_.E2.80.94_Add_Value_to_the_Organization_by_Developing_Your_People">Learning Culture</a></span></h3>
<p>Each week two hours are set aside for learning sessions such as coding dojos and presentations (we&#8217;re currently running a design patterns study group). Outside of these developers are actively encouraged to take the time to learn new practices during working hours (within reason). We have a library of books available on a range of subjects which are at the disposal of everyone. More often than not if there&#8217;s a book that someone would like to read the company will purchase it and add it to the library (books are pretty cheap in the grand scheme of things).</p>
<h3><span style="font-weight: normal;"><a href="http://en.wikipedia.org/wiki/The_Toyota_Way#Section_IV:_Continuously_Solving_Root_Problems_Drives_Organizational_Learning">Continuous Improvement</a></span></h3>
<p>Outside of retrospectives we have a monthly departmental session where the most pressing problems are discussed and actions taken away. However there is no limit or retriction to when improvements can be made and everyone is encouraged to take the initiative when they see a problem that needs addressing.</p>
<h3><span style="font-weight: normal;"><br />
</span></h3>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/06/22/snapshot-of-current-practices/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Principles</title>
		<link>http://blog.robbowley.net/2009/06/09/principles/</link>
		<comments>http://blog.robbowley.net/2009/06/09/principles/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 12:13:52 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[lean]]></category>
		<category><![CDATA[principles]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=528</guid>
		<description><![CDATA[The Principles behind the Agile Manifesto Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer&#8217;s competitive advantage. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to [...]]]></description>
			<content:encoded><![CDATA[<h2><span style="font-weight: normal;">The Principles behind the Agile Manifesto</span></h2>
<ul>
<li>Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.</li>
<li>Welcome changing requirements, even late in development. Agile processes harness change for the customer&#8217;s competitive advantage.</li>
<li>Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.</li>
<li>Business people and developers must work together daily throughout the project.</li>
<li>Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.</li>
<li>The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.</li>
<li>Working software is the primary measure of progress.</li>
<li>Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.</li>
<li>Continuous attention to technical excellence and good design enhances agility.</li>
<li>Simplicity&#8211;the art of maximizing the amount of work not done&#8211;is essential.</li>
<li>The best architectures, requirements, and designs emerge from self-organizing teams.</li>
<li>At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behaviour accordingly.</li>
</ul>
<h2>The Five Principles of Lean</h2>
<ol>
<li><strong>Value</strong> &#8211; specify what creates value from the customer’s perspective.</li>
<li><strong>The value stream</strong> – identify all the steps along the process chain.</li>
<li><strong>Flow</strong> &#8211; make the value process flow.</li>
<li><strong>Pull</strong> &#8211; make only what is needed by the customer (short term response to the customer’s rate of demand).</li>
<li><strong>Perfection</strong> &#8211; strive for perfection by continually attempting to produce exactly what the customer wants.</li>
</ol>
<h2>The Seven Principles of Lean Software Development</h2>
<ol>
<li>Eliminate waste</li>
<li>Amplify learning</li>
<li>Decide as late as possible</li>
<li>Deliver as fast as possible</li>
<li>Empower the team</li>
<li>Build integrity in</li>
<li>See the whole</li>
</ol>
<div>
<h2><span>The 4 Sections and the 14 Principles of the Toyota Way</span></h2>
</div>
<h3>I. Having a long-term philosophy that drives a long-term approach to building a learning organization</h3>
<p>1. Base your management decisions on a long-term philosophy, even at the expense of short-term financial goals</p>
<h3>II. The right process will produce the right results</h3>
<p>2. Create a continuous process flow to bring problems to the surface</p>
<p>3. Use &#8220;pull&#8221; systems to avoid overproduction</p>
<p>4. Level out the workload (heijunka). (Work like the tortoise, not the hare)</p>
<p>5. Build a culture of stopping to fix problems, to get quality right the first time</p>
<p>6. Standardized tasks and processes are the foundation for continuous improvement and employee empowerment</p>
<p>7. Use visual control so no problems are hidden</p>
<p>8. Use only reliable, thoroughly tested technology that serves your people and processes</p>
<h3>III. Add value to the organization by developing its people and partners</h3>
<p>9. Grow leaders who thoroughly understand the work, live the philosophy, and teach it to others</p>
<p>10. Develop exceptional people and teams who follow your company&#8217;s philosophy</p>
<p>11. Respect your extended network of partners and suppliers by challenging them and helping them improve</p>
<h3>IV. Continuously solving root problems to drive organizational learning</h3>
<p>12. Go and see for yourself to thoroughly understand the situation (Genchi Genbutsu).</p>
<p>13. Make decisions slowly by consensus, thoroughly considering all options; implement decisions rapidly (Nemawashi).</p>
<p>14. Become a learning organization through relentless reflection (hansei) and continuous improvement (Кaizen).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/06/09/principles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Team principles</title>
		<link>http://blog.robbowley.net/2009/04/29/team-principles/</link>
		<comments>http://blog.robbowley.net/2009/04/29/team-principles/#comments</comments>
		<pubDate>Wed, 29 Apr 2009 11:41:52 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=452</guid>
		<description><![CDATA[On my new team we&#8217;ve just started our first proper iteration. We&#8217;ve agreed to commit to the following principles: No multi-tasking All new or changed code must be thoroughly unit tested No more than 2 pieces of work in “Active Work” at any time (our team is 3 developers) We always work on the highest [...]]]></description>
			<content:encoded><![CDATA[<p>On my new team we&#8217;ve just started our first proper iteration. We&#8217;ve agreed to commit to the following principles:</p>
<ul>
<li>No multi-tasking</li>
<li>All new or changed code must be thoroughly unit tested</li>
<li>No more than 2 pieces of work in “Active Work” at any time (our team is 3 developers)</li>
<li>We always work on the highest priority task</li>
<li>Our definition of done is “In UAT”</li>
<li>Leave it in a better condition than you found it</li>
<li>No hidden work</li>
<li>No overtime</li>
<li>No disruptions</li>
<li>Don’t SysTest your own work (we don&#8217;t have a tester yet)</li>
</ul>
<div>Have you done something similar? What are your team&#8217;s principles?<br/><br/></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/04/29/team-principles/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Announcing the Agile Retrospective Resource Wiki</title>
		<link>http://blog.robbowley.net/2009/03/30/agileretrospectiveresourcewiki/</link>
		<comments>http://blog.robbowley.net/2009/03/30/agileretrospectiveresourcewiki/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 11:15:40 +0000</pubDate>
		<dc:creator>Rob</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[retrospective]]></category>

		<guid isPermaLink="false">http://blog.robbowley.net/?p=347</guid>
		<description><![CDATA[I&#8217;m a big fan of retrospectives having found them incredibly useful in ensuring teams can focus on continously improving their process. However they are difficult to get right and I know many teams struggle to get much out of them and often give up altogether. I think this is a big mistake. Firstly, if you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m a big fan of retrospectives having found them incredibly useful in ensuring teams can focus on continously improving their process. However they are difficult to get right and I know many teams struggle to get much out of them and often give up altogether. I think this is a big mistake.</p>
<p>Firstly, if you haven&#8217;t read it, I&#8217;d highly recommend <a href="http://www.amazon.co.uk/Agile-Retrospectives-Making-Pragmatic-Programmers/dp/0977616649/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1238410389&amp;sr=8-1">Agile Retrospectives: Making Good Teams Great</a> by Darby, Larsen &amp; Schwaber. A great introduction to retrospectives with a lot of plans and ideas to help you out (although I have to say I find many of them too long for my liking).</p>
<p>However, beyond that book there really isn&#8217;t much else available so I&#8217;ve started a wiki to collect retrospective resources. Without further ado I&#8217;m delighted to announce:</p>
<p><a href="http://retrospectivewiki.org"><strong>The Agile Retrospective Resource Wiki</strong></a><strong> or </strong><strong><a href="http://retrospectivewiki.org">http://retrospectivewiki.org</a></strong></p>
<p><strong>A plea for contributors</strong></p>
<p>Everything else you need to know is on the wiki, but I would like to take this opportunity make a plea for contributors. The content is currently a bit limited as I&#8217;m the only contributor so far so if you&#8217;ve got any cool retrospective plans, tips, tricks or anything else <strong>please add them.</strong></p>
<p>Along with <a href="http://blog.mattwynne.net/">Matt Wynne</a> I&#8217;ll be running the <a href="http://agileretrospectivewiki.org/index.php?title=Retrospective_Surgery">Retrospective Surgery</a> session mentioned on the wiki at <a href="http://www.spaconference.org/spa2009/index.php">SPA2009</a> next week so I expect we&#8217;ll be getting some juicy new content imminently.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robbowley.net/2009/03/30/agileretrospectiveresourcewiki/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

