tag:blogger.com,1999:blog-52101594274939491782009-07-12T10:39:12.485ZAll About AgileAgile Software Development made easy!Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.comBlogger194125tag:blogger.com,1999:blog-5210159427493949178.post-70402648764162463232009-06-10T07:06:00.014Z2009-07-02T21:35:08.080ZUsing Scrum on Larger Projects: "Scrum of Scrums"<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/06/using-scrum-on-larger-projects-scrum-of.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://3.bp.blogspot.com/_H0iqHTCqRyo/Si9d6I-ZYwI/AAAAAAAAA1o/qJ3l3iZiLYw/s400/scrum+of+scrums.png" alt="Using Scrum on Larger Projects: Scrum of Scrums" id="BLOGGER_PHOTO_ID_5345594536135058178" border="0" /></a>It is sometimes said that <b>agile software development</b> methods, such as <a href="http://www.scrumalliance.org/">Scrum</a>, are ideal for small projects being delivered by small teams.<br /><br />Personally I would certainly agree that <span style="font-weight: bold;">Scrum</span> is ideal for small, multi-disciplined, co-located teams, working on a common purpose.<br /><br />However, these days we hear plenty of examples of larger companies using Scrum on a fairly <span style="font-weight: bold;">large scale</span>. I seem to recall Yahoo in particular once stated they were using Scrum on a project with 700 developers!<br /><br />Of course it is relatively straightforward to scale Scrum up when the teams are basically a collection of small unrelated teams, each using Scrum but working on different projects. But what about when you need a very <span style="font-weight: bold;">large team</span> working on a <span style="font-weight: bold;">single project</span>, or on closely related projects in a large programme?<br /><span id="fullpost"><br />One technique for handling this - although I'm sure it's not enough on it's own by the way - is a technique called '<span style="font-weight: bold;">Scrum of Scrums</span>'.<br /><br />The concept is simple. Each team meets every day and holds their <a href="http://www.agile-software-development.com/2007/10/how-to-implement-scrum-in-10-easy-steps_30.html">daily Scrum</a> as usual. One or two representatives from each Scrum team attend a <span style="font-weight: bold;">higher level Scrum</span> to coordinate across teams. And on very large teams, one or two representatives from the higher level Scrum attends an even higher level Scrum, and so on.<br /><br />It means some people need to attend two Scrums, but the Scrum of Scrums technique <span style="font-weight: bold;">scales up</span> very well and is easy to see how important information can be quickly cascaded all the way up the line on very large projects.<br /><br />But the information that needs to be communicated, and the frequency of communication, shifts as you go up the line, and the process for a <span style="font-weight: bold;">Scrum of Scrums</span> needs to be slightly different from a usual Scrum.<br /><br />Mike Cohn - popular author of <a href="http://www.amazon.co.uk/Agile-Estimating-Planning-Robert-Martin/dp/0131479415?&amp;camp=2486&amp;creative=10522&amp;linkCode=waf&amp;tag=kellywatersag-21">Agile Estimating and Planning</a> and <a href="http://www.amazon.co.uk/User-Stories-Applied-Development-Signature/dp/0321205685?&amp;camp=2486&amp;creative=10522&amp;linkCode=waf&amp;tag=kellywatersag-21">User Stories Applied</a> - has written a blog post giving his advice on how to apply the Scrum of Scrums technique...<br /><br /><a href="http://www.mountaingoatsoftware.com/articles/35-advice-on-conducting-the-scrum-of-scrums-meeting">Advice on conducting a Scrum of Scrums - by Mike Cohn</a><br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-7040264876416246323?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com2tag:blogger.com,1999:blog-5210159427493949178.post-83139859010413342412009-06-01T19:53:00.017Z2009-07-02T21:38:14.372ZTo Estimate or Not To Estimate? That is the Question!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/06/to-estimate-or-not-to-estimate-that-is.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://2.bp.blogspot.com/_H0iqHTCqRyo/SiQyd8NQm-I/AAAAAAAAA1g/DDWX4f10ML4/s400/to+estimate+or+not+to+estimate.jpg" alt="To Estimate or Not To Estimate, That is the Question!" id="BLOGGER_PHOTO_ID_5342450547927587810" border="0" /></a><a href="http://en.wikipedia.org/wiki/Lean_software_development"><span style="font-weight: bold;">Lean</span> software development</a> shares many of the <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">key principles</a> of <b>agile software development</b>.<br /><br />Although one of the key aspects of <span>lean development</span> is all about identifying and <span style="font-weight: bold;">eliminating waste </span>from the development process...<br /><br />One of the most hotly debated aspects of this is <span>estimating</span>. It clearly doesn't contribute to the end product itself, but <span style="font-weight: bold;">is estimating </span><span style="font-weight: bold;">really waste?</span> Or does it really add value to the process?<br /><span id="fullpost"><br />This post on the LitheSpeed blog, '<a href="http://lithespeed.blogspot.com/2009/05/to-estimate-or-not-that-is-question.html">To Estimate or Not To Estimate, That is the Question</a>', asks exactly that.<br /><br />The answer? I guess it really is a matter of opinion. My personal answer - Like most things in life, I think it depends!<br /><br />I think I agree with Sanjiv. If you're working on high priority bugs, in severity order, and they must be fixed, estimating how long they will take provides little value, except to help manage expectations about when the bugs might be gone, which may or may not be useful depending on your circumstances.<br /><br />On the other hand, if you need to create a business case in order to secure funding for a special project, or you need to commit to a deadline to fit in with other dependencies like a launch date, estimating is clearly necessary, whether it adds value to the end product or not.<br /><br />I think actually that's really the wrong question though. Clearly there are many scenarios in business where you do need to estimate when something might be done. But you may not need to estimate the size of each feature or the effort of each task in order to predict a delivery date. <br /><br />With a large enough sample size, keeping track of the average time per feature, or <span style="font-weight: bold;">cycle time</span>, could potentially be a reliable way of predicting how long something might take, without actually estimating it.<br /><br />My concern about this approach is that, statistically, all items must be as near as possible to <span style="font-weight: bold;">average </span>to achieve any level of predictability on a single piece of work. I'm sure on a large project, everything averages out. By definition it must do!<br /><br />But on smaller pieces of work, where you're working to short timescales, any feature that is higher than average gets delivered later than expected. And that can cause problems.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/nickbush/450151862/sizes/m/">bushn</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-8313985901041334241?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com1tag:blogger.com,1999:blog-5210159427493949178.post-49471850157063719432009-05-19T07:57:00.015Z2009-07-02T21:38:48.326ZKanban Applied to Software Development: From Agile to Lean<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/05/kanban-applied-to-software-development.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/ShJyTsKhBaI/AAAAAAAAA1Y/cE2nUxSyvN8/s400/kanban+lean+software+development.jpg" alt="Kanban: from agile software development to lean" id="BLOGGER_PHOTO_ID_5337454190985807266" border="0" /></a>Most of my experience of <b>agile software development</b> has been with Scrum, and some aspects of eXtreme Programming (XP). However, for quite a while now, I've been reading quite a bit about <span style="font-weight: bold;">Lean</span> software development, and Kanban.<br /><span id="fullpost"><br />For those that don't really know much about <span style="font-weight: bold;">Kanban</span>, I found the following article on InfoQ quite an interesting insight:<br /><br /><a href="http://www.infoq.com/articles/hiranabe-lean-agile-kanban">http://www.infoq.com/articles/hiranabe-lean-agile-kanban</a><br /><br />I haven't made the jump and tried <span style="font-weight: bold;">Lean </span>with any of my teams yet. To be honest, I've had such great success with <span style="font-weight: bold;">Scrum</span>, across so many teams now, it's almost a case of "if it's not broken, don't try to fix it".<br /><br />Having said that, I do see that the overhead of <a href="http://www.agile-software-development.com/2007/10/how-to-implement-scrum-in-10-easy-steps_11.html">Sprint planning</a> in Scrum is often quite onerous. Although I really value the predictability teams can achieve by <a href="http://www.agile-software-development.com/2009/04/agile-estimating.html">estimating in points</a> and tracking <a href="http://www.agile-software-development.com/2008/01/understanding-your-velocity.html">Velocity</a> and <a href="http://www.agile-software-development.com/2007/11/how-to-implement-scrum-in-10-easy-steps.html">Burndown</a>. I've seen this help so many teams to deliver on their commitments, meeting expectations and building strong business relationships as a result.<br /><br />But I can't help being slightly fascinated by the idea of <span style="font-weight: bold;">cycle time</span> in Lean software development. This is the idea that a team's cycle time represents the average number of cards - or <a href="http://www.agile-software-development.com/2008/01/user-stories.html">User Stories</a> - a team can deliver in a fixed period of time (iteration). To work best, user stories would ideally be broken down until they are all a similar size. Although not necessarily, as what's important with cycle time is the <span style="font-weight: bold;">average</span> number of user stories that can be delivered in a Sprint. When you think about it statistically, the concept is actually very similar to Velocity.<br /><br />What if a team could achieve the same level of reliability and predictability, without the need for any detailed estimating and planning? There would certainly be an increase in the team's productivity, due to the time saved on Sprint Planning.<br /><br />My sense is that doing Lean - and using cycle time to predict when things can be delivered - may well be appropriate for <span style="font-weight: bold;">business as usual</span>. Ongoing development is, by nature, more routine. And therefore the team is more likely to get into a more predictable rhythm. But for bigger projects, where costs need to be estimated in order to secure funding, and the project team is not yet established, I'm not sure if cycle time would be predictable enough?<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-4947185015706371943?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com2tag:blogger.com,1999:blog-5210159427493949178.post-59810047549350957462009-05-12T20:55:00.013Z2009-07-02T21:40:07.897ZForrester on Agile and Lean<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/05/forrester-on-agile-and-lean.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/Sgnlgu1CPMI/AAAAAAAAA1Q/5-P4N11e05k/s400/forrester+on+agile+and+lean.jpg" alt="Forrester on Agile Software Development and Lean" id="BLOGGER_PHOTO_ID_5335047584086113474" border="0" /></a>Here's an interesting article about <b>agile software development</b> and lean development, written by a senior analyst at Forrester Research...<br /><br /><a href="http://www.ddj.com/architect/216600161">"Agile Processes Go Lean"</a><br /><br /><span id="fullpost">It's nice to see agile and lean getting such positive recognition from an organisation as credible as Forrester.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/rouleau/390332046/sizes/m/">Antoine</a></span></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-5981004754935095746?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-21770515977080860802009-05-12T20:19:00.003Z2009-05-12T20:27:29.101ZThe Downfall of Agile HitlerApologies to my regular readers. Things have been pretty busy at home and at work lately, so I haven't blogged for ages! To ease me back into the chair gently, here is a funny video about "Agile Hitler" that was posted on YouTube. Someone at work sent it on to me, and I must admit it made me laugh out loud! It starts slowly, but it's worth sticking with it...<br /><br /><object width="600" height="400"><param name="movie" value="http://www.youtube.com/v/l1wKO3rID9g&amp;hl=en&amp;fs=1"><param name="allowFullScreen" value="true"><param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/l1wKO3rID9g&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-2177051597708086080?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com2tag:blogger.com,1999:blog-5210159427493949178.post-56547775708504949792009-04-02T21:46:00.017Z2009-07-02T21:41:14.588ZEstimating in Agile Software Development<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/04/agile-estimating.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://1.bp.blogspot.com/_H0iqHTCqRyo/SdUzJPOZXFI/AAAAAAAAA1E/CYe3XcrXvF4/s400/agile+estimating+and+planning.jpg" alt="Estimating and Planning in Agile Software Development" id="BLOGGER_PHOTO_ID_5320214768606862418" border="0" /></a>I've written quite a bit about various aspects of estimating in <b>agile software development</b>. I think it's about time I joined up the dots...<br /><span id="fullpost"><br /><span style="font-weight: bold;">PRODUCT BACKLOG</span><br /><br />The <a href="http://www.agile-software-development.com/2007/09/how-to-implement-scrum-in-10-easy-steps_20.html">Product Backlog</a> is a <span style="font-weight: bold;">feature list</span>. Or a list of <a href="http://www.agile-software-development.com/2008/04/writing-good-user-stories.html">User Stories</a> if that's your approach. Either way, it is a simple list of things that are of <span style="font-weight: bold;">value to a user</span> - not technical tasks - and they are written in <span style="font-weight: bold;">business language</span>, so they can be prioritised by the <a href="http://blog.versionone.net/blog/2009/02/product-owners-and-product-managers.html">Product Owner</a>. There are no details about each feature until it is ready to be developed, just a basic description and maybe a few notes if applicable.<br /><br /><span style="font-weight: bold;">'POINTS MAKE SIZES'</span><br /><br />Each item on the Product Backlog is given a <a href="http://www.agile-software-development.com/2008/10/estimating-in-points-seems-bit-stupid.html">points</a> value to represent its <span style="font-weight: bold;">size</span>. Size is an intuitive mixture of <span style="font-weight: bold;">effort and complexity</span>. It's meant to represent '<span style="font-weight: bold;">how big it is</span>'.<br /><br /><span style="font-weight: bold;">FIBONACCI</span><br /><br />I like to use the <a href="http://www.agile-software-development.com/2007/12/whats-point-in-estimating.html">Fibonacci</a> number sequence for the <span style="font-weight: bold;">points values</span>. Fibonacci goes 1, 2, 3, 5, 8, 13 - where each number is the sum of the previous two. This builds a natural <span style="font-weight: bold;">distribution curve </span>into the estimates. The bigger something's size, the less precise the estimate can be, which is reflected in the widening range between the numbers as they get bigger.<br /><br /><span style="font-weight: bold;">RELATIVE ESTIMATING</span><br /><br />Points are an <span style="font-weight: bold;">abstract </span>number. They do not convert to a unit of time. They are simply a <span style="font-weight: bold;">*relative*</span> indication of size. In other words, a 2 is about twice the size of a 1. A 5 is bigger than a 3, but smaller than an 8. Developers find it hard to estimate accurately in hours or days when they don't yet know the details of the requirements and what the solution involves. But it's easier to compare the size of two features relative to each other.<br /><br /><span style="font-weight: bold;">ESTIMATE AS A TEAM</span><br /><br />The points should be assigned to each backog item <a href="http://www.agile-software-development.com/2007/09/how-to-implement-scrum-in-10-easy-steps_28.html">as a team</a>. The <span style="font-weight: bold;">collective intelligence</span> - or wisdom of crowds - is an important way to apply multiple people's experience to the estimate. If you have a very big team, you can split up so it's quicker to do this, but the estimating groups should ideally involve <span style="font-weight: bold;">at least 3 people</span>, so you dont just get two opposing opinions.<br /><br /><span style="font-weight: bold;">PLANNING POKER</span><br /><br /><a href="http://www.agile-software-development.com/2009/03/planning-poker-agile-estimating.html">Planning Poker</a> is a fun technique to facilitate <span style="font-weight: bold;">rapid estimating</span> as a team. The team discusses a feature verbally to understand more about what it entails and how it might be done. Each team member writes what they think its size is (in points) on a card. All team members <span style="font-weight: bold;">reveal their card at the same time</span>. Differences in opinion are used to provoke further discussion. Maybe one person saw risks and complexity that others didn't. Maybe another persion saw a simpler solution. The team re-votes until there is a concensus, then moves on to the next item.<br /><br /><span style="font-weight: bold;">DONE MEANS DONE</span><br /><br />During the Sprint, or iteration, the team only counts something as <a href="http://www.agile-software-development.com/2007/04/agile-principle-7-done-means-done.html">Done</a> when it is <span style="font-weight: bold;">completely done</span>, i.e. tested and signed off by the Product Owner. At that time, and only at that time, the team scores the points for the item.<br /><br /><span style="font-weight: bold;">BURNDOWN</span><br /><br />The team shows its commitment and daily progress on a <span style="font-weight: bold;">graph</span>, so it is measurable and visible <span style="font-weight: bold;">at a glance</span>. This is called a <a href="http://www.agile-software-development.com/2007/11/how-to-implement-scrum-in-10-easy-steps.html">Burndown Chart</a>. The burndown shows the total number of points committed to, depreciating over time to the end of the Sprint. This is the target line. It also shows the actual number of points scored each day - i.e. the sum of points for all items that are 100% done and signed off so far. The team plots this each day before their daily stand-up meeting. When the actual line is above the target line, the team is behind. When it's below, they're ahead.<br /><br /><span style="font-weight: bold;">VELOCITY</span><br /><br />At the end of the Sprint, the <span style="font-weight: bold;">team's score </span>is called their <a href="http://www.agile-software-development.com/2008/01/understanding-your-velocity.html">Velocity</a>. The team tracks its Velocity over time. This allows the team to see if it's improving. Of course at some point it will stabilise, if the team is stable. If not, this is an issue in itself. When Velocity is relatively stable - in my experience that will be after 3 or 4 Sprints - it can be reliably used to decide how much (i.e. how many points) the team should commit to in the next Sprint.<br /><br /><span style="font-weight: bold;">RELIABILITY / PREDICTABILITY</span><br /><br />As a result, the team can measure how reliable - or how <span style="font-weight: bold;">predictable</span> - they are. The metric for this is Velocity (points scored) as a percentage of points planned. As Velocity stabilises, the team's <span style="font-weight: bold;">Reliability </span>will get better, and the team will be better at predicting what they can deliver. Ironically, the team doesn't need to get better at estimating to get better at delivering on their commitments. Even if they are terrible at estimating, as long as they are <span style="font-weight: bold;">consistently</span> terrible, with this method they will still get better at predicting what they can deliver.<br /><br /><span style="font-weight: bold;">POINTS VERSUS TIME</span><br /><br />One of the benefits of <span style="font-weight: bold;">points </span>is that it does <a href="http://www.agile-software-development.com/2008/10/estimating-in-points-seems-bit-stupid.html">not relate to time</a>. Resist the temptation to convert it. If a team plans on 100 points and delivers 50, can you imagine telling your stakeholders that you are only planning future Sprints for half the team's time. If a team commits to 100 points and delivers 150, imagine telling the team you're planning on doing 60 hours each per week. It just doesn't work. <span style="font-weight: bold;">Points are not a measure of time</span>. They are abstract, relative sizes, and a measure of how much can be delivered. That's why it works. It works because the team can adjust its commitment based on what its <span style="font-weight: bold;">track record</span> shows it can usually deliver.<br /><br /><span style="font-weight: bold;">PRODUCTIVITY</span><br /><br />This does not measure a team's <span style="font-weight: bold;">productivity</span>. Velocity does tell you if a team is getting more or less productive. But you can't really use Velocity to compare the productivity of two teams, as their circumstances are <span style="font-weight: bold;">different</span>. And you can't use it to determine whether a team's Velocity is as high as it should be. For this, you still need to use your judgement, based on previous experience and taking into account many <span style="font-weight: bold;">subjective </span>factors.<br /><br /><span style="font-weight: bold;">PLAYING THE SYSTEM</span><br /><br />Using these two metrics - <span style="font-weight: bold;">Velocity </span>and <span style="font-weight: bold;">Reliability </span>- it's hard to cheat the system. If a team commits low, they acheive Reliability but Velocity goes down. If a team commits too high, their Velocity goes up but their Reliability goes down. This is like the <span style="font-weight: bold;">balanced scorecard</span> concept. The metrics are deliberately measuring opposing things, so they can't easily be played.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/nifmus/426478050/sizes/m/">Steve Kay</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-5654777570850494979?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com7tag:blogger.com,1999:blog-5210159427493949178.post-5349122948243224242009-03-24T20:57:00.016Z2009-07-02T21:41:34.218Z3 Reasons Why I Wouldn't Do Agile Software Development<a style="font-weight: bold;" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/03/3-reasons-why-i-wouldnt-do-agile.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 220px; height: 260px;" src="http://2.bp.blogspot.com/_H0iqHTCqRyo/SclL2SkBvlI/AAAAAAAAA08/VYkyveSFqAE/s400/why+i+wouldn%27t+do+agile+software+development.jpg" alt="3 Reasons Why I Wouldn't Do Agile Software Development" id="BLOGGER_PHOTO_ID_5316864231155547730" border="0" /></a><b>Agile software development</b> has been a revelation for me. It has brought me and my teams much success, and a very rewarding working environment.<br /><br />Sometimes I hear people say that <span style="font-weight: bold;">agile development</span> isn't appropriate in all circumstances.<br /><span id="fullpost"><br />In fact, I used to say that myself; however now I'm not so sure.<br /><br />There are some circumstances where an organisation's culture is possibly too different to successfully adopt agile. At the moment I can think of only <span style="font-weight: bold;">3 reasons why I wouldn't do agile software development</span>:<br /><br /><span style="font-weight: bold;">1.</span> If I was working for an organisation that believed it needed complete clarity about a solution before it could start a project. I believe this is a false positive, and it would be very hard to adopt agile in an environment where key stakeholders insist on this.<br /><br /><span style="font-weight: bold;">2.</span> If I was working for an organisation where the relevant product owners couldn't - or wouldn't - commit to being actively involved throughout the project. I really do believe that <a href="http://www.agile-software-development.com/2007/02/principle-1-active-user-involvement-is.html">active user involvement</a> is the first principle of agile, and imperative for a project to succeed.<br /><br /><span style="font-weight: bold;">3.</span> If I was working with a team that I didn't believe could cope with ambiguity, or didn't have sufficient <a href="http://www.agile-software-development.com/2007/04/agile-principle-10-no-place-for-snipers.html">communication skills to collaborate</a> effectively with business colleagues or customers.<br /><br />In these circumstances (particularly if combined), adopting agile could be very difficult indeed, because in my experience these 3 <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">agile principles</a> are critical success factors!<br /><br />When writing this list, I did also wonder whether to add <span style="font-weight: bold;">fixed price projects</span> to my list? Working from a feature list, having no more detail about the features up-front, and allowing change throughout the project, could potentially be a complete disaster with some clients on a fixed price contract.<br /><br />I think I would do agile on a fixed price, but I would be very careful to:<br /><ul><li>Understand the client's attitude towards scope up-front, and be very clear about the fact it's fixed price, not fixed price and fixed scope. In other words, they can add or change features throughout development, giving them the benefits of flexibility, but will need to remove other features to do so.<br /><br /></li><li>Build in sufficient contingency and allow for a reasonable number of changes to happen without too much debate. You are taking the risk on a fixed price project. The client needs to pay a premium to offload that risk to you.</li></ul>I would evaluate the above two issues - along with any other risks - very carefully before committing to a fixed price agile development project. Otherwise, whether accidentally or deliberately, you could quite easily get mugged :-(<br /><br />On the other hand, I'd probably try to persuade the customer that T&amp;M (Time &amp; Materials) is not a problem with agile software development, because of the level of collaboration, visibility and transparency, and the <a href="http://www.agile-software-development.com/2007/03/agile-principle-6-focus-on-frequent.html">frequent delivery</a> of working software.<br /><br />I'd love to know your thoughts on this: <span style="font-weight: bold;">When wouldn't you do agile software development</span>?<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/dominicmercier/128427984/sizes/s/">dominicmercier</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-534912294824322424?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com14tag:blogger.com,1999:blog-5210159427493949178.post-90305445432166249362009-03-16T17:52:00.015Z2009-07-02T21:41:58.755Z'All About Agile' Seminar<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/03/all-about-agile-seminar.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/Sb6V8rlpUKI/AAAAAAAAA00/0KXREqcGyEc/s400/conference.jpg" alt="All About Agile Seminar" id="BLOGGER_PHOTO_ID_5313849480069075106" border="0" /></a>I've spent the last 2 years or so reaching out via my blog and posting all sorts of comments and information about my experiences with <b>agile software development</b>. I am now thinking of running a seminar, in order to do the same thing on a face-to-face basis.<br /><span id="fullpost"><br />I think the area where I have most to offer is for people starting out with <span style="font-weight: bold;">agile</span>; people that might be interested in my explanation of the <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">10 key principles of agile</a>, and my explanation and experience of <a href="http://www.agile-software-development.com/2007/09/how-to-implement-scrum-in-10-easy-steps.html">how to implement Scrum</a>.<br /><br />I have seen significant <a href="http://www.agile-software-development.com/2007/06/10-good-reasons-to-do-agile-development.html">benefits</a> from implementing <span style="font-weight: bold;">agile development using Scrum</span>, having implemented it successfully in many teams now. I'm really keen - as I have done so far with my blog - to share my experiences with the community. Hopefully on a face-to-face basis I should be able to really bring some of this experience alive, and share some important information about what has worked for me in practice.<br /><br />I haven't set a specific date yet. Or a definite price. My idea is to do this as a half-day session, in London and at a decent venue.<br /><br />This is where <span style="font-weight: bold;">I need your feedback</span>. The purpose of this blog post is simply to sound out my blog readers and find out if there is sufficient interest to run the event? If you would be interested in attending, or have any feedback for me, I would love to hear from you. You can email me at <a href="mailto:allaboutagile@gmail.com">allaboutagile@gmail.com</a>.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-9030544543216624936?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-24537056695429225162009-03-09T20:36:00.028Z2009-07-02T21:42:19.164ZThe Power of a Whiteboard<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/03/power-of-whiteboard.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_H0iqHTCqRyo/SbWC0YIiwWI/AAAAAAAAA0s/BLhPvkQwa8U/s400/agile+software+development+-+the+power+of+a+whiteboard.jpg" alt="Agile Software Development: The Power of a Whiteboard" id="BLOGGER_PHOTO_ID_5311295171896459618" border="0" /></a><b>Agile software development</b> teams often use low-tech, manual methods for tracking their work. Post-it notes or cards on a <span>whiteboard</span>. Charts drawn by hand. Sketches for architecture and design.<br /><br />But why, for such a high-tech industry like <span style="font-weight: bold;">software development</span>, would agile teams do this, when there are plenty of project management tools available; even tools that are purpose-built for <span>agile software development</span>?<br /><span id="fullpost"><br />Personally I can see why. I think a whiteboard offers loads of advantages over electronic tools. They're mainly soft factors, I admit, but I think a whiteboard is hard to beat.<br /><br />First of all, a whiteboard is <span style="font-weight: bold;">visual</span>. And it's <span style="font-weight: bold;">BIG</span>. You can see <span style="font-weight: bold;">at a glance</span> how things are going.<br /><br />When you're part way through a Sprint, and most of the cards are still on the left of the board, you know it's not going so well. Or you're coming towards the end of a sprint, and the cards are mostly - reassuringly - on the right of the board, you know it's going fine. The <a href="http://www.agile-software-development.com/2007/11/how-to-implement-scrum-in-10-easy-steps.html">Burndown Chart</a> shows you instantly whether the team is on track. And, if not, by how much. All at a glance as you walk past the board. Whether you made a special effort to look or not. The <span style="font-weight: bold;">visibility </span>is unbeatable.<br /><br />When you see something in print, somehow it seems <span style="font-weight: bold;">more real</span>. I guess because it's <span style="font-weight: bold;">physical</span>. A large number of post-it notes on a whiteboard looks like a lot of work. Probably because it *is* a lot of work! Its sheer physical presence reflects the amount of work the team is actually doing. It <span style="font-style: italic; font-weight: bold;">feels </span><span style="font-weight: bold;">busy</span>. It feels like a place where <span>alot is happening</span>, which feels good. A long list of tasks on a project plan, or a long list of rows in a spreadsheet, simple doesn't have the same <span style="font-weight: bold;">impact</span>.<br /><br />A whiteboard is also <span style="font-weight: bold;">flexible</span>. Infinitely flexible. You can put literally anything you like on it. Wherever you like. In any position, any size, any shape. Unlike an electronic system, there are never any constraints. No-one ever says you can't do something because the whiteboard won't let you.<br /><br />It's <span style="font-weight: bold;">fast</span> and efficient to change. You could completely reoarganise a set of cards in just a few moments. Or sketch something important in seconds.<br /><br />It's also more <span style="font-weight: bold;">tactile</span>. For people that like tactile, it feels good to move a card to done. You feel a sense of <span style="font-weight: bold;">ownership</span> when you pick up a card. A business owner feels a greater sense of responsibility - real acknowledgement - when they add something to the board and take something else off the board to take it out of scope. It feels like something was actually, physically removed from scope.<br /><br />It's also <span style="font-weight: bold;">n</span><span style="font-weight: bold;">ovel</span>. When a team starts doing agile - and they create great visibility using the whiteboard - it's remarkable how many people <span style="font-weight: bold;">want to come and look</span>. Senior people have a sudden interest in what the team is doing. And even in the process itself. That would never happen with spreadsheets and tools! I can't ever remember a Director asking to come and walk through my project plan, or walk through my product backlog. In fact the very thought of it fills most people with dread! It just doesn't happen. But the whiteboard is <span style="font-weight: bold;">interesting</span>. It's interesting to look at. And interesting to talk about. When someone walks you through it, it's actually <span style="font-weight: bold;">enjoyable</span>.<br /><br />Because a whiteboard has <span style="font-weight: bold;">no set structure</span>, it suits the way many people think (not all). Many people think visually. Not in lists, but in shapes, sizes, colours, etc. The whiteboard's lack of structure allows the information to be organised and presented however suits.<br /><br />Important information can be <span style="font-weight: bold;">highlighted</span> easily by putting it on the whiteboard. Important information is <span style="font-weight: bold;">not buried</span> with loads of other documents and files in a project folder somewhere, which few people would browse and certainly wouldn't notice in passing.<br /><br />Its visible nature can <span style="font-weight: bold;">prompt people</span> to remember things when they see them, rather than relying on their memory to go and look somewhere else that's out of sight.<br /><br />But above all else, the whiteboard is a place for <span style="font-weight: bold;">collaboration</span>. It's a <span style="font-weight: bold;">focal point</span>. Like a campfire in days gone by. Or a fireplace in your lounge. Most team <span style="font-weight: bold;">discussions</span> happen round the whiteboard. Discussions about progress. Discussions about issues. Discussions about design. All sorts, sometimes even when the whiteboard isn't even needed. It becomes the <span style="font-weight: bold;">hub of information</span> for the team. The hub for <span style="font-weight: bold;">communication </span>and collaboration.<br /><br />And last but not least, the unstructured nature of the whiteboard allows it to be be <span style="font-weight: bold;">personalised </span>by the team. The team can express itself through the things it puts on its whiteboard. It starts to show the character of the team, and therefore helps to create a visible sense of <span style="font-weight: bold;">team spirit</span>.<br /><br />Tools can certainly help to organise information more efficiently. But I would challenge any tool to do all of that! I'm not against tools. Not at all. But I think they should <span>supplement the whiteboard</span>, not replace it. Tools should be used for things they can do that a whiteboard can't. For instance, keeping track of longer lasting information, doing calculations, searching, etc. But personally I don't think I'd ever use tools <span style="font-style: italic;">instead </span>of a whiteboard. There's simply too much to lose.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/fmcamargo/2949240877/sizes/m/">Fernando Meyer</a></span></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-2453705669542922516?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com21tag:blogger.com,1999:blog-5210159427493949178.post-40127449410122062482009-03-03T22:30:00.009Z2009-07-02T21:42:43.878ZThemes in Agile Software Development<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/03/user-story-themes-in-agile-software.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://1.bp.blogspot.com/_H0iqHTCqRyo/Sa2wJGzVa5I/AAAAAAAAA0k/r5B7htgAj84/s400/themes.jpg" alt="User Story Themes in Agile Software Development" id="BLOGGER_PHOTO_ID_5309093206230920082" border="0" /></a><b>Agile software development</b> teams often use <a href="http://www.agile-software-development.com/2008/01/user-stories.html">User Stories</a> as a simple and concise way to express user requirements.<br /><span id="fullpost"><br />Ideally these <span style="font-weight: bold;">User Stories</span> are broken down as <a href="http://www.agile-software-development.com/2008/04/user-stories-should-be-small.html">small</a> as possible, whilst also trying to <a href="http://www.agile-software-development.com/2008/03/user-stories-should-be-independent.html">minimise dependencies</a>.<br /><br />Naturally, though, as you break User Stories down smaller, they become increasingly inter-dependent. Like most things in <span style="font-weight: bold;">software development</span>, it's a balancing act.<br /><br />Break the User Stories down as small as possible. But stop breaking them down when it becomes onerous or pointless to do so. When a User Story can be delivered (<a href="http://www.agile-software-development.com/2007/04/agile-principle-7-done-means-done.html">done</a>) in less than 1 day, I think there is little point breaking it down any further.<br /><br />Use the concept of <span style="font-weight: bold;">Themes</span> to categorise these <span style="font-weight: bold;">related User Stories</span> under one label and keep them together.<br /><br />You could physically <span style="font-weight: bold;">keep the cards together</span> by paper-clipping the cards together. Or you could put a card representing the Theme on the left side of your whiteboard, and keep all related User Stories on the same row as the Theme as they move across the board.<br /><br />Equally important, try to make sure that any inter-dependency between <span style="font-weight: bold;">User Stories</span> is a soft dependency, rather than hard. By this, I mean that you might not want to ship any of the User Stories until the whole Theme is done. But try not to break them up in such a way that one User Story simply doesn't work without another.<br /><br />For instance, a 'Login' <span style="font-weight: bold;">Theme</span> might include User Stories for Register, Log in, and Forgotten password. Although the stories are related, and somewhat dependent on each other, they can still be <span style="font-weight: bold;">delivered in isolation</span>, and can still work from a user perspective if you do them in the right order.<br /><br />You can also use <span style="font-weight: bold;">Themes</span> to categorise loosely-related items on your <a href="http://www.agile-software-development.com/2007/09/how-to-implement-scrum-in-10-easy-steps_20.html">Product Backlog</a>. For example, on a web site, you might have a whole host of User Stories relating to SEO, performance, usability, a re-style, or sections that are made up of multiple User Stories.<br /><br />Assigning Themes to the User Stories in your Product Backlog can help you to see <span style="font-weight: bold;">emerging themes</span>, which with a loose set of User Stories you may not have noticed. When you see emerging themes for your next Sprint or two, this can help to give extra clarity to the team and business about the <span style="font-weight: bold;">Sprint Goals</span>.<br /><br />This is a useful thing to do. It gives you more of a message for the Sprint. It's actually <span style="font-weight: bold;">*about* something</span>, rather than a random collection of high value but unrelated stories. It could tell you that you're focusing a high percentage of your Sprint on features x and y, when at a macro level your priorities are really elsewhere, for example.<br /><br />It also helps when priorities are set top-down. For example, let's say we make the commercial decision that for the next few sprints SEO will be a top priority. You can quickly grab all the User Stories with the SEO <span style="font-weight: bold;">Theme</span> and give them priority.<br /><br />Of course it's fine for a sprint to include items that are not part of the overall Theme. The theme is simply the main area of focus, not necessarily the sole area of focus.<br /><br />There is sometimes a danger with <span style="font-weight: bold;">agile software development</span> that everything is broken down so <a href="http://www.agile-software-development.com/2007/03/agile-principle-5-how-dyou-eat-elephant.html">small and incremental</a> that everything becomes a bit too tactical, and there is either no direction or at least the direction is not apparent.<br /><br />It's important to keep a higher level Release Plan, or a <span style="font-weight: bold;">Product Roadmap</span>, so the Sprints do take the product in a certain direction, and so the team can see what that direction is. Because <a href="http://www.agile-software-development.com/2007/03/no-sprint-is-island.html">no Sprint is an island!</a><br /><br />You can also use <span style="font-weight: bold;">Themes</span> as a simple way to sketch out broad priorities on the Product Roadmap, showing the <span style="font-weight: bold;">key areas of focus</span> over time.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/mediahound/166253920/sizes/m/">*phototristan</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-4012744941012206248?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-35121091325027846632009-03-02T20:19:00.017Z2009-03-23T15:32:23.726ZPlanning Poker - Agile Estimating<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/03/planning-poker-agile-estimating.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://2.bp.blogspot.com/_H0iqHTCqRyo/SaxBGQ6OQzI/AAAAAAAAA0M/Hxx2gHeRaJk/s400/planning+poker+-+agile+estimating.jpg" alt="Planning Poker - Agile Estimating" id="BLOGGER_PHOTO_ID_5308689636637164338" border="0" /></a><span style="font-weight: bold;">Planning Poker</span> is an estimating technique used by many <span style="font-weight: bold;">agile software development </span>teams. Like many agile development techniques, Planning Poker is very simple. Simple, but effective.<br /><span id="fullpost"><br />First of all, agile teams should ideally estimate <span style="font-weight: bold;">together</span>. As a <span style="font-weight: bold;">team</span>. If the team is big, and people are working on different products, it's okay to split the team into smaller groups. But estimates should still be done in <span style="font-weight: bold;">groups</span>.<br /><br />The logic behind this is simple. Each person in the team has different experience. When you get the input of multiple people, you multiply the experience applied to the problem.<br /><br />The benefit of doing this is based on the wisdom of crowds. You get the benefit of the team's <span style="font-weight: bold;">collective intelligence</span>. <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_H0iqHTCqRyo/SaxEtAyJjgI/AAAAAAAAA0U/HTtrB7UjYRk/s1600-h/collective+intelligence.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 324px; height: 238px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/SaxEtAyJjgI/AAAAAAAAA0U/HTtrB7UjYRk/s400/collective+intelligence.jpg" alt="" id="BLOGGER_PHOTO_ID_5308693600858115586" border="0" /></a><br /><br />In addition, you are likely to generate <span style="font-weight: bold;">more ideas</span>. Ideas about different ways of solving the problem. Ideas about how to design the solution. And ideas about obstacles that might be encountered.<br /><br />All this leads to <span style="font-weight: bold;">better estimating</span>. And perhaps more importantly, <span style="font-weight: bold;">better solutions</span>.<br /><br />Here's how it works...<br /><br />First of all, agree an estimating approach. For instance, many agile teams <a href="http://www.agile-software-development.com/2007/12/whats-point-in-estimating.html">estimate in points</a>, perhaps using the <a href="http://www.agile-software-development.com/2007/12/whats-point-in-estimating.html">Fibonacci </a>numbering sequence. Others use T-shirt sizes or some other abstract numbering system. Estimating in an abstract form has <a href="http://www.agile-software-development.com/2008/10/estimating-in-points-seems-bit-stupid.html">several benefits</a>. The key thing is to estimate each item's <span style="font-weight: bold;">relative </span>size, compared to other items.<br /><br />Then, prepare cards with the numbers on. You can buy Fibonaci <span style="font-weight: bold;">Planning Poker cards</span>, or make your own. Alternatively you can just ask people to write the numbers you'll be using on post-it notes.<br /><br />The actual process of <span style="font-weight: bold;">Planning Poker</span> is then to discuss each feature in turn, clarifying requirements and asking questions that help to understand how it might be designed. When questions about a feature have run out, or are no longer materially important to the size, each member of the team indicates they are ready to give their estimate.<br /><br />Then, on the count of three, the whole team <span style="font-weight: bold;">reveals their estimate</span> by showing the appropriate card, all <span style="font-weight: bold;">at the same time</span>.<br /><br />As I mentioned earlier, each member of the team has different experience. So it's very unlikely that everyone will come up with the same answer. Maybe someone saw issues and risks that others did not. Maybe someone else thought of an easier solution. The team uses this <span style="font-weight: bold;">difference of opinion</span> as the <span style="font-weight: bold;">basis for discussion</span>, sharing ideas and concerns.<br /><br />Following the discussion, the whole team <span style="font-weight: bold;">re-votes</span>. This process continues until there's only a small difference, or ideally until the team has <span style="font-weight: bold;">agreed on the size</span> of the feature.<br /><br />Then the team moves on to the next feature, doing the same again.<br /><br />And that's it! Planning Poker is a very simple but powerful technique, designed to extract the <span style="font-weight: bold;">collective wisdom of the team</span>.<br /><br />For those of you who haven't encountered estimating in points before, I guess there's one outstanding question: How do points make an estimate in time?<br /><br />The team tracks how many points it can deliver in a Sprint (or iteration). That's effectively their <a href="http://www.agile-software-development.com/2008/01/understanding-your-velocity.html">Velocity</a>. Estimating in an abstract form - e.g. points - combined with tracking Velocity, allows a team to understand how much it can usually deliver, enabling it to forecast delivery without the need for detailed planning.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/kevinl8888/119712943/sizes/m/">Kevin Labianco</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-3512109132502784663?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com6tag:blogger.com,1999:blog-5210159427493949178.post-30365208847325767852009-02-28T21:25:00.003Z2009-02-28T21:36:58.718ZIs Your Team Cross-Functional Enough?<span style="font-weight: bold;">Agile software development</span> methods encourage the use of cross-functional teams, in order to avoid too many specialists causing bottlenecks for the team. Henrik Kniberg has written an interesting blog post about how the team can quickly evaluate their status: '<a href="http://blog.crisp.se/henrikkniberg/2009/02/27/1235769840000.html">is the team cross-functional enough?</a>'.<br /><br />Kelly.<a href="http://feeds.feedburner.com/allaboutagile"><br /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-3036520884732576785?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com2tag:blogger.com,1999:blog-5210159427493949178.post-61232565838917925342009-02-26T20:52:00.006Z2009-02-26T20:58:45.630ZTechnical Debt in Agile Software DevelopmentMartin Fower - <span style="font-weight: bold;">agile software development</span> guru, and CTO of Thoughtworks - has written an interesting blog post about <a href="http://martinfowler.com/bliki/TechnicalDebt.html">Technical Debt</a>. <br /><span id="fullpost"><br />I love this concept. It's so simple, and such a compelling way of explaining this classic commercial trade-off decision to business people.<br /><br />Kelly.<a href="http://feeds.feedburner.com/allaboutagile"><br /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-6123256583891792534?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com1tag:blogger.com,1999:blog-5210159427493949178.post-24568316762899300172009-02-24T17:00:00.006Z2009-04-04T10:51:22.496ZThe Role of Scrum Product OwnerInteresting thoughts about the <a href="http://blog.versionone.net/blog/2009/02/product-owners-and-product-managers.html">role of </a><a href="http://blog.versionone.net/blog/2009/02/product-owners-and-product-managers.html">Product Owner</a> in Scrum agile software development teams.<a href="http://feeds.feedburner.com/allaboutagile"><br /></a><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-2456831676289930017?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-8697538458776996112009-02-23T20:32:00.010Z2009-02-23T21:20:56.115ZMeasuring Business Value in Agile Software Development<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/02/measuring-business-value-in-agile.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://2.bp.blogspot.com/_H0iqHTCqRyo/SaMIi2f91ZI/AAAAAAAAA0E/iYKzLne06A0/s400/measuring+business+value+in+agile+software+development.jpg" alt="Measuring Business Value in Agile Software Development" id="BLOGGER_PHOTO_ID_5306094180810741138" border="0" /></a>One of the elusive things in <span style="font-weight: bold;">software development</span> is how to measure business value.<br /><br />For some projects it's fairly obvious. Maybe there's a clear revenue benefit. Or a tangible cost saving. Or a very specific risk avoidance.<br /><br />But what about on BAU (Business As Usual)? How do you get some indication of the <span style="font-weight: bold;">business value</span> a team is delivering on bug fixes, enhancements and new features delivered as BAU?<br /><span id="fullpost"><br />One way - which is fairly rudimentary but an interesting indicator - is to use <a href="http://www.agile-software-development.com/2007/12/whats-point-in-estimating.html">Fibonacci</a> points in a similar way to <a href="http://www.agile-software-development.com/2008/01/understanding-your-velocity.html">Velocity</a>. <br /><br />The idea here is to put Fibonacci points for <span style="font-weight: bold; font-style: italic;">business value</span><span style="font-style: italic;"> </span>on every item (or <a href="http://www.agile-software-development.com/2008/01/user-stories.html">User Story</a>) on the Product Backlog, as well as the points for each feature's <span style="font-style: italic;">size</span>.<br /><br />The development team provides the points for <span style="font-style: italic;">size</span>, because only they are qualified to judge how big a feature is, relative to another. Whereas the <span style="font-style: italic;">business value </span>points should come from the Product Owner/Business Owner.<br /><br />In the same way as the development team <a href="http://www.agile-software-development.com/2007/12/whats-point-in-estimating.html">estimates in points</a>, the Product Owner decides on a business value for each item, <span style="font-style: italic;">relative</span> to each other. The key thing here is that the estimated business value is <span style="font-weight: bold; font-style: italic;">relative</span>, i.e. a feature with a business value of 2 is twice as valuable as a feature worth 1; a 5<span style="font-weight: bold;"> </span>is worth 5 times a 1, etc.<span style="font-weight: bold;"><br /><br /></span>When you have Fibonacci points for <span style="font-style: italic;">size</span> and for <span style="font-style: italic;">business value</span>, you can also do some interesting things to help <a href="http://www.agile-software-development.com/search/label/prioritisation">prioritise your backlog</a>. Firstly, if you have a long Product Backlog that is difficult to get your head around, you can simply enter business values individually and then <span style="font-weight: bold;">sort the list by business value</span> as a starter for ten.<br /><br />Secondly, you could do a calculation of business value divided by size to give the feature a <span style="font-weight: bold;">priority score</span>. It's a bit rudimentary, but it's a simple way to sort the backlog so the high value/low effort features come out at the top.<span style="font-weight: bold;"><br /><br /></span>You can also plot this on a <span style="font-weight: bold;">scatter graph</span>, which you can set up to put the high value/low effort features on the top right, and the high effort/low value features on the bottom left. This is a useful concept and can help to facilitate a good discussion about priorities.<br /><br />But aside of prioritisation, putting a business value in points against every item on the backlog allows you to calculate '<span style="font-weight: bold;">Business Velocity</span>', i.e. how much business value (in points) was delivered in each Sprint. You could plot this on a 'burn-up chart', showing the cumulative business value delivered over time - hopefully with an accelerating trend line.<br /><br />And you could use this graph to see whether the business value for each sprint is increasing or decreasing. Naturally a team's business value might slow down as a product matures in its commercial lifecycle. Maybe in this case it's time to think about switching resources onto other priorities? Maybe it coincides with a lower velocity? Or maybe it's time to think of some more valuable ideas?<br /><br />Either way, I guess it could be interesting to see...<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/eyeore2710/152939382/sizes/m/">eyeore2710</a></span></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-869753845877699611?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com5tag:blogger.com,1999:blog-5210159427493949178.post-86242312233413961432009-02-11T20:43:00.007Z2009-02-11T21:15:55.180ZHandling Support On Agile Software Development TeamsMike Cottmeyer from VersionOne has written an interesting blog post about the problem of <a href="http://blog.versionone.net/blog/2009/02/handling-support-on-agile-teams.html">handling support in agile software development teams</a>. Mike highlights three potential approaches for handling this problem. Personally I think there is a fourth approach, as follows...<span id="fullpost"><br /><ul><li>Make sure one person (probably a manager of some description) is responsible for triage - that is, deciding whether or not a support issue is really priority enough to interrupt the current sprint, or whether it should be deferred and scheduled in the next or a future sprint.<br /><br /></li><li>If it does have to be handled in this sprint, respond accordingly without estimating the work and without trying to break it into tasks.<br /><br /></li><li>Allow it to impact your team's <a href="http://www.agile-software-development.com/2008/01/understanding-your-velocity.html">velocity</a> as naturally it will.<br /><br /></li><li>When you do your next round of Sprint Planning, plan based on the velocity you achieve, so an allowance for support is naturally incorporated into your level of commitment. Do not allocate any specific time for support.<br /><br /></li><li>If your velocity is unstable and fluctuates significantly, try calculating standard deviation on your average velocity. Standard deviation will give you an objective way to understand the level of risk you are taking if you plan on your average.<br /><br /></li><li>If your standard deviation is high, the risk of not delivering is high. In this case, commit to a lower velocity and prepare some <a href="http://www.agile-software-development.com/2007/03/agile-development-at-stretch.html">stretch tasks</a> to be included if you have time.</li></ul>Of course if you are running a project across multiple sprints, this will still affect your <a href="http://www.agile-software-development.com/2008/02/agile-release-planning.html">release plan</a>. But it should give you better predictability, and allow you to take action or manage expectations accordingly.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-8624231223341396143?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com5tag:blogger.com,1999:blog-5210159427493949178.post-27684380134342291662009-02-11T20:31:00.005Z2009-02-11T20:40:22.276ZTwittering On About Agile Software Development<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/02/twittering-on-about-agile-software.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 70px;" src="http://2.bp.blogspot.com/_H0iqHTCqRyo/SZM2HQVbbxI/AAAAAAAAAz0/oRA_I7ROT1Y/s400/agile+twittering.gif" alt="" id="BLOGGER_PHOTO_ID_5301640684617035538" border="0" /></a>I've been twittering on about <span style="font-weight: bold;">agile software development</span> on my blog for quite a while now. And now I've joined Twitter...<br /><span id="fullpost"><br />I'm not sure I really <span style="font-style: italic;">get </span>Twitter, to be honest. Think I must be getting old :-) Just thought I'd join in and see what all the fuss is about!<br /><br />You can follow me here: <a href="http://twitter.com/allaboutagile">http://twitter.com/allaboutagile</a><br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Image by <a href="http://www.flickr.com/photos/jmilles/2772265449/sizes/o/">jmiles</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-2768438013434229166?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-54910598494250938682009-02-10T21:45:00.012Z2009-02-10T22:50:47.844ZThe Decline and Fall of Agilists<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/02/decline-and-fall-of-agilists.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://1.bp.blogspot.com/_H0iqHTCqRyo/SZH12BtJJ8I/AAAAAAAAAzs/liL0D-9BoNE/s400/agile+freefall.jpg" alt="The Decline and Fall of Agilists" id="BLOGGER_PHOTO_ID_5301288544911304642" border="0" /></a>Jurgen Appelo has written a really interesting blog post called <a href="http://www.noop.nl/2009/02/the-decline-and-fall-of-agilists.html">The Decline and Fall of Agilists</a>. Well, it's more of rant really, and it's generated quite a debate!<br /><span id="fullpost"><br />Personally I like the agile engineering practices<span style="font-weight: bold;"> </span>in <span style="font-weight: bold;">eXtreme Programming (XP)</span>. They make a lot of sense to me.<br /><br />But, in my last job, we implemented <span style="font-weight: bold;">Scrum </span>in a development group of over 100 people, without really implementing any XP practices until much later on. We saw phenominal success using Scrum without XP. A real transformation in our delivery. And a massive improvement in our business relationships.<br /><br />One of the things I really like about Scrum is its simplicity. The fact you can implement it pretty quickly, straight over the top of whatever software engineering processes you already have in place.<br /><br />That's because Scrum is an <span style="font-weight: bold;">agile management </span>methodology, and doesn't prescribe how you should approach the tasks.<br /><br />Now you could certainly argue that we might have been even more successful if we had also implemented XP. Maybe that's true. eXtreme Programming evangelists joke that "Scrum is just XP without the technical practices that make it work".<br /><br />Quite a funny statement, when said tongue in cheek. But in my experience it is simply wrong.<br /><br />So thus far, I am with Jurgen.<br /><br />I think that's because our situation in my last job was like Jurgen's example of chaos versus order. In our case we were moving from complete chaos. Scrum allowed us to put some lightweight, structured process (i.e. order) into place fairly quickly, and get things much more organised, more transparent, more collaborative, and therefore more successful.<br /><br />But how do I feel about the argument (sorry, debate) about <span style="font-weight: bold;">prescriptive </span>processes versus <span style="font-weight: bold;">adaptive </span>ones? I've touched on this in my last blog post, <a href="http://www.agile-software-development.com/2009/02/agile-practices-are-worth-effort.html">Agile Processes Are Meant To Be Adaptive (But Only When You're Ready)</a>.<br /><br />It's great that agile is meant to be adaptive. It's a fundamental principle and it's the very meaning of the word. It's great that continuous improvement is built into Scrum, making it a repeatable part of the process. And I love the fact that Scrum does not attempt to prescribe anything about how the product should be engineered.<br /><br />In my view, there are clearly some agile engineering practices in XP that make it much more practical to work in short iterations without compromising quality. But that decision - the decision about what level of engineering is appropriate - does depend on the context, and a team or organisation's readiness to adopt.<br /><br />I also love the fact that XP'ers are so enthusiastic about the method. I see a real sense of craft when I see the passion behind XP'ers comments. But it often comes across as a bit religious. Almost like <span style="font-style: italic;">the developers uprising against the establishment.</span> "You must do this or you will fail". Technical perfection over commercial priority. Almost sneering at anyone who doesn't do XP and dares to call themselves agile. I really don't think that's good for the cause.<br /><br />eXtreme Programming is just one agile methodology. A good one, I think, but just one. There are other methodologies that share the same <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">agile principles</a>. There are people doing <span style="font-weight: bold;">Scrum </span>and seeing great success from agile. There are people doing <span style="font-weight: bold;">Scrum and XP combined</span>, as they are very complementary, and seeing great success. There are people doing <span style="font-weight: bold;">DSDM </span>and seeing great success. There are even people following no process in particular, but working to the same agile principles, and seeing great success.<br /><br />Come to think of it, there are even people doing waterfall using PRINCE2 and seeing great success :-)<br /><br />The real trick, actually, is taking the best of all these methods and combining them in a unique way that fits your unique circumstances.<br /><br />But that requires a great deal of skill and experience. And until a team has this experience, they may well be better off following a presribed process. Until you have this experience, and really understand *why* agile works, you're not really in a good position to adapt it.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-5491059849425093868?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com5tag:blogger.com,1999:blog-5210159427493949178.post-64158189945061624382009-02-06T11:48:00.013Z2009-02-06T12:21:21.579ZAgile Practices Are Meant To Be Adaptive (But Only When You're Ready)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/02/agile-practices-are-worth-effort.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_H0iqHTCqRyo/SYwkXVarDLI/AAAAAAAAAzk/5MW8bp8rkao/s400/see+the+light.jpg" alt="Agile Practices Are Worth The Effort" id="BLOGGER_PHOTO_ID_5299650844812840114" border="0" /></a>Damon Poole has written an interesting piece about which <span style="font-weight: bold;">agile practices</span> he feels really define '<a href="http://damonpoole.blogspot.com/2009/02/what-i-believe-about-agile.html">being agile</a>'.<br /><span id="fullpost"><br />When Damon says that agile is more than a single set of practices, he's right. What's more important than the practices is the <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">key agile principles</a> behind them.<br /><br />Whichever methodology you prefer, whichever practices you adopt, and whichever you don't, the most important thing is to understand these principles, and adapt your practices according to the needs of your team and the needs of your organisation.<br /><br />That, for me, is really the essence of agile. It's adaptive. Not prescriptive.<br /><br />The problem, however, is that people whose understanding of the principles is not necessarily that deep might adjust the practices and lose much of the value. I've certainly seen this.<br /><br />Ken Schwaber raises this very point in his book '<a href="http://www.amazon.co.uk/gp/product/0130676349?ie=UTF8&amp;tag=kellywatersag-21&amp;linkCode=as2&amp;camp=1634&amp;creative=6738&amp;creativeASIN=0130676349">Agile Software Development with Scrum</a>'. <span style="font-weight: bold;">Until you really understand the principles, and have practical experience of *why* the process works, you are in no position to adapt it</span>.<br /><br />That's where prescriptive works for teams in the early stages of adoption. And why methods such as <a href="http://www.agile-software-development.com/2007/09/how-to-implement-scrum-in-10-easy-steps.html">Scrum</a>, eXtreme Programming, and others, really do help teams to get started and find success.<br /><br />Only once the <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">key agile principles</a> are truly embedded - not the processes, but in the mindset of the team - can the team really become truly agile, and adapt.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/seamusnyc/315397706/sizes/m/">Seamus Murray</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-6415818994506162438?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com1tag:blogger.com,1999:blog-5210159427493949178.post-50864646312150506982009-02-03T19:26:00.007Z2009-02-03T20:13:50.792ZUser Stories v Use Cases<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/02/user-stories-v-use-cases.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_H0iqHTCqRyo/SYik1bXjnII/AAAAAAAAAzc/l8uY8pNpd2M/s400/user+stories+v+use+cases.jpg" alt="User Stories v Use Cases" id="BLOGGER_PHOTO_ID_5298666199387970690" border="0" /></a>Scott Sehlhorst from Tyner Blain is one of my favourite bloggers. He's written an excellent post about <a href="http://tynerblain.com/blog/2009/02/02/user-stories-and-use-cases/">User Stories versus Use Cases</a>.<br /><br />When I first used Use Cases, I loved them...<br /><span id="fullpost"><br />I loved the fact they gave such a clear description of a feature, and the fact that each Use Case could stand alone. They made it really easy to move cards representing the Use Cases around the whiteboard, as a way of managing progress.<br /><br />But I also found Use Cases a little complicated. When you look closely, they're not that complicated really. But they tend to need a Business Analyst to write them. And they tend to be a bit off-putting for end users or business people.<br /><br />I think this is partly because they use quite a bit of jargon. And particularly when faced with a lot of them, all up-front, to be signed off and used against them in a change control process later.<br /><br />So when I came across <a href="http://www.agile-software-development.com/2008/04/writing-good-user-stories.html">User Stories</a>, I loved them even more. They seemed to offer all the things I loved about Use Cases, but in a simpler, lighter and easier-to-use format. They're easier to write. And they're much easier for end users or business people to work with.<br /><br />Scott is right though. User Stories leave out a lot of important details. They leave these details out deliberately, relying on a conversation with the product owner to clarify the details at the time of development. They rely on this <a href="http://www.agile-software-development.com/2007/04/agile-principle-10-no-place-for-snipers.html">collaboration</a>. Developing small increments, getting feedback and <a href="http://www.agile-software-development.com/2007/03/agile-principle-5-how-dyou-eat-elephant.html">iterating</a>, rather than having more detailed documentation up-front. Without this collaboration, I agree, User Stories could be problematic.<br /><br />Having said that, if the product owner won't collaborate on User Stories throughout development, why would they collaborate on Use Cases during the analysis? In the end, whichever approach you prefer, <a href="http://www.agile-software-development.com/2007/02/principle-1-active-user-involvement-is.html">active user involvement is imperative!</a><br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-5086464631215050698?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com3tag:blogger.com,1999:blog-5210159427493949178.post-45077769924658985122009-01-27T22:07:00.012Z2009-01-27T23:27:37.739ZAgile Teams Need To Pull Together<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/01/agile-teams-need-to-pull-together.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 220px;" src="http://3.bp.blogspot.com/_H0iqHTCqRyo/SX-H7eHg77I/AAAAAAAAAzU/PCaKO1rUums/s400/agile+teams+-+the+need+for+flexibility.jpg" alt="Agile Teams - The Need for Flexibility" id="BLOGGER_PHOTO_ID_5296101142577606578" border="0" /></a>Sometimes, <span style="font-weight: bold;">Agile Teams</span> have to be literally just that...<br /><span id="fullpost"><br />Some agile methods - such as Scrum and eXtreme Programming - advocate <span style="font-weight: bold;">multi-disciplinary teams</span>. That is, teams of generalists; developers that can write code, and can also do whatever other tasks are required.<br /><br />In principle, this is a good concept because:<br /><br />* A multi-disciplinary team never suffers from any bottlenecks, where the team is waiting on someone with particular skills. <br /><br />* As a manager of a multi-discplinary team, you don't have to try to work out the ideal profile of the team, anticipating in advance how many developers, testers, analysts, etc you'll need at any given stage of the product's development. This is challenging anyway, and changes over time.<br /><br />However, in reality, setting up with multi-disciplinary teams is not always possible. And not necessarily ideal...<br /><br />Many organisations already have specialists. For instance, designers, front-end developers, back-end developers, database administrators, business analysts, testers, project managers, product managers, etc. Unless you want to get rid of these specialists, and employ only developers, you need to put these people to work and you will definitely benefit from their specialist expertise.<br /><br />And generalists that have all the required skills are rather hard to find! <br /><br />You might find a developer that is really good at both front-end and back-end development. You might find a developer that can also do analysis. You might even find a developer that thinks like a tester. Although this one can be difficult, because we all know <a href="http://www.agile-software-development.com/2007/03/developers-cant-test-for-toffee.html">developers can't test for toffee!</a> :-) And, if you are lucky enough to find someone who really is good at all of these things, what are the chances of them also being good at UI/graphic design?! Maybe. But in my experience, generally not.<br /><br />So what do you do?<br /><br />Personally, I think you need a team with all of these skills. It's a multi-disciplinary team by virtue of the fact that the *team* has all of these skills. Not because *everyone* in the team has all of these skills. <br /><br />If you can find generalists, to minimise the number of specialists and reduce potential bottlenecks, great! Combining some roles can certainly help with this. For instance - in my experience of agile - the <a href="http://www.agile-software-development.com/2008/02/agile-testing-changing-role-of-testers.html">roles of analyst and tester can potentially be merged into the role of Test Analyst</a>. And the more generalised role of Product Manager might combine the traditional roles of Project Manager and Business Analyst, as well as introducing some important product management discplines. <br /><br />But in the end you will probably need some specialists.<br /><br />In which case, it is very important for these specialists to be flexible. To be Agile. In the true meaning of the word.<br /><br />You might be called a Tester, and might specialise in testing, but you should be prepared to help with analysis and any other tasks that you have the skills to do. You might be called a Developer, and specialise in development, but you should be prepared to test your colleagues' work if it's testing that the team really needs to get done. You might be called a Project Manager, and specialise in project management, but you should be prepared to help with analysis and testing if it helps the team to deliver.<br /><br />This is, of course, a question of attitude. There's no place for "jobsworths" in an agile team. In an agile team, you never want to hear that "it's not in my jobspec". It's a question of team spirit. Completing your own tasks while the team fails to deliver is not success. Not for a team player. The team succeeds, or fails, as a team. <br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-4507776992465898512?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com2tag:blogger.com,1999:blog-5210159427493949178.post-29960868088682824052009-01-26T21:16:00.008Z2009-04-04T10:40:50.779ZVelocity and Project Approval<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/01/velocity-project-approval.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/SX4ovhQNoII/AAAAAAAAAzE/I61MLEz0-_I/s400/velocity.jpg" alt="Velocity" id="BLOGGER_PHOTO_ID_5295715008679616642" border="0" /></a>Mike Cottmeyer from Version One has written an excellent <a href="http://blog.versionone.net/blog/2009/01/some-thoughts-on-project-velocity.html">blog post about Velocity</a>, and the importance of management and teams taking a responsible attitude towards it...<br /><span id="fullpost"><br />Mike also describes the usual challenge in any business - where management need some sort of basis for funding a project, yet teams are really in no position to estimate the size of the project until they get into the work.<br /><br />In some methodologies - for example <a href="http://en.wikipedia.org/wiki/IBM_Rational_Unified_Process#Four_project_lifecycle_phases">RUP</a> - there is an initial stage of the project ("inception") to do some high level scoping before seeking approval for full funding. It's also quite common in waterfall projects to complete the reuirements analysis before going on to request full funding. In these cases, only the initial stages need to be funded and then the team knows more by the time they ask for the rest of the money. <br /><br />Effectively it's a two-step approval process. Approval 1 gets the money for analysis. Approval 2 gets the money for the rest of the project, when more is known about the requirements and scope.<br /><br />But in agile projects, this two step approach often doesn't exist.<br /><br />Although for large agile projects - especially those that require additional funding - this needn't necessarily be the case. For all the same reasons, it's entirely appropriate for an agile team to want some initial funding first, in order to learn more about the project before returning to request the full amount.<br /><br />I wrote a little while back about how this could work, and the artefacts an agile team might produce with some <span style="text-decoration: underline;"></span><a href="http://www.agile-software-development.com/2008/09/agile-project-elaboration-seed-money.html">seed money</a> during the early stages of a project. In an ideal world, the team would at least secure enough funding to produce the Product Backlog, and complete a few Sprints to establish their Velocity.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/beatkueng/812635931/sizes/m/">Beat </a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-2996086808868282405?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-88364848118272558632009-01-21T20:48:00.008Z2009-01-21T21:29:45.521ZWhole Teams and Colocation<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/01/whole-teams-and-colocation.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 330px; height: 230px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/SXeK2jC0-wI/AAAAAAAAAyw/fxc8k9V0jI0/s400/synchronized-swimming.jpg" alt="Whole Teams and Colocation" id="BLOGGER_PHOTO_ID_5293852556721978114" border="0" /></a>Damon Poole has written an interesting blog post about <a href="http://damonpoole.blogspot.com/2009/01/no-brainer-self-management-practices-in_19.html">Whole Teams and Colocation</a>, particularly in the context of self-organising teams... <br /><span id="fullpost"><br />Self-organisation and <a href="http://www.agile-software-development.com/2007/03/agile-principle-2-agile-development.html">empowered teams</a> is one of the <a href="http://www.agile-software-development.com/2007/02/10-things-you-need-to-know-about-agile.html">key principles of agile software development</a>.<br /><br />For sustainable success - and for the team's personal growth - it is so important that teams become as self sufficient as possible, and rely as little as possible on managers to achieve their goals.<br /><br />But this is also why agile development often has to be driven from the top down.<br /><br />As Damon points out, *<span style="font-weight: bold;">putting whole teams together</span>* often requires changes to organisational structure, and relocating people. Neither of which is necessarily easy. And both are likely to require support from senior management.<br /><br />In my opinion, this is a pre-requisite when <a href="http://www.agile-software-development.com/2007/09/how-to-implement-scrum-in-10-easy-steps.html">implementing an agile methodology</a>. It's a critical success factor. Put whole teams together, and implementing agile is significantly more likely to succeed.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-8836484811827255863?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com0tag:blogger.com,1999:blog-5210159427493949178.post-71457483018701374642009-01-19T21:09:00.007Z2009-01-20T21:17:11.311ZAgility Versus Predictability<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/01/agility-versus-predictability.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 300px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/SXTtuCaB9zI/AAAAAAAAAyo/255rvv1XgBA/s400/crystal+ball.jpg.jpg" alt="" id="BLOGGER_PHOTO_ID_5293116837242992434" border="0" /></a>George Dinwiddie has written an excellent blog post about <a href="http://blog.gdinwiddie.com/2009/01/16/agility-and-predictability/">Agility Versus Predictability</a>.<br /><span id="fullpost"><br />In this post, George challenges the idea that traditional (waterfall) software development projects are more predictable than agile projects.<br /><br />He also give a very clear explanation about how to do <a href="http://www.agile-software-development.com/2008/02/agile-release-planning.html">Agile Release Planning</a>.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a><br /><br /><span style="font-size:78%;">Photo by <a href="http://www.flickr.com/photos/bb_matt/306544780/sizes/m/">bb matt</a></span><br /></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-7145748301870137464?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com3tag:blogger.com,1999:blog-5210159427493949178.post-61958152652732908642009-01-19T20:38:00.007Z2009-04-04T10:38:51.827ZWhere's the Documentation?<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.agile-software-development.com/2009/01/wheres-documentation.html"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_H0iqHTCqRyo/SXTm7FkJZJI/AAAAAAAAAyg/azGG5-ZgHtY/s400/documentation.jpg" alt="agile documentation" id="BLOGGER_PHOTO_ID_5293109364847633554" border="0" /></a>Here is an interesting blog post from Dave Nicolette, about the <a href="http://dnicolet1.tripod.com/agile/index.blog?entry_id=1874388">absence of documentation in agile software development</a>.<br /><span id="fullpost"><br />I'm not quite sure where the eggplant parmesan comes into it! I think Dave might have been drinking :-) Nevertheless it's an interesting and thought-provoking article.<br /><br />In my opinion, some lightweight documentation helps to bring structure to people's thinking, and obviously helps to share important information between people in the team. But it becomes counter-productive when it goes over the top, which sadly is all too common in software development!<br /><br />That's why I love <a href="http://www.agile-software-development.com/2008/04/writing-good-user-stories.html">User Stories</a> for capturing requirements. They add structure to the process. But keep things lightweight and simple.<br /><br />Kelly.<br /><br />P.S. Click one of the icons below to join the growing community of people keeping up with this blog by RSS or by email...<br /><a href="http://feeds.feedburner.com/allaboutagile"><img alt="keep up by rss feed" src="http://farm3.static.flickr.com/2192/2236282171_e5e6463282_o.jpg" border="0" /></a><a href="http://www.feedburner.com/fb/a/emailverifySubmit?feedId=832418&amp;loc=en_US"><img alt="keep up by email" src="http://farm3.static.flickr.com/2196/2236315487_357ebb0753_o.jpg" border="0" /></a><br /><a href="http://feeds.feedburner.com/allaboutagile"><img style="border: 0pt none ;" alt="" src="http://feeds.feedburner.com/%7Efc/allaboutagile?bg=000000&amp;fg=FFFFFF&amp;anim=0" width="88" height="26" /></a></span><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5210159427493949178-6195815265273290864?l=www.agile-software-development.com'/></div>Kelly Watershttp://www.blogger.com/profile/17507745125859750885allaboutagile@gmail.com1