<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Bits 'n Widgets - scrum</title>
    <link>http://bitsnwidgets.com/</link>
    <description>&amp;nbsp;&amp;nbsp;Thoughts on real-world, practical, common-sense approaches to Agile software development using Scrum and XP</description>
    <language>en-us</language>
    <copyright>John E. Boal</copyright>
    <lastBuildDate>Thu, 01 Oct 2009 06:45:56 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.0.7226.0</generator>
    <managingEditor>webmaster@bitsnwidgets.com</managingEditor>
    <webMaster>webmaster@bitsnwidgets.com</webMaster>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=3080b66c-e4e6-45bc-ab58-ea76758b19ea</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,3080b66c-e4e6-45bc-ab58-ea76758b19ea.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,3080b66c-e4e6-45bc-ab58-ea76758b19ea.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=3080b66c-e4e6-45bc-ab58-ea76758b19ea</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Sprint planning is the exercise of sizing up the work we think we can get done in
an iteration. The recommended practice is to size the high-priority stories on the
backlog in story points. Story points aren’t exactly well understood by most organizations,
but those that do, more power to you.
</p>
        <p>
We take stories off the backlog to package into a sprint not by how long we think
they will take (we estimate that after we break down the tasks) but by the number
of story points which indicate the complexity. On a team with at least two sprints
completed, I always recommend not taking any more story points than were <strong><em>completely
delivered</em></strong> in the last sprint – no matter what, even if they were really
low due to some odd circumstance. We can always pull in another story if we finish
early.
</p>
        <p>
Now, there are teams out there that have a bit of a different mechanism. Stories are
estimated in “ideal days” rather than story points. Then, each team member calculates
the number of actual work days in the sprint for them (accounting for vacation and
known absences etc). Then a more or less arbitrary “load factor” is applied to this
number of days, a percentage of 100 (usually 66%) to find out how many “ideal days”
worth of work time we have available each sprint.
</p>
        <p>
There are a number of problems with this method as I see it. First, we have an issue
of the remaining time – one third. A third of each day goes where? It gets spent doing
what? Not counting for meetings (which almost always can be foreseen) there is a lot
of time that is unaccounted. The spirit of scrum isn’t to account for each hour and
track who does what when. However, there is almost certainly a lot of actual work
that people are doing during this time that has no visibility in the iteration. Agile
and Scrum DO require as much transparency and vision into the process of the organization,
and this practice of “load factor” I think tends to hide some actual work that the
team should be getting credit for doing.
</p>
        <p>
My proposal was to use the ideal days estimates, but add sprint backlog tasks for
the things that were being done “on the side” to make them visible, and get “credit”
for the real work that was being done but not planned and estimated.
</p>
        <p>
The flip side is that things like meetings, applying operating system patches, and
answering email don’t have any real value they deliver. So in that sense, they should
NOT be on the backlog. These things are accounted for in the number of available hours
for “work” – actually developing the new software.
</p>
        <p>
Leave the status reports and department meetings out of the backlog, but definitely
put in that “extra report” for the boss or that batch script for the IT guy. Those
are at the very least tasks, and they have customer value (to the customer who got
them, not necessarily the end user). Estimate them with story points (even if it’s
after the fact), and by all means include those points in the delivered stories at
the end of the sprint.
</p>
        <p>
This way there is complete transparency. Everyone can see the actual work that got
done, nothing falls through the cracks. And later, when stories aren’t being delivered
fast enough (according usually to the boss who got the extra report) then everyone
can see that the extra half day spent on that report could have been used to deliver
a story. The whole team can then really prioritize what the real features are.
</p>
        <p>
Also – there are a couple of inherent problems in the scenario described above… a
good scrum master would have blocked the addition of an “extra report” making the
boss decide if he wanted to wait until next sprint or abnormally terminate this one…
A second problem that is evident here is that perhaps the Product Owner isn’t perhaps
taking into account the internal stakeholders and prioritizing accordingly. Either
way, we still shouldn’t be randomizing the team by inserting unplanned work in the
middle of a sprint. If it’s that important, stop and re-plan the sprint with the new
priorities.
</p>
        <p>
Scrum really does work, but only if we have a set of rules that keep everyone accountable
for their contributions and the organizational structure in place to keep the team
focused on completing and delivering the highest priority work first.
</p>
        <img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=3080b66c-e4e6-45bc-ab58-ea76758b19ea" />
      </body>
      <title>Planning, Estimation, and Load Factor</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,3080b66c-e4e6-45bc-ab58-ea76758b19ea.aspx</guid>
      <link>http://BitsNWidgets.com/2009/10/01/PlanningEstimationAndLoadFactor.aspx</link>
      <pubDate>Thu, 01 Oct 2009 06:45:56 GMT</pubDate>
      <description>&lt;p&gt;
Sprint planning is the exercise of sizing up the work we think we can get done in
an iteration. The recommended practice is to size the high-priority stories on the
backlog in story points. Story points aren’t exactly well understood by most organizations,
but those that do, more power to you.
&lt;/p&gt;
&lt;p&gt;
We take stories off the backlog to package into a sprint not by how long we think
they will take (we estimate that after we break down the tasks) but by the number
of story points which indicate the complexity. On a team with at least two sprints
completed, I always recommend not taking any more story points than were &lt;strong&gt;&lt;em&gt;completely
delivered&lt;/em&gt;&lt;/strong&gt; in the last sprint – no matter what, even if they were really
low due to some odd circumstance. We can always pull in another story if we finish
early.
&lt;/p&gt;
&lt;p&gt;
Now, there are teams out there that have a bit of a different mechanism. Stories are
estimated in “ideal days” rather than story points. Then, each team member calculates
the number of actual work days in the sprint for them (accounting for vacation and
known absences etc). Then a more or less arbitrary “load factor” is applied to this
number of days, a percentage of 100 (usually 66%) to find out how many “ideal days”
worth of work time we have available each sprint.
&lt;/p&gt;
&lt;p&gt;
There are a number of problems with this method as I see it. First, we have an issue
of the remaining time – one third. A third of each day goes where? It gets spent doing
what? Not counting for meetings (which almost always can be foreseen) there is a lot
of time that is unaccounted. The spirit of scrum isn’t to account for each hour and
track who does what when. However, there is almost certainly a lot of actual work
that people are doing during this time that has no visibility in the iteration. Agile
and Scrum DO require as much transparency and vision into the process of the organization,
and this practice of “load factor” I think tends to hide some actual work that the
team should be getting credit for doing.
&lt;/p&gt;
&lt;p&gt;
My proposal was to use the ideal days estimates, but add sprint backlog tasks for
the things that were being done “on the side” to make them visible, and get “credit”
for the real work that was being done but not planned and estimated.
&lt;/p&gt;
&lt;p&gt;
The flip side is that things like meetings, applying operating system patches, and
answering email don’t have any real value they deliver. So in that sense, they should
NOT be on the backlog. These things are accounted for in the number of available hours
for “work” – actually developing the new software.
&lt;/p&gt;
&lt;p&gt;
Leave the status reports and department meetings out of the backlog, but definitely
put in that “extra report” for the boss or that batch script for the IT guy. Those
are at the very least tasks, and they have customer value (to the customer who got
them, not necessarily the end user). Estimate them with story points (even if it’s
after the fact), and by all means include those points in the delivered stories at
the end of the sprint.
&lt;/p&gt;
&lt;p&gt;
This way there is complete transparency. Everyone can see the actual work that got
done, nothing falls through the cracks. And later, when stories aren’t being delivered
fast enough (according usually to the boss who got the extra report) then everyone
can see that the extra half day spent on that report could have been used to deliver
a story. The whole team can then really prioritize what the real features are.
&lt;/p&gt;
&lt;p&gt;
Also – there are a couple of inherent problems in the scenario described above… a
good scrum master would have blocked the addition of an “extra report” making the
boss decide if he wanted to wait until next sprint or abnormally terminate this one…
A second problem that is evident here is that perhaps the Product Owner isn’t perhaps
taking into account the internal stakeholders and prioritizing accordingly. Either
way, we still shouldn’t be randomizing the team by inserting unplanned work in the
middle of a sprint. If it’s that important, stop and re-plan the sprint with the new
priorities.
&lt;/p&gt;
&lt;p&gt;
Scrum really does work, but only if we have a set of rules that keep everyone accountable
for their contributions and the organizational structure in place to keep the team
focused on completing and delivering the highest priority work first.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=3080b66c-e4e6-45bc-ab58-ea76758b19ea" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,3080b66c-e4e6-45bc-ab58-ea76758b19ea.aspx</comments>
      <category>scrum</category>
      <category>Team</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=54acc262-e2de-47f6-8b9c-0a514f043d83</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,54acc262-e2de-47f6-8b9c-0a514f043d83.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,54acc262-e2de-47f6-8b9c-0a514f043d83.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=54acc262-e2de-47f6-8b9c-0a514f043d83</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <b>Don't be a Scrumbut.<br /></b>
        <br />
