<?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>MIH SWAT &#187; scrum</title>
	<atom:link href="http://www.mihswat.com/tag/scrum/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mihswat.com</link>
	<description>MIH SWAT - the official blog of MIH's Strategic Worldwide Applications and Technology Team.</description>
	<lastBuildDate>Mon, 06 Sep 2010 10:24:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Agile Planning Reviewed</title>
		<link>http://www.mihswat.com/2010/08/23/agile-planning-reviewed/</link>
		<comments>http://www.mihswat.com/2010/08/23/agile-planning-reviewed/#comments</comments>
		<pubDate>Mon, 23 Aug 2010 08:53:22 +0000</pubDate>
		<dc:creator>Otavio Ferreira</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[planning]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://www.mihswat.com/?p=1492</guid>
		<description><![CDATA[Agile software development methods have reached great popularity among technology-based companies around the globe, arguably due to their effectiveness at managing the project stakeholders&#8217; expectations and goals. However, this positive outcome is directly related to the team members&#8217; ability to carry out the planning phases. And unfortunately the minimalistic theory frequently observed in agile processes [...]]]></description>
			<content:encoded><![CDATA[<p>Agile software development methods have reached great popularity among technology-based companies around the globe, arguably due to their effectiveness at managing the project stakeholders&#8217; expectations and goals. However, this positive outcome is directly related to the team members&#8217; ability to carry out the planning phases. And unfortunately the minimalistic theory frequently observed in agile processes tends to result in poorly written user stories.<span id="more-1492"></span></p>
<p>Agile methods are often described as &#8220;common sense&#8221;. For this reason <a href="http://en.wikipedia.org/wiki/Ken_Schwaber">Ken Schwaber</a> refuses being titled the Co-Creator of Scrum. Several software development practitioners such as <a href="http://en.wikipedia.org/wiki/Ivar_Jacobson">Ivar Jacobson</a>, <a href="http://en.wikipedia.org/wiki/Grady_Booch">Grady Booch</a>, and <a href="http://en.wikipedia.org/wiki/James_Rumbaugh">James Rumbaugh</a> all contributed to the set of principles that today form the Scrum framework.</p>
<p>However, having <a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">Scrum</a>, <a href="http://en.wikipedia.org/wiki/Extreme_programming">XP</a>, or any other method classified as common sense leaves a lot of room for interpretation by the individuals applying them. Thus, iteration planning efforts sometimes end up being superficial, not entirely committed to the system actors&#8217; real goals. As a practical consequence, user stories are found reduced to single sentences hanging on the white-board.</p>
<p>It is clear that <a href="http://www.mountaingoatsoftware.com/articles/27-advantages-of-user-stories-for-requirements">User Stories are not Use Cases or Requirement Statements</a>, as detailed by Mike Cohn, and highlighted as follows. Firstly, use cases are generally written as the result of a long analysis, whereas user stories are written as notes that will be used to initiate further analysis conversations. Secondly, requirement statements make costs visible only when all of them have been formally written in a lengthy document, whereas with user stories a complexity estimate is associated with each story immediately. Costs are then easily calculated by taking into account the velocity of the team.</p>
<p>Nonetheless, developers should not underestimate the complexity inherent in each story, and complementary theory can be found on this topic. Ron Jeffries breaks down the stories into three aspects: <a href="http://xprogramming.com/articles/expcardconversationconfirmation/">Card, Conversation, and Confirmation</a>.</p>
<p>Firstly, the card does not detail the story in depth, but successfully identifies it. Typically, team members and product owners adhere to the following template, popularized by Mike Cohn: “As an &lt;actor&gt;, I want to &lt;action&gt;, so that &lt;achievement&gt;”. Although <a href="http://blog.mountaingoatsoftware.com/advantages-of-the-as-a-user-i-want-user-story-template">advantages derived from using this template</a> have been listed, other agile evangelists have proposed enhancements. Elizabeth Keogh, for instance, came up with <a href="http://sirenian.livejournal.com/47679.html">a new user story format that better emphasizes business value</a>. One way or the other, templating has been the common approach, and teams should adopt one that will fit in smoothly within their environment.</p>
<p>Secondly, conversation is the activity that communicates the requirement from customers to developers during the product and sprint planning. At this stage, details such as dependencies and barriers are mapped out. As depicted by Jeffries, the conversation is largely verbal, but is often supplemented with documents. It is important to bear in mind that good communication is a key success factor in any software development project, and none of the artifacts produced throughout the process may substitute that.</p>
<p>Finally, stories are verified through confirmation or, more specifically, <a href="http://en.wikipedia.org/wiki/Acceptance_testing">acceptance testing</a>. All criteria taking into consideration ought to be defined during planning phases as well.</p>
<p>Although the theory presented above brings some structure to the loose perception of user stories, the writing itself remains vague. So William Wake advocates that agile practitioners should <a href="http://xp123.com/xplor/xp0308/">INVEST in good stories and SMART tasks</a>. Despite not being a particular fan of forced acronyms, I have to admit that some guideline will be welcome here.</p>
<p>Briefly, characteristics that form a good story description are the following:</p>
<ul>
<li>Independent</li>
<li>Negotiable</li>
<li>Valuable</li>
<li>Estimable</li>
<li>Small</li>
<li>Testable</li>
</ul>
<p>.<br />
Hence, a story should be independent from others, negotiable between customers and programmers, valuable to customers, estimable in terms of complexity, small for the sake of understandability, and testable on account of readiness confirmation. Further studies suggest that “Small” should be replaced with “Sized appropriately”, as the bottom of the product backlog may contain items that are not fully understandable by the team yet, also known as Epics.</p>
<p>Tasks, in their turn, should be:</p>
<ul>
<li>Specific</li>
<li>Measurable</li>
<li>Achievable</li>
<li>Relevant</li>
<li>Time-boxed</li>
</ul>
<p>.<br />
So a task needs to be specific by addressing one particular point, measurable in order to be tested against the <a href="http://www.scrumalliance.org/articles/105-what-is-definition-of-done-dod">definition of done</a>, achievable by the task owner, relevant to the story at hand, and time-boxed. This latter characteristic should not be perceived as a formal estimation in hours or days though, as it does not work. The raw material in Software Engineering is the developer&#8217;s own intellect, and nobody would be able to estimate its maturation time. The same applies to activities such as painting or novel writing. Civil Engineering, on the other hand, benefits from using raw materials that allow for accurate calculations, such as concrete and iron.</p>
<p>As a final note, during the planning, instead of defining longer iterations and allowing for bigger stories, you might be interested in giving the following set of constraints a try. SWAT has successfully built some of its software by adhering to them. Manageability goes through the roof!</p>
<ul>
<li>5-day sprints</li>
<li>5-point stories, or less</li>
<li>2-developer teams, up to 4</li>
</ul>
<p>.<br />
In conclusion, a better organized agile planning is more likely to drive the team towards the goals identified by project stakeholders. Theories and guidelines have been proposed, and I suggest bringing these concepts to the table when starting a new agile project.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mihswat.com/2010/08/23/agile-planning-reviewed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Two Approaches To Setting Up An Agile Team</title>
		<link>http://www.mihswat.com/2009/12/01/two-approaches-to-setting-up-an-agile-team/</link>
		<comments>http://www.mihswat.com/2009/12/01/two-approaches-to-setting-up-an-agile-team/#comments</comments>
		<pubDate>Tue, 01 Dec 2009 07:41:02 +0000</pubDate>
		<dc:creator>Graeme Cumming</dc:creator>
				<category><![CDATA[SWAT]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[teams]]></category>

		<guid isPermaLink="false">http://www.mihswat.com/?p=896</guid>
		<description><![CDATA[The development team at DStv Labs, a division of DStv Online and MIH SWAT has recently been thrown together to look at some exciting projects in the New Media space. In keeping with the latest thinking around agile development frameworks, the DStv Labs team has adopted Scrum as the framework that will be used to [...]]]></description>
			<content:encoded><![CDATA[<p>The development team at <strong>DStv Labs</strong>, a division of <a href="http://www.dstvo.com/">DStv Online</a> and <a href="http://www.mihswat.com">MIH SWAT</a> has recently been thrown together to look at some exciting projects in the New Media space. In keeping with the latest thinking around agile development frameworks, the DStv Labs team has adopted <strong><a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">Scrum</a></strong> as the framework that will be used to deliver these projects.<span id="more-896"></span></p>
<p>For those not familiar with <strong>Scrum</strong>, let me summarise the key principles quickly:</p>
<p>1. A project team is setup usually consisting of between 5 and 9 resources.<br />
2. The resources within the team have the set of skills needed to develop products.<br />
3. There are defined roles within this setup, namely</p>
<ul>
<li>The <strong>Product Owner</strong>:      Manages a list of product features that require development. These      features are prioritized by the Product Owner.</li>
<li>The <strong>Scrum Master</strong>:      Ensures that the processes are followed and helps the team deliver the      product features by removing any impediments that prevent them from      delivering.</li>
<li>The <strong>Team</strong>:      Self organises around the product features and collectively work together      to deliver these product features.</li>
</ul>
<p>I&#8217;m simplifying the roles here of course &#8211; there are further responsibilities that are played by each role, but this is the essence.</p>
<p>4. The team produces working demonstrations of the product features at regular intervals (typically every two weeks).<br />
5. These working demonstrations are visible to the business, allowing the business to get a view on where the product is going and whether it needs refinement or a complete change in direction.<br />
6. The refinements or improvements are then fed back into the team, prioritised by the Product owner and driven through to demonstration once again.</p>
<p>The framework is <strong>agile</strong> in nature. Problems are quick to identify, and quick to change. Traditional project management methodologies would allow a project to proceed down a long and drawn-out development path and if the up-front analysis had not been 100% accurate, or if external factors had required a change to the project during development, this would be very difficult to accommodate. The Scrum process by contrast makes sense &#8211; it is a simple, logical way of delivering projects and caters for changing requirements.</p>
<p>That said, the question of how to setup the Scrum team and environment remains. As a new team, we are facing these questions and trying to figure out the best path to creating the esteemed &#8220;<strong>High Performance Team</strong>&#8220;. There are two schools of thought here. Let me deal with the first.<br />
As competent and experienced team members, there is a sense of &#8220;doing things right, from the start&#8221;. This includes everything from ordering the right development hardware, deciding on what software is appropriate, defining the practices and principles the team is going to follow, which languages are best suited for the projects that need to be developed, and what the collaboration environments need to look like. All good stuff, and completely necessary. The planning also includes discussion and decisions around how to test the code that is developed, how it is documented, how much of this is automated versus manual, which tools are best suited for testing, how new issues get logged and fed back into the team, and how much test coverage is considered acceptable. Again, all good stuff, and all appropriate to the work that is being done within the team. It is also a good idea to get the overall context of the project defined up front so that broad architecture decisions can be made. Where the team needs to be careful however, and we are all sometimes guilty of this, is when it comes to over-engineering a solution up-front. Chances are that this picture is changing, or will eventually change. Nothing wrong with good architecture up-front, but trying to understand too much detail too soon is probably wasted effort.</p>
<p>Lets take a look at the second school of though for a moment. The principles of Scrum and Agile development methodologies and practices suggest that the value lies in <strong>delivering small</strong>, <strong>incremental features</strong>, <strong>regularly</strong>. Mistakes and changes to project scope are inevitable and it is the ability of the team to correct these mistakes, and accept the changes in scope that makes them &#8220;High Performance Teams&#8221;. Through <strong>continuous feedback</strong> and team &#8220;retrospectives&#8221;, the gaps get filled, and the holes get plugged. The team continues to improve as a result and the delivery continues to speed up &#8211; well, from the initial stages anyway. Its a situation in which the team adapts the principles of Agile software development to suit their unique environment, the individual strengths and weaknesses and their team characters.</p>
<p>The point that I am trying to make here, is that there are two ways to try and achieve the &#8220;High Performance Team&#8221;. There is the &#8220;Lets build the 6-foot armour-plated robot with Augmented Reality vision&#8221;, or, the &#8220;Lets build the stick man and determine what he needs next&#8221; approach. There is a fine line between setting up a team that does everything right from the start, and a team that is <strong>setup to learn</strong> how to do what is right for them.</p>
<p>I was recently made aware of an agile development team based in the UK that has been together for the past 60 months. They deliver code weekly, have a number of visible metrics for how many bugs are in their system and how quickly they are resolved, what the velocity (capacity for delivery) of the team is, converted into monetary value, and a number of other &#8220;reporting&#8221; metrics. Incredibly useful information, and a sign that they are a &#8220;High Performance Team&#8221;, but I wonder how much of that was setup from the start, and how much of it &#8220;evolved&#8221; as the team progressed through their 60 months of development together?</p>
<p>To take the analogy used above, whilst it is important to have a team vision in place and to follow best practices where ever possible, I firmly believe that it is best to create the stick-man from day one, and get him running in an agreed direction, rather than spend too much time thinking and planning the 6-foot robot that potentially is only capable of taking a few steps at a time, and hopefully, in the right direction.</p>
<p>That being said, our team is in a good place. We are positioned nicely and are moving forward as a unit. Hopefully the discussions that our team have had, and the conclusions drawn here, can help you position and setup your own team.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mihswat.com/2009/12/01/two-approaches-to-setting-up-an-agile-team/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is Scrum?</title>
		<link>http://www.mihswat.com/2008/10/06/what-is-scrum/</link>
		<comments>http://www.mihswat.com/2008/10/06/what-is-scrum/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 11:43:31 +0000</pubDate>
		<dc:creator>Leon Coetzee</dc:creator>
				<category><![CDATA[Project Management]]></category>
		<category><![CDATA[Nonaka]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[sutherland]]></category>
		<category><![CDATA[SWAT]]></category>
		<category><![CDATA[Takeuchi]]></category>

		<guid isPermaLink="false">http://www.mihswat.com/?p=55</guid>
		<description><![CDATA[Being relatively new to the Scrum way of doing things (2 projects in progress and starting a 3rd), I thought it may be useful to start a series of blog posts on our experience of Scrum. To kick off I will start with our understanding of what scrum is. Origin: The term Scrum comes from [...]]]></description>
			<content:encoded><![CDATA[<p>Being relatively new to the Scrum way of doing things (2 projects in progress and starting a 3rd), I thought it may be useful to start a series of blog posts on our experience of Scrum. To kick off I will start with our understanding of what scrum is.<span id="more-55"></span></p>
<p><span style="underline;"><span style="underline;">Origin</span>:</span></p>
<p>The term Scrum comes from a study by Hirotaka Takeuchi and Ikujiro Nonaka in 1986, which was published in the Harvard Business Review. In this paper (<a title="The New New Product Development Game" href="http://apln-richmond.pbwiki.com/f/New%20New%20Prod%20Devel%20Game.pdf" target="_self"><em>The New New Product Development Game</em></a>) they described a holistic approach in which the development phases overlap and where project teams are made up of small cross-functional teams. They compared these high performing teams that work together towards a common goal, to the Scrum formation in rugby.</p>
<p style="0.0001pt;">The first software development Scrum was created at Easel Corporation in 1993 by Jeff Sutherland, who used their study as the basis for team formation and adopted Scrum as the name of the process as a whole. Jeff introduced Scrum Ken Schwaber in 1995, who then formalized the process for the worldwide software industry in the first published paper on Scrum at OOPSLA 1995.</p>
<p style="0.0001pt;">
<p><span style="underline;"><span style="underline;">Definition</span></span>:</p>
<p>Various definitions of Scrum exist, but the following two defines it the best.</p>
<p style="-0.25in;">[<em><a title="ScrumPapers - Nuts, Bolts, and Origins of an Agile Process by Jeff Sutherland" href="http://jeffsutherland.com/scrum/ScrumPapers.pdf" target="_self">ScrumPapers - Nuts, Bolts, and Origins of an Agile Process by Jeff Sutherland</a></em>] Scrum is a simple framework used to organize teams and get work done more productively with higher quality. It allows teams to choose the amount of work to be done and decide how best to do it, thereby providing a more enjoyable and productive working environment. Scrum focuses on prioritizing work based on business value, improving the usefulness of what is delivered, and increasing revenue, particularly early revenue. Designed to adapt to changing requirements during the development process at short, regular intervals, Scrum allows teams to prioritize customer requirements and adapt the work product in real time to customer needs. By doing this, Scrum provides what the customer wants at the time of delivery (improving customer satisfaction) while eliminating waste (work that is not highly valued by the customer).</p>
<p style="0in 0in 0.0001pt 0.5in;"><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;"> </span></p>
<p style="0in 0in 0.0001pt 0.5in;"><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">Scrum is a simple “inspect and adapt” framework that has three roles, three ceremonies, and three artifacts designed to deliver working software in Sprints, usually 30-day iterations.</span></p>
<p style="0in 0in 0.0001pt 0.5in;"><span style="SymbolMT;">• </span><strong><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">Roles</span></strong><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">: Product Owner, ScrumMaster, Team.</span></p>
<p style="0in 0in 0.0001pt 0.5in;"><span style="SymbolMT;">• </span><strong><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">Ceremonies</span></strong><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">: Sprint Planning, Sprint Review, and Daily Scrum Meeting</span></p>
<p style="0in 0in 0.0001pt 0.5in;"><span style="SymbolMT;">• </span><strong><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">Artifacts</span></strong><span style="&quot;Times New Roman&quot;,&quot;serif&quot;;">: Product Backlog, Sprint Backlog, and Burndown Chart</span></p>
<p style="0in 0in 0.0001pt 0.5in;">
<p style="-0.25in;">[<em><a title="An Overview of Scrum – Mike Cohn" href="http://www.mountaingoatsoftware.com/presentation/30" target="_self">An Overview of Scrum – Mike Cohn</a></em>] Scrum is an agile process that allows us to focus on delivering the highest business value in the shortest time. It allows us to rapidly and repeatedly inspect actual working software (every two weeks to one month). The business sets the priorities. Teams self-organize to determine the best way to deliver the highest priority features. Every two weeks to a month anyone can see real working software and decide to release it as is or continue to enhance it for another sprint.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mihswat.com/2008/10/06/what-is-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
