<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-10374038</id><updated>2020-08-18T03:42:05.207-07:00</updated><category term="agile"/><category term="agile project management"/><category term="software development"/><category term="project management"/><category term="agile software development"/><category term="scrum"/><category term="agile book"/><category term="carnival"/><category term="conference"/><category term="distributed agile"/><category term="distributed teams"/><category term="extreme programming"/><category term="lean"/><category term="open space"/><category term="resource utilization"/><category term="team dynamics"/><title type='text'>Agile Project Planning</title><subtitle type='html'>Thoughts on agile project planning and software development by Dave Churchville</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default?alt=atom'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default?alt=atom&amp;start-index=26&amp;max-results=25'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>78</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-10374038.post-8526397548495356450</id><published>2008-12-24T14:17:00.000-08:00</published><updated>2008-12-24T14:54:38.799-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile project management"/><category scheme="http://www.blogger.com/atom/ns#" term="resource utilization"/><title type='text'>Why Duplicating Effort on Software Projects Could be a Good Thing</title><content type='html'>So one thing I never hear software people complaining about would be &quot;We have too many people and too much money for this project.&quot;  &lt;br /&gt;&lt;br /&gt;In fact, this situation actually occurs more than you would think in venture funded companies.  Once a small startup gets an infusion of cash, the expectation is that they will build out their services to a larger scale, hire more employees to do that, and become a huge success or die trying.&lt;br /&gt;&lt;br /&gt;But as we think about the constraints of resources, time, and scope, what is the Agile approach when time and scope are fixed, but resources are not?  What should a newly funded startup do to maximize their chances of success over a fixed timeframe?&lt;br /&gt;&lt;br /&gt;One option that is rarely talked about (and I admit, possibly because it&#39;s not such a good idea) is to run parallel development efforts.  This would mean duplicating effort, but also getting a couple of chances to innovate and create a better product.&lt;br /&gt;&lt;br /&gt;For example, if you set out to build the next great social networking platform, how can you make it better, cooler, and more compelling?  Possibly by creating two or even more teams within your company, and having them try different approaches.  &lt;br /&gt;&lt;br /&gt;Sound like madness?  Maybe, but here are some possible benefits:&lt;br /&gt;&lt;br /&gt;1. You&#39;ll probably get good ideas from one team that the other didn&#39;t think of &lt;br /&gt;2. You&#39;ll probably get a better *implementation* of the same idea from one team than the others&lt;br /&gt;3. With more teams, the chances of one coming up with a breakthrough idea is much higher.&lt;br /&gt;4. There&#39;s nothing like a little healthy competition to get some serious productivity, creativity, and execution rolling.  It&#39;s a powerful motivator.&lt;br /&gt;5. You&#39;ll get the opportunity to use pieces from each team&#39;s effort to make an exponentially better product (not necessarily the code, but certainly the design concepts).&lt;br /&gt;&lt;br /&gt;In a sense, this happened at Microsoft back in the 90s when Windows 95 was being created at the same time as Windows NT.  The teams liberally &quot;borrowed&quot; ideas from each other, and both products wound up better off as a result. &lt;br /&gt;&lt;br /&gt;There are some obvious challenges to this kind of approach - namely what to do with &quot;losing&quot; teams, and the effect of competition on company culture and harmony.  But even applied in the small, this approach could have an impact.&lt;br /&gt;&lt;br /&gt;Imagine if you applied this concept to specific features rather than a whole product.  Maybe take just a week, and have 2 or 3 pairs or individuals flesh out ideas on the feature, then see how it plays out.  &lt;br /&gt;&lt;br /&gt;I can&#39;t imagine this would work in all kinds of situations, but in a venture funded startup looking to become the next big thing, it might be the simplest thing that could possibly work when resources are plentiful.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/8526397548495356450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=8526397548495356450' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/8526397548495356450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/8526397548495356450'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2008/12/why-duplicating-effort-on-software.html' title='Why Duplicating Effort on Software Projects Could be a Good Thing'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-6460933602367381140</id><published>2008-08-07T12:38:00.001-07:00</published><updated>2008-08-07T13:05:03.291-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="extreme programming"/><category scheme="http://www.blogger.com/atom/ns#" term="lean"/><category scheme="http://www.blogger.com/atom/ns#" term="scrum"/><category scheme="http://www.blogger.com/atom/ns#" term="software development"/><title type='text'>The End of Agility?</title><content type='html'>So now that Agile software development, Scrum, Extreme Programming, and Lean thinking are all the rage, I have to wonder - is this where we thought it would all end up?&lt;br /&gt;&lt;br /&gt;This puts me in mind of the early days of object-oriented programming, when Grady Booch first started drawing diagrams with fluffy clouds.  It took about 5 years from the grassroots movement of developers finding that sort of modeling useful, to the Rational Unified Process being created, then mandated by organizations as best practice.&lt;br /&gt;&lt;br /&gt;I see the same trend, for better or worse, with Agile methods.  We now have certifications, big industry conferences, specialized tools and software (yes, my company included), consultants, trainers, and a few dozen books to help guide a fledgling agilist along the way.&lt;br /&gt;&lt;br /&gt;Perhaps less encouraging, I also see more of a trend of mandates from upper management to the development organization that sound a bit like &quot;We will use Scrum, whether you like it or not&quot;.  &lt;br /&gt;&lt;br /&gt;It&#39;s been about 10 years now since Agile methods (Scrum, XP, etc.) first took the stage.  Ten years is usually about right for maturing a product, but what about an industry?  Have we reached the peak of agility in organizations and the state of the practice?&lt;br /&gt;&lt;br /&gt;If history is any indicator, the environment is ripe for the &quot;next revolution&quot;.  As the song goes, &quot;Meet the new boss...same as the old boss&quot;.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/6460933602367381140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=6460933602367381140' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/6460933602367381140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/6460933602367381140'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2008/08/end-of-agility.html' title='The End of Agility?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-8168364492730610582</id><published>2008-03-12T14:20:00.000-07:00</published><updated>2008-03-12T14:47:18.396-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile project management"/><title type='text'>Agile Project Collaboration and Restaurants</title><content type='html'>The software development world keeps trying to come up with good metaphors for what a software project is like.  &quot;It&#39;s like building a bridge&quot;, some say, or &quot;Like manufacturing a car&quot;, others say.&lt;br /&gt;&lt;br /&gt;I think a much better analogy, especially for the dynamic between the customer and the development team, is ordering food at a restaurant.&lt;br /&gt;&lt;br /&gt;As a customer, you know what kind of food you like, how hungry you are, and you might have something in mind to impress your date, whether it&#39;s your wife, a client, or your boss.&lt;br /&gt;&lt;br /&gt;As a chef, you know what makes food taste good, what the best way to combine ingredients is, how quickly your staff can make a certain meal, what foods are freshest, and how much things cost to get.&lt;br /&gt;&lt;br /&gt;Naturally, as restaurant customers, we tend to order what&#39;s on the menu, which the chef has thoughfully specified in advance.  This would be analagous to certain types of systems that a software team has written before, or are available as an off-the-shelf component (e.g. a blog, user forum, poll, etc.).&lt;br /&gt;&lt;br /&gt;If some software customers used the same approach in a restaurant as they did in trying to get systems developed, the converstation might go like this:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Customer: &lt;/span&gt;I&#39;d like some chicken, but it needs to be the size of a turkey, and I want it to taste like beef.  Don&#39;t make it too salty, and it should cost less than a can of tuna.  Oh, and can that be cooked in 3 minutes?&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Chef: &lt;/span&gt;Well, the largest chickens known to man are slightly smaller than a turkey, we could get you that, but they don&#39;t taste like beef.  We could add some beef sauce, but it won&#39;t taste very good.  Extra-large chickens cost double what normal chickens do, and take at least 20 minutes to bake.  I guess we could chop it into tiny pieces and deep fry it in 3 minutes, but it won&#39;t look or taste good.  Sorry, but it will cost you about 10 dollars for this, a can of tuna is 60 cents.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Customer:&lt;/span&gt; You incompetent fool! If you can&#39;t handle this, I&#39;ll find a chef who can!  My 12-year old nephew cooks all the time, and he can make eggs in 3 minutes flat, and they&#39;re really cheap, too.  A chicken is just a grown-up egg, right?  Why can&#39;t you do better than my nephew with all of your experience and training?  Are you trying to cheat me???&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Sound familiar?  &lt;br /&gt;&lt;br /&gt;Now this might seem silly in a conversation about food, surely a chef knows more about how to best prepare something that we might like.  A more typical request in a &quot;made to order&quot; restaurant might be:&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-style:italic;&quot;&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Customer:&lt;/span&gt; I really like chicken, but not spicy or with heavy sauce. And I&#39;m watching my health, so too much grease or salt is a problem.  Can you make me something tasty?&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight:bold;&quot;&gt;Chef:&lt;/span&gt; Of course: I could make a fresh tomato and spinach pesto chicken with boneless, skinless chicken breast with a fabulous balsamic reduction that just hits the spot.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So what&#39;s the problem in software?  Is it really that hard to express requirements and constraints, and to let the experts suggest options and approaches?&lt;br /&gt;&lt;br /&gt;The main issue as I see it is a question of trust.  In a restaurant, you&#39;ll know in about 20 minutes if the chef understands your needs and can deliver something tasty.  If it works out, you&#39;ll gain trust, and certainly you&#39;ll want to order from him again.&lt;br /&gt;&lt;br /&gt;In traditional software, it can take a lot longer than 20 minutes, or even 20 weeks to see the first results.  If the outcome isn&#39;t pretty close to what you talked about, trust goes down, fear goes up, and you wind up with some serious issues.&lt;br /&gt;&lt;br /&gt;Agile software approaches to project planning and collaboration operate more like the restaurant.  Order something, try it, maybe ask for less salt or more cream next time, and repeat.  &lt;br /&gt;&lt;br /&gt;Before long, you&#39;ll develop a great rapport between development team and customer, and you can start talking about what&#39;s for dessert.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/8168364492730610582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=8168364492730610582' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/8168364492730610582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/8168364492730610582'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2008/03/agile-project-collaboration-and.html' title='Agile Project Collaboration and Restaurants'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-1102178340965158403</id><published>2008-02-25T20:36:00.000-08:00</published><updated>2008-02-25T20:54:28.795-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile book"/><title type='text'>Agile Thinking Book now available</title><content type='html'>Well, my new book is finally ready.  It&#39;s called Agile Thinking: Leading Successful Software Projects and Teams.&lt;br /&gt;&lt;br /&gt;It&#39;s a collection of over 40 articles that I&#39;ve written over the past few years (many on this blog), organized by theme, and reworked and edited for a book format.  Hard to believe how much work that turned out to be.&lt;br /&gt;&lt;br /&gt;Regular readers of this blog will see a lot of familiar themes and content, and there is an all new introductory chapter that explains Agile methods in down to earth terms - maybe something to get your boss or new team member engaged.  &lt;br /&gt;&lt;br /&gt;What I really like about how it came out is that you can read it either sequentially, or just pick a random article when you&#39;ve got only a few minutes to spare.  You might not agree with everything in the book, but I think you&#39;ll find some useful ideas, some inspiration, and maybe even something that challenges your current perspective.&lt;br /&gt;&lt;br /&gt;Have a look at the &lt;a href=&quot;http://www.extremeplanner.com/book.html&quot;&gt;preview&lt;/a&gt;, and get your copy while it&#39;s hot (with on-demand printing, it might actually BE a little warm).</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/1102178340965158403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=1102178340965158403' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/1102178340965158403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/1102178340965158403'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2008/02/agile-thinking-book-now-available.html' title='Agile Thinking Book now available'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-1556946099574162890</id><published>2007-12-21T10:52:00.000-08:00</published><updated>2007-12-21T11:01:23.442-08:00</updated><title type='text'>Agile Thinking</title><content type='html'>In case you&#39;re wondering why it&#39;s been so long since my last post, there&#39;s actually a good reason.&lt;br /&gt;&lt;br /&gt;I&#39;ve been working on putting together a book that distills the stuff I&#39;ve been writing about for the last three years into a coherent form.  The working title is &quot;Agile Thinking&quot;.&lt;br /&gt;&lt;br /&gt;My wife is a professional editor, so we&#39;ve been busy cleaning up, cutting down, and rewriting some of the better posts from here, along with some other articles I&#39;ve written, and organizing them by theme.  The goal is to create a guide for real-world Agile project managers, developers, and customers to better understand, challenge, and improve their process.  &lt;br /&gt;&lt;br /&gt;Hopefully it will be ready sometime in January.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/1556946099574162890/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=1556946099574162890' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/1556946099574162890'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/1556946099574162890'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/12/agile-thinking.html' title='Agile Thinking'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-7783156616792167919</id><published>2007-09-21T11:34:00.000-07:00</published><updated>2007-09-21T11:55:06.562-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile software development"/><category scheme="http://www.blogger.com/atom/ns#" term="conference"/><category scheme="http://www.blogger.com/atom/ns#" term="open space"/><title type='text'>Agile Open California: Wide Open Spaces</title><content type='html'>About a year ago I participated in my first Open Space conference in Portland.&lt;br /&gt;&lt;br /&gt;The idea of Open Space is that instead of a canned set of speakers and topics, the participants propose their own topics on the first day, and people vote with their feet in terms of which topics sound most compelling.&lt;br /&gt;&lt;br /&gt;The Portland conference was the best conference I&#39;ve ever attended.  Imagine, always being engaged in a topic that you&#39;re interested in, rather than listening to yet another boring speaker with too many Powerpoint slides.&lt;br /&gt;&lt;br /&gt;Open Space is about participation, and that makes it incredibly powerful. The combined intellect, ideas, and passion of a group of people can make for huge opportunities to learn and to share.&lt;br /&gt;&lt;br /&gt;So now I&#39;m a volunteer on the organizing committee for &lt;a href=&quot;http://www.agileopencalifornia.com&quot;&gt;Agile Open California&lt;/a&gt;, which is coming up on October 22nd and 23rd in San Francisco, CA.&lt;br /&gt;&lt;br /&gt;It&#39;s coming together quickly, and I&#39;m getting excited about another opportunity to mingle, learn, and share with the Agile software development community.&lt;br /&gt;&lt;br /&gt;If you&#39;re looking for a stimulating learning opportunity, check out the conference website &lt;a href=&quot;http://www.agileopencalifornia.com&quot;&gt;here&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/7783156616792167919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=7783156616792167919' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/7783156616792167919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/7783156616792167919'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/09/agile-open-california-wide-open-spaces.html' title='Agile Open California: Wide Open Spaces'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-2208256468885031613</id><published>2007-07-31T12:11:00.001-07:00</published><updated>2007-07-31T12:23:18.027-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile software development"/><category scheme="http://www.blogger.com/atom/ns#" term="team dynamics"/><title type='text'>Is Group Brainstorming Hurting Creativity?</title><content type='html'>Marc Andressen &lt;a href=&quot;http://blog.pmarca.com/2007/07/quote-of-the--3.html&quot;&gt;writes&lt;/a&gt; about research that shows that group brainstorming produces fewer and lower quality solutions that &quot;virtual&quot; brainstorming where indviduals generate ideas independently, then put their results together.&lt;br /&gt;&lt;br /&gt;One way to look at this is that brainstorming sessions with everyone in the same room trying to &quot;be creative&quot; at the same time might not be the most effective approach.&lt;br /&gt;&lt;br /&gt;Applied to software development, the implication is that limiting creativity to &quot;groupthink&quot; can have a negative impact on the outcome.  Teams may be more creative through harnessing individual expression.&lt;br /&gt;&lt;br /&gt;In my own experience, I find that a healthy dose of conflict (with appropriate respect for others), leads to better solutions than friction-less agreement and watered down consensus.&lt;br /&gt;&lt;br /&gt;Put differently, if everyone agrees that your idea is the clear way to go, you might have a problem.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/2208256468885031613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=2208256468885031613' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/2208256468885031613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/2208256468885031613'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/07/is-group-brainstorming-hurting.html' title='Is Group Brainstorming Hurting Creativity?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-2548101143157837876</id><published>2007-07-24T14:38:00.000-07:00</published><updated>2007-07-25T13:42:12.745-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile project management"/><category scheme="http://www.blogger.com/atom/ns#" term="software development"/><title type='text'>Agile Project Management: What&#39;s In It For The Customers?</title><content type='html'>One question I&#39;m asked frequently is how Agile project management is different from traditional project management.&lt;br /&gt;&lt;br /&gt;Normally I start talking about iterations, planning, user stories, and the like, but I get a decent number of blank stares in response.&lt;br /&gt;&lt;br /&gt;I like to think I&#39;m pretty good at explaining things, so I tried to figure out what was missing from my description.  Is it the terminology? Do I need more examples? Is this something that non-techies just can&#39;t comprehend?&lt;br /&gt;&lt;br /&gt;Then it hit me - like all other concepts, products, or services, Agile project management needs to be explained in terms of it&#39;s benefits, not it&#39;s attributes.  The real question people were asking me was &quot;How will this benefit me?&quot;, not &quot;How does it work?&quot;&lt;br /&gt;&lt;br /&gt;So without further ado, here are the benefits of Agile project management for software teams in customer terms:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. More Requirements Flexibility&lt;/b&gt; (Ability to Undo Screw ups) - because of the quick development cycles that produce working software, an agile approach keeps mistakes shallow, and let&#39;s you correct your mistakes or in company political terminology &quot;refine your solution&quot;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. Reduced Project Risk&lt;/b&gt; (No Need to Explain Lengthy Delays and Cost Overruns) - because of the frequent planning and estimating sessions (at least once per month), you&#39;ll know very quickly if the project is off schedule, and you&#39;ll have control over what to do to get it back on.  This leads to better predictability, less embarrassment, and happier stakeholders.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Transparent Project Management &lt;/b&gt;(Trust, But Verify) - having visibility into which features (stories) are being worked on, and being able to actually use the software after each iteration means that you can verify progress instead of relying on a set of lines on a Gantt chart.  This helps with both internal teams and outside consultants.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. Early Delivery of Value&lt;/b&gt; (Can I Have That Now?) - because Agile projects deliver the most important things first, you can decide to deploy a system much earlier than planned if business circumstances dictate that.  Sometimes there is enough value in the top 10 features that the remaining 100 can wait.  And delivering value is sort of the point of most of our jobs, after all.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/2548101143157837876/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=2548101143157837876' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/2548101143157837876'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/2548101143157837876'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/07/agile-project-management-whats-in-it.html' title='Agile Project Management: What&#39;s In It For The Customers?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-6749065199821891364</id><published>2007-06-23T13:29:00.000-07:00</published><updated>2007-06-23T13:33:14.314-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="carnival"/><title type='text'>Latest Carnival of the Agilists is up</title><content type='html'>The latest &lt;a href=&quot;http://www.notesfromatooluser.com/2007/06/carnival-of-agi.html&quot;&gt;Carnival of the Agilists&lt;/a&gt; is up.&lt;br /&gt;&lt;br /&gt;If you haven&#39;t seen of these before, it&#39;s a collection of links to essays, blog entries and resources on various topics from some of the best minds in the Agile software development community.&lt;br /&gt;&lt;br /&gt;The editor rotates, so there&#39;s always a fresh perspective on what&#39;s worth reading.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/6749065199821891364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=6749065199821891364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/6749065199821891364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/6749065199821891364'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/06/latest-carnival-of-agilists-is-up.html' title='Latest Carnival of the Agilists is up'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-2564463338250887</id><published>2007-06-07T11:32:00.000-07:00</published><updated>2007-06-07T11:49:06.335-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile project management"/><category scheme="http://www.blogger.com/atom/ns#" term="software development"/><title type='text'>The High Cost of Management Indecision</title><content type='html'>Rob Walling writes about the high cost of &lt;a href=&quot;http://www.softwarebyrob.com/articles/How_to_Burn_6540_Week_Indecision_Software_Development.aspx&quot;&gt;management indecision&lt;/a&gt; on software projects.&lt;br /&gt;&lt;br /&gt;Essentially, the argument is that even wrong decisions allow developers to keep momentum and push a project forward.  The cost of reworking areas winds up being less than the cost of delaying, doing nothing, or switching to other tasks. Here&#39;s an excerpt about the cost for a team of 10 developers:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;If we decide not to make any decisions we lose 10 times $822, for a total of $8,220 per week. Let me say that again: blanket indecision loses $8,220 per week; making decisions (including bad ones) loses $1,680 per week. That&#39;s a difference of $6,540 per week.&lt;/blockquote&gt;&lt;br /&gt;It&#39;s actually a pretty powerful argument for doing everything possible to lower the &lt;span style=&quot;font-style:italic;&quot;&gt;perceived cost&lt;/span&gt; of making a decision for managers or customers.  Perceived cost is that fear-driven idea that if you make a certain decision, you&#39;ll be stuck with the results forever if it doesn&#39;t work out, due to the high cost of changing it.&lt;br /&gt;&lt;br /&gt;This is exactly the problem that Agile methods were designed to solve. By reducing the perceived cost, we encourage our customers to make more timely decisions, learn from them, and adjust as needed without incurring high costs.&lt;br /&gt;&lt;br /&gt;Of course, this doesn&#39;t necessarily apply to technical decision making.  &quot;Should I use a database or direct file storage?&quot; is a question that doesn&#39;t need a final answer right now.  The right question for technical decision points is &quot;How can I encapsulate that?&quot;  That lets developers move forward while keeping the cost of future change low.&lt;br /&gt;&lt;br /&gt;If it truly does cost more to delay management decisions, wouldn&#39;t it be wonderfully freeing to start making some?  &lt;br /&gt;&lt;br /&gt;Even if you don&#39;t have all the possible information you&#39;d like?  &lt;br /&gt;&lt;br /&gt;Even if you could be wrong?</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/2564463338250887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=2564463338250887' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/2564463338250887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/2564463338250887'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/06/high-cost-of-management-indecision.html' title='The High Cost of Management Indecision'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-6191741573119875938</id><published>2007-06-06T11:13:00.001-07:00</published><updated>2007-06-06T11:41:11.449-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="scrum"/><category scheme="http://www.blogger.com/atom/ns#" term="software development"/><title type='text'>Scrum Reference Card</title><content type='html'>Ran across a useful (and free) quick reference PDF for the Scrum Agile method for managing software projects.&lt;br /&gt;&lt;br /&gt;Scrum has really gained some momentum over the last few years, perhaps in part from the now ubiqiutous certification program (Certified Scrum Master).  It&#39;s a deceptively simple framework for Agile project management, consisting mainly of a few rules around creating a product backlog, priotizing work into 30 day &quot;sprints&quot; or less, daily meetings or &quot;scrums&quot;, self-organizing teams, and the key: inspecting and adapting continually to improve based on real-world feedback.&lt;br /&gt;&lt;br /&gt;Anyway, here&#39;s the link, courtesty of Contrado in Australia:&lt;br /&gt;&lt;a href=&quot;http://www.contrado.com.au/site/pdf/src.pdf&quot;&gt;&lt;br /&gt;Scrum Reference Card PDF&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/6191741573119875938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=6191741573119875938' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/6191741573119875938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/6191741573119875938'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/06/scrum-reference-card.html' title='Scrum Reference Card'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-3105967588944102163</id><published>2007-05-23T16:48:00.000-07:00</published><updated>2007-05-23T17:31:44.640-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile project management"/><category scheme="http://www.blogger.com/atom/ns#" term="distributed agile"/><category scheme="http://www.blogger.com/atom/ns#" term="distributed teams"/><title type='text'>Agile Variations for Distributed Software Teams</title><content type='html'>So you&#39;ve read the latest article or book on Agile methods, and go forth eagerly to implement them in your organization.&lt;br /&gt;&lt;br /&gt;One little problem: your team is distributed, but all of the books you&#39;ve read mention something about &quot;co-location&quot;.  That&#39;s another word for &quot;together&quot;, meaning everyone on the project is in the same place: customers, developers, product owners, testers, documenters, and even those guys who make boxes to put software in if you like that sort of thing.&lt;br /&gt;&lt;br /&gt;What&#39;s an aspiring Agilist to do when the team isn&#39;t together?&lt;br /&gt;&lt;br /&gt;First off, let&#39;s define &quot;not together&quot;.  There are three main types of distributed teams, each with its own unique challenges:&lt;br /&gt;&lt;br /&gt;1. Type A: All developers are together, all customers are remote&lt;br /&gt;2. Type B: Multiple development teams in different locations (but each team is together)&lt;br /&gt;3. Type C: &quot;Virtual&quot; team where nearly everyone works remotely (e.g. from home, in various offices, etc.)&lt;br /&gt;&lt;br /&gt;OK, now that we understand the different types, let&#39;s look at the challenges each one has, and how we can tackle them.&lt;br /&gt;&lt;br /&gt;Type A projects (all developers together, remote customer) generally have to be aware  of getting out of touch with the customer.  Out of sight can mean out of mind.  This is especially true on an outsourced project, where the customer might only be interested in talking once a month or so.  &lt;br /&gt;&lt;br /&gt;The biggest risk for Type A projects is that the team starts making major decisions without input from the customer, which can lead to software that is not aligned with the customer&#39;s needs.  Going back to basic Agile principles, we decide that freqeuent communication is the best way to deal with this.  A daily meeting to quickly disucss progress, obstacles, and goals for the day might be just the ticket.  &lt;br /&gt;&lt;br /&gt;But having a daily call might not be enough.  How do we handle those little decisions that need to be made all day long?  If you&#39;re building a blogging system and the customer asks for a way to schedule new posts for the future, did they want them to autopublish or just have a reminder sent?  A remote team might build in support for both, just in case.  An Agile team needs to ask the question, and only build what is needed for now, not waste the customer&#39;s money on a guess.  So alternative communications channels become important.  Instant messaging clients, email, and message boards can be good informal channels for extra communication throughout the day if phone calls aren&#39;t feasible.&lt;br /&gt;&lt;br /&gt;On to Type B projects (multiple dev teams in different locations).  Here, the main issue is that each team may be highly functionial, but may have trouble communicating well with the other development teams.  An example would be an in house IT team working with an outsource vendor.  Again, frequent communication is important, as with Type A projects, but there is usually something very simple that can dramatically improve working relationships.  Ready for it?&lt;br /&gt;&lt;br /&gt;Type B teams should all meet in person at the beginning of the project.  As in physical proximity, having a beer or soda together, chatting about hobbies, technology, or which breed of cat is superior.&lt;br /&gt;&lt;br /&gt;Why is a face to face so important?  Without it, human nature drives us to an &quot;us versus them&quot; mentality, also known as &quot;those guys in Nebraska screwed up again&quot; (I have no direct knowledge of any Nebraskan development disasters, this is just an example.)&lt;br /&gt;&lt;br /&gt;Type B teams should also consider rotating a member of each team to spend time with another team on a monthly basis.  Cross-pollination doesn&#39;t just work for bees, it can improve human endeavors as well.&lt;br /&gt;&lt;br /&gt;On to Type C teams - the new &quot;virtual workforce&quot; we&#39;ve been hearing about. Unlike the first two types, these folks never see anybody.  This turns out to be strangely beneficial.  Because everyone is on the same level, these individuals are either lonely and isolated, or pretty happy with their arrangement.  We can influence the outcome towards the latter by setting up frequent communication and having an initial in-person meeting as with the first two types.  Virtual teams can suffer from poor quality of communication though, and may need to supplement with group collaboration tools like shared whiteboards to supplement daily calls, emails, IM, etc.  &lt;br /&gt;&lt;br /&gt;For Agile afficionados enamored with pair programming (developers working on a task together), it&#39;s possible to setup virtual desktop and keyboard sharing (using VNC or similar software) along with an Internet phone line (e.g. Skype) to do this.  Some folks acutally prefer the physical separation so that the after-effects of Joe&#39;s garlic pizza binge from the night before aren&#39;t quite so...awakening. &lt;br /&gt;&lt;br /&gt;Having a &quot;virtual water cooler&quot; like a chat room can also help provide informal channels for team cohesion and bonding that can make a big difference in the final outcome of a project.&lt;br /&gt;&lt;br /&gt;Overall, distributed teams aren&#39;t an ideal way to work, but given their reality, we can apply Agile principles to work effectively.  Perhaps not as effectively as with a co-located team, but isn&#39;t the goal to do the best we can with what we&#39;ve got?  &lt;br /&gt;&lt;br /&gt;How&#39;s your distributed team bridging the gap?</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/3105967588944102163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=3105967588944102163' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/3105967588944102163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/3105967588944102163'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/05/agile-variations-for-distributed.html' title='Agile Variations for Distributed Software Teams'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-1575387925726456000</id><published>2007-04-15T16:20:00.000-07:00</published><updated>2007-04-15T16:57:29.283-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><category scheme="http://www.blogger.com/atom/ns#" term="software development"/><title type='text'>Agile Project Management and Competitive Advantage</title><content type='html'>I wrote &lt;a href=&quot;http://www.extremeplanner.com/blog/2007/03/small-wins-agile-psychology.html&quot;&gt;earlier &lt;/a&gt; about what I consider to be the core of why Agile methods work - small wins and increasing momemtum.&lt;br /&gt;&lt;br /&gt;Now I&#39;d like to offer a rationale for why anyone managing a software project should at least consider using an Agile approach for managing releases, if not for the actual development itself.&lt;br /&gt;&lt;br /&gt;Turns out it&#39;s the same rationale as above - small wins.&lt;br /&gt;&lt;br /&gt;The primary job of management is to ensure that customers are getting outstanding value (this makes them cheerfully continue as customers), while controlling costs, and reducing risks to the business.&lt;br /&gt;&lt;br /&gt;In software development, value mostly takes the form of features - things that help the customer make more revenue, reduce costs, or increase productivity.&lt;br /&gt;&lt;br /&gt;Of course, until the features are actually delivered, put into production, and leveraged by the customer, no value can be realized.&lt;br /&gt;&lt;br /&gt;This means that your management won&#39;t know if they&#39;re doing their job until you&#39;ve delivered software to someone, and they tell you it&#39;s solving the problem they had.&lt;br /&gt;&lt;br /&gt;So if you put on your management hat, would you like to know this sooner or later?&lt;br /&gt;&lt;br /&gt;Looking at the risk side of the equation, the more features that are in development for an extended time period, the higher the risk that customer needs will change.  Not to mention technology, market conditions, company budgets, and leadership.&lt;br /&gt;&lt;br /&gt;Now, there&#39;s obviously a limit to how frequently you can deliver value, isn&#39;t there?&lt;br /&gt;&lt;br /&gt;Your customers couldn&#39;t handle a new release every month, right?  What about every week?  Shocking!&lt;br /&gt;&lt;br /&gt;On the other hand, what if you delivered just one important feature that didn&#39;t break anything?  Or that didn&#39;t require re-training, extensive documentation, tedious software installations, database migrations, follow-on patches, and numerous support calls to take advantage of?&lt;br /&gt;&lt;br /&gt;What would your customers think then?&lt;br /&gt;&lt;br /&gt;If software vendors (or internal IT development teams) could deliver incremental value whose benefit far exceeded the cost of upgrading, what might customers say about your company or team? &lt;br /&gt;&lt;br /&gt;And if your competitors couldn&#39;t do this as effectively (for internal teams, your competitors are outsourcing firms), would your customers accept them as substitutes?&lt;br /&gt;&lt;br /&gt;Agile methods aren&#39;t just about making your programmers happy, they&#39;re also about delighting your customers, saving your CEO&#39;s job, and mkaing your less agile competitors very unhappy.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/1575387925726456000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=1575387925726456000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/1575387925726456000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/1575387925726456000'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/04/agile-project-management-and.html' title='Agile Project Management and Competitive Advantage'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-7992697107132872223</id><published>2007-03-20T10:25:00.000-07:00</published><updated>2007-03-20T10:52:43.279-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><title type='text'>Is Your Software Team Sticky?</title><content type='html'>One of the most challenging things on a software project is making sure that the core ideas and vision of the system are well understood by all of the team members.&lt;br /&gt;&lt;br /&gt;Without that shared vision, the team is likely to pull in different directions, even with frequent communication.  Extreme Programming calls this &quot;Metaphor&quot;, but I think that doesn&#39;t go far enough.&lt;br /&gt;&lt;br /&gt;What&#39;s needed is something &quot;sticky&quot;.  Something easy to remember, logical, and simple that can form the basis of the little decisions that we make every day when creating software.  A Prime Directive, if you will.&lt;br /&gt;&lt;br /&gt;An example might help here.&lt;br /&gt;&lt;br /&gt;Susie Songstress has a vision of a new website that will put singers and songwriters together to create beautiful music.  She sees this as her life&#39;s work, and is dedicated to improving the world through music.&lt;br /&gt;&lt;br /&gt;Susie hires a team of Agile software developers and explains her vision.  They set to work brainstorming stories, asking Susie lots of questions, having her prioritize the work, and away they go.&lt;br /&gt;&lt;br /&gt;Meanwhile, Susie goes to put on a concert to end hunger for a week, and asks the team to continue working.  How can the team make good decisions while she&#39;s temporarily unavailable?&lt;br /&gt;&lt;br /&gt;Susie leaves the team with a core message:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;We help create the simplest, most effective forum for singers and songwriters to find and work with each other.  We are an online &lt;a href=&quot;http://en.wikipedia.org/wiki/Woodstock_Festival&quot;&gt;Woodstock&lt;/a&gt;, dudes.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Armed with this core idea (which could be boiled down to &quot;Online Woodstock, dudes&quot;), the team is ready to make decisions with Susie in mind.&lt;br /&gt;&lt;br /&gt;Their first challenge - Susie never mentioned what fields the registration page should have.  &lt;br /&gt;&lt;br /&gt;Fred, one of the developers, thinks all registration pages should ask for name, address, phone number, email, and birth date.  &lt;br /&gt;&lt;br /&gt;Ursula, an interaction designer, remembers Susie&#39;s message, and says:  &quot;If we were at Woodstock, dude, would we want to be hassled by the man for all this information?&quot;&lt;br /&gt;&lt;br /&gt;Fred says &quot;Hmmm, I see what you mean - how about just a first name and an email address for now, with the other fields optional?&quot;&lt;br /&gt;&lt;br /&gt;OK, this is a bit contrived, but the point is that with the right core idea, teams can be empowered to make the best decisions they can when the customer is not available.  &lt;br /&gt;&lt;br /&gt;This is not a license to forgo conversations whenever possible with the customer, but it is a useful tool for embedding the project vision and values into as many people as possible, especially new or distributed team members.&lt;br /&gt;&lt;br /&gt;How do you spread your vision?</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/7992697107132872223/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=7992697107132872223' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/7992697107132872223'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/7992697107132872223'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/03/is-your-software-team-sticky.html' title='Is Your Software Team Sticky?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-487724963767627047</id><published>2007-03-05T15:04:00.000-08:00</published><updated>2007-03-05T15:27:33.645-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="agile"/><category scheme="http://www.blogger.com/atom/ns#" term="project management"/><title type='text'>Small Wins: Agile Psychology</title><content type='html'>There are many theories as to why Agile methods work.&lt;br /&gt;&lt;br /&gt;I&#39;d like to suggest that a very small core element is responsible for much of the energy and ultimately the success of Agile development projects:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Small wins create momentum.  Continous small wins create tremendous momentum.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;OK, but what kinds of small wins are important in software projects?&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;How about early positive feedback from customers?&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Or early &lt;i&gt;clarification&lt;/i&gt; of an important feature (that leads positive feedback later)&lt;/li&gt; &lt;br /&gt;&lt;li&gt;Early detection and resolution of defects before they lead to not-so-positive feedback.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Early proof that you can build and deploy the software somewhere other than your own machine&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;These types of small wins have a subtle, but critical effect on everyone on the project team.  Developers feel valued and are motivated to continue satisfying the customer.  Customers feel heard and in control, and begin to develop trust for the development team.  Stakeholders see regular progress, and begin to feel less anxious about project outcomes.  Testers get an early look at the software, and are able to add value much earlier than in typical projects.&lt;br /&gt;&lt;br /&gt;I went on a hike a few months ago that was basically an entirely uphill climb.  There were no real twists or turns, just a straight incline.  After about an hour on continuous climbing, I just gave up.  This was partly because I was exhausted, but also because I had no idea how much further it was to the top.  There were no clear indicators of progress, nothing to feel good about, just more turns of the road, and nothing but up to look forward to.&lt;br /&gt;&lt;br /&gt;Similarly, software projects that offer no short-term wins can be depressing.  Even the best team can feel unmotivated and lose steam when the project drags on and on without feedback, interim releases, or other signs of progress.&lt;br /&gt;&lt;br /&gt;Agile methods promote frequent delivery and rapid feedback.  For me, this isn&#39;t just a nice-to-have side effect, it&#39;s the only sustainable way to create great software.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/487724963767627047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=487724963767627047' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/487724963767627047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/487724963767627047'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/03/small-wins-agile-psychology.html' title='Small Wins: Agile Psychology'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-117166885610282618</id><published>2007-02-16T15:10:00.000-08:00</published><updated>2007-02-16T15:34:16.126-08:00</updated><title type='text'>Managing Distributed Software Teams</title><content type='html'>There seems to be a growing trend towards distributed software development.&lt;br /&gt;&lt;br /&gt;Maybe it&#39;s just me, but lately everyone I talk to is working on a software project with developers and customers in different parts of the country or the world.&lt;br /&gt;&lt;br /&gt;In particular, there seem to be more people working at home, even in large corporate&quot;environments.  From the reports I&#39;ve heard, it&#39;s actually working pretty well, with some obvious drawbacks like no group lunches.&lt;br /&gt;&lt;br /&gt;So the big question is how a project manager can coordinate this kind of virtual team, separated by geography, time zones, and sometimes even oceans.&lt;br /&gt;&lt;br /&gt;Here are a few strategies that I&#39;ve used with my own teams:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Have developers pair up for remote design/coding sessions.&lt;/b&gt;  Although &quot;pair programming&quot; is often derided, for a virtual team, it&#39;s important that there is regular communication between developers.  &lt;br /&gt;You can use tools like &lt;a href=&quot;http://www.realvnc.com/&quot;&gt;VNC&lt;/a&gt; to share a computer or presentation tool for scribbling designs, and tools like &lt;a href=&quot;http://www.skype.com&quot;&gt;Skype&lt;/a&gt; for voice conferencing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Make project information visible online.&lt;/b&gt;  Agile software teams can use a web-based planning and tracking tool like &lt;a href=&quot;http://www.extremeplanner.com/tour&quot;&gt;ExtremePlanner&lt;/a&gt; to plan releases, track progress through iterations, and to see what everyone is working on.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Get together in-person periodically.&lt;/b&gt;  There&#39;s no substitute for in-person communication.  Ideally your team can meet at the start of a project to get at least a little initial bonding.  It&#39;s much easier to maintain relationships if the team is already familiar with one another.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Meet daily.&lt;/b&gt;  Communication is the life blood of a successful project. Run a brief, structured daily meeting where team members can say what they did yesterday, what they plan to do today, and what obstacles are in their way.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Use alternative communication channels.&lt;/b&gt;  Outside of pairing sessions and daily meetings, encourage frequent informal communication.  By phone, using instant messaging, blogs, wikis, or whatever helps the team share information more frequently.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/117166885610282618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=117166885610282618' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/117166885610282618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/117166885610282618'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/02/managing-distributed-software-teams.html' title='Managing Distributed Software Teams'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-117037853966508389</id><published>2007-02-01T16:42:00.000-08:00</published><updated>2007-02-01T17:09:14.196-08:00</updated><title type='text'>Distributed Agile Teams in Action</title><content type='html'>Apparently there are quite a few Agile distributed teams doing quite well.&lt;br /&gt;&lt;br /&gt;I just got back from the Agile Open Northwest conference in Portland, Oregon.  It was an &lt;a href=&quot;http://www.agileopennorthwest.com/openspace.php&quot;&gt;Open Space&lt;/a&gt; event, so there were no pre-planned sessions or speakers, but it turned out to be one of the best events I&#39;ve ever been to.  Many of the pioneers of the Agile movement were in attendance, along with over a hundred interested and energetic practitioners.&lt;br /&gt;&lt;br /&gt;Back to the point.&lt;br /&gt;&lt;br /&gt;I facilitated a session on Distributed Agile Development, where I wanted to hear what people were doing in situations with:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Distributed Customers (customers not co-located with developers)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Distributed Development Teams (more than one development team, each in a different location)&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Dispersed Teams (no one on the team is in the same location)&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;The resulting discussion was very enlightening.  Not only were people doing all three of the above, but they were making it work. We uncovered some general principles that attendees pointed to as critical in making a distributed effort successful.&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Build Trust Early&lt;/b&gt;&lt;br /&gt;There was wide consensus that personal connections were the most important piece to building trust.  An initial investment in travel to get everyone on the team together to meet in person, learn a little about each other, and to start to bond seemed to be the critical step.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Maintain Regular Communications&lt;/b&gt;&lt;br /&gt;Once the team had formed some initial connection, the next insight was maintaining that connection.  While this wasn&#39;t always done in person, teams that reported success often had daily teleconferences, video conferences, or relied heavily on instant messaging.&lt;p&gt;&lt;br /&gt;One team that had some members onsite, and just one or two working remotely had a strategy of rotating a remote member every few weeks to have them work onsite to refresh their personal connections.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Communicate At the Lowest Common Denominator&lt;/b&gt;&lt;br /&gt;One surprising insight was the idea that if part of the team is co-located, it was actually preferable for them to behave as if they were remote.  Co-located teams called in individually rather than gather together in a conference room.&lt;p&gt;&lt;br /&gt;The counter-intuitive principle was to keep everyone on the same footing by using the lowest common form of communication.  By not having some people enjoy face-to-face contact, while others were &quot;just listening in&quot; as second-class participants, teams were able to build more trust and feel more engaged.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;There was much more said, but I found two themes most interesting.  First, companies are continuing to move towards more distributed development through outsourcing, work-at-home initiatives, and using external resources.  More importantly, the use of Agile methods is helping projects that do choose a distributed model to be more successful, both in terms of business outcome and team satisfaction.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/117037853966508389/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=117037853966508389' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/117037853966508389'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/117037853966508389'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/02/distributed-agile-teams-in-action.html' title='Distributed Agile Teams in Action'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-117003147654834780</id><published>2007-01-28T16:31:00.000-08:00</published><updated>2007-01-28T16:45:05.746-08:00</updated><title type='text'>Open Space Conferences - Self Organization In Action</title><content type='html'>I&#39;m going to my first Open Space conference - the &lt;a href=&quot;http://www.agileopennorthwest.com&quot;&gt;Agile Open Northwest Conference&lt;/a&gt; in Portland, Oregon.&lt;br /&gt;&lt;br /&gt;As I understand it, the idea with Open Space events is to let the attendees self-organize the sessions and topics by voting with their feet.&lt;br /&gt;&lt;br /&gt;So if I wanted to talk about how to make Agile work with distributed teams or remote customers, I would propose that as a topic in the beginning, and others would indicate their interest in that (versus other proposed topics).&lt;br /&gt;&lt;br /&gt;And even once sessions are scheduled, the idea is that people drift from session to session, staying if the content resonates with them, or moving on if it does not.&lt;br /&gt;&lt;br /&gt;I&#39;m pretty interested in seeing how it all works out.</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/117003147654834780/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=117003147654834780' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/117003147654834780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/117003147654834780'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/01/open-space-conferences-self.html' title='Open Space Conferences - Self Organization In Action'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-116787334364891996</id><published>2007-01-03T16:21:00.000-08:00</published><updated>2007-01-12T23:01:06.470-08:00</updated><title type='text'>Agile Project Metrics In One Easy Step</title><content type='html'>So you&#39;ve got the bright idea that you need to measure your software project productivity.  Or maybe it was your bosses idea.&lt;br /&gt;&lt;br /&gt;But what to measure?  Remember that whatever you choose to focus on, your team will take seriously, and shift their behavior to perform well against that metric, for better or worse.&lt;br /&gt;&lt;br /&gt;Let&#39;s take a look at some popular options:&lt;br /&gt;&lt;br /&gt;1. Lines of code per developer (KLOC)?  Bleh! That metric rewards verbose and duplicated code, and discourages reuse and leverage of third-party libraries.  Not exactly what you were looking for, is it?&lt;br /&gt;&lt;br /&gt;2. Function points?  This tries to measure an abstraction of functionality in your system using a somewhat arcane analysis.  You might need a consultant to help you sort through this one.  Then you can debate the results.&lt;br /&gt;&lt;br /&gt;3. Ah...how about the number of tasks completed?  That&#39;s got to be a good metric, right?  Except that you might wind up with lots of &quot;filler&quot; tasks created by the team in order to satisfy this metric.  &quot;Want more tasks completed boss?  I&#39;ll get right on that!&quot;.&lt;br /&gt;&lt;br /&gt;4. What about total time worked?  This has the same problem as #3 - time worked has very little correlation to productivity.  You might wind up with lots of overtime, but no progress.  Ever have a boss that was more concerned with &quot;how hard&quot; everyone seemed to be working instead of what was getting done?  Right.&lt;br /&gt;&lt;br /&gt;OK, this is getting frustrating.  It seems like whatever you try to measure will backfire, and give you a result you don&#39;t really want.&lt;br /&gt;&lt;br /&gt;But what if there were a magic metric that would not only give you a clear picture of your project health, but would as a side effect encourage higher productivity?&lt;br /&gt;&lt;br /&gt;Well, there is a good candidate for this, and it&#39;s called &lt;b&gt;Running, Tested Features&lt;/b&gt; (RTF).  Ron Jeffries has written about this &lt;a href=&quot;http://www.xprogramming.com/xpmag/jatRtsMetric.htm&quot;&gt;here&lt;/a&gt;, and there is a video interview with Ron, complete with whiteboard scribbles available &lt;a href=&quot;http://www.infoq.com/interviews/jeffries-running-tested-features&quot;&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In a nutshell, RTF is a measure of how many things of real business value got done, where &quot;done&quot; means that they actually work and are ready for deployment.&lt;br /&gt;&lt;br /&gt;On a typical yearlong waterfall-style project, you might have several months of planning and analysis, during which the RTF count would be zero.  At some point, work would start, but might work on framework development, infrastructure, etc., which would still produce an RTF value of zero.&lt;br /&gt;&lt;br /&gt;In fact, you might get to within 3 months of the deadline before the first real feature is &quot;done&quot;.  That might the point at which the team discovers a serious technical challenge and explains that the project will be at least 6 months late.  &lt;br /&gt;&lt;br /&gt;Whoops.&lt;br /&gt;&lt;br /&gt;A typical Agile project by contrast works in time-boxed iterations, no longer than 4 weeks in duration.  The output of each one is a set of one or more RTFs, in order of customer priority.  During the iteration, there is a little analysis, a little design, some development and testing, and a little documentation, if necessary.&lt;br /&gt;&lt;br /&gt;Both projects might finish at the same time, but which one is more likely to find out about a technical risk sooner?  Which one might be able to release if market conditions require the date to be moved up?&lt;br /&gt;&lt;br /&gt;In terms of productivity, measuring RTF is a quick way to see the state of the team.  A healthy Agile team should be able to consistently deliver a set of stories over time, with any unexpected challenges or risks averaging out against features that turn out to be easier than expected.&lt;br /&gt;&lt;br /&gt;A sudden slowdown over a few iterations might be a warning sign of an internal or external quality problem (e.g. the team is spending more time fixing bugs than adding features, or the architecture is too brittle to readily accommodate change).&lt;br /&gt;&lt;br /&gt;The key, though, is that this metric leaves enough time to react and address project problems before they impact the business.&lt;br /&gt;&lt;br /&gt;So what are you measuring in your software projects?  &lt;br /&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/116787334364891996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=116787334364891996' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116787334364891996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116787334364891996'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2007/01/agile-project-metrics-in-one-easy-step.html' title='Agile Project Metrics In One Easy Step'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-116611485545646276</id><published>2006-12-14T08:15:00.000-08:00</published><updated>2006-12-20T13:09:57.493-08:00</updated><title type='text'>YAGNI Revisited - Waste Not Want Not</title><content type='html'>I first heard the term You Aren&#39;t Gonna Need It (YAGNI)  in the book &lt;a href=&quot;http://www.amazon.com/Extreme-Programming-Explained-Embrace-Change/dp/0201616416&quot;&gt;XP Explained&lt;/a&gt; about six years ago.&lt;br /&gt;&lt;br /&gt;At the time, I understood it to mean that building overly flexible (and usually complex) frameworks and models in your software was A Bad Thing.  The idea was that since the requirements might change suddenly, and you don&#39;t have a crystal ball to predict the future, the time was probably not well spent.&lt;br /&gt;&lt;br /&gt;This seemed especially relevant to me in terms of blue sky architectures I had encountered on previous projects that tried to solve a whole host of problems that we didn&#39;t even know were problems yet.&lt;br /&gt;&lt;br /&gt;Since then, I&#39;ve heard others argue the point as if it were some sort of Commandment:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Thou Shalt Not Covet Frameworks Until Thou Absolutely Needest Them&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The rise of Test Driven Development (TDD) and Refactoring has caused even more widespread adoption of YAGNI, and even caused endless debates along the lines of:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Developer 1: Well, we should just hardcode a return value of one here, since that will make the first test pass&lt;br /&gt;Developer 2: Doh!  That&#39;s ridiculous, we &lt;span style=&quot;font-style: italic;&quot;&gt;know&lt;/span&gt; that won&#39;t be the final solution, let&#39;s just calculate the answer!&lt;br /&gt;Developer 1: But this book said to do the simplest thing that could work, and the other book I read yesterday said YAGNI!  All of the cool thought leaders are saying it!&lt;br /&gt;Developer 2: Sigh...yes, they said the same thing about pair programming.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Can we really take simplified phrases out of context and apply them to every detail of development work?&lt;br /&gt;&lt;br /&gt;Maybe, but I&#39;d prefer to look at the whole debate from a different viewpoint - the &quot;Lean Thinking&quot; one.  Lean is a concept from the manufacturing world that has been slowly gaining traction in software development as the concepts are explored further.  Tom and Mary Poppendieck&#39;s &lt;a href=&quot;http://www.poppendieck.com&quot;&gt;work&lt;/a&gt; is an excellent place to start.&lt;br /&gt;&lt;br /&gt;So &quot;Eliminate Waste&quot; is the Lean principle that seems to apply to YAGNI and it&#39;s cousins.&lt;br /&gt;&lt;br /&gt;What constitutes waste in software development?  According to Lean proponents, it&#39;s:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Extra features: Things we build that no one asked for, and isn&#39;t likely to use.  I see this happening all of the time in small ways.  &quot;Oh, we should add a calendar widget here in case the users want to see what day the holiday party is on while they are entering the invoice data&quot;.&lt;/li&gt;&lt;li&gt;Churn: Constant change in requirements (Make it blue...no, red...wait...green!), or constant test and fix cycles (Ok, we fixed the Calculation Bug...oh wait, we added a Storage Bug...ok, that&#39;s fixed...NO, not the Nuclear Bug!!!)&lt;/li&gt;&lt;li&gt;Crossing boundaries:  Any &quot;throw it over the wall&quot; behavior, even if it&#39;s done nicely.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Lean also talks about &quot;queues&quot; and how anything that results in backups is considered waste.  Until a customer gets a product in their hands, and it delivers the business value they are paying for, software development is just a cost without a payoff.&lt;br /&gt;&lt;br /&gt;So, back to YAGNI.  Looked at through a Lean lens, are the activities, features, frameworks and modeling you are doing adding immediate value?  Or are they delaying delivery of that value?&lt;br /&gt;&lt;br /&gt;Before I get carried away, I&#39;ll say this: waste cannot be completely eliminated.  I&#39;m not even sure that would be a good thing.  I&#39;ve had some of my best ideas while wasting time.  But approaching software development with an eye towards reducing waste can have a profound positive effect on your process.&lt;br /&gt;&lt;br /&gt;Unless you don&#39;t need one, that is.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more on agile tools and techniques: &lt;a href=&quot;http://www.extremeplanner.com/&quot;&gt;http://www.extremeplanner.com&lt;/a&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/116611485545646276/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=116611485545646276' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116611485545646276'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116611485545646276'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2006/12/yagni-revisited-waste-not-want-not.html' title='YAGNI Revisited - Waste Not Want Not'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-116482117528028004</id><published>2006-11-29T09:03:00.000-08:00</published><updated>2006-12-21T10:22:30.020-08:00</updated><title type='text'>Scrum and XP from the Trenches</title><content type='html'>Henrik Kniberg has published a PDF called &lt;a href=&quot;http://www.crisp.se/henrik.kniberg/ScrumAndXpFromTheTrenches.pdf&quot;&gt;Scrum and XP from the Trenches&lt;/a&gt;. It&#39;s a well written and engaging read on his experiments, successes, and challenges running a development team of about 40 people using Agile methods.&lt;br /&gt;&lt;br /&gt;One thing I found quite interesting was the information that his team felt was most useful to document user stories (or backlog items).  They used various tools, including a shared Excel spreadsheet, to track the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ID of the story&lt;/li&gt;&lt;li&gt;Name/description of the story &lt;/li&gt;&lt;li&gt;Importance/Priority of the story&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Initial estimate (in points or ideal days)&lt;/li&gt;&lt;li&gt;How to Demo - a brief description of how the story will be demonstrated to stakeholders.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Notes&lt;/li&gt;&lt;/ul&gt;Of these fields, the &quot;How to Demo&quot; is one near and dear to me.  It&#39;s basically a narrative around what exactly you would do to verify that the story is working in such a way as to communciate it clearly to the customer.&lt;br /&gt;&lt;br /&gt;Perhaps even more critical, though, is that by writing out how they plan to demo a feature, the team is forced to write out their assumptions, which can then be quickly challenged by the customer.&lt;br /&gt;&lt;br /&gt;For example, in a toy store application, a story might say &quot;Add games to the catalog&quot;.  The &quot;How to Demo&quot; might read:  &quot;Log in, select the Add Game menu, and enter the details in a form.  Verify the information gets stored in the DB&quot;.&lt;br /&gt;&lt;br /&gt;A customer might then see the estimate as 2 weeks, and say &quot;No, no, I don&#39;t care if you enter the information manually in the database, we don&#39;t need a form and fancy input screens yet.&quot;&lt;br /&gt;&lt;br /&gt;This is commonly referred to as an &quot;acceptance test&quot; in XP literature, but is often forgotten by teams just starting out with Agile.  This simple tool can greatly improve your communication with the customer, and help avoid misunderstandings. &lt;br /&gt;&lt;br /&gt;Henrik goes on to explore many different subjects such as dealing with multiple teams, splitting up stories, etc.  He also makes it clear that many of his conclusions are preliminary, since his team is still learning and adapting, and that he might do things differently in a different context.&lt;br /&gt;&lt;br /&gt;All in all, a great contribution to the body of Agile knowledge, and a fun read.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more on agile tools and techniques: &lt;a href=&quot;http://www.extremeplanner.com/&quot;&gt;http://www.extremeplanner.com&lt;/a&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/116482117528028004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=116482117528028004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116482117528028004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116482117528028004'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2006/11/scrum-and-xp-from-trenches.html' title='Scrum and XP from the Trenches'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-116250854833644753</id><published>2006-11-02T14:33:00.000-08:00</published><updated>2006-11-24T14:05:46.136-08:00</updated><title type='text'>Agile Estimating: How long is an ideal day?</title><content type='html'>About seven years ago, my first attempt at doing an estimate using agile terminology went something like this:&lt;br /&gt;&lt;br /&gt;Me: &quot;OK, I estimate this functionality at about 3 ideal weeks of effort&quot;&lt;br /&gt;Boss: &quot;Uh...what is that in calendar time?&quot;&lt;br /&gt;Me: &quot;Well, er, it&#39;s complicated, it depends on team velocity and planetary motion&quot;&lt;br /&gt;Boss: &quot;Great, can you tell me by tomorrow?&quot;&lt;br /&gt;&lt;br /&gt;After doing some reading and thinking, I decided an ideal week was something like a &quot;man-week&quot;, adjusting for daily distractions.  For most people I&#39;ve worked with, this adjustment factor (called a &quot;load factor&quot; in the original XP books...yikes) is somewhere between 0.5 and 0.7.  &lt;br /&gt;&lt;br /&gt;In fact, some studies suggest that the maximum productive time for most workers is five hours, regardless of how much time they spend in the office.  Work that requires intense concentration, like say, software development, is more prone to productivity loss from distractions, phone calls, etc.&lt;br /&gt;&lt;br /&gt;In other words, an ideal week for a single developer looks a lot like half of a &quot;man-week&quot;.  Looked at differently, a developer has a capacity (or velocity) of 0.5 ideal weeks per calendar week, or for a two-week iteration, about one week of ideal effort.&lt;br /&gt;&lt;br /&gt;So a team of four developers of roughly equal capability would be able to implement about two ideal weeks worth of estimated effort in an iteration (of 2 weeks).&lt;br /&gt;&lt;br /&gt;Another popular method of estimating agile user stories is to use a point system to measure the relative size.  By using points, a team can estimate the &lt;span style=&quot;font-style:italic;&quot;&gt;size&lt;/span&gt; of a story relative to other user stories.&lt;br /&gt;&lt;br /&gt;A 2-point story is twice as difficult to implement as a one point story, and a 4-point story is twice as hard again.&lt;br /&gt;&lt;br /&gt;Personally, I tend to prefer the ideal time units, since it&#39;s easier to explain to customers, but I have heard reports that point systems have had good results as well after the initial confusion.&lt;br /&gt;&lt;br /&gt;How do you estimate and why?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more on agile tools and techniques: &lt;a href=&quot;http://www.extremeplanner.com/&quot;&gt;http://www.extremeplanner.com&lt;/a&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/116250854833644753/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=116250854833644753' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116250854833644753'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116250854833644753'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2006/11/agile-estimating-how-long-is-ideal-day.html' title='Agile Estimating: How long is an ideal day?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-116102758674788775</id><published>2006-10-16T12:14:00.000-07:00</published><updated>2006-11-14T17:31:20.393-08:00</updated><title type='text'>How Big Should Your User Stories Be?</title><content type='html'>How big should your user stories be? &lt;br /&gt;&lt;br /&gt;Although the answer should be &quot;it depends&quot;, I&#39;m going to be a bit more opinionated than that.&lt;br /&gt;&lt;br /&gt;User stories should be small enough that the team and the customer can see and feel the forward momentum.  This creates tremendous positive energy and keeps everyone engaged in the project.&lt;br /&gt;&lt;br /&gt;So if the team is just a couple of developers, the story size is probably best measured in hours or a couple of days of effort at most.  For a two-week iteration, you might then have 8 or 10 stories.&lt;br /&gt;&lt;br /&gt;When the team size is larger, you might lean towards the larger end of the story size scale with measurements in days, but less than a week of effort.  In my experience, estimates that are beyond about a week of ideal effort are often substantially less accurate.&lt;br /&gt;&lt;br /&gt;But who gets to control this story size?  Aren&#39;t customers supposed to be writing storeis?  How can they be trained to control the size when they don&#39;t have the ability to estimate the effort?&lt;br /&gt;&lt;br /&gt;In reality, story writing is best performed as a collaborative exercise.  A typical interaction might look like this:&lt;br /&gt;&lt;br /&gt;Customer: &quot;I&#39;d like our movie website to have a new user reviews feature&quot;&lt;br /&gt;&lt;br /&gt;Developer: &quot;Great, let&#39;s talk about what you&#39;d like the users to be able to do&quot;&lt;br /&gt;&lt;br /&gt;Customer: &quot;For starters, when they view a movie listing, there should be a rating thingy that shows how many stars other viewers think it deserves. And you should be able to see other user comments.  But we can&#39;t have any profanity on the site!&quot;&lt;br /&gt;&lt;br /&gt;Developer: &quot;Ok, so you&#39;d need a way to add ratings, and a way to show them to the users, ability to add and show comments, and a profanity filter.  Why don&#39;t we split those into four separate items, and you can tell me which one you want first?&quot;&lt;br /&gt;&lt;br /&gt;Customer: &quot;Well, we could start with just the ratings for now, then we wouldn&#39;t need to worry about profanity.&quot;&lt;br /&gt;&lt;br /&gt;Developer: &quot;OK, great, we&#39;ll estimate what it would take to add ratings, and to show them for each movie&quot;.&lt;br /&gt;&lt;br /&gt;The developer here has to be sufficiently savvy to try to break out stories that have value, but are small enough to be managable.  This isn&#39;t always possible, but on average you&#39;ll wind up with bite-size chunks instead of a Biggie-Sized story.&lt;br /&gt;&lt;br /&gt;One caveat with smaller stories is that if you wind up with a great deal of them, it can be difficult for your customer to prioritize them effectively (it&#39;s tough to rank more than about 10 things).  You may wind up with categories or &quot;themes&quot; that group together a set of small stories.  The customer can then prioritize around themes like &quot;Security&quot;, &quot;User Reviews&quot;, or &quot;Reporting&quot; first, then later determine which smaller items are most important.&lt;br /&gt;&lt;br /&gt;Let me know what size stories you use, and how it&#39;s working out for you.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more on agile tools and techniques: &lt;a href=&quot;http://www.extremeplanner.com/&quot;&gt;http://www.extremeplanner.com&lt;/a&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/116102758674788775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=116102758674788775' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116102758674788775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/116102758674788775'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2006/10/how-big-should-your-user-stories-be.html' title='How Big Should Your User Stories Be?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-115946128939879588</id><published>2006-09-28T09:17:00.000-07:00</published><updated>2006-09-28T12:29:08.373-07:00</updated><title type='text'>Google&#39;s New Motto: Don&#39;t Be Agile?</title><content type='html'>Steve Yegge of Google has an epic &lt;a href=&quot;http://steve-yegge.blogspot.com/2006/09/good-agile-bad-agile_27.html&quot;&gt;rant &lt;/a&gt;about Agile methods and why they are evil. &lt;br /&gt;&lt;br /&gt;This article is sometimes rambling, and often grossly unfair in many ways, but let&#39;s take a closer look.&lt;br /&gt;&lt;br /&gt;Steve talks about &quot;good agile&quot; vs. &quot;bad agile&quot;, and generally lumps anything that requires consultants, training, or books as &quot;bad agile&quot;.&lt;br /&gt;&lt;br /&gt;Google, where he works, is apparently using &quot;good agile&quot; which as best I can figure means that no one is forcing anyone to do anything, there is no defined process, no deadlines, no explicit pressure, and everyone just sort of figures it out. His ultimate weapon is a priority queue.&lt;br /&gt;&lt;br /&gt;Certainly Google operates differently than many businesses (as Steve puts it &quot;Somewhere between a startup and grad school&quot;), but since when did poorly defined projects, no deadlines, and chaos make a solid development process?&lt;br /&gt;&lt;br /&gt;OK, I admit a got a chuckle out of it, even as I was thinking, &quot;Wow, this guy really doesn&#39;t get it&quot;.  But then I thought, &quot;Millions of people who also don&#39;t get it will accept his arguments without ever reading about or trying Agile&quot;.&lt;br /&gt;&lt;br /&gt;He goes so far as to suggest that even trying Agile is &quot;Dangerous&quot;, and that you should throw out your XP or Scrum books immediately.&lt;br /&gt;&lt;br /&gt;I was half expecting him to say &quot;Burn her!  She&#39;s a witch!&quot;&lt;br /&gt;&lt;br /&gt;What&#39;s really dangerous is letting someone else do your thinking for you and telling you what you can and can&#39;t read or try.&lt;br /&gt;&lt;br /&gt;He warns of Agile proponents &quot;being slippery&quot; by taking credit for any good effects of an implementation, but explaining away bad effects as &quot;you didn&#39;t do it right&quot;.  I do see this far too often on Agile mailing lists and in other writings, but it&#39;s also sometimes accurate.  I can wave my arms around and make &quot;Ha!&quot; noises, but that doesn&#39;t mean I&#39;m doing karate.&lt;br /&gt;&lt;br /&gt;And finally...the one point I agree with in the entire rant: If a process is attempted by 100 groups, and 90% of them fail, maybe it&#39;s not a good process (or well documented, or easy to follow, etc.).  &lt;br /&gt;&lt;br /&gt;But in my opinion, Agile is not about process, it&#39;s about philosophy.&lt;br /&gt; &lt;br /&gt;Philosophy is difficult to standardize and implement.  So we as humans create specific rules and practices that are easy to digest. For example (apologies to my fellow Agilists): &lt;br /&gt;&lt;br /&gt;&quot;Do pair-programming all of the time, except when your alone, then put&lt;br /&gt;your cat on the keyboard.&quot;  &lt;br /&gt;&lt;br /&gt;&quot;Write everything test first, especially test code.&quot;  &lt;br /&gt;&lt;br /&gt;&quot;Use index cards, they are magical and will grow into rectangular trees if&lt;br /&gt;you plant them.&quot;&lt;br /&gt;&lt;br /&gt;&quot;Don&#39;t let chickens talk, they make an awful noise.&quot; (from Scrum&#39;s &quot;Chickens and Pigs&quot; &lt;a href=&quot;http://wiki.scrums.org/index.cgi?PigsAndChickens&quot;&gt;metaphor&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&quot;Four legs good.  Two legs bad.&quot; (Hmm...maybe that&#39;s not from an Agile method)&lt;br /&gt;&lt;br /&gt;And because many people don&#39;t &quot;get&quot; the philosophy behind the practices, they either become unthinking zealots or fierce, er, &quot;insurgents&quot;, leading to a project&#39;s demise.&lt;br /&gt;&lt;br /&gt;Is it fair to blame Agile for this?  Of course not. But what did fair ever have to do with anything in our world?&lt;br /&gt;&lt;br /&gt;So how can an Agilist combat this viewpoint without looking &quot;slippery&quot;?  Maybe everyone should do what Steve suggests, and stop worrying about standardizing process, and just work on instilling philosophy.  Let good practices emerge from smart, capable people trying things, seeing what works for them, and adapting.  &lt;br /&gt;&lt;br /&gt;But then you&#39;d be doing Scrum, and we already know that&#39;s &quot;dangerous&quot;, right?&lt;br /&gt;&lt;br /&gt;I do worry when I think about how few people actually read original sources and make independent decisions based on their own experiences, versus going whichever way the latest pundit blows.&lt;br /&gt;&lt;br /&gt;So do yourself a favor: listen to me for a change and make up your own mind.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more on agile tools and techniques: &lt;a href=&quot;http://www.extremeplanner.com/&quot;&gt;http://www.extremeplanner.com&lt;/a&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/115946128939879588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=115946128939879588' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/115946128939879588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/115946128939879588'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2006/09/googles-new-motto-dont-be-agile.html' title='Google&#39;s New Motto: Don&#39;t Be Agile?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-10374038.post-115894706819042976</id><published>2006-09-22T10:28:00.000-07:00</published><updated>2006-09-23T18:03:56.110-07:00</updated><title type='text'>How Agile Is Your Development Process?</title><content type='html'>How agile are we?  I&#39;ve started to see this question appear more and more in mailing lists and discussions.  &lt;br /&gt;&lt;br /&gt;In truth, it doesn&#39;t matter in the least how &quot;agile&quot; your process is, only how effective it is.&lt;br /&gt;&lt;br /&gt;The assumption in the question is that being more agile is a good thing, and that if we could only measure it objectively, we could guarantee improved &quot;goodness&quot;.  I don&#39;t think this is true.&lt;br /&gt;&lt;br /&gt;Hear me out.  I&#39;m not saying that being more agile is a *bad* thing, only that it&#39;s not the right thing to measure.  Everything in software development (and business for that matter) is dependent on context.&lt;br /&gt;&lt;br /&gt;So try things and measure them to see if your effectiveness improves.  If it does, do more of that thing until something breaks.  Then turn your attention to another factor.&lt;br /&gt;&lt;br /&gt;For example, many people come to agile development after experiencing a &quot;death march&quot; type of project where the delivery is late, buggy, and over budget.  They are looking for a better way.  They adopt an Agile method like Scrum, and expect miracles.  When things aren&#39;t going well, they say &quot;We must not be Agile enough, let&#39;s measure our agility so we can improve it!&quot;&lt;br /&gt;&lt;br /&gt;Instead they should be asking questions like:&lt;br /&gt;&lt;br /&gt;1. Are we meeting the requirements of our customer, or are there constant misunderstandings?&lt;br /&gt;2. Are we able to make changes to our software efficiently or is it painful?&lt;br /&gt;3. Are developers energized and excited about their work or burned out and unmotivated?&lt;br /&gt;&lt;br /&gt;The road to agility is one of trial and error.  Yes, you can blindly follow certain practices and if you&#39;re very lucky, your team will reach development Nirvana with no changes.&lt;br /&gt;&lt;br /&gt;In most other realities, you&#39;ll need to inspect and adapt. &lt;br /&gt;&lt;br /&gt;Developers are burned out?  Try shorter working hours, training, time for pet projects, more collaboration (or less collaboration).&lt;br /&gt;&lt;br /&gt;Miscommunicating with customers?  Try in-person meetings, more freqeuent releases, weekly demonstrations, onsite customers and so on.&lt;br /&gt;&lt;br /&gt;Software difficult to change?  Try continuous integration with automated builds, test-first development, pair-programming, peer review, shorter iterations, or add some new talent to the team.&lt;br /&gt;&lt;br /&gt;There is no silver bullet.  Really.  &lt;br /&gt;&lt;br /&gt;But there is a secret weapon.  Want to know what it is?  &lt;br /&gt;&lt;br /&gt;Wait for it...&lt;br /&gt;&lt;br /&gt;Here&#39;s the big secret...&lt;br /&gt;&lt;br /&gt;USE YOUR BRAIN!!!! (It&#39;s really an amazing thing)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more on agile tools and techniques: &lt;a href=&quot;http://www.extremeplanner.com/&quot;&gt;http://www.extremeplanner.com&lt;/a&gt;&lt;br /&gt;(Tags: &lt;a href=&quot;http://technorati.com/tag/agile&quot; rel=&quot;tag&quot;&gt;agile&lt;/a&gt;, &lt;a href=&quot;http://technorati.com/tag/project+management&quot; rel=&quot;tag&quot;&gt;project management&lt;/a&gt;,&lt;br /&gt;&lt;a href=&quot;http://technorati.com/tag/extremeplanner&quot; rel=&quot;tag&quot;&gt;extremeplanner&lt;/a&gt;)</content><link rel='replies' type='application/atom+xml' href='http://blog.extremeplanner.com/feeds/115894706819042976/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=10374038&amp;postID=115894706819042976' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/115894706819042976'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/10374038/posts/default/115894706819042976'/><link rel='alternate' type='text/html' href='http://blog.extremeplanner.com/2006/09/how-agile-is-your-development-process.html' title='How Agile Is Your Development Process?'/><author><name>David Churchville</name><uri>http://www.blogger.com/profile/03680255663583482500</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry></feed>