But is it really OK to be a Scrumbut? Can the scrum process work if every one of the
pieces of the methodology is not followed exactly?<br /><br />
Perhaps...<br /><br />
Scrum works best when all of its pieces are used in the process. It is unlikely that
the full benefit of the agile methodology will benefit from an incomplete process.
However, in the real world it is sometimes very difficult to get an organization to
adopt each and every piece. I think however, that even the teams using incomplete
scrum might still be able to get some value out of the pieces that are adopted. Sometimes
being a Scrumbut is still better than floating in the barrel as it goes over the waterfall...<br /><br /><b>It's not a perfect world.</b><br />
If you happen to be on a scrum team that really gets the idea of scrum and is able
to make each of the pieces of scrum work for you, then I say you are a very lucky
person indeed. Personally I have been on several teams this way in my career and I
can say that there is no better way I've ever seen to develop software. But while
the world is round, it isn't a perfect sphere. Sometimes things are a little bit off.
Yet, I believe that things can still spin around and everything can still work, if
there is a clear plan.<br /><br /><b>Why?</b><br />
As a consultant, my first instinct is to look at the process being used and question
everything. I ask people why things are the way they are. Especially when I see something
that doesn't seem right to me, coming from a perfect scrum background. Sometimes it
takes time for an organization to be able to trust a new process. Some organizations
have to bite into something new in pieces rather than adopting a completely new process
all at once. I don't like it... it's not the best way... but sometimes it's the ONLY
way. Something is better than nothing - as long as it is adding value. That is the
real test I think: does it enhance the value of the software delivery process?<br /><br /><b>Yellow Light</b><br />
Caution. That is the word I use when I see Scrumbut in action. I am looking for signs
of devolving process rather than evolving process. If a team has adopted scrum's tenet
of documenting what is actually delivered rather than big documentation up front,
but then really isn't getting the concept or delivering the documentation as required
by the stakeholders, the it really isn't working and someone is going to be dissapointed.
Dissapointed stakeholders can then poison the entire organizations' view of the scrum
process, and that can be the last nail in the coffin. Caution I say - we don't want
to let this happen.<br /><br /><b>Perfection vs. Good Enough</b><br />
I strive for perfection in the process but it's really a very lofty goal. As a consultant
though I have to realize that I am there to help improve the process, not get it to
perfection. I need to look for the warning signs that might dissapoint stakeholders,
and advise course corrections for these things when they come up. Practiality is essential
in software delivery, even if imperfect in process. The iterative model should give
value, even if each of the pieces of the process isn't followed completely.<br /><br />
So, don't be a Scrumbut. Unless you have to. then if you have to - make it work, and
watch for the warning signs...<br /><p></p><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=54acc262-e2de-47f6-8b9c-0a514f043d83" /></body>
      <title>Scrumbut</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,54acc262-e2de-47f6-8b9c-0a514f043d83.aspx</guid>
      <link>http://BitsNWidgets.com/2008/11/27/Scrumbut.aspx</link>
      <pubDate>Thu, 27 Nov 2008 14:17:11 GMT</pubDate>
      <description>&lt;b&gt;Don't be a Scrumbut.&lt;br&gt;
&lt;/b&gt;
&lt;br&gt;
But is it really OK to be a Scrumbut? Can the scrum process work if every one of the
pieces of the methodology is not followed exactly?&lt;br&gt;
&lt;br&gt;
Perhaps...&lt;br&gt;
&lt;br&gt;
Scrum works best when all of its pieces are used in the process. It is unlikely that
the full benefit of the agile methodology will benefit from an incomplete process.
However, in the real world it is sometimes very difficult to get an organization to
adopt each and every piece. I think however, that even the teams using incomplete
scrum might still be able to get some value out of the pieces that are adopted. Sometimes
being a Scrumbut is still better than floating in the barrel as it goes over the waterfall...&lt;br&gt;
&lt;br&gt;
&lt;b&gt;It's not a perfect world.&lt;/b&gt;
&lt;br&gt;
If you happen to be on a scrum team that really gets the idea of scrum and is able
to make each of the pieces of scrum work for you, then I say you are a very lucky
person indeed. Personally I have been on several teams this way in my career and I
can say that there is no better way I've ever seen to develop software. But while
the world is round, it isn't a perfect sphere. Sometimes things are a little bit off.
Yet, I believe that things can still spin around and everything can still work, if
there is a clear plan.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Why?&lt;/b&gt;
&lt;br&gt;
As a consultant, my first instinct is to look at the process being used and question
everything. I ask people why things are the way they are. Especially when I see something
that doesn't seem right to me, coming from a perfect scrum background. Sometimes it
takes time for an organization to be able to trust a new process. Some organizations
have to bite into something new in pieces rather than adopting a completely new process
all at once. I don't like it... it's not the best way... but sometimes it's the ONLY
way. Something is better than nothing - as long as it is adding value. That is the
real test I think: does it enhance the value of the software delivery process?&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Yellow Light&lt;/b&gt;
&lt;br&gt;
Caution. That is the word I use when I see Scrumbut in action. I am looking for signs
of devolving process rather than evolving process. If a team has adopted scrum's tenet
of documenting what is actually delivered rather than big documentation up front,
but then really isn't getting the concept or delivering the documentation as required
by the stakeholders, the it really isn't working and someone is going to be dissapointed.
Dissapointed stakeholders can then poison the entire organizations' view of the scrum
process, and that can be the last nail in the coffin. Caution I say - we don't want
to let this happen.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Perfection vs. Good Enough&lt;/b&gt;
&lt;br&gt;
I strive for perfection in the process but it's really a very lofty goal. As a consultant
though I have to realize that I am there to help improve the process, not get it to
perfection. I need to look for the warning signs that might dissapoint stakeholders,
and advise course corrections for these things when they come up. Practiality is essential
in software delivery, even if imperfect in process. The iterative model should give
value, even if each of the pieces of the process isn't followed completely.&lt;br&gt;
&lt;br&gt;
So, don't be a Scrumbut. Unless you have to. then if you have to - make it work, and
watch for the warning signs...&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=54acc262-e2de-47f6-8b9c-0a514f043d83" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,54acc262-e2de-47f6-8b9c-0a514f043d83.aspx</comments>
      <category>scrum</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=567be265-1963-4c5d-939d-10d0543ab86f</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,567be265-1963-4c5d-939d-10d0543ab86f.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,567be265-1963-4c5d-939d-10d0543ab86f.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=567be265-1963-4c5d-939d-10d0543ab86f</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Why is your team doing Scrum? Check the
