<?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>Karmængine &#187; Scrum</title>
	<atom:link href="http://www.karmaengine.com/tag/scrum/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.karmaengine.com</link>
	<description>Scrums, agile development, analytics, SEO, and general commentary from a product owner</description>
	<lastBuildDate>Thu, 22 Apr 2010 08:13:59 +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>Handling degrading developers</title>
		<link>http://www.karmaengine.com/development/handling-degrading-developers/</link>
		<comments>http://www.karmaengine.com/development/handling-degrading-developers/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 11:31:52 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[develo]]></category>
		<category><![CDATA[Scrum]]></category>

		<guid isPermaLink="false">http://www.karmaengine.com/?p=61</guid>
		<description><![CDATA[Something else I need to write about. Developers who get worse over the years. How do you handle them?
Firstly I should define what I mean by &#8216;worse&#8217;. Well, essentially:

Quality of code decreases
Ability to estimate tasks decreases
Attention to detail decreases
Time distracted increases
Work done fails testing more frequently
Contribution during discussions decreases

I suppose the first step in handling [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">Something else I need to write about. Developers who get <strong>worse </strong>over the years. How do you handle them?</p>
<p style="text-align: left;">Firstly I should define what I mean by &#8216;worse&#8217;. Well, essentially:</p>
<ul style="text-align: left;">
<li>Quality of code decreases</li>
<li>Ability to estimate tasks decreases</li>
<li>Attention to detail decreases</li>
<li>Time distracted increases</li>
<li>Work done fails testing more frequently</li>
<li>Contribution during discussions decreases</li>
</ul>
<p style="text-align: left;">I suppose the first step in handling this is to sit down with the developer, a senior developer, and a director and have a good old-fashioned discussion on these points. But this is not going to do much to solve the problems, it&#8217;s just going to result in the developer either bawling their eyes out, or agreeing firmly to try and improve matters.</p>
<p style="text-align: left;">So, more drastic action has to be taken.</p>
<p style="text-align: left;"><strong>Addressing a lack of code quality</strong></p>
<blockquote style="text-align: left;"><p>A sit-down review with a high quality coder can help. Mistakes and vicious habits can be pointed out, as well as correct principals and other methods. This should be a personal tutoring session and take place every week for a couple of hours. Yes, this kicks eight hours out of our two-week sprint, but I consider that that&#8217;s peanuts compared to the damage being done. It&#8217;s only the start, though!</p></blockquote>
<p style="text-align: left;"><strong>Helping with task estimation</strong></p>
<blockquote style="text-align: left;"><p>Estimating tasks is supposed to be a personal thing &#8211; the developers should visualize the process of developing the solution, of testing, of documenting and preparation. They should total the hours they&#8217;re likely to spend on these aspects and that should be their estimation. But if the developer has trouble visualizing, or breaking a task into &#8216;actual things to do&#8217;, their estimate will be rubbish.</p>
<p>To help the developer turn the task into actual things to do, it is a matter of simply extending the discussion of the task (prior to estimation) to include or share opinions from others on how they would approach it.</p>
<p>If the developer still doesn&#8217;t understand enough about the process to be able to give an estimate in hours, then it&#8217;s a problem. It&#8217;s a bogus developer who should be asked to re-evaluate his employment in the company. They may require extensive training, but in the case I&#8217;m talking about, where the developer has steadily declined, it may be time to put his experience elsewhere, rather on the frontline.</p></blockquote>
<p style="text-align: left;"><strong>What to do when attention to detail decreases</strong></p>
<blockquote style="text-align: left;"><p>Details are important, especially in software development &#8211; the world in which many finicky users stalk around with magnifying glasses. And, I personally find that when a developer makes the effort and pays attention to small things, that he is giving himself a little golden place in my heart. Obversely, when the developer &#8216;doesn&#8217;t give a hoot&#8217;, no matter how good they are, I get a little bit clenchy in the fist region when I see him.</p>
<p>Attention to detail can be increased by embarrassing the developer. Aye, it&#8217;s true. Point out his mistakes (even though they may not be technically mistakes) during stand up meetings. Laugh about them, make jokes. Be light-hearted about it, not stern. He will laugh too but watch his cheeks go red. If this continues to happen he will knuckle-down, out of the basic human need to &#8216;fit in&#8217;.</p>
<p>Another good way to make a mockery of a developer is to <strong>not </strong>single him out. Make a joke to the team that some silly person -did-whatever- and how funny and troublesome it is. If he immediately owns up to being the cause, it is something very respectable.</p></blockquote>
<p style="text-align: left;"><strong>Removing distractions</strong></p>
<blockquote style="text-align: left;"><p>I am always of the school of people who don&#8217;t want to restrict workers at all in the office. Introducing &#8216;no browsing&#8217; or &#8216;no music&#8217; policies is insane, in my opinion. The real way to remove distractions is to make the developer understand that while he&#8217;s not working, he is overloading himself in the future, and, since scrum is all about the team, he is increasing pressure on the team.</p>
<p>An interesting way to do this is to speak with another developer, someone who you trust and who you&#8217;re friendly with. Tell him or her that you are going to make an example out of them after the stand-up meeting, but only as an example to the other developer. Then, after the stand-up meeting, question your friend about his forum chatting or flickr browsing during working hours. Then directly ask the team how much pressure they&#8217;re feeling right now, and if they really have time to waste on non-productive activities. If they all agree that they do have spare time, that&#8217;s your fault. It might be a chance to introduce a brainstorming or knowledge-sharing session for them. That would be better than seeing them mucking about on youtube all day.</p>
<p>I also hate checking up on people. Procedures can&#8217;t be measured, only results can. But checking up sometimes help. It helps sometimes to just go and look at the developer&#8217;s screen. Don&#8217;t say anything, just look. They will feel uncomfortable, but since you&#8217;re not really putting any pressure on them to &#8216;get back to work&#8217;, they will get a splash of guilt, rather than anger. Pat them on the shoulder when you walk away, too. This is a friendly gesture which means &#8216;you&#8217;re part of the team, I like you&#8217;. It is a little condescending, but I feel it&#8217;s the right approach.</p></blockquote>
<p style="text-align: left;"><strong>Reducing test failure</strong></p>
<blockquote>
<p style="text-align: left;">Again, this is where humility comes into play. It&#8217;s usually like this: the developer works on his task, tests it on his local machine, commits his changes, and then doesn&#8217;t test on the development environment, or does a very limited check to see if the thing didn&#8217;t break after his commit. Then he goes to make coffee or unwind his brain from the task he&#8217;s finished.</p>
<p style="text-align: left;">Then someone tests his task and boom. Test failed.</p>
<p style="text-align: left;">The developer often takes an hour or more to be informed of his failure, then some time to begin working on it again, then time to find and fix the problem, and so on and so on, damaging the team&#8217;s performance. Test failed tickets are like a stab wound to the team. They can be fatal.</p>
<p style="text-align: left;">So &#8211; how to make sure the developer fully tests his own work before <strong>and </strong>after committing? Humility, yes. Embarrass him again. Count up the number of test failed tickets during the sprint and make the developer with most wear some silly t-shirt during the next sprint planning session. Be creative, but not cruel. Make him feel like the other developers are laughing at him. There&#8217;s only one direction he can take to resolving it &#8211; and that is to ensure he doesn&#8217;t have any test-failed tickets in future.</p>
</blockquote>
<p style="text-align: left;"><strong>Increasing the developer&#8217;s contribution during discussions</strong></p>
<blockquote>
<p style="text-align: left;">There&#8217;s not a lot that can be done about this one, except directly asking during discussions for the developer&#8217;s opinion. Try to get him involved in the same way you&#8217;d try to get anyone involved in a conversation. Ask questions, talk about the things they worked on, and so on.</p>
<p style="text-align: left;">If someone starts falling asleep during the planning session for example, depending on how horribly mean you are, a sudden clap is quite entertaining for everyone else, and will wake them up.</p>
<p style="text-align: left;">It also helps a developer feel like a sturdy cog in the wheel if you praise them. And, when he feels like a contributing member, he will act as one.</p>
</blockquote>
<p style="text-align: left;">In the end, it&#8217;s essential to remove the &#8216;dead wood&#8217; from the team&#8217;s little bridge, and replace it either by employing someone different, or solving the problems causing the wood to rot. If you don&#8217;t, the whole thing can collapse.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karmaengine.com/development/handling-degrading-developers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The product backlog in Trac</title>
		<link>http://www.karmaengine.com/scrum/the-product-backlog-in-trac/</link>
		<comments>http://www.karmaengine.com/scrum/the-product-backlog-in-trac/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 10:39:00 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Trac]]></category>

		<guid isPermaLink="false">http://www.karmaengine.com/?p=59</guid>
		<description><![CDATA[We are using Trac by Edgewall Software to handle our backlog. It was originally some sort of ticketing help system, but is now one of the most widely used track management softwares.
It is a very powerful tool, and that becomes obvious after a brief play around with it.
But the product backlog we have is growing, [...]]]></description>
			<content:encoded><![CDATA[<p>We are using <a href="http://trac.edgewall.org">Trac by Edgewall Software</a> to handle our backlog. It was originally some sort of ticketing help system, but is now one of the most widely used track management softwares.</p>
<p>It is a very powerful tool, and that becomes obvious after a brief play around with it.</p>
<p>But the product backlog we have is growing, as more and more tasks, defects, and stories are being created (by me). It has reached the stage where it is so long it would take our team a year to develop it all. But, at the growth rate I&#8217;m seeing, it would be futile to even try.</p>
<p>What can be done?</p>
<p>Well, in Trac, there&#8217;s not much functionality to split the backlog, except by component but again, this is fiddly and not what I&#8217;m looking for. I would like a way to divide the backlog into blocks of work either by yearly quarter, or importance ranges.</p>
<p>The only solution I have considered so far is to create a series of reports, and keep my head mostly swimming around in the &#8216;current&#8217; backlog block. But does this make sense? I suspect it is more a way of mentally handling the stories rather than actually dividing them up, which could result in other people viewing the backlog to become confused.</p>
<p>Well, this is a blog, and these were my thoughts. Thanks for reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karmaengine.com/scrum/the-product-backlog-in-trac/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The future of software development</title>
		<link>http://www.karmaengine.com/scrum/the-future-of-software-development/</link>
		<comments>http://www.karmaengine.com/scrum/the-future-of-software-development/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 13:20:15 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[agile]]></category>

		<guid isPermaLink="false">http://www.karmaengine.com/?p=43</guid>
		<description><![CDATA[As we become faster, more agile, and better organised thanks to Scrum, one can only try to imagine where we&#8217;ll be in another 20 years, in terms of software development.
I think we&#8217;ll be seeing more web-based applications, games, and Java developments, and less of the standalone desktop type software being created. This seems to be [...]]]></description>
			<content:encoded><![CDATA[<p>As we become faster, more agile, and better organised thanks to Scrum, one can only try to imagine where we&#8217;ll be in another 20 years, in terms of software development.</p>
<p>I think we&#8217;ll be seeing more web-based applications, games, and Java developments, and less of the standalone desktop type software being created. This seems to be the trend, anyway.</p>
<p>What this trend (whether it exists or not) means is that the move will be towards much more agile development &#8211; but what kind?</p>
<p>More on this after I&#8217;ve given it some proper thought&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karmaengine.com/scrum/the-future-of-software-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sprint 18 demonstration</title>
		<link>http://www.karmaengine.com/scrum/sprint-18-demonstration/</link>
		<comments>http://www.karmaengine.com/scrum/sprint-18-demonstration/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 07:55:54 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[sprint]]></category>

		<guid isPermaLink="false">http://www.karmaengine.com/scrum/sprint-18-demonstration</guid>
		<description><![CDATA[Well, we just finished sprint 18. There&#8217;s been some good success, but unfortunately I feel this should technically be called a failed sprint, for the simple fact that three tasks were not completed. 
The first of these tasks was an ongoing piece of software custom-written for a single user. It has been completed long ago, [...]]]></description>
			<content:encoded><![CDATA[<p>Well, we just finished sprint 18. There&#8217;s been some good success, but unfortunately I feel this should technically be called a failed sprint, for the simple fact that three tasks were not completed. </p>
<p>The first of these tasks was an ongoing piece of software custom-written for a single user. It has been completed long ago, but we had a task about possible changes needed to be made, and indeed, on the final day of sprint, the user provided the requirements. To me, this goes against Scrum principles, and as such not only makes me angry, but makes me wonder how well we&#8217;ve actually implemented scrum.</p>
<p>The second incomplete task was never started, it required a deployment to be made first. I had personally planned the deployment for the final day of sprint, and even informed users, but this was canceled by our director, who essentially was in a panicky mood, and I feel there was no real reason not to deploy. </p>
<p>That leads to the final unfinished task. Deployment. We set aside eight sprint hours for the deployment of the product onto the production environment, and today, the retrospective and demonstration day, is when we&#8217;ll have to do it.</p>
<p>Nevertheless, this sprint went well. A word of warning I could give as a result of my experiences is &#8211; if you have an easily startled director overseeing what you do, sit him/her down with a cup of hot chocolate and let them experience a comfy sofa while you go behind their back create mad product downtime. Or get approval beforehand.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karmaengine.com/scrum/sprint-18-demonstration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Burndown or meltdown?</title>
		<link>http://www.karmaengine.com/scrum/burndown-or-meltdown/</link>
		<comments>http://www.karmaengine.com/scrum/burndown-or-meltdown/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 14:23:09 +0000</pubDate>
		<dc:creator>Jacob</dc:creator>
				<category><![CDATA[Scrum]]></category>
		<category><![CDATA[burndown]]></category>
		<category><![CDATA[meltdown]]></category>
		<category><![CDATA[sprint]]></category>

		<guid isPermaLink="false">http://www.karmaengine.com/?p=15</guid>
		<description><![CDATA[After I began maintaining a manual burndown chart for the sprint, I noticed that in reality the burndown chart was not telling us what we needed to know. It was based on completed tasks &#8211; and completed means coded and dev-tested.
Towards the end of almost every sprint, we were seeing that our burndown chart suddenly [...]]]></description>
			<content:encoded><![CDATA[<p>After I began maintaining a manual burndown chart for the sprint, I noticed that in reality the burndown chart was not telling us what we needed to know. It was based on completed tasks &#8211; and completed means coded and dev-tested.</p>
<p>Towards the end of almost every sprint, we were seeing that our burndown chart suddenly drops down as tasks are put through testing. </p>
<p>Due to this, we don&#8217;t really get an idea of where we are, in terms of development. An eight hour task could be coded but not tested, and that means eight hours still in the backlog. Spending twenty minutes testing it essentially &#8216;leaps&#8217; the task from zero to completion. Not correct at all.</p>
<p>One solution is to report hours spent on all tasks, rather than just completed tasks. This might be even further from reality &#8211; essentially it would just show effort, which is generally not going to change from day-to-day and reporting it doesn&#8217;t show anybody anything.</p>
<p>This was causing me to have a minor meltdown, and thus this rather colourful chart evolved in my Excel spreadsheet:</p>
<p><img src="http://www.karmaengine.com/_img/meltdown.png" alt="The scrum meltdown chart - more than just a burndown" /><BR><em>The sprint meltdown chart.</em></p>
<p>Forgive me for the lack of labels here. Y-axis is number of hours (points) remaining in the sprint. X-axis is the nth day of the sprint. </p>
<p>The meltdown chart is always displayed as an &#8216;X&#8217;, with expected effort starting at zero and moving up to the planned hours limit, and expected burndown moving in the opposite direction.</p>
<p>Additionally, there is a central &#8216;window&#8217; in the chart, and using this window I can spot mid-sprint what the outcome of the sprint will be if we maintain current progress.</p>
<p>There are four sections of the window, and briefly, if the real effort and burndown intersect in pane:</p>
<ul>
<li>1. <strong>Effort needs to be reevaluated</strong>. Developers are sprinting and can probably cool off a bit, depending on whether burn is above or below average. If above, then tasks estimations are askew. In this case I would spend time to reevaluate with the team. If burn is below average, the sprint might have room for additional tasks. I would ask the developers if they would accept extra work added mid-sprint. Keep in mind that doing this might break the sprint later on.</li>
<li>2. <strong>Sprint is in serious trouble.</strong> If actual effort is below expected effort, it&#8217;s time to take the cane to the developers. In reality this can take the form of discussing the problems after a stand-up meeting, or scheduling a brief meeting. It&#8217;s likely the developers will state that they incorrectly estimated the tasks, and will complain that external factors are changing the scope. It could be time to alter the backlog, removing items if necessary. </li>
<li>3. <strong>Sprint estimated poorly, or horrible code quality</strong>. If the burn is in this window pane, then the second half of the sprint will be a walk in the park. You can decide if you want developers to stroll or pick up additional tasks. It might be worth paying closer attention to the quality of code &#8211; unless estimations were completely off, one or more developers could be writing rubbish code. I would spend time investigating the overall quality of the work done on the tasks. </li>
<li>4. Increase effort, depending on the burn, if it is above expected. If it&#8217;s below, effort can remain the same. Sprint is more or less on target.</li>
</ul>
<p>These points depend mainly on how close the intersection is to the center of the chart. The closer to the center, the less attention you as a product owner need to pay.</p>
<p>In the image example, you can see our intersection landed in pane 2. From there, we turned up the effort of the developers, pumped them full of coffee, and managed to drag the sprint back on target. </p>
<p>I have no reservations when it comes to encouraging developers to work harder, but I see such effort boosts in terms of karma. More coffee mid sprint can more-or-less be translated into more beer at the end of it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.karmaengine.com/scrum/burndown-or-meltdown/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