appropriate box below.<br /><br /><input name="r1" value="1" disabled="false" type="checkbox" />Somebody's boss someplace
said we have to do Agile now. 
<br /><input name="r2" value="2" disabled="false" type="checkbox" />Agile sounded like a
good thing to have on my resume.<br /><input name="r3" value="3" disabled="false" type="checkbox" />Our software has problems
and Agile is the magic bullet solution.<br /><input name="r4" value="4" disabled="false" type="checkbox" />Our team wants to get
better at quality software delivery and estimation.<br /><br />
Those of you who chose the last option, keep reading. Everyone else, please click <a target="_wf06" href="http://www.waterfall2006.com/">HERE</a>.<br /><br />
We do Scrum because the process yields better results. We do it because we want people
to think and be empowered as a team, rather than just being told what to do. We want
our software to please our customers. We want to please our customers regularly and
often. We want to be able to respond to changes in direction, changes in requirements,
or just change in general - in a positive way and continue to deliver useful software.
We like the notion of teamwork and collective ownership. We like collaboration. We
like to get feedback often, and integrate it into our process so we get better, faster.
We measure our success and progress only in terms of delivered, working software.<br /><br />
Scrum is more than a process for managing projects, it is a change in mindset. Just
deciding to do mini-waterfalls in 4-week cycles isn't Scrum. And it isn't very useful
or productive either. [BTW just so we're clear: A mini-waterfall looks like a 4-week
"sprint" where the first week is design and specification generation, two weeks are
coding, and the last week is testing and bug fixing.]<br /><br />
It takes a mind shift to a willingness to be a <b><i>TEAM</i></b> rather than just
a bunch of people working on the same project. There IS a difference. Without an attitude
of cooperation and collaboration, Scrum will not succeed (nor will any approach really),
and Scrum will just seem to be an additional burden to those forced into it.<br /><br />
Don't mandate that your team adopt Scrum. Explain to them why it's better. (At this
point I should probably mention that YOU should understand why it's better...) Convince
them. If they aren't convinced, keep at it until they are. If they are skeptical,
that's OK but they need to be open-minded enough to actually try it for a while. If
they aren't truly open-minded, or can't be convinced - DON'T DO SCRUM. This kind of
a process needs to have WILLING participants that are cooperative. It's not for everyone.
Be prepared for the fact that some people just don't get it, or WON'T get it. They
really need to find a different team to work on. Don't burden those on a Scrum team
with members who don't want to be there.<br /><br />
Scrum is not a silver bullet. It's not always the answer, but it is ONE answer. Educate
your team. Be supportive, and explain why the tenets of the <a href="http://agilemanifesto.org/">Agile
Manifesto</a> and the <a href="http://agilemanifesto.org/principles.html">twelve principles</a> behind
it are a good idea and that they can really work in your organization.<br /><br />
More advice. Have a Scrum master. This person should be trained in the role and understand
it. Have a true Product Owner (NOT the Scrum master by the way) who represents [ALL]
of the stakeholders. Make sure they really do identify and represent the real stakeholders,
and have the authority to prioritize. Hire a Scrum consultant, or bring in an experienced
person who has helped teams get up to speed on Scrum - and LISTEN TO THEM. Don't pick
and choose which pieces of Scrum you like at first, just do them all "by the book."
You can fine-tune your process in response to sprint retrospectives later.<br /><br />
Scrum can be a great way to develop software, or it can feel like a horrible burden.
It all depends on the attitude and openness of the team doing the process. Make sure
you make your experience the former instead of the latter.<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=567be265-1963-4c5d-939d-10d0543ab86f" /></body>
      <title>Why do we do Scrum?</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,567be265-1963-4c5d-939d-10d0543ab86f.aspx</guid>
      <link>http://BitsNWidgets.com/2008/09/25/WhyDoWeDoScrum.aspx</link>
      <pubDate>Thu, 25 Sep 2008 01:47:42 GMT</pubDate>
      <description>Why is your team doing Scrum? Check the appropriate box below.&lt;br&gt;
&lt;br&gt;
&lt;input name="r1" value="1" disabled="false" type="checkbox"&gt;Somebody's boss someplace
said we have to do Agile now. 
&lt;br&gt;
&lt;input name="r2" value="2" disabled="false" type="checkbox"&gt;Agile sounded like a good
thing to have on my resume.&lt;br&gt;
&lt;input name="r3" value="3" disabled="false" type="checkbox"&gt;Our software has problems
and Agile is the magic bullet solution.&lt;br&gt;
&lt;input name="r4" value="4" disabled="false" type="checkbox"&gt;Our team wants to get
better at quality software delivery and estimation.&lt;br&gt;
&lt;br&gt;
Those of you who chose the last option, keep reading. Everyone else, please click &lt;a target="_wf06" href="http://www.waterfall2006.com/"&gt;HERE&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
We do Scrum because the process yields better results. We do it because we want people
to think and be empowered as a team, rather than just being told what to do. We want
our software to please our customers. We want to please our customers regularly and
often. We want to be able to respond to changes in direction, changes in requirements,
or just change in general - in a positive way and continue to deliver useful software.
We like the notion of teamwork and collective ownership. We like collaboration. We
like to get feedback often, and integrate it into our process so we get better, faster.
We measure our success and progress only in terms of delivered, working software.&lt;br&gt;
&lt;br&gt;
Scrum is more than a process for managing projects, it is a change in mindset. Just
deciding to do mini-waterfalls in 4-week cycles isn't Scrum. And it isn't very useful
or productive either. [BTW just so we're clear: A mini-waterfall looks like a 4-week
"sprint" where the first week is design and specification generation, two weeks are
coding, and the last week is testing and bug fixing.]&lt;br&gt;
&lt;br&gt;
It takes a mind shift to a willingness to be a &lt;b&gt;&lt;i&gt;TEAM&lt;/i&gt;&lt;/b&gt; rather than just
a bunch of people working on the same project. There IS a difference. Without an attitude
of cooperation and collaboration, Scrum will not succeed (nor will any approach really),
and Scrum will just seem to be an additional burden to those forced into it.&lt;br&gt;
&lt;br&gt;
Don't mandate that your team adopt Scrum. Explain to them why it's better. (At this
point I should probably mention that YOU should understand why it's better...) Convince
them. If they aren't convinced, keep at it until they are. If they are skeptical,
that's OK but they need to be open-minded enough to actually try it for a while. If
they aren't truly open-minded, or can't be convinced - DON'T DO SCRUM. This kind of
a process needs to have WILLING participants that are cooperative. It's not for everyone.
Be prepared for the fact that some people just don't get it, or WON'T get it. They
really need to find a different team to work on. Don't burden those on a Scrum team
with members who don't want to be there.&lt;br&gt;
&lt;br&gt;
Scrum is not a silver bullet. It's not always the answer, but it is ONE answer. Educate
your team. Be supportive, and explain why the tenets of the &lt;a href="http://agilemanifesto.org/"&gt;Agile
Manifesto&lt;/a&gt; and the &lt;a href="http://agilemanifesto.org/principles.html"&gt;twelve principles&lt;/a&gt; behind
it are a good idea and that they can really work in your organization.&lt;br&gt;
&lt;br&gt;
More advice. Have a Scrum master. This person should be trained in the role and understand
it. Have a true Product Owner (NOT the Scrum master by the way) who represents [ALL]
of the stakeholders. Make sure they really do identify and represent the real stakeholders,
and have the authority to prioritize. Hire a Scrum consultant, or bring in an experienced
person who has helped teams get up to speed on Scrum - and LISTEN TO THEM. Don't pick
and choose which pieces of Scrum you like at first, just do them all "by the book."
You can fine-tune your process in response to sprint retrospectives later.&lt;br&gt;
&lt;br&gt;
Scrum can be a great way to develop software, or it can feel like a horrible burden.
It all depends on the attitude and openness of the team doing the process. Make sure
you make your experience the former instead of the latter.&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=567be265-1963-4c5d-939d-10d0543ab86f" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,567be265-1963-4c5d-939d-10d0543ab86f.aspx</comments>
      <category>scrum</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=a30602ce-09c3-421c-94b3-b14cf7609829</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,a30602ce-09c3-421c-94b3-b14cf7609829.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,a30602ce-09c3-421c-94b3-b14cf7609829.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=a30602ce-09c3-421c-94b3-b14cf7609829</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">The UW Extension for Professional Development
and Continuing Education now has a <a href="http://www.extension.washington.edu/ext/certificates/agi/agi_gen.asp">Certificate
Program in Agile Development</a>. It's being taught by some guys I used to work with
first-hand, so I happen to know they are all pretty good at Agile Development. They
are certainly highly qualified, and this certification course is a good opportunity
for those folks who may not be as familiar with Agile principles to get some good
instruction on how to do it well. Be sure to <a href="http://www.extension.washington.edu/ext/certificates/agi/agi_hta.asp">apply
now</a>, as this course is likely to fill fast.<br /><br /><p></p><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=a30602ce-09c3-421c-94b3-b14cf7609829" /></body>
      <title>Become a Certified Agile Developer!</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,a30602ce-09c3-421c-94b3-b14cf7609829.aspx</guid>
      <link>http://BitsNWidgets.com/2008/08/01/BecomeACertifiedAgileDeveloper.aspx</link>
      <pubDate>Fri, 01 Aug 2008 20:10:31 GMT</pubDate>
      <description>The UW Extension for Professional Development and Continuing Education now has a &lt;a href="http://www.extension.washington.edu/ext/certificates/agi/agi_gen.asp"&gt;Certificate
Program in Agile Development&lt;/a&gt;. It's being taught by some guys I used to work with
first-hand, so I happen to know they are all pretty good at Agile Development. They
are certainly highly qualified, and this certification course is a good opportunity
for those folks who may not be as familiar with Agile principles to get some good
instruction on how to do it well. Be sure to &lt;a href="http://www.extension.washington.edu/ext/certificates/agi/agi_hta.asp"&gt;apply
now&lt;/a&gt;, as this course is likely to fill fast.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=a30602ce-09c3-421c-94b3-b14cf7609829" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,a30602ce-09c3-421c-94b3-b14cf7609829.aspx</comments>
      <category>scrum</category>
      <category>Team</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=87fe4632-6a2b-4a4c-9ece-c8764320c18c</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,87fe4632-6a2b-4a4c-9ece-c8764320c18c.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,87fe4632-6a2b-4a4c-9ece-c8764320c18c.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=87fe4632-6a2b-4a4c-9ece-c8764320c18c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Our scrum master on the team I am working
with has advocated a mid-sprint checkpoint meeting, to see how things are going, and
take a progress pulse. I said this sounded a bit like <img src="http://bitsnwidgets.com/content/binary/waterfall.jpg" border="0" height="297" width="397" /> to
me, but that didn't go over very well. I left it at that, but was just thinking about
it some more. Why would we need a mid-sprint checkpoint meeting? The burn down chart
clearly shows our progress on the sprint, trend lines are good, and everyone is reporting
progress and no impediments in stand-up every day. Another meeting? Sounds counter-productive
to me, just to see where we are - when we should all know where we are. There are
now even have a couple new wide screen monitors displaying 4 rotating web pages, used
as information radiators for the team. Everything seems to be good, and going by the
book for scrum, so just little things like this that remind me of my Microsoft days
cause me to take pause and say hmmm.....<br /><br />
Perhaps a 3 week sprint is too long if we need a mid-sprint review. See <a href="http://bitsnwidgets.com/2008/05/29/HowLongShouldOurSprintBe.aspx">the
prior article</a> for more information on sprint lengths...<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=87fe4632-6a2b-4a4c-9ece-c8764320c18c" /></body>
      <title>Mid-Sprint Checkpoint?</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,87fe4632-6a2b-4a4c-9ece-c8764320c18c.aspx</guid>
      <link>http://BitsNWidgets.com/2008/06/19/MidSprintCheckpoint.aspx</link>
      <pubDate>Thu, 19 Jun 2008 04:28:03 GMT</pubDate>
      <description>Our scrum master on the team I am working with has advocated a mid-sprint checkpoint meeting, to see how things are going, and take a progress pulse. I said this sounded a bit like&amp;nbsp;&lt;img src="http://bitsnwidgets.com/content/binary/waterfall.jpg" border="0" height="297" width="397"&gt; to
me, but that didn't go over very well. I left it at that, but was just thinking about
it some more. Why would we need a mid-sprint checkpoint meeting? The burn down chart
clearly shows our progress on the sprint, trend lines are good, and everyone is reporting
progress and no impediments in stand-up every day. Another meeting? Sounds counter-productive
to me, just to see where we are - when we should all know where we are. There are
now even have a couple new wide screen monitors displaying 4 rotating web pages, used
as information radiators for the team. Everything seems to be good, and going by the
book for scrum, so just little things like this that remind me of my Microsoft days
cause me to take pause and say hmmm.....&lt;br&gt;
&lt;br&gt;
Perhaps a 3 week sprint is too long if we need a mid-sprint review. See &lt;a href="http://bitsnwidgets.com/2008/05/29/HowLongShouldOurSprintBe.aspx"&gt;the
prior article&lt;/a&gt; for more information on sprint lengths...&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=87fe4632-6a2b-4a4c-9ece-c8764320c18c" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,87fe4632-6a2b-4a4c-9ece-c8764320c18c.aspx</comments>
      <category>scrum</category>
      <category>Team</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=ffe23e29-bebf-412d-86e7-ea8eb377937c</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,ffe23e29-bebf-412d-86e7-ea8eb377937c.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,ffe23e29-bebf-412d-86e7-ea8eb377937c.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=ffe23e29-bebf-412d-86e7-ea8eb377937c</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <body xmlns="http://www.w3.org/1999/xhtml">Ask a question like this, and you're likely
to get a numberline as an answer...<br /><br />
"two weeks"<br />
"three weeks"<br />
"four weeks"<br />
"one week"<br />
"15 calendar days"<br />
or, in general, n+1 answers for every n people asked.<br /><p></p><br />
Which is the correct answer for my team?<br /><br />
Turns out that it's all. Or none. Or one of these. Or sometimes two.. There are a
variety of factors that can help determine what the "right" length of a sprint is
for your team. And, it does vary by team. Some organizations have one team on a two-week
cycle, and another team on a 4-week cycle. They coincide, so deliverables can be coordinated,
and intra-team dependencies can be predicted. Other teams swear that the original
proposed Scrum cycle should be 4 weeks, and that's that. Most teams are open to doing
what works. However I have seen organizations prescribe to the team how long their
delivery cycle should be, for one reason or another. This dictated timeframe seems
to be a bit less effective than getting the team to decide. Also, larger teams tend
to have more problems with estimation, as do very small teams. More than 7 or less
than 4 on a Scrum team seem to be the limits for most effective delivery, in my experience.<br /><br />
Now then, there are certainly pro's and con's for each of the cycle lengths. A longer
cycle means more stories can be included, but that the feedback cycle of estimation
vs. delivery is longer and thus not as able to hone in on velocity. Too short a cycle
sometimes feels like thrashing, and that not enough complete, thin slices of end-to-end
functionality can be accomplished. Remember at all times, that a completed "done done
done" story is "potentially shippable."<br /><br />
The truly completed "done done done" story is rare in my experience as an actual shippable
unit, but that's an article of its own on how to pick and adhere to DONE criteria.<br /><br />
Let me discuss the merits and drawbacks of each of the cycle lengths above. For the
sake of discussion, I will assume a Scrum team of 7, 4 developers, 2 testers, and
a project manager. I personally have tried each and every one of these iteration lengths,
so I do have the perspective of experience (on a small team). Your mileage of course
may vary...<br /><br />
Two Week Cycle<br />
This cycle length has been in my experience the sweet spot for a small, experienced
Scrum team. It is just big enough to get "real work" done each iteration, and small
enough that the feedback on estimation is frequent enough to get closer on story estimation
and velocity determination. I have also found that this relatively short cycle is
good for preventing "hijacking" of a sprint by one or more stakeholders, management,
or others that work outside the Scrum framework. Almost always, a sprint in progress
can be completed even in the face of changing requirements, or stakeholder directions.
"We can start that the end of this week" or at the latest "the end of next week" is
almost always a fine response to these winds of change. The time spent planning and
demonstrating (meetings in general) is a good middle ground, and payback for this
time spent is usually pretty good. The typical planning meeting is 4 hours, first
thing Monday, and the demo is 1 hour, and the retrospective 1 hour, at the end of
the day the second Friday. I am a big fan of sprints that start on Monday and end
on Friday, rather than the middle of the week. Mid-week sprint endings sometimes allow
for "between sprints" time which I don't tend to like, as the things getting done
aren't accounted for in the velocity of either the prior or following sprint.<br /><br />
Three Week Cycle<br />
Three weeks is a good compromise between those who want faster, and those who want
bigger chunks of work done. However, I am still of the opinion that for most teams,
there is too much wiggle room in 15 business days. Sometimes estimates are padded.
Sometimes people end up working on things not on the backlog. Estimates tend to be
farther off, because there is a perception that there is more time available to get
things done. For a disciplined, experienced Scrum team that has worked at least 4
sprints together, this might be a very workable option. Provided that the organization
plays by the Scrum rules, that the team keeps estimates to realistic values, and that
the team is truly able to break down stories into small tasks.<br /><br />
Four Week Cycle<br />
Most of the 4-week teams I have seen have ended up going back to a mini-waterfall
approach. The first week tends to be design and investigation stories and tasks, a
couple weeks of cranking out code, and the last week of testing, finding and fixing
bugs. Not that it has to be that way, but that has been what I have most commonly
seen. I think the reasoning was that the teams perhaps were not as experienced with
Scrum, and the number of days left a perception that there was a lot of time to do
things "the old way." Also, I have seen sprints hijacked by various issues and people,
and totally taken sideways due to the length of the time. Feedback loop is much more
difficult to perceive for most of the team, and as such, estimation may not just stay
the same, it may get worse. Tasks tend to be lumped into large blocks of 15 hours,
20 hours, or more. A typical task on an experienced team with good estimation is not
often over 4 hours, and <b><i>never</i></b> over 10 hours. These teams tend to be
able to peg the stories for story points more accurately, and are able to deliver
the stories as complete. This iteration length doesn't seem to work well, in my experience.<br /><br />
One Week Cycle<br />
"How can you expect us to get anything of business value done in <i>just one week</i>?
Especially given the Done criteria for potentially shippable?"<br />
I think that's what I said anyway. My team was on a 2 week cycle, but we didn't have
much experience with Scrum at the time. We were having lots of issues trying to break
stories down into tasks. I recall several 40, 30, and other double-digit task estimates.
They were just too big. We couldn't figure out how to break them down further. Planning
sessions were a nightmare, lots of arguments about task breakdowns, and estimates.
Fortunately we had an agile coach who suggested that we ratchet the iteration down
to a 1-week period. At first, this seemed totally counter-intuitive to us. Shorter
iterations? Wouldn't that make it even harder to break down tasks? As it turned out,
that wasn't the case. We had to break our stories up from the epic stories we were
using to actual user stories that delivered an increment of functionality that had
business value. That was just the thing we needed to figure out what we couldn't do
in the 2 week cycle. We tried one-week iterations for several weeks, and got a lot
better at breaking stories and tasks down into smaller pieces. We as a team decided
then that it was too much overhead to have a planning meeting, a retrospective, and
a demo every single week. The stakeholders didn't really understand, and what we were
demonstrating was such a small increment that they were starting to think that the
project was just dragging out in delivering small pieces. The two week cycle was a
good return on the time spent planning and demonstrating, vs. the time spent actually
delivering work.<br /><br />
In the end, it should be up to the team to figure out what works best for them - given
some input from the corporate culture and stakeholders. New teams just starting out
with Scrum should perhaps plan to try first two sprints each of 2 weeks, then two
for 3 weeks, and compare results. By the end of the 4th sprint, the team should have
some reasonable idea of what would yield the greatest velocity. If there isn't a choice
for iteration length and it's prescribed, you'll probably have to just make it work.
In any case, try to avoid the con's above and see if you can get your scrum master
to push back a bit on the powers that be and let the team have a bit of freedom to
see what works best for all. Scrum should be a collaboration, so if at all possible,
do the best you can at making sure everyone has their input represented and just hold
the team accountable and let the team manage their own delivery.<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=ffe23e29-bebf-412d-86e7-ea8eb377937c" /></body>
      <title>How Long Should Our Sprint Be?</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,ffe23e29-bebf-412d-86e7-ea8eb377937c.aspx</guid>
      <link>http://BitsNWidgets.com/2008/05/29/HowLongShouldOurSprintBe.aspx</link>
      <pubDate>Thu, 29 May 2008 03:56:27 GMT</pubDate>
      <description>Ask a question like this, and you're likely to get a numberline as an answer...&lt;br&gt;
&lt;br&gt;
"two weeks"&lt;br&gt;
"three weeks"&lt;br&gt;
"four weeks"&lt;br&gt;
"one week"&lt;br&gt;
"15 calendar days"&lt;br&gt;
or, in general, n+1 answers for every n people asked.&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;br&gt;
Which is the correct answer for my team?&lt;br&gt;
&lt;br&gt;
Turns out that it's all. Or none. Or one of these. Or sometimes two.. There are a
variety of factors that can help determine what the "right" length of a sprint is
for your team. And, it does vary by team. Some organizations have one team on a two-week
cycle, and another team on a 4-week cycle. They coincide, so deliverables can be coordinated,
and intra-team dependencies can be predicted. Other teams swear that the original
proposed Scrum cycle should be 4 weeks, and that's that. Most teams are open to doing
what works. However I have seen organizations prescribe to the team how long their
delivery cycle should be, for one reason or another. This dictated timeframe seems
to be a bit less effective than getting the team to decide. Also, larger teams tend
to have more problems with estimation, as do very small teams. More than 7 or less
than 4 on a Scrum team seem to be the limits for most effective delivery, in my experience.&lt;br&gt;
&lt;br&gt;
Now then, there are certainly pro's and con's for each of the cycle lengths. A longer
cycle means more stories can be included, but that the feedback cycle of estimation
vs. delivery is longer and thus not as able to hone in on velocity. Too short a cycle
sometimes feels like thrashing, and that not enough complete, thin slices of end-to-end
functionality can be accomplished. Remember at all times, that a completed "done done
done" story is "potentially shippable."&lt;br&gt;
&lt;br&gt;
The truly completed "done done done" story is rare in my experience as an actual shippable
unit, but that's an article of its own on how to pick and adhere to DONE criteria.&lt;br&gt;
&lt;br&gt;
Let me discuss the merits and drawbacks of each of the cycle lengths above. For the
sake of discussion, I will assume a Scrum team of 7, 4 developers, 2 testers, and
a project manager. I personally have tried each and every one of these iteration lengths,
so I do have the perspective of experience (on a small team). Your mileage of course
may vary...&lt;br&gt;
&lt;br&gt;
Two Week Cycle&lt;br&gt;
This cycle length has been in my experience the sweet spot for a small, experienced
Scrum team. It is just big enough to get "real work" done each iteration, and small
enough that the feedback on estimation is frequent enough to get closer on story estimation
and velocity determination. I have also found that this relatively short cycle is
good for preventing "hijacking" of a sprint by one or more stakeholders, management,
or others that work outside the Scrum framework. Almost always, a sprint in progress
can be completed even in the face of changing requirements, or stakeholder directions.
"We can start that the end of this week" or at the latest "the end of next week" is
almost always a fine response to these winds of change. The time spent planning and
demonstrating (meetings in general) is a good middle ground, and payback for this
time spent is usually pretty good. The typical planning meeting is 4 hours, first
thing Monday, and the demo is 1 hour, and the retrospective 1 hour, at the end of
the day the second Friday. I am a big fan of sprints that start on Monday and end
on Friday, rather than the middle of the week. Mid-week sprint endings sometimes allow
for "between sprints" time which I don't tend to like, as the things getting done
aren't accounted for in the velocity of either the prior or following sprint.&lt;br&gt;
&lt;br&gt;
Three Week Cycle&lt;br&gt;
Three weeks is a good compromise between those who want faster, and those who want
bigger chunks of work done. However, I am still of the opinion that for most teams,
there is too much wiggle room in 15 business days. Sometimes estimates are padded.
Sometimes people end up working on things not on the backlog. Estimates tend to be
farther off, because there is a perception that there is more time available to get
things done. For a disciplined, experienced Scrum team that has worked at least 4
sprints together, this might be a very workable option. Provided that the organization
plays by the Scrum rules, that the team keeps estimates to realistic values, and that
the team is truly able to break down stories into small tasks.&lt;br&gt;
&lt;br&gt;
Four Week Cycle&lt;br&gt;
Most of the 4-week teams I have seen have ended up going back to a mini-waterfall
approach. The first week tends to be design and investigation stories and tasks, a
couple weeks of cranking out code, and the last week of testing, finding and fixing
bugs. Not that it has to be that way, but that has been what I have most commonly
seen. I think the reasoning was that the teams perhaps were not as experienced with
Scrum, and the number of days left a perception that there was a lot of time to do
things "the old way." Also, I have seen sprints hijacked by various issues and people,
and totally taken sideways due to the length of the time. Feedback loop is much more
difficult to perceive for most of the team, and as such, estimation may not just stay
the same, it may get worse. Tasks tend to be lumped into large blocks of 15 hours,
20 hours, or more. A typical task on an experienced team with good estimation is not
often over 4 hours, and &lt;b&gt;&lt;i&gt;never&lt;/i&gt;&lt;/b&gt; over 10 hours. These teams tend to be
able to peg the stories for story points more accurately, and are able to deliver
the stories as complete. This iteration length doesn't seem to work well, in my experience.&lt;br&gt;
&lt;br&gt;
One Week Cycle&lt;br&gt;
"How can you expect us to get anything of business value done in &lt;i&gt;just one week&lt;/i&gt;?
Especially given the Done criteria for potentially shippable?"&lt;br&gt;
I think that's what I said anyway. My team was on a 2 week cycle, but we didn't have
much experience with Scrum at the time. We were having lots of issues trying to break
stories down into tasks. I recall several 40, 30, and other double-digit task estimates.
They were just too big. We couldn't figure out how to break them down further. Planning
sessions were a nightmare, lots of arguments about task breakdowns, and estimates.
Fortunately we had an agile coach who suggested that we ratchet the iteration down
to a 1-week period. At first, this seemed totally counter-intuitive to us. Shorter
iterations? Wouldn't that make it even harder to break down tasks? As it turned out,
that wasn't the case. We had to break our stories up from the epic stories we were
using to actual user stories that delivered an increment of functionality that had
business value. That was just the thing we needed to figure out what we couldn't do
in the 2 week cycle. We tried one-week iterations for several weeks, and got a lot
better at breaking stories and tasks down into smaller pieces. We as a team decided
then that it was too much overhead to have a planning meeting, a retrospective, and
a demo every single week. The stakeholders didn't really understand, and what we were
demonstrating was such a small increment that they were starting to think that the
project was just dragging out in delivering small pieces. The two week cycle was a
good return on the time spent planning and demonstrating, vs. the time spent actually
delivering work.&lt;br&gt;
&lt;br&gt;
In the end, it should be up to the team to figure out what works best for them - given
some input from the corporate culture and stakeholders. New teams just starting out
with Scrum should perhaps plan to try first two sprints each of 2 weeks, then two
for 3 weeks, and compare results. By the end of the 4th sprint, the team should have
some reasonable idea of what would yield the greatest velocity. If there isn't a choice
for iteration length and it's prescribed, you'll probably have to just make it work.
In any case, try to avoid the con's above and see if you can get your scrum master
to push back a bit on the powers that be and let the team have a bit of freedom to
see what works best for all. Scrum should be a collaboration, so if at all possible,
do the best you can at making sure everyone has their input represented and just hold
the team accountable and let the team manage their own delivery.&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=ffe23e29-bebf-412d-86e7-ea8eb377937c" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,ffe23e29-bebf-412d-86e7-ea8eb377937c.aspx</comments>
      <category>scrum</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=29c86aac-c875-4e21-b676-cb8b6bcacd01</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,29c86aac-c875-4e21-b676-cb8b6bcacd01.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,29c86aac-c875-4e21-b676-cb8b6bcacd01.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=29c86aac-c875-4e21-b676-cb8b6bcacd01</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">Definition: <a href="http://en.wikipedia.org/wiki/Technical_debt">Technical
Debt</a> is a term that we in the Agile world use to describe things in the code that
perhaps aren't engineered as well as they could (should) be. It can refer to many
things, like areas in the code that we should probably refactor to make them more
readable, poorly performing code, obsolete or clunky architecture, encapsulation abstraction,
or other class problems, or the like. It's debt because we know about it, we "owe"
it to be done, but are focusing on other things instead.<br /><br />
Technical debt is the avoidance of doing work that we would otherwise do in the course
of doing our best practices in engineering. It's a fact of life that most every Agile
team has to deal with, in my experience. I find that there are various means of "dealing
with" technical debt, some of which I will discuss below as a matter of practicality.
However, I see it really as a symptom of a deeper problem. The team isn't finding
good engineering as valuable as completing stories could be the underlying problem.<br /><br />
Teams can be pressured to deliver more than they should (this is common), and as such,
could be focused on delivering the current sprint's stories rather than fixing things
they find that are not as they should be. The team also could be creating more technical
debt for itself by not focusing on good engineering in the first place. When junior
people design things, sometimes they don't address all the points of performance and
code maintainability. Trade-offs are made that can end up causing lots of rework later.<br /><br />
The concept of Agile software development, is heavily based on refactoring. Sometimes
I find that teams use refactoring with a little "r" when they should be Refactoring.
They make small internal changes, but are reluctant to change overall design, even
when it is truly warranted. When we add a new feature, sometimes the design needs
to change to accommodate it. THIS IS EXPECTED behavior in an Agile development process.
Yet, time after time I hear developers say "well, I don't want to change all that <i>NOW</i>..."
when that's really exactly what they should be doing. The concept of iterative development
should be allowing us to ship software at the end of every cycle, and we really can't
consider the software shippable if it has these poor designs still left over from
earlier days.<br /><br />
Refactoring the design shouldn't be catastrophic though. But, there is always some
impact that is almost always fundamentally left out when planning. Imagine we have
an apple, and we need to add some cherries to it in this sprint. We might just smash
the cherries on the outside of it, and call it good. But that would leave us a lumpy
ugly mess... Rather, we might take another approach, and put the apple and the cherries
all in a blender, and pour the mix into a new shape mold and freeze it. The new shape
will be smooth and round, yet it will encompass the new features of having both apple
and cherry flavors. It's a dumb example, but you get the idea. Refactoring can take
many forms.<br /><br />
Handling Technical Debt<br />
Now, I have been on a few Agile teams and I am a realist. Technical debt is most certainly
here to stay. We just aren't in an ideal world, and we can't always take the time
we really need to make sure that the iteration's deliverable is as pristine as it
should be. So, now how can we handle this debt in a practical way?<br /><br />
Here are some ways I have seen teams deal with Technical Debt:<br /><ol><li>
Ignore it. 
<ol><li>
This don't work so good, in my opinion, but yes I have actually seen it done. It works,
so we'll use it as-is.</li></ol></li><li>
TODO it. 
<ol><li>
//TODO in the code is a flag that there is something more that needs attention. Also,
//FIXFIX and //BUGBUG are others I have seen. Some of the tools give us mechanisms
to flag these as work items, but in my practical experience this is just about the
same as #1. Nobody ever gets back to these things to fix them. They just lose visibility
and get buried. Not very effective in my book.<br /></li></ol></li><li>
Backlog it. 
<ol><li>
Create a backlog item called Technical Debt. Each instance where something needs attention
is recorded as a task for this story. They can be estimated, and prioritized. Backlog
items have visibility, so they don't get lost. Here is the problem - Technical debt
now CAN be prioritized. And, it usually is - right to the bottom of the list. This
really doesn't solve the issue either, unless you have a product owner who is savvy
enough to know that good engineering means happier customers, developer, and management
in the long run.<br /></li></ol></li><li>
Bug it. 
<ol><li>
Log a bug for each Technical Debt item discovered. This is probably the most effective
means I have yet seen for the actual reduction or elimination of technical debt. In
reality, I think this is the most appropriate. The new story requires changes that
just haven't been made. It's not really "done" until this is taken care of. Ongoing
maintenance of code should have an appropriate stakeholder with a voice in the Product
Owner's scope of attention.<br /></li></ol></li><li>
Job-Jar it. 
<ol><li>
Put it into the bucket of things that need to be done but aren't on either the sprint
or product backlogs. I think this is marginally effective, because nobody should technically
ever have time to get to this stuff, they really should be pulling things off the
product backlog onto the sprint backlog. But, I thought I'd mention this concept since
someone brought it up.</li></ol></li></ol>
Are there other ways to deal with Technical Debt? What ways have you had success?
Please leave me a comment and let me know.<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=29c86aac-c875-4e21-b676-cb8b6bcacd01" /></body>
      <title>Technical Debt is a Process Smell</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,29c86aac-c875-4e21-b676-cb8b6bcacd01.aspx</guid>
      <link>http://BitsNWidgets.com/2008/05/14/TechnicalDebtIsAProcessSmell.aspx</link>
      <pubDate>Wed, 14 May 2008 14:13:49 GMT</pubDate>
      <description>Definition: &lt;a href="http://en.wikipedia.org/wiki/Technical_debt"&gt;Technical Debt&lt;/a&gt; is
a term that we in the Agile world use to describe things in the code that perhaps
aren't engineered as well as they could (should) be. It can refer to many things,
like areas in the code that we should probably refactor to make them more readable,
poorly performing code, obsolete or clunky architecture, encapsulation abstraction,
or other class problems, or the like. It's debt because we know about it, we "owe"
it to be done, but are focusing on other things instead.&lt;br&gt;
&lt;br&gt;
Technical debt is the avoidance of doing work that we would otherwise do in the course
of doing our best practices in engineering. It's a fact of life that most every Agile
team has to deal with, in my experience. I find that there are various means of "dealing
with" technical debt, some of which I will discuss below as a matter of practicality.
However, I see it really as a symptom of a deeper problem. The team isn't finding
good engineering as valuable as completing stories could be the underlying problem.&lt;br&gt;
&lt;br&gt;
Teams can be pressured to deliver more than they should (this is common), and as such,
could be focused on delivering the current sprint's stories rather than fixing things
they find that are not as they should be. The team also could be creating more technical
debt for itself by not focusing on good engineering in the first place. When junior
people design things, sometimes they don't address all the points of performance and
code maintainability. Trade-offs are made that can end up causing lots of rework later.&lt;br&gt;
&lt;br&gt;
The concept of Agile software development, is heavily based on refactoring. Sometimes
I find that teams use refactoring with a little "r" when they should be Refactoring.
They make small internal changes, but are reluctant to change overall design, even
when it is truly warranted. When we add a new feature, sometimes the design needs
to change to accommodate it. THIS IS EXPECTED behavior in an Agile development process.
Yet, time after time I hear developers say "well, I don't want to change all that &lt;i&gt;NOW&lt;/i&gt;..."
when that's really exactly what they should be doing. The concept of iterative development
should be allowing us to ship software at the end of every cycle, and we really can't
consider the software shippable if it has these poor designs still left over from
earlier days.&lt;br&gt;
&lt;br&gt;
Refactoring the design shouldn't be catastrophic though. But, there is always some
impact that is almost always fundamentally left out when planning. Imagine we have
an apple, and we need to add some cherries to it in this sprint. We might just smash
the cherries on the outside of it, and call it good. But that would leave us a lumpy
ugly mess... Rather, we might take another approach, and put the apple and the cherries
all in a blender, and pour the mix into a new shape mold and freeze it. The new shape
will be smooth and round, yet it will encompass the new features of having both apple
and cherry flavors. It's a dumb example, but you get the idea. Refactoring can take
many forms.&lt;br&gt;
&lt;br&gt;
Handling Technical Debt&lt;br&gt;
Now, I have been on a few Agile teams and I am a realist. Technical debt is most certainly
here to stay. We just aren't in an ideal world, and we can't always take the time
we really need to make sure that the iteration's deliverable is as pristine as it
should be. So, now how can we handle this debt in a practical way?&lt;br&gt;
&lt;br&gt;
Here are some ways I have seen teams deal with Technical Debt:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Ignore it. 
&lt;ol&gt;
&lt;li&gt;
This don't work so good, in my opinion, but yes I have actually seen it done. It works,
so we'll use it as-is.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
TODO it. 
&lt;ol&gt;
&lt;li&gt;
//TODO in the code is a flag that there is something more that needs attention. Also,
//FIXFIX and //BUGBUG are others I have seen. Some of the tools give us mechanisms
to flag these as work items, but in my practical experience this is just about the
same as #1. Nobody ever gets back to these things to fix them. They just lose visibility
and get buried. Not very effective in my book.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
Backlog it. 
&lt;ol&gt;
&lt;li&gt;
Create a backlog item called Technical Debt. Each instance where something needs attention
is recorded as a task for this story. They can be estimated, and prioritized. Backlog
items have visibility, so they don't get lost. Here is the problem - Technical debt
now CAN be prioritized. And, it usually is - right to the bottom of the list. This
really doesn't solve the issue either, unless you have a product owner who is savvy
enough to know that good engineering means happier customers, developer, and management
in the long run.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
Bug it. 
&lt;ol&gt;
&lt;li&gt;
Log a bug for each Technical Debt item discovered. This is probably the most effective
means I have yet seen for the actual reduction or elimination of technical debt. In
reality, I think this is the most appropriate. The new story requires changes that
just haven't been made. It's not really "done" until this is taken care of. Ongoing
maintenance of code should have an appropriate stakeholder with a voice in the Product
Owner's scope of attention.&lt;br&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;
Job-Jar it. 
&lt;ol&gt;
&lt;li&gt;
Put it into the bucket of things that need to be done but aren't on either the sprint
or product backlogs. I think this is marginally effective, because nobody should technically
ever have time to get to this stuff, they really should be pulling things off the
product backlog onto the sprint backlog. But, I thought I'd mention this concept since
someone brought it up.&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;
Are there other ways to deal with Technical Debt? What ways have you had success?
Please leave me a comment and let me know.&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=29c86aac-c875-4e21-b676-cb8b6bcacd01" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,29c86aac-c875-4e21-b676-cb8b6bcacd01.aspx</comments>
      <category>bugs</category>
      <category>scrum</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=dcbf4850-1b54-436d-aa4c-a71403fcfa0c</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,dcbf4850-1b54-436d-aa4c-a71403fcfa0c.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,dcbf4850-1b54-436d-aa4c-a71403fcfa0c.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=dcbf4850-1b54-436d-aa4c-a71403fcfa0c</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">How do you handle bugs? There are many
ways organizations handle bugs in software. I have what I think is a very workable
approach, see if you agree.<br /><br />
The environment: The team is a dozen software developers and testers (total) and the
project is run as a Scrum project. Iterations are 3 weeks.<br /><br />
Scenario 1:<br />
QA is testing the build, and there is a bug discovered. The date/time field data that's
entered in local time is stored in UTC, but the data comes back as UTC (not local)
when retrieved.<br /><br /><ol><li>
QA logs a bug. Priority 2 Severity 2</li><li>
Bug is assigned to the Product Owner for the team.</li><li>
PO looks at the bug, and makes the call that the currently signed-off stories are
more important than this bug.</li><li>
The bug is estimated in story points by the team as 2 points.<br /></li><li>
The bug is put on the product backlog, prioritized along with the other bugs and stories.</li><li>
The team can't "ship" the sprint's release with this bug outstanding, but the PO knows
that they aren't planning a release for another two sprints anyway.</li></ol>
Scenario 2:<br />
QA is testing the build and discovers that if a name is entered that is longer than
50 characters, the site crashes with an unhandled exception.<br /><br /><p></p><ol><li>
QA logs a bug, Priority 1 Severity 1</li><li>
Bug is assigned to the Product Owner for the team.</li><li>
PO knows that this bug is serious enough to warrant being fixed right away.</li><li>
PO meets with the team, and the bug is estimated at 5 story points.</li><li>
The team's velocity last sprint was 80, and they have committed to 78 points for this
sprint. The team left only 2 points "spare" and didn't allocate time for bug fixes.<br /></li><li>
PO suggests that the bug be fixed this sprint, but the team does not feel they will
have time enough to do that along with the other stories.</li><li>
PO removes the lowest priority story from the sprint backlog, and replaces it with
the bug instead.</li><li>
The story goes back on the product backlog as the top story in priority.</li></ol>
There are also other permutations that may work in different organizations:<br /><ol><li>
Abort the sprint, and replan a new sprint including the bug fix.</li><li>
Allocate some time and time-box it just like a spike. The team may not be interested
in working overtime, but try to negotiate it anyway. Most teams will want to fix bugs
like this even if it means they work a few extra hours. Buy pizza.</li></ol>
The current team I am on doesn't follow these guidelines, and they insist that every
single bug be fixed for every sprint, or the story can't be accepted as done. While
I think this is a lofty goal, in my experience it just isn't practical. Maybe it's
my old school days at Microsoft where "done" meant it was "code complete" but not
"bug free." I think that Scrum gives us the ability to continue the current sprint
and continue to develop the features as committed, and delay bug fixes until the next
sprint. The only time when this doesn't work is the case where this sprint's story
delivery is scheduled to be the release. And even in that case, most organizations
allow a small window for last-minute fixes which could be used to take care of the
bug.<br /><br />
If the developers are doing TDD, they won't be writing bugs in the first place...
I see more than a handful of bugs per sprint at a clear process smell. In that case,
the process should be evaluated to see why the bugs are being created in the first
place. Is it unclear story descriptions? or more likely, is it a lack of testing in
the functional, integration, and acceptance areas? Any way it goes, bugs seem to be
a symptom, not the actual problem. Every bug I have written myself was due to a lack
of a test for that area. Find a bug, write a test! Please make sure that your developers
realize that when they estimate fixing bugs, that it should always include writing
tests that first fail when the bug is present, then pass when the bug is corrected.
Bugs should not be able to be resolved without at least a unit test to illustrate
that they are really fixed.<br /><br />
Handling bugs can complicate a project manager's life, so if they are cropping up,
be sure to address the root cause, and all will be happier.<br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=dcbf4850-1b54-436d-aa4c-a71403fcfa0c" /></body>
      <title>Bugs on an Agile Team</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,dcbf4850-1b54-436d-aa4c-a71403fcfa0c.aspx</guid>
      <link>http://BitsNWidgets.com/2008/05/07/BugsOnAnAgileTeam.aspx</link>
      <pubDate>Wed, 07 May 2008 02:02:00 GMT</pubDate>
      <description>How do you handle bugs? There are many ways organizations handle bugs in software. I have what I think is a very workable approach, see if you agree.&lt;br&gt;
&lt;br&gt;
The environment: The team is a dozen software developers and testers (total) and the
project is run as a Scrum project. Iterations are 3 weeks.&lt;br&gt;
&lt;br&gt;
Scenario 1:&lt;br&gt;
QA is testing the build, and there is a bug discovered. The date/time field data that's
entered in local time is stored in UTC, but the data comes back as UTC (not local)
when retrieved.&lt;br&gt;
&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
QA logs a bug. Priority 2 Severity 2&lt;/li&gt;
&lt;li&gt;
Bug is assigned to the Product Owner for the team.&lt;/li&gt;
&lt;li&gt;
PO looks at the bug, and makes the call that the currently signed-off stories are
more important than this bug.&lt;/li&gt;
&lt;li&gt;
The bug is estimated in story points by the team as 2 points.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
The bug is put on the product backlog, prioritized along with the other bugs and stories.&lt;/li&gt;
&lt;li&gt;
The team can't "ship" the sprint's release with this bug outstanding, but the PO knows
that they aren't planning a release for another two sprints anyway.&lt;/li&gt;
&lt;/ol&gt;
Scenario 2:&lt;br&gt;
QA is testing the build and discovers that if a name is entered that is longer than
50 characters, the site crashes with an unhandled exception.&lt;br&gt;
&lt;br&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
QA logs a bug, Priority 1 Severity 1&lt;/li&gt;
&lt;li&gt;
Bug is assigned to the Product Owner for the team.&lt;/li&gt;
&lt;li&gt;
PO knows that this bug is serious enough to warrant being fixed right away.&lt;/li&gt;
&lt;li&gt;
PO meets with the team, and the bug is estimated at 5 story points.&lt;/li&gt;
&lt;li&gt;
The team's velocity last sprint was 80, and they have committed to 78 points for this
sprint. The team left only 2 points "spare" and didn't allocate time for bug fixes.&lt;br&gt;
&lt;/li&gt;
&lt;li&gt;
PO suggests that the bug be fixed this sprint, but the team does not feel they will
have time enough to do that along with the other stories.&lt;/li&gt;
&lt;li&gt;
PO removes the lowest priority story from the sprint backlog, and replaces it with
the bug instead.&lt;/li&gt;
&lt;li&gt;
The story goes back on the product backlog as the top story in priority.&lt;/li&gt;
&lt;/ol&gt;
There are also other permutations that may work in different organizations:&lt;br&gt;
&lt;ol&gt;
&lt;li&gt;
Abort the sprint, and replan a new sprint including the bug fix.&lt;/li&gt;
&lt;li&gt;
Allocate some time and time-box it just like a spike. The team may not be interested
in working overtime, but try to negotiate it anyway. Most teams will want to fix bugs
like this even if it means they work a few extra hours. Buy pizza.&lt;/li&gt;
&lt;/ol&gt;
The current team I am on doesn't follow these guidelines, and they insist that every
single bug be fixed for every sprint, or the story can't be accepted as done. While
I think this is a lofty goal, in my experience it just isn't practical. Maybe it's
my old school days at Microsoft where "done" meant it was "code complete" but not
"bug free." I think that Scrum gives us the ability to continue the current sprint
and continue to develop the features as committed, and delay bug fixes until the next
sprint. The only time when this doesn't work is the case where this sprint's story
delivery is scheduled to be the release. And even in that case, most organizations
allow a small window for last-minute fixes which could be used to take care of the
bug.&lt;br&gt;
&lt;br&gt;
If the developers are doing TDD, they won't be writing bugs in the first place...
I see more than a handful of bugs per sprint at a clear process smell. In that case,
the process should be evaluated to see why the bugs are being created in the first
place. Is it unclear story descriptions? or more likely, is it a lack of testing in
the functional, integration, and acceptance areas? Any way it goes, bugs seem to be
a symptom, not the actual problem. Every bug I have written myself was due to a lack
of a test for that area. Find a bug, write a test! Please make sure that your developers
realize that when they estimate fixing bugs, that it should always include writing
tests that first fail when the bug is present, then pass when the bug is corrected.
Bugs should not be able to be resolved without at least a unit test to illustrate
that they are really fixed.&lt;br&gt;
&lt;br&gt;
Handling bugs can complicate a project manager's life, so if they are cropping up,
be sure to address the root cause, and all will be happier.&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=dcbf4850-1b54-436d-aa4c-a71403fcfa0c" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,dcbf4850-1b54-436d-aa4c-a71403fcfa0c.aspx</comments>
      <category>scrum</category>
      <category>bugs</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=f40a072b-fbac-4f4d-b9d0-97eaf4a04d36</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,f40a072b-fbac-4f4d-b9d0-97eaf4a04d36.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,f40a072b-fbac-4f4d-b9d0-97eaf4a04d36.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=f40a072b-fbac-4f4d-b9d0-97eaf4a04d36</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <br />
        <font size="4">
          <b>scrumbut</b>
        </font>
        <i>[skruhmbut]</i> noun.<br /><font face="Arial" size="2">1. A person engaged in only partially Agile project management
or development methodologies<br />
2. One who engages in either semi-agile or quasi-waterfall development methodologies.<br />
3. One who adopts only SOME tenents of the SCRUM methodology.<br />
4. In general, one who uses the word "but" when answering the question "Do you do
SCRUM?"<br /></font><br /><br />
You wouldn't want your surgeon to follow just *SOME* of the steps in that procedure
you're getting, would you?<br /><br />
SCRUM works great, if you can just follow the (whole) program. It's not surprising
how many organizations say they have failed using SCRUM, when they have only picked
and choosen a few of the aspects to implement.<br />
For those of you who need a 12-step program... and you know who you are...<br /><br /><br />
1. Use a 2-week or 4-week sprint. 2-week preferred<br />
2. Appoint a scrummaster who will hold the team accountable, AND also keep the wolves
at bay.<br />
3. Make sure the entire team is jointly accountable for the success of the project.<br />
4. Have a prioritized product backlog ready before the sprint. This can include both
bugs and features<br />
5. Have a REAL planning meeting where the team commits to stories and they are thoughtfully
tasked out and estimated.<br />
6. Team members commit to stories, and then break them down into tiny pieces (tasks).
If any estimates are over 4 hours, break them down further.<br />
7. Do a daily stand-up. What did you do, what are you going to do, and what's blocking.<br />
8. Don't do anything that's not estimated and in the sprint backlog.<br />
9. Establish, post, and meet DONE criteria. It's only real if it's posted and visible
to everyone.<br />
10. Post a sprint backlog task burn-down chart and update it daily.<br />
11. Keep the product owner in the loop at all times.<br />
12. Hold a stakeholder review a the end of the sprint - this is the fun part!<br />
(13) Then, have a retrospective meeting to discus what went well, what could use improvement,
and action items.<br /><br />
That's SCRUM!<br />
Now, you'll never have to be a SCRUMBUT again!<br /><br /><img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=f40a072b-fbac-4f4d-b9d0-97eaf4a04d36" /></body>
      <title>Don't be a SCRUMBUT!</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,f40a072b-fbac-4f4d-b9d0-97eaf4a04d36.aspx</guid>
      <link>http://BitsNWidgets.com/2008/04/19/DontBeASCRUMBUT.aspx</link>
      <pubDate>Sat, 19 Apr 2008 23:49:05 GMT</pubDate>
      <description>&lt;br&gt;
&lt;font size="4"&gt;&lt;b&gt;scrumbut&lt;/b&gt;&lt;/font&gt; &lt;i&gt;[skruhmbut]&lt;/i&gt; noun.&lt;br&gt;
&lt;font face="Arial" size="2"&gt;1. A person engaged in only partially Agile project management
or development methodologies&lt;br&gt;
2. One who engages in either semi-agile or quasi-waterfall development methodologies.&lt;br&gt;
3. One who adopts only SOME tenents of the SCRUM methodology.&lt;br&gt;
4. In general, one who uses the word "but" when answering the question "Do you do
SCRUM?"&lt;br&gt;
&lt;/font&gt;
&lt;br&gt;
&lt;br&gt;
You wouldn't want your surgeon to follow just *SOME* of the steps in that procedure
you're getting, would you?&lt;br&gt;
&lt;br&gt;
SCRUM works great, if you can just follow the (whole) program. It's not surprising
how many organizations say they have failed using SCRUM, when they have only picked
and choosen a few of the aspects to implement.&lt;br&gt;
For those of you who need a 12-step program... and you know who you are...&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
1. Use a 2-week or 4-week sprint. 2-week preferred&lt;br&gt;
2. Appoint a scrummaster who will hold the team accountable, AND also keep the wolves
at bay.&lt;br&gt;
3. Make sure the entire team is jointly accountable for the success of the project.&lt;br&gt;
4. Have a prioritized product backlog ready before the sprint. This can include both
bugs and features&lt;br&gt;
5. Have a REAL planning meeting where the team commits to stories and they are thoughtfully
tasked out and estimated.&lt;br&gt;
6. Team members commit to stories, and then break them down into tiny pieces (tasks).
If any estimates are over 4 hours, break them down further.&lt;br&gt;
7. Do a daily stand-up. What did you do, what are you going to do, and what's blocking.&lt;br&gt;
8. Don't do anything that's not estimated and in the sprint backlog.&lt;br&gt;
9. Establish, post, and meet DONE criteria. It's only real if it's posted and visible
to everyone.&lt;br&gt;
10. Post a sprint backlog task burn-down chart and update it daily.&lt;br&gt;
11. Keep the product owner in the loop at all times.&lt;br&gt;
12. Hold a stakeholder review a the end of the sprint - this is the fun part!&lt;br&gt;
(13) Then, have a retrospective meeting to discus what went well, what could use improvement,
and action items.&lt;br&gt;
&lt;br&gt;
That's SCRUM!&lt;br&gt;
Now, you'll never have to be a SCRUMBUT again!&lt;br&gt;
&lt;br&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=f40a072b-fbac-4f4d-b9d0-97eaf4a04d36" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,f40a072b-fbac-4f4d-b9d0-97eaf4a04d36.aspx</comments>
      <category>scrum</category>
    </item>
    <item>
      <trackback:ping>http://bitsnwidgets.com/Trackback.aspx?guid=eb0e0531-5ed8-4170-8f14-7b0285ccd1b6</trackback:ping>
      <pingback:server>http://bitsnwidgets.com/pingback.aspx</pingback:server>
      <pingback:target>http://bitsnwidgets.com/PermaLink,guid,eb0e0531-5ed8-4170-8f14-7b0285ccd1b6.aspx</pingback:target>
      <dc:creator>John Boal</dc:creator>
      <wfw:comment>http://bitsnwidgets.com/CommentView,guid,eb0e0531-5ed8-4170-8f14-7b0285ccd1b6.aspx</wfw:comment>
      <wfw:commentRss>http://bitsnwidgets.com/SyndicationService.asmx/GetEntryCommentsRss?guid=eb0e0531-5ed8-4170-8f14-7b0285ccd1b6</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <strong>
            <u>
              <font size="4">Once upon a time</font>
            </u>
          </strong>, there was an Agile
team that was working on stories in a sprint. The team was going on fine, until the
product owner decided it was time for him to go on a month long vacation (and then
leave the company).<br /><br /><b>Life Goes On</b><br />
So, being a good scrum master, the SM appoints a new PO to make decisions on the specifics
of the stories that were already in progress (and some finished). The new PO was a
pretty sharp fellow, but he didn't have any background for the feature, so he was
a might confused. But, the team had fairly good direction on the feature, so they
persevered and completed the tasks as they understood them.<br /><br /><b>The Shadows</b><br />
Now then, from lurking in the dark shadows, there emerged the original PO's Boss.
The Boss of course looks at the feature nearly complete, and decides that there were
a couple minor tweaks here or there - hey, he's the boss - he can do that. No worries,
the changes were slight, and easy. Done deal. All the stories were completed, as well
as the automated acceptance tests that verified the now-completed tweaks, as well
as the remaining story criteria. All the words had been blessed by the Documentation
folk, the UI had been blessed by the User Experience folk (this was the Second iteration
of the UI design also BTW).<br /><br /><b>Demo Day</b><br />
At the end of the sprint, we all get together with the interested stakeholders in
a room, and review the stories, the functionality that was delivered. The managers,
the development director, the project team, scrum master, and QA were all represented.
Keep in mind now, that everyone has actually seen the feature at least once... "We
can't have it do that..." says the boss. Well, apparently a modal dialog with OK and
Cancel doesn't work the same in Boss-World as it does <b><i>everywhere</i></b> else.
So, he fires up his argumentation engine and proceeds to corner the entire meeting
with a redesign of not only the UI but also the functionality of a standard modal
dialog. Nothing was up to par for the Boss, and - remember - he had seen it all demonstrated
for him before...<br /><br /><b>The Outcome</b><br />
None of the stories in the sprint were accepted. Sprint velocity: ZERO points. Bad
day. Alcohol was required.<br /></p>
        <p>
        </p>
        <p>
          <br />
          <b>The Moral</b>
          <br />
The moral of this story is this: Have a Product Owner who knows what the feature does.
Make sure the product owner has input from ALL the stakeholders - oh yes - in a TIMELY
manner as well. Make sure your scrum master has the ability to keep lurking skeletons
at bay. They can have their say in the next sprint. But at the end of the planning
meeting, the stories should be pretty much fixed and everyone should understand the
acceptance criteria for them. Stories shouldn't just have arbitrary criteria appended,
grafted, attached, pasted, or otherwise affixed to them after the planning meeting,
even by skulking lurkers.<br /></p>
        <img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=eb0e0531-5ed8-4170-8f14-7b0285ccd1b6" />
      </body>
      <title>Why do we need a Product Owner?</title>
      <guid isPermaLink="false">http://bitsnwidgets.com/PermaLink,guid,eb0e0531-5ed8-4170-8f14-7b0285ccd1b6.aspx</guid>
      <link>http://BitsNWidgets.com/2008/04/14/WhyDoWeNeedAProductOwner.aspx</link>
      <pubDate>Mon, 14 Apr 2008 20:13:12 GMT</pubDate>
      <description>&lt;p&gt;
&lt;strong&gt;&lt;u&gt;&lt;font size="4"&gt;Once upon a time&lt;/font&gt;&lt;/u&gt;&lt;/strong&gt;, there was an Agile
team that was working on stories in a sprint. The team was going on fine, until the
product owner decided it was time for him to go on a month long vacation (and then
leave the company).&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Life Goes On&lt;/b&gt;
&lt;br&gt;
So, being a good scrum master, the SM appoints a new PO to make decisions on the specifics
of the stories that were already in progress (and some finished). The new PO was a
pretty sharp fellow, but he didn't have any background for the feature, so he was
a might confused. But, the team had fairly good direction on the feature, so they
persevered and completed the tasks as they understood them.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;The Shadows&lt;/b&gt;
&lt;br&gt;
Now then, from lurking in the dark shadows, there emerged the original PO's Boss.
The Boss of course looks at the feature nearly complete, and decides that there were
a couple minor tweaks here or there - hey, he's the boss - he can do that. No worries,
the changes were slight, and easy. Done deal. All the stories were completed, as well
as the automated acceptance tests that verified the now-completed tweaks, as well
as the remaining story criteria. All the words had been blessed by the Documentation
folk, the UI had been blessed by the User Experience folk (this was the Second iteration
of the UI design also BTW).&lt;br&gt;
&lt;br&gt;
&lt;b&gt;Demo Day&lt;/b&gt;
&lt;br&gt;
At the end of the sprint, we all get together with the interested stakeholders in
a room, and review the stories, the functionality that was delivered. The managers,
the development director, the project team, scrum master, and QA were all represented.
Keep in mind now, that everyone has actually seen the feature at least once... "We
can't have it do that..." says the boss. Well, apparently a modal dialog with OK and
Cancel doesn't work the same in Boss-World as it does &lt;b&gt;&lt;i&gt;everywhere&lt;/i&gt;&lt;/b&gt; else.
So, he fires up his argumentation engine and proceeds to corner the entire meeting
with a redesign of not only the UI but also the functionality of a standard modal
dialog. Nothing was up to par for the Boss, and - remember - he had seen it all demonstrated
for him before...&lt;br&gt;
&lt;br&gt;
&lt;b&gt;The Outcome&lt;/b&gt;
&lt;br&gt;
None of the stories in the sprint were accepted. Sprint velocity: ZERO points. Bad
day. Alcohol was required.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
&lt;b&gt;The Moral&lt;/b&gt;
&lt;br&gt;
The moral of this story is this: Have a Product Owner who knows what the feature does.
Make sure the product owner has input from ALL the stakeholders - oh yes - in a TIMELY
manner as well. Make sure your scrum master has the ability to keep lurking skeletons
at bay. They can have their say in the next sprint. But at the end of the planning
meeting, the stories should be pretty much fixed and everyone should understand the
acceptance criteria for them. Stories shouldn't just have arbitrary criteria appended,
grafted, attached, pasted, or otherwise affixed to them after the planning meeting,
even by skulking lurkers.&lt;br&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://bitsnwidgets.com/aggbug.ashx?id=eb0e0531-5ed8-4170-8f14-7b0285ccd1b6" /&gt;</description>
      <comments>http://bitsnwidgets.com/CommentView,guid,eb0e0531-5ed8-4170-8f14-7b0285ccd1b6.aspx</comments>
      <category>scrum</category>
    </item>
  </channel>
</rss>