<?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: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-30978416</id><updated>2011-10-30T11:57:24.879-07:00</updated><category term='lean'/><category term='FDD'/><category term='retrospectives'/><category term='theory of constraints'/><category term='tools'/><category term='technical'/><category term='books'/><category term='DSDM'/><category term='jira'/><category term='games'/><category term='conference'/><category term='leadership'/><category term='definition of done'/><category term='mangement'/><category term='definition of ready'/><category term='people'/><category term='scrum'/><category term='agile'/><category term='metrics'/><category term='analysis'/><category term='tips'/><category term='distributed teams'/><category term='Crystal'/><category term='performace evaluation'/><category term='kanban'/><category term='AUP'/><category term='waterfall'/><category term='testing'/><category term='product owner'/><category term='learning'/><category term='xp'/><category term='management'/><category term='CMMI'/><category term='estimation'/><title type='text'>Agile Advocate</title><subtitle type='html'>An agile advocate's advice and arguable axioms</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>74</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-30978416.post-1466491497651090262</id><published>2010-03-13T07:04:00.000-08:00</published><updated>2010-03-13T07:04:18.707-08:00</updated><title type='text'>A new home for my blog</title><content type='html'>I've moved my blog! I'm leaving Agile Advocate where it is for now, but all my new posts will be at &lt;a href="http://properosolutions.com/blog/"&gt;Propero Solutions&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-1466491497651090262?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://properosolutions.com/blog/' title='A new home for my blog'/><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/1466491497651090262/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=1466491497651090262' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1466491497651090262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1466491497651090262'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2010/03/new-home-for-my-blog.html' title='A new home for my blog'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7218063117944622096</id><published>2009-12-17T21:18:00.000-08:00</published><updated>2009-12-24T09:45:55.483-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jira'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Jira and GreenHopper for agile project management</title><content type='html'>I previously blogged about &lt;a href="http://agileadvocate.blogspot.com/2009/01/jira-not-so-great-for-agile.html"&gt;using Jira with some open source tools for managing agile projects&lt;/a&gt;, and concluded that it was &lt;i&gt;not &lt;/i&gt;a great solution - without GreenHopper. I've been using the latest version of Jira with the GreenHopper agile plugin extensively now, and I like it. It is lacking some features, which I'll describe later, but here is an overview of the main functionality.&lt;br /&gt;&lt;br /&gt;The first thing I like is the Planning Board view, which is aimed at Product Owners who spend lots of time ranking and re-ranking backlog items. The GreenHopper planning board allows you to drag and drop items to either change their rank or to move them from the backlog into a particular iteration or sprint (version, in Jira lingo).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_RKQgVkLLIO8/SysNMjL7sAI/AAAAAAAAAbI/dHxVcvFISPQ/s1600-h/planning+board.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/_RKQgVkLLIO8/SysNMjL7sAI/AAAAAAAAAbI/dHxVcvFISPQ/s400/planning+board.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: dragging a user story from the backlog to a sprint. (Click image to see it full-size.)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;For the development team, GreenHopper's Task Board view is just that - it simulates the physical task board that so many co-located teams use. It's easy to drag the virtual cards to columns to update their status, just like you would do with a physical board. Very nice. It also does something you can't quite do with sticky notes; double click to see more information, or click on the item ID to see all the detail.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNRkLQyuI/AAAAAAAAAbY/HqarWx5BpP0/s1600-h/task+board+summaries.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNRkLQyuI/AAAAAAAAAbY/HqarWx5BpP0/s400/task+board+summaries.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: The Task Board in summary view mode (Click image to see it full-size.)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNQFxSzMI/AAAAAAAAAbQ/JqN-pIRLnJo/s1600-h/task+board+list+view.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNQFxSzMI/AAAAAAAAAbQ/JqN-pIRLnJo/s400/task+board+list+view.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: See more of the task board without scrolling - the List view (Click image to see it full-size.)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNHkw15LI/AAAAAAAAAa4/CKRVF5OFhjw/s1600-h/drag+and+drop+task+status.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNHkw15LI/AAAAAAAAAa4/CKRVF5OFhjw/s400/drag+and+drop+task+status.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: Dragging a card from "To Do" to "In Progress"&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysNGF_YEzI/AAAAAAAAAaw/C3BC9-2sCIk/s1600-h/double+click+card+to+expand.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysNGF_YEzI/AAAAAAAAAaw/C3BC9-2sCIk/s320/double+click+card+to+expand.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: Double click to see this expanded view of any card on the board.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;An advantage of GreenHopper over sticky notes on the wall is that your burn down charts are calculated automatically: in hours, number of items, and story points. The screen images below show these. The red line is the ideal burn down and the green line is the actual.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNKb_-OaI/AAAAAAAAAbA/nfWIQ3gjQIA/s1600-h/hour+burndown.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_RKQgVkLLIO8/SysNKb_-OaI/AAAAAAAAAbA/nfWIQ3gjQIA/s400/hour+burndown.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: Burn down in hours (Click image to see it full-size.)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Are you a bleeding-edge adopter of kanban? GreenHopper is decent for that. The columns on your kanban board are customizable, so you can create any columns you want. You can also set a WIP limit for each column. You &lt;i&gt;can't&lt;/i&gt;, however, set up horizontal "swim lanes" for different service level agreements (SLAs), such as a row for items that need to be expedited.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysOWagfLTI/AAAAAAAAAbg/WZDw6m8smNo/s1600-h/kanban.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_RKQgVkLLIO8/SysOWagfLTI/AAAAAAAAAbg/WZDw6m8smNo/s400/kanban.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;Above: The column turns red when the WIP limit is exceeded&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;The Jira dashboard also offers a reasonable approximation of the cumulative flow diagram (CFD) that replaces burn downs in a lean / kanban process. It does show items created vs. resolved, but it doesn't graph items in-progress. The chart also counts sub-tasks as items, which you may not want.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNEP8-8xI/AAAAAAAAAao/z7G94U2v-5A/s1600-h/CFD.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/_RKQgVkLLIO8/SysNEP8-8xI/AAAAAAAAAao/z7G94U2v-5A/s320/CFD.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;Above: Almost a cumulative flow diagram. Close, but no cigar.&lt;br /&gt;&lt;br /&gt;GreenHopper is an add-in to Jira, so you still get all of the Jira functionality unchanged. Like Jira itself, GreenHopper is extensively configurable; almost annoyingly so because there are so many options it's hard to know what to do with them. Fortunately the default configuration is reasonable, although there are some setup steps required to enable item ranking, which is so fundamental that it should have been done out-of-the-box.&lt;br /&gt;&lt;br /&gt;What is it lacking?&lt;br /&gt;&lt;ol&gt;&lt;li&gt;If you're a large organization with a portfolio of inter-related projects, Jira + GH doesn't do much to show you the big picture across multiple projects.&lt;/li&gt;&lt;li&gt;Although you have a hierarchy of versions, such as a release containing multiple sprints (described &lt;a href="http://confluence.atlassian.com/display/GH/Setting+Up+a+Version+Hierarchy"&gt;here&lt;/a&gt;), it doesn't do much; the planning board simply indicates that one version is a "master" of the other. GreenHopper doesn't offer a timeline view showing the version hierarchy.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can create a hierarchy of backlog items, for example to have large-scale epics that contain many user stories, as described &lt;a href="http://confluence.atlassian.com/display/GH/Working+with+Epics"&gt;here&lt;/a&gt;. However, this feature isn't enabled by default and requires an adminstrator to configure it. As an alternative, or in addition to the "epic" feature, you can create associations between items for this purpose, but there is no easy way to visualize the relationships. There is free task hierarchy plug-in that will show the hierarchy, but only for one top-level item at a time.&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Overall, especially for smaller teams without portfolio management needs, I give the tool high marks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7218063117944622096?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7218063117944622096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7218063117944622096' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7218063117944622096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7218063117944622096'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/12/jira-and-greenhopper-for-agile-project.html' title='Jira and GreenHopper for agile project management'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RKQgVkLLIO8/SysNMjL7sAI/AAAAAAAAAbI/dHxVcvFISPQ/s72-c/planning+board.jpg' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-920624831154638978</id><published>2009-12-16T20:10:00.000-08:00</published><updated>2009-12-20T20:15:53.425-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='definition of done'/><category scheme='http://www.blogger.com/atom/ns#' term='definition of ready'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Definition of Ready (DoR)</title><content type='html'>All good agile teams have a Definition of Done (DoD) - the common set of criteria that every feature must meet before it's considered complete. I wrote about the DoD previously in &lt;a href="http://agileadvocate.blogspot.com/2008/12/definition-of-done.html"&gt;this post&lt;/a&gt;. But what about a Definition of Ready? How do you know when your backlog items are ready for the team to accept them?&lt;br /&gt;&lt;br /&gt;Serge Beaumont spoke on this topic among others at the 2009 Scrum Gathering in Munich in his presentation &lt;a href="http://www.scrumalliance.org/resources/1249"&gt;Practical Tools for the Product Owner: Focus, Value, Flow&lt;/a&gt;. He describes the Definition of Ready as a negotiation between the Product Owner and the team, where the team ultimately decides if a backlog item (user story) is defined well enough for the team to estimate and implement. His checklist for the DoR for backlog items includes:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Why? Business Value&lt;/li&gt;&lt;li&gt;What? Outcome vision&lt;/li&gt;&lt;li&gt;How? Implementation strategy &amp;amp; cost&lt;/li&gt;&lt;li&gt;Does the backlog have enough items for 1 and half to 2 sprints?&lt;/li&gt;&lt;li&gt;Is the size (granularity) of the backlog items acceptable?&lt;/li&gt;&lt;/ul&gt;I would personally aim for a smaller number of items in the "ready" state; 2 sprints worth of items increases the risk that time will be spent analyzing items that end up in the trash heap.&lt;br /&gt;&lt;br /&gt;Serge also advocates using a kanban board with 4 phases to track the readiness of backlog items:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; New&lt;/li&gt;&lt;li&gt;Preparing (going through analysis)&lt;/li&gt;&lt;li&gt;Ready&lt;/li&gt;&lt;li&gt;In sprint&lt;/li&gt;&lt;/ul&gt;I'll be adding the DoR as a standard part of my Scrum implementations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-920624831154638978?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/920624831154638978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=920624831154638978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/920624831154638978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/920624831154638978'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/12/definition-of-ready-dor.html' title='Definition of Ready (DoR)'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-1428366297806342093</id><published>2009-11-18T19:54:00.000-08:00</published><updated>2009-11-18T19:54:01.772-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='metrics'/><category scheme='http://www.blogger.com/atom/ns#' term='technical'/><title type='text'>SourceMonitor for .NET code quality metrics</title><content type='html'>A tip of the hat to &lt;a href="http://virtual-genius.com/"&gt;Paul Rayner&lt;/a&gt; for recommending &lt;a href="http://www.campwoodsw.com/sourcemonitor.html"&gt;SourceMonitor&lt;/a&gt; for .NET code quality metrics. I gave this freeware tool a spin today on a C# project I'm working on for a large client, and was very happy. It's easy to use and within a few minutes I had it installed and ran the analysis on the whole project, gathering these metrics for the whole solution, and for each C# file within the solution:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;number of statements&lt;/li&gt;&lt;li&gt;methods per class&lt;/li&gt;&lt;li&gt;calls per method&lt;/li&gt;&lt;li&gt;statements per method&lt;/li&gt;&lt;li&gt;average and maximum complexity&lt;/li&gt;&lt;li&gt;average and maximum block depth (number of levels of indentation/curly braces)&lt;/li&gt;&lt;/ul&gt;This is a great tool to quickly find potential problem spots within the solution, so you can identify the components that would likely benefit the most from some refactoring and additional testing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-1428366297806342093?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/1428366297806342093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=1428366297806342093' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1428366297806342093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1428366297806342093'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/11/sourcemonitor-for-net-code-quality.html' title='SourceMonitor for .NET code quality metrics'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6610257601450734885</id><published>2009-10-11T20:40:00.000-07:00</published><updated>2009-12-20T20:17:43.384-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='waterfall'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Agile vs. Waterfall: The NetFlix analogy</title><content type='html'>The following is a fable to compare traditional waterfall projects to agile/lean projects...&lt;br /&gt;&lt;hr /&gt;&lt;blockquote&gt;Announcing my new movie rental service, NetPix! Here's how it works.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You get 60 movies each year, delivered on DVD in the mail.&lt;/li&gt;&lt;li&gt;When you first sign up, choose 60 movies you want. When you finish choosing your movies, we'll confirm that it's really the list you want.&lt;/li&gt;&lt;li&gt;Over the next 12 months, NetPix will tirelessly collect your 60 DVDs, and at the end of the year, we'll deliver all 60 movies to your home!&lt;/li&gt;&lt;li&gt;Price: $60 per year (just $5 per month!) &lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The fine print:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;DVDs will be delivered 12 months after you complete and confirm your list of 60 movies.&amp;nbsp; &lt;br /&gt;&lt;/li&gt;&lt;li&gt;After confirming your movie list, any changes you make to the list in the first 6 months will incur a charge of $2 per movie.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Any changes in your movie list during months 7-12 will result in a charge of $3 per movie, and a delivery delay of 1 month per movie changed. (We have to lock down the list at some time, after all!) &lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Now suppose I order, say "Weekend at Bernie's", both I and II, on the advice of my high school buddy, Steve. A year later, I watch "Weekend at Bernie's" (the first one), and I hate it! Steve usually has good taste, so I trusted him, but he must have been smoking crack when he recommended this one. I don't even wanna watch "Weekend at Bernie's 2", but I already paid for it and it's sitting in a cardboard box next to my DVD player. Damn!&lt;br /&gt;&lt;br /&gt;And to top it off, eight months into the year the studio released a remastered, Director's cut, collector's edition of my all-time favorite movie "Blazing Saddles", with never-before-seen outtakes! If I want that it'll cost me an extra $3 (5% more) and I'll have to wait an extra month for &lt;i&gt;all &lt;/i&gt;of my DVDs! Double damn!&lt;br /&gt;&lt;br /&gt;Would you buy this? "No," you say? Well why not? This is the way software customers have been buying software for decades! Customers have to figure out everything we want before we even start working on it, and they can't change their minds later without paying dearly for it!&lt;br /&gt;&lt;br /&gt;Alas, much to the chagrin of NetPix, along comes an upstart disruptor, NetFlix! Now customers can get the features (DVDs) they want every month instead of waiting a year! And they can change their priorities (movie list) at any time! And they can watch "Weekend at Bernie's I" before deciding if they want to invest 90 irrecoverable minutes of their lives watching the sequal. The demise of NetPix is written on the wall!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6610257601450734885?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6610257601450734885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6610257601450734885' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6610257601450734885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6610257601450734885'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/10/agile-vs-waterfall-netflix-analogy.html' title='Agile vs. Waterfall: The NetFlix analogy'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6569957628144760251</id><published>2009-09-29T12:57:00.000-07:00</published><updated>2009-09-29T12:59:58.416-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='retrospectives'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>More tips for better retrospectives</title><content type='html'>At last night's &lt;a href="http://www.agiledenver.org/"&gt;Agile Denver&lt;/a&gt; meeting, I facilitated an open space discussion and one of the topics was conducting more effective retrospective meetings. The group had some great insights and advice that I'd like to share here. Thanks to everyone who participated!&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt; Rotate responsibility for facilitating the retrospective. Get fresh perspectives and creative ideas. Don't let it get stale.&lt;/li&gt;&lt;li&gt;Hold your retrospective over a happy hour.&lt;/li&gt;&lt;li&gt;Read &lt;a href="http://www.amazon.com/Agile-Retrospectives-Making-Teams-Great/dp/0977616649/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1254253793&amp;amp;sr=8-1"&gt;Agile Retrospectives&lt;/a&gt; by Esther Derby and Diana Larsen&lt;/li&gt;&lt;li&gt;Instead of asking "what were the problems", ask "what could we have done better."&lt;/li&gt;&lt;li&gt;Follow through with an action plan. If you have lots of improvements, rank them and work on the top priority issue.&lt;/li&gt;&lt;li&gt;Have a virtual buyer/seller transaction at the end of your iteration to determine if stakeholders are willing to "pay" for what you delivered.&lt;/li&gt;&lt;li&gt;Do shorter iterations - fewer issues to discuss&lt;/li&gt;&lt;li&gt;Set the stage with expectation that it's not about blaming. Participants must describe the effect of the problem, not the person they believe caused the problem.&lt;/li&gt;&lt;li&gt;Take collective team ownership over problems. It's the team's job to help every person on the team.&lt;/li&gt;&lt;li&gt;Start the meeting by having participants write issues on cards, then post them on a wall and group them. This can effectively elicit input from shy people who are hesitant to speak in a group.&lt;/li&gt;&lt;li&gt;Ask creative questions, like "if this iteration were a car, what model would it be?"&lt;/li&gt;&lt;li&gt;Keep a retrospective board where team members can at any time write down issues they want to discuss in the retro.&lt;/li&gt;&lt;li&gt;Is there an elephant in the room that nobody wants to talk about? If so, get it out!&lt;/li&gt;&lt;li&gt;End on a positive note. Everyone must say one positive thing.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6569957628144760251?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6569957628144760251/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6569957628144760251' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6569957628144760251'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6569957628144760251'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/09/more-tips-for-better-retrospectives.html' title='More tips for better retrospectives'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-8430577122598587089</id><published>2009-09-22T07:26:00.000-07:00</published><updated>2009-09-22T07:26:50.893-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Open source agile project management tools</title><content type='html'>I authored a comparison of five open source agile project management tools: Agilefant, IceScrum, Agilo, eXPlainPMT, and XPlanner. The article is posted on &lt;a href="http://olex.openlogic.com/wazi/2009/comparing-open-source-agile-project-management-tools/"&gt;Open Logic's Wazi site&lt;/a&gt;. I welcome your feedback!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-8430577122598587089?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/8430577122598587089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=8430577122598587089' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8430577122598587089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8430577122598587089'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/09/open-source-agile-project-management.html' title='Open source agile project management tools'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4616594474461509078</id><published>2009-08-19T08:54:00.000-07:00</published><updated>2009-08-19T10:53:30.752-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Seven tips for distributed agile teams</title><content type='html'>Agile methods were originally intended for small co-located teams. Can they work for geographically distributed teams? In fact, due to the challenges of working with distributed teams, I believe the fast feedback and validation afforded by agile methods provide a distinct advantage for distributed teams because problems are found sooner. I have experienced great success with teams split between the US, India and China. In this post I share some tips on making distributed agile teams succeed.&lt;br /&gt;&lt;br /&gt;For a more in-depth treatment of this topic, see my &lt;a href="http://www.properosolutions.com/resources.html"&gt;presentation on Distributed &amp;amp; Offshore Agile Teams&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;1. Prepare your collaboration infrastructure&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;You may need phone, web, &amp;amp; video conferencing, wiki/intranet, source control, VPN, remote desktop tools, SFTP for large file transfer, testing and integration environments, and project management software. Obtain high quality full-duplex speaker phones, headsets, and webcams.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;2. Have an agile coach or agile champion at each location&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;In addition to providing agile training to every team member, you want ongoing guidance at each location from an experienced agile practitioner who can establish an effective team culture.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;3. Be extra disciplined in your technical practices&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The technical practices from XP (pair programming, TDD, refactoring, continuous integration, coding standard, simple design) are fundamental for any high-performing agile team, but when people are scattered across the globe, they become even more important. These practices ensure that quality is built in from the start, they enable knowledge sharing, and ensure rapid feedback.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;4. Do cross-location travel throughout the project&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Get the entire team together in one location at the beginning of the project and again at each release. Establish a rotating travel schedule so each team member visits another location for 1-2 iterations. This face time will reap big returns in establishing trust, sharing knowledge, and maintaining an effective team culture.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;5. Maximize opportunities for real-time communication and collaboration&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Even with a time zone difference, find at least a few hours every day when all team members are available by IM &amp;amp; phone for real-time communication. Share time zone burdens fairly between locations. Hold daily stand-ups and iteration planning meetings with the entire team using video and web conferencing. Many studies have shown that the majority of information shared in a conversation is non-verbal, so use video chat &amp;amp; conferencing often. Google, Yahoo and Skype offer free 2-way video, and Paltalk has free video for up to 10 parties. Webex and many other commerical services offer multi-party video conferencing.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;6. Facilitate cross-cultural communication: speak slowly, avoid jargon and idioms&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If your team members don't all share the same primary language and culture, be sure that everyone speaks slowly and avoid using jargon, idioms or expressions - they usually don't translate well. Announce your name each time you speak on a conference call: "This is Sally..." Start each meeting with a virtual seating chart as described by Jean Tabaka in her book &lt;span style="font-style: italic;"&gt;Collaboration Explained&lt;/span&gt;. Appoint a facilitator to ensure each meeting is effective.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;7. Find effective, lightweight tools for distributed collaboration&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Intranets, wikis and source control systems allow easy information sharing. Virtual white boards such as scriblink, skrbl, and dabbleboard enable remote collaboration. Many web conferencing systems such as ReadyTalk have drawing tools allowing free-form annotation of a shared screen. Instant messaging supports both one-on-one and group chat. VNC, remote desktop and similar tools even allow cross-continent pair programming. For iteration planning and task tracking, share photos or video of your physical task board, or make the leap to an electronic tool. There are numerous open source agile tools plus commercial tools, most with trial or free editions, but choose a lightweight tool unless you truly need the more advanced features.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4616594474461509078?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4616594474461509078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4616594474461509078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4616594474461509078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4616594474461509078'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/08/seven-tips-for-distributed-agile-teams.html' title='Seven tips for distributed agile teams'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4900002538751862259</id><published>2009-08-17T14:00:00.000-07:00</published><updated>2009-08-18T07:34:00.883-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='retrospectives'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Eight tips for better retrospectives</title><content type='html'>I am often surprised at how many self-described agile teams don't hold retrospective meetings every iteration. For those team that do hold retrospectives, I often find they have a lot of room for making them more effective. An attitude of continuous improvement is fundamental to successful teams, and the retrospective is the primary mechanism for improving, so it follows that effective retrospectives are one of the key elements of a good agile team.&lt;br /&gt;&lt;br /&gt;In this post, I offer five tips on how to conduct more effective retrospectives.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;1. Review notes &amp;amp; actions from the previous retrospective&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is step #1 in the retrospective, which of course implies that you must first record notes from your retrospective meetings. (See tip #8) Use a projector to display notes &amp;amp; action items from the past meeting. Keep it short - five minutes at most. If you have remote team members, use a webinar and/or video conferencing so everyone sees the same screen. If you find your team bringing up the same problems as in previous iterations, ask why - five whys, actually (see tip #5).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;2. Ask what problems, successes and opportunities you have with the team, the product, and the process&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The facilitator will ask the team, "What did we learn about the team, the product, and the process? What were our problems, successes and opportunities to further optimize?" Capture these items in a grid as shown below. Use a white board if everyone is in the same room, or take notes in a wiki or other electronic document - preferably the same one you'll use to archive your retrospective notes (See tip #8).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;table border="1" bordercolor="black"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;Problems&lt;/td&gt;&lt;td&gt;Successes&lt;/td&gt;&lt;td&gt;Opportunities&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Team&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Product&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Process&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;3. Let each team member speak without discussion&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The facilitator gives each team member the opportunity to speak &lt;span style="font-style: italic;"&gt;without &lt;/span&gt;any group discussion; no one else is allowed to comment on anyone's opinion - yet. Only clarifying questions are allowed at this time. Discussion will come later when the team is discovering the root causes of problems. (See tip #5)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;&lt;/span&gt;&lt;span style="font-size:180%;"&gt;4. Vote on the most important items to take action on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You may not be able to immediately address every concern raised in the meeting, but you certainly need to prioritize them. Every team member is allowed to vote for 3 items that he/she believes are most important to take action on. Tally the votes and add the items to your process improvement backlog based on priority.  Note that some items may not require any further action. Even successes may need action however; for example, a good pattern or practice may need to be documented in the Definition of Done or added to the coding standard.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;5. Use "five whys" to discover the root cause of problems&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;For each of the highest-priority problems identified, the facilitator will ask "why did that happen?" Once an answer is given, ask the same question again, repeating the process five times. This should lead you to the true root cause of the problem.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;6. Create an action plan for your top priority items&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For each top priority item, decide what to do, and who can do it - which may be more than one person. Any actions requiring work by team members should be planned and assigned during iteration planning. (See tip #7) Actions assigned to members outside the team must be coordinated and scheduled. Of course the action plans should address the root causes of problems, not just the symptoms.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;7. Explicitly allocate time for improvement actions&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Maintain a backlog of improvement actions. At each iteration planning, pull the top improvement actions into the iteration. Improvement items should be prioritized along with product backlog items based on overall value to the organization, but teams should reach an agreement with the product owner on a percentage of their time to be spent on improvements.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;8. Record your retrospectives &amp;amp; actions&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Maintain two artifacts: (1) a process improvement backlog and (2) retrospective notes. The notes may be captured in real-time during the meeting using a wiki, intranet, or other electronic document. Record just enough information to support a review at the next retrospective (tip #1). Appoint someone other than the facilitator to take notes. For the process improvement backlog you may use the same tool you use for product backlogs; this backlog can be owned by the scrum master.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4900002538751862259?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4900002538751862259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4900002538751862259' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4900002538751862259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4900002538751862259'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/08/eight-tips-for-better-retrospectives.html' title='Eight tips for better retrospectives'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4291559408878729167</id><published>2009-07-28T12:55:00.000-07:00</published><updated>2009-07-28T13:24:25.147-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='metrics'/><title type='text'>Metrics for agile projects</title><content type='html'>Yesterday's Agile Denver meeting was a panel discussion on metrics for Agile Projects. In the end most of the discussion was about software metrics in  general, and the discussion produced some good insights that apply to all software projects, not just agile projects. Some highights:&lt;br /&gt;&lt;br /&gt;Kevin Sheen from Perficient said you need to know what's important to your customers: deadline, budget, scope, requirements flexibility, product scalability, etc. Use that to decide what metrics are important.&lt;br /&gt;&lt;br /&gt;Paul Rayner explained that diagnostic metrics such as code complexity should be initiated by the team, owned by the team, and not reported upward in the organization. He used the analogy of a hospital patient who has his heart rate, temperature, &amp;amp; blood pressure measured. Those metrics are used in combination by doctors and nurses as diagnostic measures, but not reported up to the hospital's board of directors. The problem is that most managers don't understand those metrics and managers generally shouldn't care about them, either. The metrics reported upward to management should be ones needed to make management decisions - about budgeting, schedule, scope. Kevin Sheen pointed out that generally when higher level management wants to "open the hood" and look at these metrics it's because they don't trust that the development team will meet it's estimates, and additional metrics give them a false sense of control over projects.&lt;br /&gt;&lt;br /&gt;Brian Boelsterli said that a project's reporting metrics (distinguished from diagnostic metrics) should be clearly rolled up to corporate KPIs. Each project should be able to demonstrate how it is contributing to those KPIs.&lt;br /&gt;&lt;br /&gt;Several panelists and audience members spoke about that potential dysfunction that can result when diagnostic metrics are used as carrots or sticks to measure or evaluate individual team members. To avoid dysfunction diagnostic metrics should be chosen by and valued by developers. Even when measured at the team level, compensating metrics should be used: for example if you collect a productivity metric then you should also collect quality metrics so that people don't sacrifice quality for apparent productivity.&lt;br /&gt;&lt;br /&gt;Paul Rayner said that he likes the following diagnostic metrics at the development team level:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Cyclomatic complexity - average per namespace and per method&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Total lines of code - monitor the trend over time. Should level off or decrease with refactoring.&lt;/li&gt;&lt;li&gt;Coupling - to find classes that have too many dependencies&lt;/li&gt;&lt;/ol&gt;Richard Lawrence mentioned that he uses Coderush's "maintainability" metric. Visual Studio has it's own maintainability metric which uses a combination of other metrics to arrive at an overall score.&lt;br /&gt;&lt;br /&gt;These technical metrics in my view are very valuable indicators - they help you decide when and where a qualitative analysis is required. For example, if you want to know where to get the most bang for your buck on refactoring, look for methods with high cyclomatic complexity or classes with high coupling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4291559408878729167?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4291559408878729167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4291559408878729167' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4291559408878729167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4291559408878729167'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/07/metrics-for-agile-projects.html' title='Metrics for agile projects'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-1597531598319671978</id><published>2009-07-08T13:42:00.000-07:00</published><updated>2009-07-08T13:43:34.239-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Survey on distributed agile teams</title><content type='html'>The User Experience League has created a survey for geographically distributed agile teams. If you have experience in this area, please respond to the survey &lt;a href="https://www.surveymonkey.com/s.aspx?sm=jWGOF2TRjRhADtR7r6hZrA_3d_3d"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-1597531598319671978?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/1597531598319671978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=1597531598319671978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1597531598319671978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1597531598319671978'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/07/survey-on-distributed-agile-teams.html' title='Survey on distributed agile teams'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6824589859322499400</id><published>2009-06-29T13:52:00.001-07:00</published><updated>2009-06-29T13:55:44.613-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='games'/><category scheme='http://www.blogger.com/atom/ns#' term='learning'/><title type='text'>Agile games &amp; exercises</title><content type='html'>Tom Perry has compiled a list of games and exercises for teams on his Agile Tools blog. He has links to a variety of exercises to teach not only agile &amp;amp; lean principles &amp;amp; practices, but also leadership concepts and team building. You can read his blog post &lt;a href="http://agiletools.wordpress.com/2009/06/22/learning-games/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6824589859322499400?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6824589859322499400/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6824589859322499400' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6824589859322499400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6824589859322499400'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/06/agile-games-exercises.html' title='Agile games &amp; exercises'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7730256884681929928</id><published>2009-06-15T11:12:00.000-07:00</published><updated>2009-06-17T08:18:22.845-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performace evaluation'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><category scheme='http://www.blogger.com/atom/ns#' term='management'/><category scheme='http://www.blogger.com/atom/ns#' term='leadership'/><title type='text'>Execution: The Discipline of Getting Things Done</title><content type='html'>Here is my synopsis of the book &lt;span style="font-style: italic;"&gt;Execution: The Discipline of Getting Things Done&lt;/span&gt; by Larry Bossidy &amp;amp; Ram Charan.&lt;br /&gt;&lt;br /&gt;"To understand execution, you have to keep three key points in mind:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Execution is a discipline [akin to Six Sigma], and integral to strategy&lt;/li&gt;&lt;li&gt;Execution is the major job of the business leader&lt;/li&gt;&lt;li&gt;Execution must be a core element of an organization's culture"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Every business has three core processes which the business leader must not delegate, but be deeply engaged in and build the system and discipline for execution. They are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The people process (the most important of the three)&lt;/li&gt;&lt;li&gt;The strategy process&lt;/li&gt;&lt;li&gt;The operations process&lt;/li&gt;&lt;/ol&gt;The 3 core processes must be tightly linked together, and the leader must ensure that high-level objectives are translated into realistic, concrete steps for action in order to be executed.&lt;br /&gt;&lt;br /&gt;There are 3 building blocks of execution:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The leader's seven essential behaviors&lt;/li&gt;&lt;li&gt;Creating the framework for cultural change&lt;/li&gt;&lt;li&gt;Having the right people in the right place (no leader should delegate this job)&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:180%;"&gt;Building block 1: The leader's seven essential behaviors&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 1: Know your people and your business. &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Meet as many people in the organization as you can. Give your view on the state of the business but spend more time listening to them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 2: Insist on realism&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Create a culture where openness and honesty are rewarded. Compare your company's goals with other companies as a measure of realism.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 3: Set clear goals and priorities. Focus on no more than 4 priorities.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 4: Follow through&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;At the end of every meeting, establish a schedule for follow-up meetings with milestones to be met at each one.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 5: Reward the doers&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;To change people's behaviors, link rewards to performance and do it transparently. Reward people for performance against objectives &lt;span style="font-style: italic;"&gt;and for their behaviors&lt;/span&gt;; for example, reward collaboration. Be sure to regularly record specific instances of people's behaviors, both positive and negative.&lt;br /&gt;&lt;blockquote&gt;"Differentiation [in rewards] is the mother's milk of building a performance culture."&lt;/blockquote&gt;[My commentary: I am deeply skeptical that a performance evaluation process can be designed to eliminate the dysfunction and unintended incentives they often breed. I've written more on this topic in &lt;a href="http://agileadvocate.blogspot.com/2009/06/performance-evaluations.html"&gt;this blog post&lt;/a&gt;. I agree with the authors that any such system must evaluate people's behaviors, not just their performance against objectives, but even so there is great potential for mistrust, fear, and promoting competition over collaboration. I also believe it's critical that people receive constructive feedback on their performance much more often than once per year. I recommend bi-weekly reviews if you truly want people to improve their performance quickly.]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 6: Expand people's capabilities through coaching&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Teach others how to get things done and how to lead. Create a deep bench of leadership succession within the organization.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Behavior 7: Know yourself&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A leader must have the emotional fortitude to "accept and deal with your own weaknesses", accept differing points of view, deal with conflict, and "be firm with people who aren't performing".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Building Block 2: Creating the framework for cultural change&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A company culture consists of it's "hardware" (org structure, compensation structure, communication systems, etc.) and it's "software": values, beliefs, and norms of behavior.&lt;br /&gt;&lt;br /&gt;How to create a culture of execution:&lt;br /&gt;&lt;blockquote&gt;First you tell people clearly what results you're looking for. Then you discuss how to get those results, as a key element of the coaching process. Then you reward people for producing the results. If they come up short, you provide additional coaching, withdraw rewards, give them other jobs, or let them go.&lt;/blockquote&gt;A company culture is based on the collective beliefs of it's employees, and their behaviors are their beliefs turned into action. If people believe that they are in competition with their peers for rewards, they will act accordingly. If they believe people are not held accountable, then they won't expect to be held accountable either. The behaviors exhibited and tolerated by leaders trickle down through the organization.&lt;br /&gt;&lt;br /&gt;My commentary: The authors, perhaps unintentionally, have revealed the difficulty with traditional performance evaluations here; they put employees in competition with one another to get the biggest slice of the rewards pie, reducing collaboration. Perhaps by adding collaboration and similar behavioral criteria, rather than solely results-based criteria, to the evaluation process, this effect can be mitigated. But can it be eliminated?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Building Block 3: Having the right people in the right place&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This job can't be delegated. Larry Bossidy spent 30-40% of his time in the first 2 years at Allied Signal hiring &amp;amp; developing the leadership team. Developing leaders should be a core competency and the company should fill most leadership positions from within. Provide people with various job opportunities matched to their skill sets and potential.&lt;br /&gt;&lt;br /&gt;It is critical to know the 3-4 &lt;span style="font-style: italic;"&gt;specific &lt;/span&gt;key skills &amp;amp; qualities required for a job and to ensure the person has those skills via interviews and reference checks. Specificity is important. For example, the specific skills for a Chief Marketing Officer might be: (1)  ability to select the right mix of promotion, advertising, and merchandising; (2) proven sense of what advertising is effective; (3) ability to execute the marketing program with the right timing and sequence in coordination with new product launches.&lt;br /&gt;&lt;br /&gt;Determine how the candidate accomplished particular results. Did she sacrifice long-term success to achieve short-term numbers? Did he succeed due to luck? Did she fail to meet an objective due to outside circumstances but still do better than others in the same situation?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The People Process&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The people process is the most important of the three core processes, and it must be tightly integrated with the strategy and operations processes. Determine your talent needs over time - they may be different in the future. Know the number and types of people you need in the short, medium and long terms based on strategic milestones. Develop a leadership pipeline with retention risk analysis and succession depth analysis.&lt;br /&gt;&lt;br /&gt;When evaluating a person, meet with five other people to &lt;span style="font-style: italic;"&gt;candidly&lt;/span&gt; discuss the person's strengths and weaknesses. (My commentary: Note that this requires a culture of trust where mistakes are treated as learning opportunities.) Determine when someone can improve via coaching and/or a different role.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The Strategy Process&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The strategy must be linked to the people process and operations process. A strong strategy addresses the following questions:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;What is the assessment of the external environment?&lt;/li&gt;&lt;li&gt;How well do you understand the customers and markets?&lt;/li&gt;&lt;li&gt;What is the best way to grow the business profitably, and what are obstacles to growth?&lt;/li&gt;&lt;li&gt;Who is the competition?&lt;/li&gt;&lt;li&gt;Can the business execute the strategy?&lt;/li&gt;&lt;li&gt;Are the short term and long term balanced?&lt;/li&gt;&lt;li&gt;What are the important milestones for executing the plan?&lt;/li&gt;&lt;li&gt;What are the critical issues facing the business?&lt;/li&gt;&lt;li&gt;How will the business make money on a sustainable basis?&lt;/li&gt;&lt;/ol&gt;The strategy review meeting should be interactive, lively, open and creative. This requires a culture of trust that values and rewards honesty. The business leader must regularly follow through to ensure execution toward the strategic goals.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;The Operations Process&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The operations process must be tightly linked to the people &amp;amp; strategy processes. It "breaks long term goals in to short term targets", specifying &lt;span style="font-style: italic;"&gt;how &lt;/span&gt;to execute &amp;amp; achieve results. It should include plans for product, marketing, sales, manufacturing, productivity improvement, and contingencies. It is critical to have an open and robust dialogue and debate on the the assumptions underlying the operations process. The budget should be prepared based on the operations plan, not vice-versa. Use quarterly reviews to update the operations plan.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7730256884681929928?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7730256884681929928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7730256884681929928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7730256884681929928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7730256884681929928'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/06/execution-discipline-of-getting-things.html' title='Execution: The Discipline of Getting Things Done'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4371354601643809651</id><published>2009-06-15T09:02:00.001-07:00</published><updated>2009-06-15T09:18:41.854-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='performace evaluation'/><category scheme='http://www.blogger.com/atom/ns#' term='mangement'/><title type='text'>Performance Evaluations</title><content type='html'>What do performance evaluations have to do with agile &amp;amp; lean software? As a core component of an organization's culture, they have a huge impact on the way individuals, teams and the whole company operates. I found a great blog post on this topic entitled &lt;a href="http://kallokain.blogspot.com/2009/06/performance-evaluations-business.html"&gt;Performance Evaluations, Business Strategy, and Agile Methodologies&lt;/a&gt;. It discusses both the proponents (e.g. Jack Welch) and opponents (e.g. Deming) of the "rank and yank" evaluation process.&lt;br /&gt;&lt;br /&gt;In an accompanying &lt;a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;amp;discussionID=4042107&amp;amp;gid=37631&amp;amp;trk=EML_anet_qa_ttle-cThOon0JumNFomgJt7dBpSBA"&gt;discussion on LinkedIn&lt;/a&gt; (Agile Alliance group), the blog author Henrik Martensson writes:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Two things to consider are that for rewards to be effective, the feedback loop must be short, and the rewards must be linked to behavior, not results. This is basic behavioral science, but most corporate reward systems miss it. Lean is an exception. Lean companies explicitly use Management By Means (MBM) instead of Management By Results (MBR). MBR practically guarantees dysfunctional behavior, regardless of the reward system used.&lt;/blockquote&gt;&lt;br /&gt;No doubt the controversy will continue, but I hope the discussion will cause leaders to challenge their assumptions about performance appraisals and develop better ways for improving the &lt;span style="font-style: italic;"&gt;system&lt;/span&gt; used to deliver value to customers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4371354601643809651?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4371354601643809651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4371354601643809651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4371354601643809651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4371354601643809651'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/06/performance-evaluations.html' title='Performance Evaluations'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-2149704712455322114</id><published>2009-05-19T14:38:00.000-07:00</published><updated>2009-05-20T07:48:23.723-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='estimation'/><title type='text'>Team Estimation Game</title><content type='html'>Estimation: wouldn't it be nice if we didn't have to do it? Well, maybe we don't. In a mature agile or lean/kanban development system where prioritized value is flowing at an acceptable rate, and in a context where knowing both the scope and date of a delivery is not necessary, estimates don't provide much if any value. So don't blindly assume that you must estimate your features/stories. And if you do evaluate the need for estimates and determine that they are worthwhile, you need to determine how much value they provide so you can be sure the effort spent estimating is commensurate with that value.&lt;br /&gt;&lt;br /&gt;One of the best-known ways of estimating user stories is planning poker, first described by Mike Cohn (as far as I know anyway). I've used planning poker very effectively, but I recently came across an alternative approach: the Team Estimation Game, originally created by Steve Bockman and described &lt;a href="http://www.netobjectives.com/files/team-estimation-game.pdf"&gt;here&lt;/a&gt; by NetObjectives (you may need to register to see the link).&lt;br /&gt;&lt;br /&gt;In a nutshell, the team starts with a stack of cards containing stories or features. Over the course of the game, story cards are physically arranged linearly according to size: small stories on the left  side of the board/table, and larger stories farther to the right. Stories of the same or similar size are stacked together in a group. Taking turns, each member of the team may either (1) place the top card on the stack in the place where he/she believes it should go, or (2) move a card previously placed by another team member, explaining the reason why it was moved. At the end of the game, you can assign story points to each group of cards.&lt;br /&gt;&lt;br /&gt;One of the strengths of this game is the emphasis on relative sizing; it makes it more easy and obvious to compare all the stories you're estimating. I also like the tactile nature of the paper cards and the physical involvement of people moving and interacting versus sitting still like they would in planning poker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-2149704712455322114?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/2149704712455322114/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=2149704712455322114' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2149704712455322114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2149704712455322114'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/team-estimation-game.html' title='Team Estimation Game'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5691176655025902738</id><published>2009-05-19T08:02:00.000-07:00</published><updated>2009-05-19T08:13:36.642-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Diarised - tool to pick a meeting time</title><content type='html'>Is it a challenge to find a meeting time that works for your whole team? If your team is distributed and not all using the same calendar system (e.g. Microsoft Exchange Server), you may not be able to view everyone's calendar. Enter &lt;a href="http://www.diarised.com"&gt;www.diarised.com&lt;/a&gt; - a free online site where you can propose multiple meeting times and all the participants can select the dates &amp;amp; times they prefer. As organizer, you can then see which times receive the most votes.&lt;br /&gt;&lt;br /&gt;A few things I don't like about it:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;You must enter each person's name and email address individually. There is no way to paste in a list of multiple email addresses.&lt;/li&gt;&lt;li&gt;There is no timezone information - receipts will need to know what timezone the organizer meant.&lt;/li&gt;&lt;/ul&gt;Can't complain for a free service, though.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5691176655025902738?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5691176655025902738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5691176655025902738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5691176655025902738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5691176655025902738'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/diarised-tool-to-pick-meeting-time.html' title='Diarised - tool to pick a meeting time'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-3872178686372297445</id><published>2009-05-15T13:14:00.000-07:00</published><updated>2010-01-21T08:52:46.343-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Comparing Scrum and Kanban</title><content type='html'>Henrik Kniberg has posted a good comparison of Scrum and Kanban &lt;a href="http://www.crisp.se/henrik.kniberg/Kanban-vs-Scrum.pdf"&gt;here&lt;/a&gt;. Thanks, Henrik!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-3872178686372297445?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/3872178686372297445/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=3872178686372297445' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3872178686372297445'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3872178686372297445'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/comparing-scrum-and-kanban.html' title='Comparing Scrum and Kanban'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5302988535847437948</id><published>2009-05-10T12:51:00.000-07:00</published><updated>2009-05-10T12:54:44.576-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Summary of Lean Kanban 2009 talks</title><content type='html'>Mike Cottmeyer was busy capturing notes on his blog during the Lean Kanban 2009 conference. See his posts from May 6-8, 2009 at &lt;a href="http://www.leadingagile.com/"&gt;www.leadingagile.com&lt;/a&gt; to get a summary of all the great presentations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5302988535847437948?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5302988535847437948/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5302988535847437948' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5302988535847437948'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5302988535847437948'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/summary-of-lean-kanban-2009-talks.html' title='Summary of Lean Kanban 2009 talks'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4860267116944257769</id><published>2009-05-06T13:31:00.000-07:00</published><updated>2010-01-21T08:53:09.640-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Lean Kanban Conference</title><content type='html'>Follow the Lean Kanban conference in Miami in real time on Twitter with the hash tag #lk2009. Some great insights from lean thought leaders.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4860267116944257769?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4860267116944257769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4860267116944257769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4860267116944257769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4860267116944257769'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/lean-kanban-conference.html' title='Lean Kanban Conference'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6025396617484469643</id><published>2009-05-04T14:31:00.000-07:00</published><updated>2009-05-04T14:34:32.152-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Great summary of kanban</title><content type='html'>Thanks to a tweet from Brian Marick, I found &lt;a href="http://www.agileproductdesign.com/blog/2009/kanban_over_simplified.html"&gt;this fantastic summary of the Kanban system&lt;/a&gt; for software development posted by Jeff Patton. Jeff not only succinctly describes kanban but also sets it in the context of agile methodology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6025396617484469643?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6025396617484469643/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6025396617484469643' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6025396617484469643'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6025396617484469643'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/great-summary-of-kanban.html' title='Great summary of kanban'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5219882472637817618</id><published>2009-05-01T08:27:00.000-07:00</published><updated>2009-05-01T09:21:30.166-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Lean Thinking: an executive summary</title><content type='html'>&lt;span style="font-size:100%;"&gt;When reading a book I like to boil it down to it's essentials and write a summary. Here is my summary of &lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;Lean Thinking: Banish Waste and Create Wealth in Your Corporation&lt;/span&gt;&lt;span style="font-size:100%;"&gt;, by James P. Womack and Daniel T. Jones.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;The 5 lean principles:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Define value&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Identify the value stream and eliminate waste&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Flow&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Pull&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Perfection&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Define value&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;"The critical starting point for lean thinking is value", which is defined by the customer, in terms of a product and/or service that meets the customer's need.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;"Lean thinking therefore must start with a conscious attempt to precisely define value in terms of specific products  with specific capabilities offered at specific prices through a dialogue with specific customers." Align the organization toward products with dedicated product teams.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Producers tend to continue making what they already are making, and customers tend to ask for products they are already getting, or minor variations thereon. Challenge this way of thinking to discover what customers truly need and want. Example: car manufacturers make cars, dealers sell cars, and customers ask for cars; however the actual product the customer needs is personal mobility. How can the extended enterprise better deliver personal mobility to customers?&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Determine the target cost of the product based on the resources required if all the muda (waste) is removed from the process; work toward achieving the target cost, allowing for reduced prices and/or better product features - leading to higher profit.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Identify the Value Stream and eliminate waste&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;The value stream is all activities necessary to deliver a product to customers&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Problem solving: Concept to design and production&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Info management: order taking, scheduling, delivery&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Physical transformation of raw materials to delivered product&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Identify valuable activities vs. waste (&lt;span style="font-style: italic;"&gt;muda&lt;/span&gt;)&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Type 1 muda: create no value but unavoidable with current technology&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Type 2 muda: create no value and are avoidable&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Example value stream: a can of soda. The stream is dominated by the production of the aluminum can. It takes 319 days to deliver a can of soda to a customer, and only 3 hours of that time is spent actually adding value to the product. The product-in-progress spends more than 99% of its time waiting for the next processing step and being transported - rather than flowing toward completion.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;Flow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;After eliminating waste in the value stream, make the value-added steps flow together continuously, with no stoppages or rework.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Just-in-time production&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Eliminate specialized departments and batches of work done in those departments&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Instead of having large, high-speed machines and putting all machines of the same type in one location, use smaller machines and put all the different machines required to produce a single product into closely located "cells" in the exact sequence required. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;focus on the end product itself and the steps required to complete a single product - via dedicated, cross-functional product teams&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Ignore existing boundaries between companies, departments, and individual roles to envision a lean enterprise focused on "removing all impediments to the continuous flow of the specific product."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Redesign processes and tools to eliminate rework, scrap and stoppages so production of the product can flow continuously&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;Pull&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Deliver only what the customer wants, when the customer asks for it, rather than pushing products out and hoping customers want them&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;"No one upstream should produce a good or service until the customer downstream asks for it."&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Downstream activities use kanban (simple signals) to indicate to upstream activities when more is needed.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Right-size your tools and process so you don't need to produce massive quantities of intermediate parts; be able to switch tools and machines so they can be quickly adjusted (in minutes) to produce different parts or product.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Example of flow: Bumper Works (a Toyota supplier) reduced time to produce a finished product from 28 days to 2 days, with much higher quality, by reducing batch sizes, using&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Consider the counter-example of a printed book. Publishers produce a batch of books based on forecasted demand  to fill the sales pipeline. Result: Long delay between orders and delivery, product shortages, or over-production.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;Perfection&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The improvements process never ends: you must always strive to offer a better product while reducing waste.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Do kaikaku - radical transformation - to eliminate the largest sources of waste, and then do kaizen - continuous incremental improvement - to move toward perfection&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;"Form a vision, select the two or three most important steps to get you there, and defer the other steps until later." Keep your efforts focused for better results.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Don't settle for merely being better than your current competition; eventually someone will come along and beat you.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Transparency across the entire value stream (suppliers, integrators, employees, distributors, etc.) is required to discover opportunities for improvement&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Case studies&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;The book includes a series of case studies of companies that made the lean transformation, from small family owned operations to huge companies in the US, Germany, and Japan. The case studies focus on manufacturing, but also include product development and order taking aspects of the business.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Revolution in Product Development process at Lantech&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;How does lean thinking apply to product development? Lantech made a single person clearly accountable for the success of a product over it's entire lifetime (profitability and customer satisfaction). The annual planning process ranked the major projects for the year. Lantech created dedicated (full time), cross-functional development teams for the year's top 2 projects. Teams included marketing, mechanical engineering, electrical engineering, manufacturing engineering, purchasing, and production (including hourly workers from the kaizen team), co-locating all team members.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Wiremold&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Manufactures wire routing systems and power protection devices&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;1400 employees in USA and Canada&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Unionized workforce (Int'l Brotherhood of Electrical Workers)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Tried TQM (Total Quality Management) and JIT without success before adopting lean&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Results of Wiremold's lean adoption over 5 years (1990 to 1995):&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Sales per employee from$90,000 to $190,000&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Time to produce avg product from 35 days to 1.5 days&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Product development time from 3 years to 5 months&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Space required reduced by 50%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Profit increased 500%&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:130%;"&gt;Pratt &amp;amp; Whitney, the jet engine manufacturer&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;29,000 employees and $5.8 billion revenue&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;1993 loss of $262 million, 1995 profit of $380 million, even with sagging sales&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Throughput time fell from 18 months to 6 months&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Inventory reduced by 70%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Quality problems reduced by 50%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Unit costs for parts reduced by 20% in real dollars even as production volume decreased 50%&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Porsche (Germany)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Combined lean thinking with German technik - the concept of superior technology&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Porsche's results from 1991 to 1997:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Product development time reduced from 7 years to 3 years&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Throughput time reduced from 6 weeks to 3 days (from welding to finished car)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Inventory reduced from 17 to 3.2 days supply on hand&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Effort to assemble Porsche 911 or its successor: from 120 hours to 45 hours&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Defects per vehicle reduced by 75%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Profits in DM: 1991: 17 M; 193: LOSS of 239 M; 1995: 2 M&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;  &lt;br /&gt;&lt;span style="font-size:130%;"&gt;Showa manufacturing (Japan)&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Makes boilers and radiators, using large batches with long intervals between tool changes&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Invited Taiichi Ohno from Toyota to help in 1983&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;First step was to "convert coil making and assembly from a batch process to single-piece flow"&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;Results in one week of Showa's lean transformation for coil making only:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;    &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;eliminated half the plant space required&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;reduced in-process inventory by 95%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Reduced human effort by 50%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Reduced coil manufacturing time by 95%&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Improved quality&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Toyota&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Taiichi Ohno began formalizing the Toyota Production System in the 1940's&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Established the Shusa (chief engineer) product development system under Kiichiro Toyoda in late 1940s&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Began extending TPS to their supply chain in 1969. By demanding continuous price reductions from their 1st tier suppliers, those suppliers in turn pushed lean techniques farther down the supply chain.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Applied lean thinking to parts production starting in early 1980s&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;With the proliferation of different car models, having one shusa per product became unmanageable. In 1992, Toyota re-organized products into 3 product families to share common components, each group led by program managers&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Through Toyota persistent effort at improvement over many decades, it has achieved higher productivity, quality, and on-time delivery rates than it's Japanese, US and European competitors&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;How to put lean thinking into action&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;"The trick is to find the right leaders with the right knowledge and to begin with the value stream itself, quickly creating dramatic changes in the ways routine things are done every day. The sphere of change then must be steadily widened to include the entire organization and all of its business procedures. Once this is in hand and the process is irreversible inside your own firm, it's time to start looking up- and downstream far beyond the boundaries of individual firms to optimize the whole."&lt;/blockquote&gt;The authors prescribe finding a change agent with a core of lean knowledge, and say it helps to have a crisis to serve as the catalyst for a change. Start with a map of your value stream(s) and be determined to &lt;span style="font-style: italic;"&gt;kaikaku&lt;/span&gt; (make dramatic change) quickly to produce results the organization can't ignore. Reorganize the company by product family and value stream.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5219882472637817618?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5219882472637817618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5219882472637817618' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5219882472637817618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5219882472637817618'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/05/lean-thinking-executive-summary.html' title='Lean Thinking: an executive summary'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-2671579607351903056</id><published>2009-04-23T12:10:00.001-07:00</published><updated>2009-04-23T12:15:18.903-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='FDD'/><category scheme='http://www.blogger.com/atom/ns#' term='DSDM'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='xp'/><category scheme='http://www.blogger.com/atom/ns#' term='Crystal'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><category scheme='http://www.blogger.com/atom/ns#' term='AUP'/><title type='text'>Comparing agile methodologies</title><content type='html'>Scrum and XP are by far the most common flavors of agile methodologies - in fact the combination of the two together is the most popular. But what about the others? I found an article that compares Extreme Programming (XP), Scrum, Feature Driven Development (FDD), Lean Software Development, Agile Unified Process (Agile UP or AUP), Crystal, and Dynamic Systems Development Method (DSDM). &lt;a href="http://www.devx.com/architect/Article/32761"&gt;Part 1&lt;/a&gt; covers XP, Scrum, FDD and lean, while &lt;a href="http://www.devx.com/architect/Article/32836"&gt;part 2&lt;/a&gt; covers AUP, Crystal, and DSDM.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-2671579607351903056?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/2671579607351903056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=2671579607351903056' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2671579607351903056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2671579607351903056'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/04/comparing-agile-methodologies.html' title='Comparing agile methodologies'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-3355944884649218218</id><published>2009-04-10T12:09:00.000-07:00</published><updated>2009-04-10T12:49:11.063-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Tools for distributed team collaboration</title><content type='html'>Although agile development was originally intended for small, co-located teams, many organizations have now successfully extended agility to multiple teams in distributed locations. The only one of the 12 core agile principles that is contrary to distributed teams is that the most effective method of conveying information is face-to-face conversation. One of the biggest challenges with distributed teams is overcoming the barriers to communication and collaboration. Here are some of the tools I've found useful for that purpose.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;If you're using a physical task board at each location, post digital photos of each board on your wiki daily. Better yet, keep a web cam pointed at your task board at all times so remote teams can see it whenever they want.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Did I mention a wiki? Make it as easy as possible for teams to capture and share written information with a wiki or intranet. Host your own mediawiki, use Confluence, Sharepoint, etc. Or let someone else host it, SaaS-style - plenty of companies offer this service.&lt;/li&gt;&lt;li&gt;File sharing and collaboration sites. Google Sites and Google Docs is a powerful, free combo for teams to share information. Box.net is another hosted file sharing solution.&lt;/li&gt;&lt;li&gt;If you're sharing large files between locations, you'll probably need an (S)FTP or SCP server.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Full-duplex speaker phones are a must-have so you can hear all of the conversation.&lt;/li&gt;&lt;li&gt;Each team member should have a decent quality headset for clear, hands-free audio on one-on-one calls.&lt;/li&gt;&lt;li&gt;Video conferencing. Many studies show that the &lt;span style="font-style: italic;"&gt;majority&lt;/span&gt; of information conveyed in a conversation is &lt;span style="font-style: italic;"&gt;non-verbal&lt;/span&gt;. &lt;a href="http://www.webex.com"&gt;WebEx&lt;/a&gt; allows up to 6 video feeds in a conference. &lt;a href="http://www.paltalk.com/"&gt;PalTalk&lt;/a&gt; is free and it allows a video conference with up to 10 participants. There are many other reasonably-priced video conferencing services, such as iVisit and Megameeting.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Virtual white boards. Nothing beats a white board for a design session or brainstorming. &lt;a href="http://www.scriblink.com/"&gt;Scriblink&lt;/a&gt;, &lt;a href="http://www.skrbl.com/"&gt;Skrbl&lt;/a&gt;, and &lt;a href="http://www.dabbleboard.com/"&gt;Dabbleboard&lt;/a&gt; all offer free online whiteboards.&lt;/li&gt;&lt;li&gt;Web conferences with freehand drawing/whiteboard tools. &lt;a href="http://www.readytalk.com"&gt;Readytalk&lt;/a&gt; has a great feature for drawing right on top of the shared screen in a web presentation.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.planningpoker.com"&gt;Online Planning Poker&lt;/a&gt; for estimating work. Thanks to Mike Cohn!&lt;/li&gt;&lt;li&gt;&lt;a href="http://danube.com/scrumworks"&gt;Scrumworks&lt;/a&gt; - the free basic edition is very slick and intuitive for all the basic needs. The Pro version has lots more to offer. I prefer Scrumworks over XPlanner.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.rallydev.com"&gt;Rally&lt;/a&gt; - the free community edition has limited functionality and supports up to 10 users, and the Enterprise edition is very rich and sophisticated if you have greater needs. VersionOne is a competitor to Rally with similar features and editions, but I don't have personal experience with it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.atlassian.com/software/jira"&gt;Jira&lt;/a&gt;?  As I wrote &lt;a href="http://agileadvocate.blogspot.com/2009/01/jira-not-so-great-for-agile.html"&gt;in an earlier post&lt;/a&gt;, with some free add-ins you force-fit Jira into an agile process, but it's not ideal. &lt;a href="http://www.greenpeppersoftware.com/en/products/greenhopper-jira/features/"&gt;Greenhopper&lt;/a&gt; is a reasonably-priced agile add-in for Jira that beats the free add-ins.&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.tangyorange.com/"&gt;TangyOrange&lt;/a&gt; is an online agile task board for less than $5 per month, but it doesn't have the agile project management features of the other tools.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-3355944884649218218?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/3355944884649218218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=3355944884649218218' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3355944884649218218'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3355944884649218218'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/04/tools-for-distributed-team.html' title='Tools for distributed team collaboration'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-8290175529165409656</id><published>2009-03-30T09:32:00.001-07:00</published><updated>2009-03-30T09:35:04.578-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Presentation: Distributed &amp; Offshore Agile Development</title><content type='html'>The slides and a webcast of my presentation at Agile Denver on Distributed &amp;amp; Offshore Agile Development are available on &lt;a href="http://www.properosolutions.com/resources.html"&gt;my web site&lt;/a&gt;. Many thanks to Amit Malhotra for recording and editing the video!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-8290175529165409656?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/8290175529165409656/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=8290175529165409656' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8290175529165409656'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8290175529165409656'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/03/presentation-distributed-offshore-agile.html' title='Presentation: Distributed &amp; Offshore Agile Development'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-8347669232750317099</id><published>2009-03-16T12:17:00.000-07:00</published><updated>2009-03-16T12:29:43.183-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='product owner'/><category scheme='http://www.blogger.com/atom/ns#' term='definition of done'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='technical'/><title type='text'>Definition of Done: UI standards</title><content type='html'>If you are developing an application with a UI, I recommend adopting a set of UI standards or guidelines to ensure a consistent, high quality user experience. The standard forms a baseline expectation for the team and product owner eliminating the need to explicitly define mundane details for every screen for aspects such as tabbing through controls, initial cursor position, tool tips, progress bars, etc.  Instead, those generally accepted best practices can be included in the team's "definition of done" (DoD) for each story / feature.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa511331.aspx"&gt;Here is a list of UI guidelines from Microsoft&lt;/a&gt; that can serve as a checklist for your UI. There are others out there, too. If you know a good one, please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-8347669232750317099?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/8347669232750317099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=8347669232750317099' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8347669232750317099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8347669232750317099'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/03/definition-of-done-ui-standards.html' title='Definition of Done: UI standards'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6662954912444850322</id><published>2009-03-14T14:50:00.001-07:00</published><updated>2009-03-14T15:08:24.389-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Visas for travel to the US</title><content type='html'>Why a post about Visas on an agile software blog, you ask? Well, if you have a distributed team with members around the globe, and you believe in the agile principle that the most effective method of conveying information is face-to-face communication, then you might need to have some people hop a plane. Here is a summary of the types of US Visas that you might pursue for offshore team members.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;B-1: for conferences, meetings, business events&lt;/li&gt;&lt;/ul&gt;These can typically be used for visits of 2-4 weeks, and they must &lt;span style="font-weight: bold; font-style: italic;"&gt;not &lt;/span&gt;involve US employment. In the past many companies got away with much longer visits on B-1, but the government has cracked down on that abuse recently.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;H-1B: for temporary employment in the US&lt;/li&gt;&lt;/ul&gt;Only about 65,000 H-1B visas are granted each year, and most of those are claimed by large companies. Visa holder must be compensated at US market rates.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;L-1: for intra-company transfer to a US-based branch.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;For L-1 The US &amp;amp; foreign company must share common ownership, and applicant must already be employed by the foreign affiliate. Larger companies can obtain blanket L status.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;H-3: for training at a US company that is not available in the applicant's home country*&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;* Many restrictions apply ;-)&lt;br /&gt;&lt;ul&gt;&lt;li&gt;J-1: “exchange” visitors in pre-approved areas of study.*&lt;/li&gt;&lt;/ul&gt;* Again, many restrictions apply with the J-1 program.&lt;br /&gt;&lt;br /&gt;For all types of visas, applicants that don't have strong ties to their home country (such as a spouse, children, and property) may be denied. There is a Visa waiver program for visits of 90 days or less from 27 countries (mostly European, also Japan, Singapore, NZ).&lt;br /&gt;&lt;br /&gt;Allow lots of time for visa applications to be approved, too. Plan on several months for applicants from places like India and China.&lt;br /&gt;&lt;br /&gt;Are you thinking about pushing your luck on a B-1 Visa? Tread carefully. Attempting to obtain a visa by the willful misrepresentation of a material fact, or fraud, may result in the permanent refusal of a visa or denial of entry into the United States.&lt;br /&gt;&lt;br /&gt;On the bright side, it's very easy for US citizens to obtain visas to almost any country - unless your offshore team is in Cuba, that is.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6662954912444850322?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6662954912444850322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6662954912444850322' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6662954912444850322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6662954912444850322'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/03/visas-for-travel-to-us.html' title='Visas for travel to the US'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7385883444036146783</id><published>2009-03-05T10:16:00.000-08:00</published><updated>2009-03-05T10:23:13.859-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='technical'/><title type='text'>Problem with Windows Vista VPN resolved</title><content type='html'>I've been using a PPTP VPN connection from my Windows Vista box for a while, and suddenly it just stopped connecting, and throwing error code 800. After many hours of banging my head against the wall and googling for a solution, I finally found it at &lt;a href="http://developers.de/blogs/damir_dobric/archive/2008/12/20/vpn-issue-with-pptp-and-windows-vista.aspx"&gt;this link&lt;/a&gt;. It turns out to be related to Microsoft Virtual PC 2007.&lt;br /&gt;&lt;blockquote&gt;"If you have installed Virtual PC 2007 on your machine, it can happen that some windows update (I would really like to know which one) destroy some kind of mapping between VPN connection and WAN Miniport driver."&lt;/blockquote&gt;To fix it you need to uninstall "Virtual Machine Network Services" on your physical network adaptor properties.&lt;br /&gt;&lt;br /&gt;Arghhhh.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7385883444036146783?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7385883444036146783/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7385883444036146783' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7385883444036146783'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7385883444036146783'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/03/problem-with-windows-vista-vpn-resolved.html' title='Problem with Windows Vista VPN resolved'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-2186545259032906228</id><published>2009-02-18T13:33:00.000-08:00</published><updated>2009-12-17T21:20:37.157-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Jira for agile projects? Get GreenHopper</title><content type='html'>I &lt;a href="http://agileadvocate.blogspot.com/2009/01/using-jira-for-agile.html"&gt;previously blogged&lt;/a&gt; about trying to use Atlassian Jira as an agile project management tool. My current client already uses Jira across multiple projects and they are reluctant to change tools or spend for new tools. We use Jira "versions" to define iterations. Jira items without a "Fix for version" are part of the product backlog. We installed the free Jira plug-in &lt;a href="http://confluence.atlassian.com/display/JIRAEXT/Custom+Issue+Order"&gt;Custom Issue Order&lt;/a&gt; which lets you set the absolute order (rank) of items in a list. Here's a screen shot of it in action, with the "Rank" column added.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_RKQgVkLLIO8/Sagxei5UsFI/AAAAAAAAAP4/kXS8mq7A0bc/s1600-h/jira+rank.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5307546561689202770" src="http://1.bp.blogspot.com/_RKQgVkLLIO8/Sagxei5UsFI/AAAAAAAAAP4/kXS8mq7A0bc/s400/jira+rank.png" style="cursor: pointer; display: block; height: 355px; margin: 0px auto 10px; text-align: center; width: 295px;" /&gt;&lt;/a&gt;&lt;br /&gt;We also installed the free &lt;a href="http://confluence.atlassian.com/display/JIRAEXT/Agile+Velocity+Tracking+plugin"&gt;Agile Velocity Tracking plug-in&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So far, I must say I'm not particularly happy with the results. It works, but I find myself yearning for a tool that was truly designed to accomodate agile development. Some specific things I don't like:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I can't drag and drop items to change list order. As a product manager, I'm frequently re-ordering the backlog and it needs to be fast and painless. With the Custome Issue Order plug-in, you have to move an item one position up or down, or type in it's new rank, but either way the page refreshes each time. With a Jira server on the opposite side of the planet, the latency is killing me.&lt;/li&gt;&lt;li&gt;If the backlog is too long, each user must customize the page size to be able to view all items in the list. When it's split between pages, you can't move an item from one page to another.&lt;/li&gt;&lt;li&gt;Suppose the team is starting iteration 3.0.2 (2nd iteration toward release of V3), and a defect is reported on V2.1 that must be fixed in a V2.2 release. You can't include this defect in the 3.0.2 iteration backlog because it's based on Jira's "fix for version" 3.0.2, and this item will be fixed in Jira version 2.2.  So you have to manage these items separately.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You can't "collapse" a single story to show/hide it's subtasks in the list. This is a feature of ScrumWorks that I really like.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;The agile velocity tracking plug-in isn't very intuitive. It might be more useful after our project has more iterations completed, but for now the data isn't very helpful.&lt;/li&gt;&lt;li&gt;No burndown chart. We tried a &lt;a href="http://www.laughingpanda.org/mediawiki/index.php/Agile_Plugins"&gt;free plug-in from Laughing Panda&lt;/a&gt; but couldn't get it to work. The closest things Jira has is the progress bar: go to Reports -- Versions -- (a specific version) and you get a graphic like this:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://1.bp.blogspot.com/_RKQgVkLLIO8/SZxuVlCs-wI/AAAAAAAAAPc/gnIXSeVlQiU/s1600-h/jira+progress+bar.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5304235778135358210" src="http://1.bp.blogspot.com/_RKQgVkLLIO8/SZxuVlCs-wI/AAAAAAAAAPc/gnIXSeVlQiU/s400/jira+progress+bar.png" style="cursor: pointer; display: block; height: 61px; margin: 0px auto 10px; text-align: center; width: 217px;" /&gt;&lt;/a&gt;The burndown chart is far more useful since it clearly communicates the estimated work remaining (in hours) and the trend line for completing it by the end of the iteration.&lt;br /&gt;&lt;br /&gt;My recommendation for co-located teams is still to use a physical task board. If you have a distributed team, or you've tried the task board and have specific reasons for moving to an electronic tool, then I'd recommend Jira + GreenHopper, ScrumWorks, XPlanner, or the free editions of Rally or VersionOne. When I first wrote this post, I hadn't yet tried GreenHopper, but now I have, and it's a great tool. &lt;a href="http://agileadvocate.blogspot.com/2009/12/jira-and-greenhopper-for-agile-project.html"&gt;Read about it here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-2186545259032906228?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/2186545259032906228/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=2186545259032906228' title='12 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2186545259032906228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2186545259032906228'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/jira-not-so-great-for-agile.html' title='Jira for agile projects? Get GreenHopper'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_RKQgVkLLIO8/Sagxei5UsFI/AAAAAAAAAP4/kXS8mq7A0bc/s72-c/jira+rank.png' height='72' width='72'/><thr:total>12</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-350320341715453516</id><published>2009-02-12T12:11:00.000-08:00</published><updated>2009-02-12T12:27:37.983-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='kanban'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Kanban in action</title><content type='html'>Kanban is a Japanese term common in the lean literature meaning a signaling device: downstream activities signal to an upstream activity when they have capacity to do more work, enabling value to be pulled through to a customer in continuous flow. In software, it starts with a ranked backlog of stories/features to be done, just like in agile. But instead of fixed iterations or sprints, the team pulls items the highest priority items from the backlog as soon as it has capacity. Software may still be released on a regular cadence, and the release includes whatever backlog items have been completed on the release date.&lt;br /&gt;&lt;br /&gt;This &lt;a href="http://www.agilemanagement.net/Articles/Weblog/KanbaninAction.html"&gt;blog post&lt;/a&gt; is a great primer describing how kanban was applied at Corbis.&lt;br /&gt;&lt;br /&gt;I have always thought that the schedule pressure of short iterations can have a positive motivating effect on team member and keep them focused on the goal, but I realize now that it can also have negative consequences, invoking feat and causing developers to feel pressured to make short cuts and bury quality problems under the rug in order to give the &lt;span style="font-style: italic;"&gt;appearance &lt;/span&gt;of completing tasks on time. David Anderson addresses this issue eloquently in &lt;a href="http://finance.groups.yahoo.com/group/kanbandev/message/1759"&gt;this post&lt;/a&gt; on the kanbandev discussion group.  In a nutshell, David describes how the objective in a kanban system is to reduce cycle time while maintaining quality. With those measurements in place, the team is motivated to continually improve but the system is tolerant of missteps and underestimation on individual features.  Done properly, a kanban system should eliminate the potential negative motivations that can be caused by iterations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-350320341715453516?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/350320341715453516/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=350320341715453516' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/350320341715453516'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/350320341715453516'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/02/kanban-in-action.html' title='Kanban in action'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4661517009112474745</id><published>2009-02-11T14:48:00.001-08:00</published><updated>2009-02-11T14:51:05.857-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>New generation of collaboration tools</title><content type='html'>One of my &lt;a href="http://agileadvocate.blogspot.com/2009/02/agile-2009-session-proposals.html"&gt;session proposals for Agile 2009&lt;/a&gt; is titled &lt;span style="font-style: italic;"&gt;Collaboration Tools 2.0 - Which is Best&lt;/span&gt;? I plan to have an interactive workshop comparing the merits of tools like Basecamp, Huddle, Zoho Projects, Sosius, and Google Docs. If you have experience with these tools or others in the same genre, please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4661517009112474745?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4661517009112474745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4661517009112474745' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4661517009112474745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4661517009112474745'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/02/new-generation-of-collaboration-tools.html' title='New generation of collaboration tools'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7868465447290314653</id><published>2009-02-11T14:21:00.000-08:00</published><updated>2009-02-11T14:26:12.073-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Agile 2009 session proposals</title><content type='html'>I've submitted proposals to present 3 different sessions at the Agile 2009 conference in Chicago in August:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Agile Outsourcing in China: A Happy Family&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Collaboration Tools 2.0: Which is Best?&lt;/li&gt;&lt;li&gt;Strategies for highly effective distributed teams&lt;/li&gt;&lt;/ul&gt;I'd love to get some feedback - positive or negative! You can find my proposals &lt;a href="http://www.agile2009.org/proposals?filter0=**ALL**&amp;amp;filter4=Brad+Swanson"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7868465447290314653?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7868465447290314653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7868465447290314653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7868465447290314653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7868465447290314653'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/02/agile-2009-session-proposals.html' title='Agile 2009 session proposals'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-8916655979118469839</id><published>2009-01-24T16:11:00.000-08:00</published><updated>2009-01-24T16:14:15.106-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Forrester Research Survey on Impact of Agile</title><content type='html'>Forrester Research is conducting a survey on the impact of agile processes on technology companies. They are looking for feedback from both technical and business people within organizations. It takes only about 10 minutes to complete the survey, and I encourage people to do so. Take the survy &lt;a href="http://deploy.ztelligence.com/start/index.jsp?PIN=13AWGWK2Y25E5"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-8916655979118469839?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/8916655979118469839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=8916655979118469839' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8916655979118469839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8916655979118469839'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/forrester-research-survey-on-impact-of.html' title='Forrester Research Survey on Impact of Agile'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7836818384759577644</id><published>2009-01-15T11:17:00.000-08:00</published><updated>2009-01-15T11:26:41.452-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Lean techniques to repair humvees</title><content type='html'>&lt;a href="http://www.npr.org/templates/story/story.php?storyId=99336704"&gt;As reported on NPR&lt;/a&gt;, the US Army turned to lean manufacturing techniques, inspired by Toyota, to deal with the large number of war-damaged vehicles that need to be repaired and rebuilt. The repair facility at Red River Army Depot uses a &lt;span style="font-style: italic;"&gt;takt time&lt;/span&gt; of 16 minutes - producing a completely rebuilt vehicle every 16 minutes, for a total of 32 per day. If that's the true takt time, or course, that would imply that the Army needs exactly 32 rebuilt humvees per day. The NPR story doesn't state if that's the case, but it does say that the vehicles are parked everywhere around the base - let's hope those are the wrecked ones, and not repaired vehicles sitting unused. We all know by now that an inventory of product that isn't being used is &lt;span style="font-style: italic;"&gt;muda&lt;/span&gt; (waste).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7836818384759577644?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7836818384759577644/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7836818384759577644' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7836818384759577644'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7836818384759577644'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/lean-techniques-to-repair-humvees.html' title='Lean techniques to repair humvees'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6773653827531911669</id><published>2009-01-12T08:23:00.000-08:00</published><updated>2009-01-12T08:27:35.006-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Balsamiq Mockups</title><content type='html'>What do you use to create mockups of your UI? I prefer a very lightweight approach using a good ol' whiteboard or even sketches on paper. You can capture a whiteboard mockup with a camera, or scan a paper mock up. For distributed teams, though, you can't collaborate very well with either one of those approaches. I just discovered &lt;a href="http://www.balsamiq.com/products/mockups"&gt;Balsamiq Mockups&lt;/a&gt; and after trying it out, it looks like a good solution. It also has a sweet integration with Confluence, Jira, and XWiki.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6773653827531911669?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6773653827531911669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6773653827531911669' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6773653827531911669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6773653827531911669'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/balsamiq-mockups.html' title='Balsamiq Mockups'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-1710405819967410724</id><published>2009-01-12T08:17:00.000-08:00</published><updated>2009-01-16T14:47:36.516-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><title type='text'>Using Jira for Agile</title><content type='html'>I'm working with a team that has been using Jira and wanted to see if they could use Jira for the product backlog and iteration tracking.  There are a set of customizations and add-ins for Jira that can make it work, as I found at &lt;a href="http://www.blackpepper.co.uk/black-pepper-blog/Using-Jira-for-an-Agile-project.html"&gt;this informative site&lt;/a&gt;.  The basic idea is to use Jira versions for each iteration, un-versioned items become the product backlog, and add-ins let you fine-tune the ranking of each item and produce burndown metrics.&lt;br /&gt;&lt;br /&gt;I'm still a proponent of using a physical task board when the team is co-located, and I think other tools like XPlanner and Scrumworks are better suited to agile development, but I'll give this setup with Jira a try and report back on how well it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-1710405819967410724?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/1710405819967410724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=1710405819967410724' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1710405819967410724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1710405819967410724'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/using-jira-for-agile.html' title='Using Jira for Agile'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7551293619355783104</id><published>2009-01-08T13:44:00.000-08:00</published><updated>2009-01-08T13:48:09.117-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='waterfall'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>How projects really work - a cartoon</title><content type='html'>I found &lt;a href="http://www.projectcartoon.com/cartoon/3"&gt;this great cartoon&lt;/a&gt; satirizing how projects &lt;span style="font-style: italic;"&gt;really &lt;/span&gt;work - or perhaps it should be titled "Why waterfall projects &lt;span style="font-style: italic;"&gt;don't &lt;/span&gt;work". Funny. Clear. And right on. The cartoon shows what happens when you have handoffs between different people or teams without fast feedback to ensure you're building the what the customer really needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7551293619355783104?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7551293619355783104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7551293619355783104' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7551293619355783104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7551293619355783104'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/how-projects-really-work-cartoon.html' title='How projects really work - a cartoon'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6738360344199301880</id><published>2009-01-07T19:30:00.000-08:00</published><updated>2009-01-12T08:27:50.103-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>TangyOrange: funny name for online scrum board</title><content type='html'>For co-located teams, it's hard to beat a physical board with cards or sticky notes for tracking iteration status. Put it in a prominent place and it's an ever-present reminder to the team about what needs to be done. It's a rallying point for the daily scrum. If you have a distributed team, however, it doesn't work so well, and web-based tools often are necessary. There is a new online scrum board tool called &lt;a href="http://tangyorange.com/"&gt;TangyOrange&lt;/a&gt;, which has the look and feel of a physical scrum board. You can use a simple version for free, or pay just $5 every 40 days (strange billing period, I'd say) for the full-featured version.  You can play around with it &lt;a href="http://tangyorange.com/View.ashx?ScrumboardId=00000000-0000-0000-0000-000000000001"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6738360344199301880?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6738360344199301880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6738360344199301880' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6738360344199301880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6738360344199301880'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2009/01/tangyorange-funny-name-for-online-scrum.html' title='TangyOrange: funny name for online scrum board'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-1453772049703922359</id><published>2008-12-17T13:22:00.000-08:00</published><updated>2009-03-16T12:30:36.194-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='definition of done'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Definition of Done</title><content type='html'>The &lt;a href="http://www.meetup.com/Boulder-Agile/"&gt;Boulder Agile Meetup&lt;/a&gt; group met last night and discussed the definition of "done", or DoD, on an agile project. Here is a summary of our discussion.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The DoD should be agreed to by the team, written down and rigorously adhered to&lt;/li&gt;&lt;li&gt;Legacy systems - any code base without automated tests - present many challenges to meeting a useful DoD within short iterations. The group didn't reach any conclusion on how to solve that problem. I'd say your choices are either to (1) put new development on hold long enough to write the tests, (2) gradually introduce tests over several iterations, or (3) live with the pain for a long time.&lt;/li&gt;&lt;li&gt;The DoD is different for tasks, backlog items, iterations, and releases&lt;/li&gt;&lt;li&gt;Operational needs for the software should be considered early on and addressed within normal iterations&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;DoD for tasks:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;unit tests pass&lt;/li&gt;&lt;li&gt;code was pair programmed or code reviewed&lt;/li&gt;&lt;li&gt;coding standards are met&lt;/li&gt;&lt;li&gt;test coverage standard is met&lt;/li&gt;&lt;li&gt;code and tests are included in continuous integration system&lt;/li&gt;&lt;li&gt;task was completed with the simplest possible implementation&lt;/li&gt;&lt;li&gt;code base was refactored to support the new task&lt;/li&gt;&lt;li&gt;sufficient negative unit tests were written (more negative than positive)&lt;/li&gt;&lt;/ul&gt;DoD for backlog items / user stories:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;acceptance criteria are met (presumes that Product Owner sufficiently defined acceptance criteria)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;functional tests pass&lt;/li&gt;&lt;li&gt;non-functional tests pass (scalability, reliability, security, etc.)&lt;/li&gt;&lt;li&gt;story documentation is completed&lt;/li&gt;&lt;li&gt;item follows architectural &amp;amp; design guidelines&lt;/li&gt;&lt;li&gt;automated installation &amp;amp; deployment completed (recommended that it includes the full stack - even the operating system - where practical)&lt;/li&gt;&lt;/ul&gt;DoD for releases:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Customer acceptance (functional &amp;amp; non-functional requirements)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Release documentation completed&lt;/li&gt;&lt;li&gt;Operational needs met&lt;/li&gt;&lt;li&gt;Regulatory &amp;amp; compliance requirements are met if applicable&lt;/li&gt;&lt;li&gt;automated installation &amp;amp; deployment completed&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;For some reason we didn't discuss DoD for iterations, but I would say that it is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Met DoD for all stories / backlog items in the iteration&lt;/li&gt;&lt;li&gt;Met the goal or theme for the iteration, if one was defined&lt;/li&gt;&lt;li&gt;Acceptance by the product owner and/or customer at the iteration demo/review&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-1453772049703922359?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/1453772049703922359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=1453772049703922359' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1453772049703922359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/1453772049703922359'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/12/definition-of-done.html' title='Definition of Done'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-8569090508076950859</id><published>2008-11-26T11:54:00.000-08:00</published><updated>2009-01-08T13:49:07.112-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Productivity of distributed teams</title><content type='html'>Jeff Sutherland and Guido Schoonheim recently gave a &lt;a href="http://www.infoq.com/presentations/Distributed-Scrum-Sutherland-Schoonheim"&gt;presentation&lt;/a&gt; on the experiences on forming a team for Xebia distributed between Holland and India. Their shocking conclusion: a fully distributed scrum team has &lt;span style="font-weight: bold; font-style: italic;"&gt;more &lt;/span&gt;value than a colocated one.&lt;br /&gt;&lt;br /&gt;They claim the benefits of distribution are cost reduction, availability of talent, and scaling up/down with knowledge retention.&lt;br /&gt;&lt;br /&gt;They claim their approach accomplished the following results on a relatively complicated system with 100k+ lines of java code.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;95% of defects found within the iteration a feature was developed&lt;/li&gt;&lt;li&gt;only 50 defects found in acceptance phase&lt;/li&gt;&lt;li&gt;less than 1 defect for kloc&lt;/li&gt;&lt;li&gt;15 function points delivered per developer per month. Note that Mike Cohn has published results of a small co-located team that achieve 16 FP/dev/month&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;How did they accomplish this state of hyper-productivity, as they call it? Here are some of the highlights.&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Bring the Indian team to Holland for 2 iterations starting the 2nd iteration. Establish personal relationships, shared agile value system, common mindset, mutual respect. My team at Envysion successfully used a similar approach; we had the Chinese team members on-site with the client for 2 months at the beginning. See my &lt;a href="http://agileadvocate.blogspot.com/2007/04/offshore-agile-success-story.html"&gt;previous post &lt;/a&gt;for more info.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;A few people from each site travel to the other location every 2 months or so to maintain the bond.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Staff with equally skilled people in all roles in both locations&lt;/li&gt;&lt;li&gt;Use video conferencing for daily stand-up meetings, retrospectives and planning meetings. The sprint demo was done only by the Holland team because stakeholders wanted it presented in Dutch language.&lt;/li&gt;&lt;li&gt;They started with a single team, then when they expanded to multiple teams, they seeded those teams with people from the first team to maintain the culture.&lt;/li&gt;&lt;li&gt;They maintained discipline to follow XP practices, including pair programming&lt;/li&gt;&lt;li&gt;Had a clear and disciplines Definition of Done for each sprint, which included 90% unit test coverage and fully automated functional and regression tests&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-8569090508076950859?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/8569090508076950859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=8569090508076950859' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8569090508076950859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/8569090508076950859'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/11/productivity-of-distributed-teams.html' title='Productivity of distributed teams'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4597649725472469106</id><published>2008-11-18T10:43:00.000-08:00</published><updated>2008-11-18T10:57:18.435-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Independent test teams</title><content type='html'>The agileprojectmanagement discussion group on yahoo has a recent thread titled "&lt;a href="http://groups.yahoo.com/group/agileprojectmanagement/message/10400;_ylc=X3oDMTJyN2VudTRiBF9TAzk3MzU5NzE1BGdycElkAzk4OTcyMDAEZ3Jwc3BJZAMxNzA1MDAxMzgwBG1zZ0lkAzEwNDAwBHNlYwNkbXNnBHNsawN2bXNnBHN0aW1lAzEyMjcwMTEwODM-"&gt;Testing Sprint Advice&lt;/a&gt;"  that caught my attention. (Note that you'll need to be a member of the group to follow the link.)&lt;br /&gt;&lt;br /&gt;I believe the ultimate goal of agile testing/QA should be the complete and unambiguous definition of acceptance criteria. The ultimate manifestation of that would be executable requirements defined by the product owner. Of course the product owner would create these in collaboration with testers, and including developer input as appropriate.&lt;br /&gt;&lt;br /&gt;There is often debate over whether test teams are more effective when they are independent from the development effort or when they actively collaborate with developers. I personally believe the collaborative approach is better. If the product owner and QA collectively define unambiguous acceptance criteria, then the developers are usually in the best position to automate the validation of those criteria through automated tests of various kinds.  Since it's hard to formally define every single acceptance criteria, testers can focus much of their effort on exploratory testing - which of course may leading to a better understanding of additional acceptance criteria.&lt;br /&gt;&lt;br /&gt;Steven Gordan makes some great points in the post, arguing for the collaborative approach which I'll summarize below..&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;1. If the testers effectively come up with their own version of the requirements based on an "independent" understanding of the product, then inevitable disputes over the actual requirements for the iteration ameliorate much of the potential value of independent testing....&lt;br /&gt;&lt;br /&gt;2. If the testers actively participate in the development of the acceptance criteria for the iteration, then where is the independence? If they are going to actively collaborate with the team and customers from day 0 of each iteration, everyone would be better off if they were actually part of the development team.&lt;br /&gt;&lt;br /&gt;3. If the testers passively utilize the acceptance criteria for the iteration without actively voicing their independent opinion about what is missing from the acceptance criteria, then we get the worst of cases 1 and 2.  The testing is not truly independent, yet what independence remains is not being leveraged to improve the acceptance&lt;br /&gt;criteria.&lt;br /&gt;&lt;br /&gt;Inevitably, independent testing finds problems later than&lt;br /&gt;collaborative testing would.&lt;/blockquote&gt;Thanks to Steven for the great insight.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4597649725472469106?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4597649725472469106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4597649725472469106' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4597649725472469106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4597649725472469106'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/11/independent-test-teams.html' title='Independent test teams'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6661385971616335744</id><published>2008-11-15T05:46:00.000-08:00</published><updated>2009-01-08T13:56:36.494-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>The SEI addresses Agile</title><content type='html'>The SEI recently published a &lt;a href="http://www.sei.cmu.edu/publications/documents/08.reports/08tn003.html"&gt;paper&lt;/a&gt; that asks the provocative question: why not embrace both agile and CMMI? In an earlier post, I wrote that &lt;a href="http://agileadvocate.blogspot.com/2008/05/perficient-achieves-cmmi-level-5-using.html"&gt;Perficient achieved level 5 using an agile approach&lt;/a&gt;, so I know it is possible.&lt;br /&gt;&lt;br /&gt;Both CMMI and agile have a long history, it turns out. Although modern agile methodologies mostly emerged in the 1990's in the context of small teams, maybe the origins of agile and CMMI really weren't so different after all.&lt;br /&gt;&lt;br /&gt;The paper traces the roots of agile back to Iterative and Incremental Design and Development (IIDD), a technique developed more than 75 years ago by engineers including W. Edwards Deming. It's also noteworthy that Demind is one of the fathers of the lean movement who is credited in part for bring lean to Toyota many decades ago.&lt;br /&gt;&lt;blockquote&gt;An early progenitor of IIDD was Dr. W. Edwards Deming who began promoting Plan-Do-Study-Act (PDSA) as the vital component of empirical engineering. Early adopters of Deming’s teachings in the aerospace industry include NASA (National Aeronautics and Space Administration) and the US Air Force, each of which developed entire systems using time-boxed, iterative, and incremental product development cycles.&lt;/blockquote&gt;&lt;br /&gt;Origins of CMMI&lt;br /&gt;&lt;blockquote&gt;everyone working to develop the initial CMM was looking for the solution to the “software problem” from the perspective that software is a component of a larger system and that if it failed, lives would be lost (e.g., aircraft, ships, weaponry, medical  devices).Systems were evolved using careful and deliberate development paths according to lower risk,standardization-heavy and contractually-driven relationships between the developer and the customer.&lt;/blockquote&gt;The paper does a good job of explaining some of the reasons why the 2 camps are often at odds, which includes the fact that both approaches are often misused, which adds fuel to the fire.&lt;br /&gt;&lt;br /&gt;Here's a paragraph that summarizes the paper's conclusion.&lt;br /&gt;&lt;blockquote&gt;Agile methods provide software development how-to’s, purposely absent from CMMI, which work well on small co-located projects. Meanwhile, CMMI provides the systems engineering practices often required on large, high-risk projects. CMMI also provides the process management and support practices (and principles) that help deploy and continuously improve the deployment of Agile methods in an organization regardless of organization or project size.&lt;/blockquote&gt;I tend to agree, except that agile approaches can also be successful when small teams aren't co-located; I know because I've done it.&lt;br /&gt;&lt;br /&gt;A final quote, reminiscent of Rodney King's famous "can't we all just get along?"&lt;br /&gt;&lt;blockquote&gt;If those of us in both the Agile and CMMI camps would understand and accept our differences and explore the advantages of the other, we will find new ways of combining the ideas of both to bring improvement to a whole new level. Our challenge to CMMI and Agile proponents alike is to learn the value of the principles and technology of the other and begin to use them in their work&lt;/blockquote&gt;In my opinion, CMMI is too often misued to force a heavyweight, waterfall methodology on an organization for the primary purpose of &lt;span style="font-style: italic; font-weight: bold;"&gt;marketing &lt;/span&gt;the organization's supposed capabilities rather than &lt;span style="font-weight: bold; font-style: italic;"&gt;truly improving &lt;/span&gt;the organization's capability to sustainably produce business value for customers. That's why I will probably always be leary of any CMMI initiative started by non-engineer management folks.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6661385971616335744?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6661385971616335744/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6661385971616335744' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6661385971616335744'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6661385971616335744'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/11/sei-addresses-agile.html' title='The SEI addresses Agile'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-4863615437703437902</id><published>2008-11-11T11:16:00.000-08:00</published><updated>2009-01-08T13:49:19.753-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Can a customer support team be agile?</title><content type='html'>Mattias Skarin recently posted a useful &lt;a href="http://blog.crisp.se/mattiasskarin/files/agileforsupport/kanban_for_support_and_operations.pdf"&gt;2-page summary&lt;/a&gt; of his approach for managing a support organization using agile techniques and a kanban board.&lt;br /&gt;&lt;br /&gt;I recently led a team of Solutions Consultants (who supported our customers development efforts) at IP Commerce. The challenge we had was that there was ALWAYS a full backlog of customer support tasks, and those tasks are virtually always a higher priority than project-based work that the team needs to get done - stuff like improving the process, creating sample applications, writing documentation.&lt;br /&gt;&lt;br /&gt;What I did to solve this dilemma was to allocate 20% of each person's time for project work, with 80% for ongoing customer support. The team members scheduled their time to carve out 4 or 8 hour time blocks during the 2-week iteration where they could focus on project work.&lt;br /&gt;&lt;br /&gt;For iteration planning purposes, I kept a backlog of project-based user stories only - no customer support tasks - and the team planned how much of that backlog they could knock out in 20% of their time. The customer support stories/tasks weren't considered during planning - we knew those would flow in steadily.&lt;br /&gt;&lt;br /&gt;This worked well for us, but let me know if you have other advice on managing support organizations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-4863615437703437902?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/4863615437703437902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=4863615437703437902' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4863615437703437902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/4863615437703437902'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/11/can-customer-support-team-be-agile.html' title='Can a customer support team be agile?'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-3561059969213457838</id><published>2008-11-05T21:05:00.000-08:00</published><updated>2009-01-08T13:50:10.613-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Agile in the Extreme</title><content type='html'>What happens when you take agile techniques to the extreme? At the Agile 2008 conference, a couple of Aussies, Paul King and Craig Smith, gave a presentation titled &lt;a href="http://www.infoq.com/presentations/Super-Agile-Craig-Smith-and-Paul-King"&gt;Technical Lessons Learned Turning the Agile Dials to Eleven&lt;/a&gt;. You gotta love the reference to Spinal Tap!&lt;br /&gt;&lt;br /&gt;Back in my days at BoldTech Systems (now Perficient), we did hard-core XP. I mean hard core. We all had tables on wheels, no cubicles, no walls - the whole team in a "bullpen". We strictly followed all of the XP practices, and if we didn't, the VP of Engineering who was the uber-XP-Coach, would quickly swoop in and set you back on the straight an narrow path.&lt;br /&gt;&lt;br /&gt;Some valuable lessons we learned: &lt;ul&gt;&lt;li&gt;Pair programming for 100% of production code isn't optimal. Many programming tasks are just too routine to justify it. For those, do frequent (at least daily) code reviews. Save pair programming for the tough stuff.&lt;/li&gt;&lt;li&gt;100% pair programming can be exhaustively intense. How many people in this world do you really want to sit shoulder-to-shoulder with for 8 hours a day? Or 4 different people for 2 hours per day? Most developers I know need some time to work alone to keep their sanity.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Continuous integration requires an enormous amount of discipline. If you have to stop everything whenever a single test breaks, and you're writing lots of tests, you better not have very many tests fail.&lt;/li&gt;&lt;li&gt;Don't forget to do design. XP doesn't emphasize design, but it doesn't preclude it, either. Do just the right amount of architechture and design - at the beginning of a release and each iteration.&lt;/li&gt;&lt;li&gt;Test driven development is good. Period. Go ahead an turn the dial to 11 on this one!&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-3561059969213457838?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/3561059969213457838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=3561059969213457838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3561059969213457838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3561059969213457838'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/11/agile-in-extreme.html' title='Agile in the Extreme'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-2458221341852331473</id><published>2008-10-30T20:23:00.000-07:00</published><updated>2009-01-08T13:52:28.122-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='people'/><title type='text'>Poll: Does your company call people "resources"?</title><content type='html'>Thanks to a suggestion left on my previous post, I created a poll to find out if companies are calling their employees "resources". Please take a minute to answer the poll at my blog home page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-2458221341852331473?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/2458221341852331473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=2458221341852331473' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2458221341852331473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2458221341852331473'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/10/poll-does-you-company-call-people.html' title='Poll: Does your company call people &quot;resources&quot;?'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6633211056202856715</id><published>2008-10-29T07:36:00.001-07:00</published><updated>2009-01-08T13:52:40.737-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='people'/><title type='text'>Resources vs. People</title><content type='html'>Is it just me, or is anyone else out there bothered by the use of the word &lt;span style="font-style: italic;"&gt;resources &lt;/span&gt;to refer to a company's employees?  Webster's defines resource as:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;That to which one resorts or on which one depends for supply or support; means of overcoming a difficulty; resort; expedient&lt;/blockquote&gt;I suppose employees fit within that definition, but so do the desks and copy machines. Maybe it's my ego, but I like to be distinguished from inanimate objects in the workplace. The word resource to me is just too cold and inhuman.&lt;br /&gt;&lt;br /&gt;Lots of organizations preach that people are their most important asset. It's easy to say, but how do you demonstrate that value?&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;By putting significant effort into designing a thorough and effective interview process, to make sure you hire the best people to begin with. How well organized is your company's interview process? And how often have you had to let someone go because they didn't turn out to be a good fit?&lt;/li&gt;&lt;li&gt;By respecting people within the organization. Give them clear objectives and establish a culture that encourages them to innovate and excel working as a team. Establish a culture of continuous improvement where every employee is truly empowered and &lt;span style="font-style: italic;"&gt;expected &lt;/span&gt;to improve quality, process, and customer satisfaction. In Toyota, every production line worker is expected to stop the line if they find any problem, get to the root cause, and then correct it.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;By growing people within the organization. Give people a clear path for career growth. Give them opportunities to try different roles within the organization. When you have a position to fill, look inside the organization first before looking for someone new.&lt;/li&gt;&lt;/ul&gt;A good indicator of how well your company treats its employees is their longevity within the company. Be wary of any company where the average employee has only been around for 1-2 years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6633211056202856715?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6633211056202856715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6633211056202856715' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6633211056202856715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6633211056202856715'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/10/resources-vs-people.html' title='Resources vs. People'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-3798313269565473016</id><published>2008-10-27T21:27:00.001-07:00</published><updated>2009-01-08T13:50:10.613-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Is Agile a Fad?</title><content type='html'>&lt;p&gt;I attended today's Agile Denver meeting - this time in Boulder - to hear Mary Poppendieck's presentation, &lt;a href="http://agiledenver.org/2008OctMeeting.php"&gt;Is Agile a Fad&lt;/a&gt;?&lt;/p&gt;  &lt;p&gt;I'll summarize some of her material here, mostly in reverse order, starting with the key points and conclusions of the talk, followed by some of the contextual info she presented leading up to those conclusions. &lt;/p&gt;  &lt;h3&gt;The key to successful development organizations&lt;/h3&gt;  &lt;p&gt;The key to a successful development is for engineers (developers) to have a deep understanding of their customers - both internal and external. When new engineers start at Toyota, they spend their first 6 months on the production line assembling cars, so they fully understand their internal customers. Then, they spend 6 months working for a dealership - selling cars - so they know what customers really want.&lt;/p&gt;  &lt;p&gt;Another key is building a culture that retains quality people for the 6-10 years it takes to build true expertise, and growing leaders from within the organization.&lt;/p&gt;  &lt;h3&gt;Fads vs. enduring principles&lt;/h3&gt;  &lt;p&gt;Why do we have these fads that fail?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;silver bullet thinking. there is no silver bullet &lt;/li&gt;    &lt;li&gt;trying to apply 1 solution in different contexts. different contexts require different solutions. &lt;/li&gt;    &lt;li&gt;essential tensions in software. Don't swing too far toward one side or the other; rather find a solution that solves the valid concerns on both sides of the issue. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The principles behind systems engineering are robust over time. The concepts in project management are fragile over time.&lt;/p&gt;  &lt;table width="400" border="1" cellpadding="2" cellspacing="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="200"&gt;Systems Engineering&lt;/td&gt;        &lt;td valign="top" width="200"&gt;Project management&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;low dependency architecture&lt;/td&gt;        &lt;td valign="top" width="200"&gt;complete requirements&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;quality by design&lt;/td&gt;        &lt;td valign="top" width="200"&gt;quality by testing (at the end)&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;technical disciplines&lt;/td&gt;        &lt;td valign="top" width="200"&gt;maturity levels&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;respect for complexity&lt;/td&gt;        &lt;td valign="top" width="200"&gt;scope control&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;skilled tech leaders&lt;/td&gt;        &lt;td valign="top" width="200"&gt;resource mgmt&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;learning &amp;amp; feedback cycles&lt;/td&gt;        &lt;td valign="top" width="200"&gt;timeboxes&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="200"&gt;success = accomplishing system's objective&lt;/td&gt;        &lt;td valign="top" width="200"&gt;success = accomplishing planning scope, cost, schedule&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;5 essential tensions in development&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;People&lt;/strong&gt;. self-managed vs. managers. Answer: the servant leader facilitating self-organization. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Process&lt;/strong&gt;: empirical vs. defined.Solution: relentless improvement, rigorous process for effective improvement. Identify the true root cause of problems, hypothesize solution, determine how to measure if it succeeds. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Product&lt;/strong&gt;: development team vs. customers &amp;amp; biz operations. Solution: whole team philosophy. team talks to customers so they understand the problem deeply. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Planning&lt;/strong&gt;: evolving plans vs. predictability. Solution: pull scheduling, set-based design (build multiple options), clear technical vision&lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Performance&lt;/strong&gt;: concern only for the next iteration vs. long-term scope, schedule &amp;amp; cost. Solution: a team with pride &amp;amp; passion that delights customers - and has a deep knowledge of it's customers' needs, sustainable profit, breakthrough innovation&lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;A brief history of software methodologies and the seeds of agile&lt;/h3&gt;  &lt;p&gt;What happened to all those methodology buzzwords? RAD, lean, structured programming, etc.? Sprinkled throughout the history of software, various people  discovered and promoted practices that we call agile &amp;amp; lean today. They also promoted various practices that were unsuccessful fads.&lt;/p&gt;  &lt;p&gt;1968 &lt;/p&gt;  &lt;p&gt;NATO conference on the software engineering crisis. Edsger Dijkstra said that programming became a problem in relation to the size and complexity of computer hardware. Douglas Ross of MIT said the most deadly thing is the assumption that you can specify what you're going to do, and then do it. The solution (compared to assembly languages): high level languages! (Cobol, Fortran, etc.). This removed drudgery, but increased the level of complexity possible, which led to the same problem all over again(Dijkstra).&lt;/p&gt;  &lt;p&gt;1972&lt;/p&gt;  &lt;p&gt;New York Times software project&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;structured programming made software more readable. Dijkstra proposed quality by design, as opposed to reliance on testing. &lt;/li&gt;    &lt;li&gt;Dave Parnas devised information hiding, the concept of objects. &lt;/li&gt;    &lt;li&gt;Top down programming was introduced by Terry Baker - basically this was the concept of continuous integration. &lt;/li&gt;    &lt;li&gt;The "chief programmer team" concept introduced the tech lead, design review, pair programming, common code ownership. Result was 100 times more productivity (measured in LOC) and higher quality than typical at the time. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;1976&lt;/p&gt;  &lt;p&gt;Barry Boehm proposed that software maintenance was becoming the most expensive part of systems, and that the cost of changes got exponentially greater in later phases of the lifecycle. This famous (infamous?) curve was the key reason that everyone tried to nail down all the requirements at the beginning.&lt;/p&gt;  &lt;p&gt;1982 &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Daniel McCracken &amp;amp; Michael Jackson wrote that the lifecycle concept (waterfall) was harmful and perpetuates failure by constraining thinking, and ignoring the reality that needs inevitably change over time. &lt;/li&gt;    &lt;li&gt;James Martin wrote the 4th gen languages would allow application development without programmers. (A gross oversimplification of the inherent complexity.) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;1984&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scott Schultz at DuPont introduced timebox development. 30 days for analysis &amp;amp; design, 90 days to develop. He called it rapid iterative production prototyping. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;1988 &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Boehm introduces the spiral lifecycle model. More evolutionary model, but it's still a project management model, not a systems engineering model. &lt;/li&gt;    &lt;li&gt;Watts Humphrey introduced software process maturity model (CMM). Attempt to bring in statistical process control and mandate maturity assessments. Focus on project management practices over system engineering practices. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;1991&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;James Martin wrote book on RAD, facilitated by CASE tools. (Where are those CASE tools today? Anyone?) Problem: RAD often produced un-maintainable code. Didn't live up to the hype. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;1995&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Internet booms. J.C.R. Licklider serves as the technical visionary for several key internet organizations. Standards were developed. &lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-3798313269565473016?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/3798313269565473016/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=3798313269565473016' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3798313269565473016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3798313269565473016'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/10/is-agile-fad.html' title='Is Agile a Fad?'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5486893690011474907</id><published>2008-10-27T14:14:00.000-07:00</published><updated>2009-01-08T13:52:28.122-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='people'/><title type='text'>Measurement and management</title><content type='html'>I've been following a thread on the &lt;a href="http://groups.yahoo.com/group/agileprojectmanagement/"&gt;Agile Project Management mailing list&lt;/a&gt; on measuring productivity. One of the posts makes reference to the oft-repeated axiom, "if you can't measure it, you can't manage it." Sounds perfectly reasonable, doesn't it?  It also seems perfectly reasonable that you would want to manage, and therefore measure, the productivity of software developers and software teams. But as several people in this thread point out, there is really no good measure of software productivity. We all dismissed the notion of measuring lines of code a long time ago - at least I hope. Agile methodologies encourage the measurement of team velocity - how many features, story points, or estimated task hours the team completes in a particular iteration. I would argue, as did some in the discussion, that this measurement is properly used only to estimate the workload for the next iteration - it's "yesterday's weather". If it's used by management over the long term to measure team productivity then human nature dictates that the team will skew the estimates to generate a positive outcome.&lt;br /&gt;&lt;br /&gt;I would argue that the best measurements for success are (1) customer satisfaction and (2) profitability. While it's true that true customer satisfaction can't be measured until the end of a development project, the product owner can provide interim measurements of satisfaction - as each iteration is delivered.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5486893690011474907?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5486893690011474907/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5486893690011474907' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5486893690011474907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5486893690011474907'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/10/measurement-and-management.html' title='Measurement and management'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5028854509688330871</id><published>2008-10-19T20:45:00.000-07:00</published><updated>2009-01-08T13:50:47.105-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='xp'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Scrum and XP top list of agile methodologies</title><content type='html'>&lt;a href="http://www.versionone.com"&gt;VersionOne&lt;/a&gt; released the results of &lt;a href="http://www.versionone.com/pdf/3rdAnnualStateOfAgile_FullDataReport.pdf"&gt;The State of Agile Development&lt;/a&gt; survey for 2008. The most commonly used agile methodologies are Scrum and XP. Scrum, Scrum/XP hybrid, and XP together represent almost 80% of agile software development. 1.9% of respondents reported using Lean Development.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5028854509688330871?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5028854509688330871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5028854509688330871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5028854509688330871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5028854509688330871'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/10/scrum-and-xp-top-list-of-agile.html' title='Scrum and XP top list of agile methodologies'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5039565975256149267</id><published>2008-10-17T07:56:00.000-07:00</published><updated>2009-01-08T13:50:10.614-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Simplicity defined</title><content type='html'>One of the most important but most elusive principles of agile development is simplicity. In XP, it's stated as Simple Design, and other contexts often times referred to as KISS (keep it simple, stupid), and closely related to YAGNI (you aren't gonna need it). Simplicity is a key to successful agile development because it's absolutely necessary to support other agile goals and practices:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;short iterations&lt;/li&gt;&lt;li&gt;refactoring&lt;/li&gt;&lt;li&gt;collective ownership&lt;/li&gt;&lt;li&gt;pair programming&lt;/li&gt;&lt;li&gt;avoid premature optimization&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;In turn, simple design is enabled by test-driven development and refactoring.&lt;br /&gt;&lt;br /&gt;The biggest problem with the simplicity principle is that people often disagree on what constitutes "simple", and I've always struggled to come up with a definition of simplicity that was, well, &lt;span style="font-style: italic;"&gt;simple&lt;/span&gt;. I came across a quote today that I think sums it up pretty well, from Antoine Du Saint-Exupery.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Perfection is not when there is no more to add, but no more to take away.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5039565975256149267?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5039565975256149267/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5039565975256149267' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5039565975256149267'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5039565975256149267'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/10/simplicity-defined.html' title='Simplicity defined'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-487218261929348597</id><published>2008-09-30T19:51:00.000-07:00</published><updated>2008-09-30T20:10:24.988-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Lean Thinking</title><content type='html'>&lt;em&gt;Lean Thinking&lt;/em&gt;, by James Womack and Daniel Jones, is a good introduction to Lean theory and presents some compelling cases studies of enterprises - from small and simple to huge and incredibly complex, such as Pratt &amp;amp; Whitney - that made the transformation to Lean. I haven't finished the book yet, but can summarize the primary thrust of lean thinking as eliminating waste (&lt;em&gt;muda&lt;/em&gt;, in Japanese). The foundational lean principals are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Value&lt;/li&gt;&lt;li&gt;Value stream&lt;/li&gt;&lt;li&gt;Flow&lt;/li&gt;&lt;li&gt;Pull&lt;/li&gt;&lt;li&gt;Perfection&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Value &lt;/strong&gt;can only be defined by the final customer, in relation to a specific product, service, or both. It seems like an easy concept, but I challenge you to define your organization's value in a single short statement.&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;Value Stream &lt;/strong&gt;is the complete set of activities required to design a product, produce the product, and manage orders for the product. The value stream typically extends beyond a single company to all of its suppliers. To achieve the ultimate goal a lean enterprise must be formed through cooperation with suppliers. Eliminate muda in this stream.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Flow &lt;/strong&gt;refers to the practice making value-producing activities flow together to dramatically reduce the time required to produce product. It commonly requires removing departmental barriers and changing mentality from producing large batches of parts to producing complete products at the same rate that customers are ordering them.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Pull&lt;/strong&gt; techniques dramatically simplify the planning and scheduling process. Don't build the product until the customer orders it by &lt;strong&gt;pulling &lt;/strong&gt;it from production. Each downstream step in the production process in turn pulls from the step immediately upstream from it.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Perfection &lt;/strong&gt;means, quite simply, that the goal is not settle for doing better than the competition, but to continually strive for improvement (kaizen). You can never reach true perfection, but you can get asymptotically close to it over time.&lt;/p&gt;&lt;p&gt;I'll dig deeper into these concepts in later posts.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-487218261929348597?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/487218261929348597/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=487218261929348597' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/487218261929348597'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/487218261929348597'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/09/lean-thinking.html' title='Lean Thinking'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5345044697641750653</id><published>2008-09-09T11:25:00.000-07:00</published><updated>2009-01-08T13:50:10.615-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>5 levels of planning</title><content type='html'>Yesterday I attended the Agile Denver meeting for a presentation by Hubert Smits on the 5 levels of planning. I was already aware of the 5 levels and I like to use all 5 levels, but it's always good to reinforce the principles behind the practices and hear from other agile practitioners out there. Here are the 5 levels, their suggested frequency, and the content of the plan.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Product vision: annually. A 1-2 sentence statement. The "elevator pitch".&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Product roadmap: 1-2 times/year. The major themes of each release.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Release planning: 3-6 times/year. The user stories/features for 1 release.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Iteration planning: each iteration. With practice, most agile teams choose 1-3 week iterations.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Daily planning (stand-up or daily Scrum meeting): the 3 questions (what did I do since last meeting, what will I do today, and any impediments)&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5345044697641750653?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5345044697641750653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5345044697641750653' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5345044697641750653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5345044697641750653'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/09/5-levels-of-planning.html' title='5 levels of planning'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5432781126831876925</id><published>2008-08-08T06:13:00.000-07:00</published><updated>2008-08-08T06:20:46.886-07:00</updated><title type='text'>Training for product owners</title><content type='html'>There are about a hundred Scrum Master courses for every one Scrum Product Owner training course. Yet the product owner is an absolutely key role in agile/Scrum projects. During the Agile 2008 conference, some people from Innovel presented on the product owner role and have made publicly available some great material for training product owners. It's a hands-on role playing exercise based on a hypothetical product called &lt;a href="http://www.innovel.net/?page_id=65"&gt;Beer Miles&lt;/a&gt;, a credit card that gives users reward points for purchasing beer from participating retailers. The product-owners-in-training are presented with a business case for the product and a set of product capabilities (aka user stories or features) that they must categorize and prioritize.&lt;br /&gt;&lt;br /&gt;Cheers to the folks at Innovel that made this available!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5432781126831876925?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5432781126831876925/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5432781126831876925' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5432781126831876925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5432781126831876925'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/08/training-for-product-owners.html' title='Training for product owners'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-3208724915085405447</id><published>2008-07-10T20:25:00.000-07:00</published><updated>2009-01-08T13:54:38.045-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='theory of constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>The Goal</title><content type='html'>I finished reading &lt;a href="http://www.amazon.com/Goal-Process-Ongoing-Improvement/dp/0884271781/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1215746773&amp;amp;sr=1-1"&gt;&lt;span style="font-style: italic;"&gt;The Goal&lt;/span&gt;&lt;/a&gt; by Eliyahu (Eli) Goldratt. This is classic business novel about the Theory of Constraints (TOC), often cited in Lean and Agile literature. Written as a novel, it's an enjoyable read, and a must-read, I would say, for anyone who is serious about improving the way his business operates.&lt;br /&gt;&lt;br /&gt;I always like to distill a good book down to it's bare essentials, so hear goes.&lt;br /&gt;&lt;br /&gt;The goal is to make money. There are 3 fundamental measurements that express the goal, listed in order of importance.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Throughput: the rate at which the system generates money through &lt;span style="font-style: italic;"&gt;sales&lt;/span&gt;.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Inventory: all the money the system has invested in purchasing things it intends to sell.&lt;/li&gt;&lt;li&gt;Operational expense: all the money the system spends turning inventory into throughput&lt;/li&gt;&lt;/ol&gt;The aim is to maximize throughput while minimizing inventory and operational expense.&lt;br /&gt;Note that in software, inventory is any software or feature that is unfinished or not yet delivered to customers.&lt;br /&gt;&lt;br /&gt;Stated differently:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Throughput is money coming in&lt;/li&gt;&lt;li&gt;Inventory is money stuck inside the system, or investments that potentially could be sold&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Operating expense is money going out (to make throughput); any investment that can't be sold&lt;/li&gt;&lt;/ol&gt;Note: Agile software development reduces inventory by building software in small batches (iterations) that are quickly delivered to customers.&lt;br /&gt;&lt;br /&gt;There are 2 types of resources:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;bottlenecks (a.k.a. constraints): capacity &lt;= demand&lt;/li&gt;&lt;li&gt;non-bottlenecks: capacity &gt; demand&lt;/li&gt;&lt;/ol&gt;Balance the &lt;span style="font-style: italic;"&gt;flow of product&lt;/span&gt; through the system, not capacity, with market demand. Make the flow through the bottleneck equal to market demand. A system needs to have excess capacity to handle the fluctuations in demand and variations in output from each resource in the system.&lt;br /&gt;&lt;br /&gt;Activation vs. utilization of a resource:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;utilizing a resource is using it in a way that moves the system toward the goal&lt;/li&gt;&lt;li&gt;activating a resource is using it whether or not there is any benefit from it's output. &lt;/li&gt;&lt;/ul&gt;Two rules of bottlenecks and non-bottlenecks:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The level to which you can utilize a non-bottleneck resource (without increasing inventory) is determined not by the capacity of that resource but by some other constraint in the system.&lt;/li&gt;&lt;li&gt;Activating a resource is not the same as utilizing it; activating a non-bottleneck to its full capacity is counter-productive with respect to the goal. &lt;/li&gt;&lt;/ol&gt;The implication: you must &lt;span style="font-style: italic; font-weight: bold;"&gt;not &lt;/span&gt;seek to optimize every resource in the system. A system of local optimums in not an optimal system; often it is a very inefficient system. Optimize the whole system; not localized subsystems. [Lean principle: see the whole.]&lt;br /&gt;&lt;br /&gt;The process for accomplishing the goal:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;identify the system's constraints (bottlenecks)&lt;/li&gt;&lt;li&gt;decide how to exploit the constraints; maximize their utilization&lt;/li&gt;&lt;li&gt;subordinate everything else to the above decision. Operate all other components to maximize utilization of the constraint.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;elevate the system's constraints; add resources or otherwise increase capacity of constraint resources&lt;/li&gt;&lt;li&gt;if in the above steps a constraint has been broken, go back to step 1. Do not allow inertia to cause a system's constraint. Whenever a constraint is broken, immediately re-examine conditions included the changes made in steps 2-4; they may now be problematic.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;Effective management seeks answers to these 3 questions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;What should be changed&lt;/li&gt;&lt;li&gt;What should it be changed to&lt;/li&gt;&lt;li&gt;How to cause the change - without creating new problems, and with enthusiastic support&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-3208724915085405447?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/3208724915085405447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=3208724915085405447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3208724915085405447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/3208724915085405447'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/07/goal.html' title='The Goal'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7523027617284822076</id><published>2008-05-27T10:17:00.000-07:00</published><updated>2009-01-08T13:55:25.420-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Perficient achieves CMMI Level 5 using Agile</title><content type='html'>&lt;a href="http://www.perficient.com/"&gt;Perficient&lt;/a&gt;, the company where I recently worked (formerly BoldTech Systems), recently achieved &lt;a href="http://www.perficient.com/pdfs/news/GDC_CMMI_Level5_FINAL.pdf"&gt;CMMI Level 5 certification&lt;/a&gt; at their development center in China using an agile methodology. I worked in the China facility just over a year ago when they achieved CMMI Level 4 and wrote about it in a &lt;a href="http://agileadvocate.blogspot.com/2006/11/agile-cmmi-it-is-possible.html"&gt;previous blog post&lt;/a&gt;. Perficient is now one of the very first companies to achieve level 5 using agile.&lt;br /&gt;&lt;br /&gt;I don't advocate pursuing CMMI certification unless it's a business requirement. There are many offshore (primarily Indian) firms who tout their CMMI Level 5 certification, so it may be an important factor when competing for certain contracts.&lt;br /&gt;&lt;br /&gt;Regardless, this is a great achievement and an important one for the agile community, whether you like CMMI or not.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7523027617284822076?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7523027617284822076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7523027617284822076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7523027617284822076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7523027617284822076'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/05/perficient-achieves-cmmi-level-5-using.html' title='Perficient achieves CMMI Level 5 using Agile'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-2649388927384830403</id><published>2008-04-29T07:01:00.000-07:00</published><updated>2009-01-08T13:57:04.107-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Are you really doing Scrum?</title><content type='html'>Jeff Sutherland, one of the founders of Scrum, has &lt;a href="http://www.infoq.com/interviews/jeff-sutherland-scrum-rules"&gt;spoken about the Nokia Test&lt;/a&gt; - 8 questions to determine if a team is actually doing Scrum. A more succinct summary can be found &lt;a href="http://djellison.blogspot.com/2007/12/nokia-test-are-you-really-agile.html"&gt;here&lt;/a&gt;. Can your team pass the test?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-2649388927384830403?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/2649388927384830403/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=2649388927384830403' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2649388927384830403'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2649388927384830403'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/04/are-you-really-doing-scrum.html' title='Are you really doing Scrum?'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-7653459160499506732</id><published>2008-04-28T20:45:00.000-07:00</published><updated>2009-01-08T13:55:25.421-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Stealth agile and agile contracts</title><content type='html'>I attended tonight's &lt;a href="http://www.agiledenver.org/"&gt;Agile Denver &lt;/a&gt;meeting, which was a presentation by Richard Lawrence from Avenade entitled &lt;em&gt;Stealth Agile&lt;/em&gt; - how to implement agile techniques when you don't have full -- or any -- buy-in from management. It was a short preso, and the discussion after the formal part was informative. One audience member asked how to introduce agile practices on a project which is architecture-centric and project leaders tend organize developers' work around components or layers, rather than features that provide end-user value. The suggestion from the audience was to build a small feature as a proof-of-concept designed to expose risk. Architects generally favor proofs of concept, and they also generally like the idea of finding and reducing risk. Note that you can present this idea without even using the word agile or any of it's practices. Sneaky, eh? One caution though - when people see that your POC works, it'll likely end up in production, so built it with production quality, including automated tests.&lt;br /&gt;&lt;br /&gt;One of the most interesting questions, I thought, had to do with a decidedly non-stealth agile issue, which is, how do you write a contract to be agile from the beginning? Richard's response was that traditional contracts are typical very scope-centric; they focus on fairly low-level details about what software features will be built. For an agile contract, he advocates one that focuses on the product vision, and just enough scope to specify who will own the intellectual property of different parts that get built - something the Avenade legal team insisted on for their consulting contracts. The agile contract specifies the vision, a team size, and a time frame in which the contractor will endeavor to achieve the product/project vision, allowing customer and supplier to collaborate on refining the specific features which best achieve that vision - through iterative development of working software and the feedback that results. I suppose this requires a fair amount of trust between the parties, but if enables success, I'd say a little trust is a small price to pay.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-7653459160499506732?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/7653459160499506732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=7653459160499506732' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7653459160499506732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/7653459160499506732'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/04/agile-contracts.html' title='Stealth agile and agile contracts'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-2755078641390947601</id><published>2008-04-21T19:10:00.000-07:00</published><updated>2009-01-08T13:55:55.298-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Lean foundation of Agile Methodologies</title><content type='html'>Agile methodologies such as Extreme Programming and Scrum emerged in the 1990's as a radical departure from traditional, waterfall software methodologies. But were these agile methodologies really so new and radical? Many thought leaders have recently made the point that agile principles and practices are a software manifestation of the principles behind the lean product development strategies applied so successfully by Toyota starting decades before the agile software movement began in earnest.&lt;br /&gt;&lt;br /&gt;Listed here are the seven principles of lean software development as identified by Mary and Tom Poppendieck in their book &lt;a style="font-style: italic;" href="http://www.amazon.com/Lean-Software-Development-Agile-Toolkit/dp/0321150783/ref=pd_bbs_sr_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1208835916&amp;amp;sr=8-1"&gt;Lean Software Development: an Agile Toolkit&lt;/a&gt; and their agile counterparts from the &lt;a href="http://www.agilemanifesto.org/"&gt;Agile Manifesto&lt;/a&gt; (1), &lt;a href="http://en.wikipedia.org/wiki/Scrum_%28development%29"&gt;Scrum &lt;/a&gt;(2), and &lt;a href="http://en.wikipedia.org/wiki/Extreme_Programming"&gt;Extreme Programming&lt;/a&gt; (3).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;Eliminate Waste&lt;/span&gt;&lt;br /&gt; &lt;ul&gt;&lt;li&gt;Working software is the primary measure of progress (1)&lt;/li&gt;&lt;li&gt;Simplicity - maximizing work not done - is essential (1).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Simple design - YAGNI (3)&lt;/li&gt;&lt;li&gt;The most efficient method of conveying information is face-to-face conversation (1)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;business people and developers work together daily (1)&lt;/li&gt;&lt;li&gt;XP planning game (3)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Test-driven development (3)&lt;/li&gt;&lt;li&gt;Continuous integration (3)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Amplify learning (feedback)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;early and continuous delivery of valuable software (1)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;business people and developers work together daily (1)&lt;/li&gt;&lt;li&gt;Scrum sprint reviews held with all stakeholders (2)&lt;/li&gt;&lt;li&gt;XP - small, frequent releases (3)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Decide as late as possible&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Welcome changing requirements, even late in the process (1)&lt;/li&gt;&lt;li&gt;Scrum product backlog - prioritized prior to each sprint (2)&lt;/li&gt;&lt;li&gt;Sprint planning / XP planning game (2) (3)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Deliver as fast as possible&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;deliver working software frequently (1)&lt;/li&gt;&lt;li&gt;potentially shippable software at the end of each short sprint (2)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Empower the team&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Build projects around motivated individuals...trust them to get the job done (1)&lt;/li&gt;&lt;li&gt;The best...designs emerge from self-organizing teams (1)&lt;/li&gt;&lt;li&gt;Scrum self-organizing teams and Scrum master as servant leader (2)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;Build integrity in (to delight customers)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Our highest priority is to satisfy the customer through early...delivery of valuable software (1)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Continuous attention to technical excellence and good design (1)&lt;/li&gt;&lt;li&gt;Design improvement / refactoring (3)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:130%;"&gt;See the whole (optimize the whole system, don't sub-optimize)&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;At regular intervals, the team reflects on how to become more effective (1)&lt;/li&gt;&lt;li&gt;Scrum - sprint retrospective (2)&lt;/li&gt;&lt;li&gt;Design improvement / refactoring (3)&lt;/li&gt;&lt;li&gt;sustainable development - should be able to maintain a constant pace indefinitely (1) (3)&lt;/li&gt;&lt;li&gt;Design improvement / refactoring (3)&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-2755078641390947601?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/2755078641390947601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=2755078641390947601' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2755078641390947601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/2755078641390947601'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/04/lean-foundation-of-agile-methodologies.html' title='Lean foundation of Agile Methodologies'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6347194189782015659</id><published>2008-04-17T19:20:00.000-07:00</published><updated>2009-01-08T13:55:25.422-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>When agile is not a natural fit</title><content type='html'>For a while now, I've been leading a team in a situation where textbook agile practices aren't a natural fit. My company, IP Commerce, has built a platform to enable electronic payments. Applications (built by third parties) connect to our platform to gain access to a variety of payment services such as credit card processing, electronic check processing, and e-commerce services such as PayPal. My team is responsible for integrating the various payment services with the IP Commerce platform. Each integration is called an adaptor, which translates messages (transactions) from the IP Commerce format to the service provider format &amp;amp; protocol. Why is it that this type of development doesn't easily fit into the typical agile model?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;The scope of each adaptor is essentially fixed&lt;/li&gt;&lt;li&gt;Each adaptor must be certified before it can be deployed&lt;/li&gt;&lt;li&gt;The duration of each adaptor project is 6-12 weeks&lt;/li&gt;&lt;/ul&gt;Let's examine each issue in more detail.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Scope&lt;/span&gt;&lt;br /&gt;Each adaptor translates messages, and to accomplish useful business functionality, there is a minimal set of messages that it must support. For example, in credit card processing, a customer must be able to do authorizations, voids, refunds, and settlements. Without all of those features, it doesn't meet any customer's minimal requirements. The only scope which is negotiable is minor features, such as corporate purchase cards or certain industry-specific features, for example those that support the lodging industry.&lt;br /&gt;&lt;br /&gt;One of the core presumptions of agile is that scope is negotiable and features can be prioritized. If 90% of the scope is fixed and all the features (in this case, message/transaction types) have the same priority, the backlog isn't very interesting.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Certification&lt;/span&gt;&lt;br /&gt;Agile methodologies, Scrum in particular, assume that a product can be deployed when the product owner judges it to have enough functionality completed. In our case, an adaptor cannot be deployed until the service provider to whom we're integrating certifies it. Not to mention that, as explained above, we need essentially all of the features working before it is useful to customers. This dependency on an external verification process is unavoidable, and unfortunately, it often takes a long time.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Duration&lt;br /&gt;&lt;/span&gt;Each adaptor project lasts between 6-12 weeks. Most agile projects I've been involved with before now have been much longer, and have many more iterations that establish the all-important feedback loop and team rhythm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Adapting agile to the situation&lt;/span&gt;&lt;br /&gt;One approach we have tried is to treat each adaptor as a single coarse-grained feature in the backlog. This makes sense because these are the units of functionality that the business prioritizes, but on the other hand it doesn't make sense because agile features (user stories or backlog items) need to be small enough to fit into a single iteration (sprint). That disadvantage is a big one in my mind, so we have decided it's not a good approach.&lt;br /&gt;&lt;br /&gt;Instead, we have decided to choose smaller backlog items, which for a single adaptor include a combination of true user-stories (message types and other user-identifiable features) and milestones such as 3rd party certification. In the past, I have been a big proponent of using a consistent sprint/iteration duration. In this situation, however, we've found it to be useful to first identify a concrete objective for each iteration (e.g. complete the first 2 message types, or achieve 3rd party certification) and then choose the sprint length based on the tasks required to achieve the objective - while keeping each iteration to 4 weeks or less.&lt;br /&gt;&lt;br /&gt;It still feels awkward at times, but I feel we benefit greatly from relatively short iterations.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6347194189782015659?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6347194189782015659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6347194189782015659' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6347194189782015659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6347194189782015659'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2008/04/when-agile-is-not-natural-fit.html' title='When agile is not a natural fit'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-6223503285581943333</id><published>2007-05-29T07:49:00.000-07:00</published><updated>2009-01-08T13:56:20.357-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>Rolling back offshoring</title><content type='html'>For some companies, offshore development, particularly in India, is losing the financial advantages it once had. Software developer wages in India are overall about 30% of what they are in the US, but top performers are able to demand 50% to 75% of US salaries, with 15-30% annual increases, according to &lt;a href="http://news.yahoo.com/s/infoworld/20070529/tc_infoworld/88857_1"&gt;this story&lt;/a&gt;.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt; "If you're a startup and you're doing a lot of iterative design and you constantly need a higher level of agility, you might find [offshoring] more burdensome than the cost differential is worth," said Fran Karamouzis, a research vice president at Gartner who specializes in outsourcing issue. &lt;/p&gt;On the other hand, "If you can give the Indian team things that are clearly delineated that they can own and drive on their own, then it works out pretty well," said Pejman Roshan, cofounder and senior director of marketing at Agito Networks, a wireless technology startup in Sunnyvale, Calif. that outsources software coding to a services firm in Bangalore. &lt;/blockquote&gt;In addition to the communication challenges introduced by different cultures and a 12-hour timezone difference, multiple power outages every day eat into efficiency of Indian teams.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-6223503285581943333?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://news.yahoo.com/s/infoworld/20070529/tc_infoworld/88857_1' title='Rolling back offshoring'/><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/6223503285581943333/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=6223503285581943333' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6223503285581943333'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/6223503285581943333'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2007/05/rolling-back-offshoring.html' title='Rolling back offshoring'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5451983014215744354</id><published>2007-04-05T21:14:00.000-07:00</published><updated>2009-01-08T13:57:35.710-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>An offshore agile success story</title><content type='html'>&lt;blockquote style="font-style: italic;"&gt;In a previous post, I briefly mentioned the success my team had applying an agile approach on an offshore project. Here is some more about what we did that worked well for us.&lt;/blockquote&gt;In agile methodologies, a co-located team is critical to success - a prerequisite, some would argue. But what if you're stuck with a geopgraphically distributed team? Even worse, what if part of the team is offshore, 15 time zones away, it's members a part of a very different culture, and their English comprehension is limited? Is it possible to be agile in this situation? If so, how?&lt;br /&gt;&lt;br /&gt;This is the situation I faced on my recent project. The onshore (US) team was colocated with the customer, and consisted of a project manager, a business analyst, and 2 architects/senior developers.  The offshore contingent was located in Hangzhou, China and was a team of 8-10 developers and testers.&lt;br /&gt;&lt;br /&gt;The project: build a leading-edge video streaming application using linux, MySQL, Java, javascript, and a few other technologies (Perl, PHP) thrown in for good measure.&lt;br /&gt;&lt;br /&gt;The result: we delivered a high-quality application on time, to rave reviews from end users.&lt;br /&gt;&lt;br /&gt;How did we make offshore agile work?  To some extent, by being less agile, and less offshore. Here is how we organized the project for success.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Bring your offshore team onshore and have a single colocated team - at the customer site - as early as possible, and for as long as you can. We had our entire China contingent onsite for 3-4 months at the beginning of the project.&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Note: obtaining visas can be tricky. We used B-1 visas, although we were pushing the limit on what can be done with B-1's. H-1B and L-1 visas are possbile in some cases. J-1 visas are another option, and there may be organizations that can help you arrange these. BoldTech worked with &lt;a href="http://www.castusa.org/"&gt;CAST&lt;/a&gt;, the Chinese Association for Science and Technology USA, to obtain L-1 visas for some people.&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Share the vision. The entire team should know and be continually reminded of the vision and road map for the project. What is the end goal? Who are the end users? What are the key  features in the next release?&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;The offshore team participates in - and drives - demonstrations to the customer. Delivering potentially shippable software each iteration has a very tangible meaning to developers if they know they will be personally demonstrating it to the customer. We got lax on this and stopped doing it after the team went back to China - looking back I kick myself for not making it continue.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Send US team members to your offshore location. Do this as often and for as long as you can. When the developers returned to China, I spent 4 months in China as the team lead, and brought my family with me. It's hard to find people willing to take that assignment, but you can send various US folks on a rotating basis for shorter visits if that's the best you can do.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Sufficient analysis and documentation. Once the offshore team was offshore again, scribbling a few notes on a note card wasn't sufficient to communicate requirements. The developers comprehension of spoken English was limited, so thorough requirements documentation became very important. And unless you like to answer the phone at 3 am to answer questions from China, I recommend that you have good-enough documentation. We combined screen mock-ups, narrative text, and use cases, as appropriate for each feature / user story.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Online collaboration tools. We used XPlanner, Mantis, and Mediawiki. For meetings and communcation, we liberally applied phone calls, web conferences, IM, and email.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Shift work schedules so working hours between locations overlap&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Adjust your communication style. Listen closely to a conversation between two native English speakers, and you'll quickly learn that a huge proportion of what we say is idioms, expressions, and sayings. "Are we on the same page?" "Don't go down that rat hole." When you're talking to folks from China, you can't talk that way. Slow down, use common, simple words, and avoid the idioms.&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5451983014215744354?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5451983014215744354/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5451983014215744354' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5451983014215744354'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5451983014215744354'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2007/04/offshore-agile-success-story.html' title='An offshore agile success story'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-569251598335471947</id><published>2007-04-02T17:35:00.000-07:00</published><updated>2007-04-02T17:37:42.897-07:00</updated><title type='text'>New gig at IP Commerce</title><content type='html'>I accepted a job offer today to be Director of Integration Delivery at &lt;a href="www.ipcommerce.com"&gt;IP Commerce&lt;/a&gt;, a company based in Denver. The company is building a software platform to enable and simplify electronic payments over the internet. So what will I be doing? Building and managing teams of developers that will build software to connect the system to various banks and payment service providers. I'm excited about the opportunity, and I'll be among friends - I've worked with many people there in the past.&lt;br /&gt;&lt;br /&gt;I've enjoyed my 2nd tour of duty with &lt;a href="http://www.boldtech.com/"&gt;BoldTech&lt;/a&gt;, and the unique opportunity I had to work in China and build a &lt;a href="http://www.envysion.com/"&gt;cool video web site&lt;/a&gt; at the same time while using agile techniques. This new position should be a great opportunity for me, though, and I look forward to it.&lt;br /&gt;&lt;br /&gt;It's a bit premature for me to say how agile methodologies will figure into the work, but I will write more about it later.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-569251598335471947?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/569251598335471947/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=569251598335471947' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/569251598335471947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/569251598335471947'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2007/04/new-gig-at-ip-commerce.html' title='New gig at IP Commerce'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5558611148838513719</id><published>2007-03-30T22:34:00.000-07:00</published><updated>2009-01-08T13:56:20.358-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><title type='text'>A successful agile offshore project</title><content type='html'>Since July, I've been working for &lt;a href="http://www.boldtech.com/"&gt;BoldTech Systems&lt;/a&gt; as a consultant to &lt;a href="http://www.envysion.com/"&gt;Envysion&lt;/a&gt;, a start-up company in Boulder that provides web-based video management solutions. This is the project that brought me to China to lead a great team of developers in building Envysion's new web-based video application.  We officially released the web site to the public this week, although several customers had been using it prior to then in a beta version.&lt;br /&gt;&lt;br /&gt;I lead the team using agile principles and practices, and the result is a happy customer and very enthusiastic end-users.&lt;br /&gt;&lt;br /&gt;Is "agile offshore" an oxymoron?  To the hard-core agile fundamentalist, maybe so. With a distributed team and a remote customer, you need to try harder to be agile, and compensate for the obvious drawbacks of the situation as best you can. This project shows that a practical approach based on agile principles can yield  fantastic results.&lt;br /&gt;&lt;br /&gt;Check out the site &lt;a href="http://www.envysion.com/"&gt;here&lt;/a&gt;!  Note - you will need to use IE on Windows XP. We'll be adding support for other browsers and platforms in the future.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5558611148838513719?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5558611148838513719/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5558611148838513719' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5558611148838513719'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5558611148838513719'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2007/03/successful-agile-offshore-project.html' title='A successful agile offshore project'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-5872369218030986945</id><published>2007-02-28T11:55:00.000-08:00</published><updated>2009-01-08T13:55:25.423-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Grass-roots Agility</title><content type='html'>This Monday, Feb. 26, I attended the &lt;a href="http://www.agiledenver.org/"&gt;Agile Denver&lt;/a&gt; meeting for a presentation by Greg "Hap" Pearman entitled &lt;span style="font-style: italic;"&gt;Being Agile in a Non-Agile Space&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;The gist of the talk was, how can one be agile if the company you're working with isn't embracing agile methodologies? Greg advocates a grass-roots effort.&lt;br /&gt;&lt;br /&gt;Here are Greg's suggestions.&lt;br /&gt;&lt;br /&gt;1. Have courage&lt;br /&gt;- many agile initiatives are grass-roots&lt;br /&gt;- to know when it's best to quit or start over&lt;br /&gt;- don't be afraid to fail&lt;br /&gt;&lt;br /&gt;2. you need to really know your stuff to push agile&lt;br /&gt; - how and why agile works&lt;br /&gt; - sharpen the saw&lt;br /&gt;&lt;br /&gt;3. Set expectations&lt;br /&gt;- communicate often and early&lt;br /&gt;&lt;br /&gt;4. Lead by example&lt;br /&gt;Build trust&lt;br /&gt;&lt;br /&gt;5. Start by fixing the biggest pain points of the process&lt;br /&gt;- don't start with the easy/small stuff!&lt;br /&gt;- biggest ROI&lt;br /&gt;&lt;br /&gt;6. Understand dependencies between agile practices.&lt;br /&gt;- If you don't do one practice, how will you compensate?&lt;br /&gt;&lt;br /&gt;Based on his experience at US West / Qwest, Greg has the following advice if you will attempt to transition a large organization to agile methodologies:&lt;br /&gt;- go fully agile from the start, and give team lots of support to succeed&lt;br /&gt;- agile practices are interdependent&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-5872369218030986945?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/5872369218030986945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=5872369218030986945' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5872369218030986945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/5872369218030986945'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2007/02/grass-roots-agility.html' title='Grass-roots Agility'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-116438302346837695</id><published>2006-11-24T07:38:00.000-08:00</published><updated>2009-01-08T13:55:25.424-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Agile CMMI blog</title><content type='html'>From a comment on this blog, I discovered the &lt;a href="http://www.entinex.com/agilecmmi/"&gt;Agile CMMI blog&lt;/a&gt;. Seems like a great resource to find out about the growing interest in reconciling these 2 worlds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-116438302346837695?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.entinex.com/agilecmmi/' title='Agile CMMI blog'/><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/116438302346837695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=116438302346837695' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116438302346837695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116438302346837695'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/11/agile-cmmi-blog.html' title='Agile CMMI blog'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-116378130685551802</id><published>2006-11-17T08:12:00.000-08:00</published><updated>2009-01-08T13:55:25.425-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CMMI'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Agile CMMI - it is possible</title><content type='html'>&lt;a href="http://www.boldtech.com"&gt;BoldTech Systems&lt;/a&gt; just achieved CMMI Level 4 at their Hangzhou, China office, where I'm currently working as an agile coach. And they did so legitimately, while following essentially agile practices.  I say &lt;span style="font-style: italic;"&gt;legitimately &lt;/span&gt;because many companies appear to finagle a CMMI via a smoke-and-mirrors appraisal process. In fact, BoldTech's Hangzhou organization went from level 1 to level 4 in just 2 years.&lt;br /&gt;&lt;br /&gt;BoldTech was a pioneer in the adoption of agile methodologies, practicing hard-core XP when I starting working there in 1999. And I do mean hard-core, including 100% pair programming. Since then, the methodology has evolved from pure XP fundamentalism to a pragmatic adaptation of agile techniques based on years of hard lessons learned. Some of the practices in the trenches are not nearly as agile as I would like them to be, but on the macro level it's definitely agile.&lt;br /&gt;&lt;br /&gt;I'm not a big fan of CMMI, but that's primarily because it's so often misapplied to enforce a rigid process for the sake of the process, and not because the process provides value to customers. If you keep the right focus and do a sensible tailoring of the CMMI practice areas, you can be agile and CMMI compliant at the same time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-116378130685551802?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/116378130685551802/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=116378130685551802' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116378130685551802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116378130685551802'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/11/agile-cmmi-it-is-possible.html' title='Agile CMMI - it is possible'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-116195070929555008</id><published>2006-10-27T04:55:00.000-07:00</published><updated>2009-01-08T13:58:23.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>The seating chart</title><content type='html'>What formation is your team in during the daily stand-up meeting? Hopefully it's close to a circle, where each team member can make eye contact with every other team member. Many studies have shown that a significant amount of the information conveyed in a conversation is non-verbal, so make sure everyone is getting the full story.&lt;br /&gt;&lt;br /&gt;Is everyone facing the leader/scrum master?   This could be a problem. The leader should be a facilitator for the meeting which is held primarily to share information among all the team members. It's not just a status report to the leader/facilitator.&lt;br /&gt;&lt;br /&gt;For longer meetings such as iteration planning sessions, pay attention to the seating; the same principles apply. Arrange chairs in a circular or semi-circular fashion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-116195070929555008?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/116195070929555008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=116195070929555008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116195070929555008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116195070929555008'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/10/seating-chart.html' title='The seating chart'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-116117993590796758</id><published>2006-10-18T06:39:00.000-07:00</published><updated>2009-01-08T13:55:25.425-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>The 3 Scrum questions and the language impediment</title><content type='html'>"What is your name?"&lt;br /&gt;"What is your quest?"&lt;br /&gt;"What is the velocity of an unladen swallow?"&lt;br /&gt;&lt;br /&gt;Wait, sorry - those 3 questions are for the &lt;a href="http://www.youtube.com/watch?v=HrSZYcYgWQw"&gt;bridge of death&lt;/a&gt; - they have nothing to do with agile software development.&lt;br /&gt;&lt;br /&gt;One of the 3 questions each team member answers during the daily Scrum (daily stand-up meeting) is, "are there any impediments to your work?"&lt;br /&gt;&lt;br /&gt;I am currently working in China with a team building a web app for a US-based client. One of our impediments is the language barrier. In fact, the word "impediment" itself isn't in the vocabulary of my Chinese colleagues.  So how do you ask if there are any impediments?&lt;br /&gt;&lt;br /&gt;I ask if they have any "problems or issues", but that's not quite the right. As the scrum master/agile coach, I've found that the following question hits the mark:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;What can I do to help the team?&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;With those eight short words, I've found that I get much more insightful responses, and can root out some important impediments.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-116117993590796758?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/116117993590796758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=116117993590796758' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116117993590796758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116117993590796758'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/10/3-scrum-questions-and-language.html' title='The 3 Scrum questions and the language impediment'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-116100633650974635</id><published>2006-10-16T06:30:00.000-07:00</published><updated>2009-01-08T13:55:25.426-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>One developer per feature</title><content type='html'>When you're planning an iteration, you start with user stories, break them into tasks, make estimates, commit to the iteration scope, and then begin working (as a collaborative, sel-organizing team, of course).&lt;br /&gt;&lt;br /&gt;My past 2 project teams have both concluded that it's better to have 1 person (or pair of programmers) develop an entire feature than to have different people working on different sub-tasks. Avoid the temptation to break a story into layered tasks such as "build the DB", "build the domain objects", and "build the UI" -- with each task worked by different people. You may have people who specialize in only one of these layers, but your team will be more productive and flexible in the long run if everyone has broader skills. Besides, having 3 different people working on 1 feature requires lots of coordination and presents lots of opportunities for &lt;span style="font-style: italic;"&gt;mis&lt;/span&gt;communication. Instead, have one person (or pair, for you pair-programming zealots) build the whole shebang.&lt;br /&gt;&lt;br /&gt;In OO development, we aim to minimize coupling between components and maximize cohesion within components. This is the same concept. Each developer is a component of the team, and you want to minimize the amount of coupling &lt;span style="font-style: italic;"&gt;required &lt;/span&gt;between developers; when coupling (communication) is required, you use the most effective means of communication possible - face to face conversation. At the same time, you want to maximize developer's internal cohesion - by letting him/her focus on a single feature.&lt;br /&gt;&lt;br /&gt;Of course, to do this, you need to have stories/features which are small enough for 1 person to complete within a single iteration. But that's a worthy goal for many other reasons, too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-116100633650974635?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/116100633650974635/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=116100633650974635' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116100633650974635'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/116100633650974635'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/10/one-developer-per-feature.html' title='One developer per feature'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-115542830568273123</id><published>2006-08-12T17:10:00.000-07:00</published><updated>2009-01-08T13:55:25.426-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>The 7 Habits of Highly Effective Agile Teams</title><content type='html'>After reading Stephen R. Covey's &lt;span style="font-style: italic;"&gt;The 7 Habits of Highly Effective People&lt;/span&gt;,  I was struck by the commonalities between some of the principles in his book and those of agile development.&lt;br /&gt;&lt;br /&gt;This is how I see the two come together.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 1: Be Proactive&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;The essence of this habit for me can be summarized with a single quote from Covey:&lt;br /&gt;&lt;br /&gt;   &lt;span style="font-style: italic;"&gt;Our behavior is a function of our decisions, not our conditions.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When the team is subject to outside influences, changing priorities, and “scope creep”, it can complain, or it can:&lt;br /&gt;1.    choose to explain to these outsiders from management, marketing, etc., the consequences of changing direction in mid-iteration&lt;br /&gt;2.    choose to drop lower priority features&lt;br /&gt;3.    choose to abort the sprint/iteration and plan a new one&lt;br /&gt;4.    choose to accept that stakeholders, not developers, have responsibility and accountability for setting product priorities&lt;br /&gt;&lt;br /&gt;A strong product owner and scrum master should provide the leadership and courage to make this happen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 2: Begin with the end in mind&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Agile teams should start a project, a release, an iteration, and each day with a clear vision of the goal. The 5 levels of planning provide that vision:&lt;br /&gt;-    Product vision statement&lt;br /&gt;-    Product roadmap&lt;br /&gt;-    Release plan&lt;br /&gt;-    Iteration/sprint plan&lt;br /&gt;-    Daily plan (from daily stand-up/scrum meeting)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 3: Put first things first&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;This habit emphasizes personal management to prioritize your life; allocate plenty of time for activities which are important, but not urgent (What Covey calls “Quadrant II” activities).&lt;br /&gt;&lt;br /&gt;Scrum and XP both emphasize the importance of prioritizing. XP in particular, with it’s rigorous discipline around engineering practices, ensures that the team is investing time to achieve a high and sustainable velocity.&lt;br /&gt;&lt;br /&gt;Particularly, the XP practices of refactoring and test-driven development are prime examples of Quadrant II activities. In Scrum, an effective product owner, scrum master, and team should collaborate to ensure that the product backlog and spring backlog address not only the highest priority business features, but also technical activities required to maintain a productive team environment.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 4: Think win/win&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Because agile teams are:&lt;br /&gt;1.    Self-organizing and self-motivated by a personal commitment to achieve the sprint goal&lt;br /&gt;2.    Not bound by a rigid and prescriptive process&lt;br /&gt;3.    Able to quickly adapt to changing business priorities&lt;br /&gt;4.    Empowered to insist on high quality&lt;br /&gt;5.    Working in a sustainable manner&lt;br /&gt;&lt;br /&gt;Then they are free to seek solutions which meet the needs of customers and at the same time provide developers with opportunities to learn, grow, and produce the highest quality product.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 5: Seek first to understand, then to be understood&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;An agile team’s number one focus is to deliver value to the customer. The team collaborates closely with customers to fully understand the product, it’s goal, and it’s features. Once the team has this understanding, and has proven that it can quickly deliver value, then it will build the trust required for those occasions when negotiating with customers and stakeholders is required. (We value customer collaboration over contract negotiation. But we still gotta negotiate sometimes!)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 6: Synergize&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agile teams are deliberately cross-functional; they consist of people who specialize in fields such as database development, UI development, and testing. In agile development, we intentionally throw people with these diverse skill sets into close quarters and “shake well” to ensure that they collaborate closely. Agile teams truly value the specific strengths of each team member and seek to get the maximum synergistic benefit from the creative combination of everyone’s skills.&lt;br /&gt;&lt;br /&gt;On agile teams, we don’t stifle creativity and cooperation by putting team members in competition with one another; we reward the entire team for meeting it’s collective goal. We don’t manage by command-and-control; we let self-organizing teams use their collective wisdom to find the best method to reach the goal.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Habit 7: Sharpen the saw&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This habit is about the importance of physical, mental, spiritual and social self-renewal.&lt;br /&gt;&lt;br /&gt;Agile teams have frequent retrospectives. This is the time when the team re-examines the effectiveness of it’s practices and reconsiders it’s activities in light of the project goal and agile principles. This is one form of renewal.&lt;br /&gt;&lt;br /&gt;By creating a culture and environment which values sustainable development, individual self-renewal is possible. But it should also be encouraged. An agile team should also provide team members the personal time to research technologies, tools, and topics that interest them and will expand their knowledge and understanding. Even if the topic doesn’t have an apparent application on the current project or iteration, the investment of time will pay big dividends in the long term.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-115542830568273123?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/115542830568273123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=115542830568273123' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115542830568273123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115542830568273123'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/08/7-habits-of-highly-effective-agile.html' title='The 7 Habits of Highly Effective Agile Teams'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-115326184578723106</id><published>2006-07-18T15:26:00.000-07:00</published><updated>2009-01-08T13:58:42.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><title type='text'>Managing your personal life with Scrum</title><content type='html'>Pete Deemer posted this &lt;a href="http://groups.yahoo.com/group/scrumdevelopment/message/14751"&gt;thought-provoking message&lt;/a&gt; on the yahoo scrumdevelopment group about using Scrum to manage his personal time. His "life backlog" consists of everything from chores, to exercise, to quality time with his family.&lt;br /&gt;&lt;br /&gt;Sprint planning takes place weekly, where he typically commits to about 10 hours' worth of personal tasks. He always keep some free time unallocated, to maintain his spontaneity (and sanity). He also has a daily scrum meeting with himself each day, and tracks his personal burndown chart on the kitchen wall.&lt;br /&gt;&lt;br /&gt;I love the idea of using Scrum's simple techniques for organizing one's life. What do you think?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-115326184578723106?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/115326184578723106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=115326184578723106' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115326184578723106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115326184578723106'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/07/managing-your-personal-life-with-scrum.html' title='Managing your personal life with Scrum'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-115280207570977957</id><published>2006-07-13T07:39:00.000-07:00</published><updated>2009-01-08T13:58:42.274-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Book summary: Collaboration Explained</title><content type='html'>I read Jean Tabaka's book: &lt;span style="font-style: italic;"&gt;Collaboration Explained: Facilitation Skills for Software Project Leaders&lt;/span&gt;. It describes many techniques an agile leader should keep handy in his/her toolbox - I recommend it.&lt;br /&gt;&lt;br /&gt;Here is a brief summary of some of the salient points from the book.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Collaboration and servant leadership&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In a collaborative culture, teamwork and self-organizing teams are highly valued. A collaborative culture is on the opposite end of the spectrum from a command and control culture. Leaders seek to get the best out of the team by optimizing their collaboration and protecting the team from outside influences which work against collaboration. The agile leader should be a servant leader:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;...in a position of strength, they determine that the greatest power they can wield is in service to their teams as leader.&lt;/blockquote&gt;&lt;span style="font-weight: bold;"&gt;Some attributes of a servant leader&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Goal setting to guide the team rather than prescribing tasks&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Listening as a means to lead - ask questions!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Clear sense of values&lt;/li&gt;&lt;li&gt;Personal growth&lt;/li&gt;&lt;li&gt;Tolerance of imperfection - trust the team's decisions&lt;/li&gt;&lt;li&gt;Positive attitude&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Evolving toward a high performance team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Teams go through 4 stages on the route to high performance, and they need different leadership techniques at each stage.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Forming&lt;/li&gt;&lt;li&gt;Storming&lt;/li&gt;&lt;li&gt;Norming&lt;/li&gt;&lt;li&gt;Performing&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Characteristics of a collaborative team&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Self-organizing (vs. title or role-based)&lt;/li&gt;&lt;li&gt;Empowered to make decisions&lt;/li&gt;&lt;li&gt;Members believe they can solve problems for themselves&lt;/li&gt;&lt;li&gt;Committed to success &lt;span style="font-style: italic;"&gt;as a team&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Motivated by trust, mutual respect and mutual accountability&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Engage in participatory decision making&lt;/li&gt;&lt;li&gt;Decisions are consensus-driven&lt;/li&gt;&lt;li&gt;Constructive disagreement is healthy&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Preparing for collaborative meetings&lt;/span&gt;&lt;br /&gt;A good rule of thumb is for the leader/facilitator to spend 2 hours preparing for every 1 hour of meeting time.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Interview the meeting sponsor&lt;/li&gt;&lt;li&gt;Survey participants&lt;/li&gt;&lt;li&gt;Set the agenda&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Conflict resolution and Consensus building&lt;/span&gt;&lt;br /&gt;Teams should strive for consensus on major decisions, but it can take considerable time and effort to reach a consensus. Teams should decide in advance which decisions require consensus and which can be decided more quickly (by majority vote, for example).&lt;br /&gt;&lt;br /&gt;Use the "fist of five" technique to measure consensus. When someone in the group has proposed a decision, ask everyone to simultaneously to show a number of fingers indicating their level of agreement:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;5 fingers: I'm wildly enthusiastic about it&lt;/li&gt;&lt;li&gt;4 fingers: I like the idea and fully support it&lt;/li&gt;&lt;li&gt;3 fingers: It's not perfect, but I can support it&lt;/li&gt;&lt;li&gt;2 fingers: I don't like it, and can't fully support it&lt;/li&gt;&lt;li&gt;1 finger: I am very much opposed to this idea&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Thomas-Kilmann conflict resolution mode&lt;/span&gt;&lt;br /&gt;The following lists the modes and how often teams should strive to resolve conflict via that mode:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Collaboration: 65%&lt;/li&gt;&lt;li&gt;Compromise: 20%&lt;/li&gt;&lt;li&gt;Avoidance: 10%&lt;/li&gt;&lt;li&gt;Accomodation: 5%&lt;/li&gt;&lt;li&gt;Competition: never!&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Leadership and facilitation techniques&lt;/span&gt;&lt;br /&gt;The book is full of useful techniques in these areas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Meeting organizing tools, e.g. the parking lot&lt;/li&gt;&lt;li&gt;Kicking off a meeting&lt;/li&gt;&lt;li&gt;Gathering information&lt;/li&gt;&lt;li&gt;Project &amp;amp; task estimating&lt;/li&gt;&lt;li&gt;Processing and organizing information&lt;/li&gt;&lt;li&gt;Retrospection and visioning&lt;/li&gt;&lt;li&gt;Managing meeting participants&lt;/li&gt;&lt;li&gt;Managing conflict&lt;/li&gt;&lt;li&gt;Closing a meeting&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Action plans&lt;/li&gt;&lt;li&gt;"A bridge to each desk"&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Practices for distributed teams&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-115280207570977957?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/115280207570977957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=115280207570977957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115280207570977957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115280207570977957'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/07/book-summary-collaboration-explained.html' title='Book summary: Collaboration Explained'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-115263662133196607</id><published>2006-06-29T09:49:00.000-07:00</published><updated>2009-01-12T08:28:20.097-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='testing'/><title type='text'>Selenium: the 10-minute test</title><content type='html'>I spent some time today getting familiar with &lt;a href="http://www.openqa.org/selenium/"&gt;Selenium&lt;/a&gt;, an open-source web app test tool. Along with the &lt;a href="http://www.openqa.org/selenium-ide"&gt;Selenium IDE&lt;/a&gt;, which runs as a Firefox plug-in, it passed the 10-minute test with flying colors. It looks promising, and soon I plan to put it through a more rigorous test to see how well it handles javascript and DHTML.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-115263662133196607?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/115263662133196607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=115263662133196607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115263662133196607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115263662133196607'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/06/selenium-10-minute-test.html' title='Selenium: the 10-minute test'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-115263484135177680</id><published>2006-06-27T09:19:00.000-07:00</published><updated>2009-01-08T13:59:07.035-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Switching roles: scrum master to developer</title><content type='html'>I'm the Scrum Master (team leader) for a team of 5 developers working on a complex enterprise application at &lt;a href="http://www.storeperform.com"&gt;StorePerform Technologies&lt;/a&gt;. I haven't worked very closely with most of the team members prior to this project, but most of them worked on the same project for a long time. I started the project hoping that I could serve both as the team leader (following the Scrum principle of servant leadership) and a part-time developer.  I reluctantly came to the realization that it doesn't work, at least not with a new team which is still in the &lt;a href="http://www.businessballs.com/tuckmanformingstormingnormingperforming.htm"&gt;Forming &amp;amp; Storming stage&lt;/a&gt;. As my colleague &lt;a href="http://merelyinteresting.blogspot.com/"&gt;Yuri Gadow&lt;/a&gt; helped me understand, the likely result is that I will be a bad leader and a bad developer - the worst of both worlds.&lt;br /&gt;&lt;br /&gt;The team has taken the concept of self-organizing teams to an extreme, and they resent any suggestions from the Scrum master. My goal is to gain more trust and respect from the developers so they'll be more open to my suggestions. My solution was to switch roles for a few sprints (iterations) - I will be a full-time developer, and hand over the Scrum Master duties to Yuri. I believe this approach has several benefits:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I can focus on doing one thing well: writing code&lt;/li&gt;&lt;li&gt;I can keep my development skills honed&lt;/li&gt;&lt;li&gt;As an equal peer to the other team members, they'll (hopefully) learn to respect my technical skills and experience&lt;/li&gt;&lt;li&gt;I have the opportunity to "feel their pain" first-hand&lt;/li&gt;&lt;li&gt;The team (including me) will experience a different leadership style from Yuri&lt;/li&gt;&lt;/ul&gt;After nearly 4 weeks in the trenches, I think it's working well. Unfortunately, StorePerform cut the experiment short when they laid offthe entire US development team and outsourced it to India.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-115263484135177680?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/115263484135177680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=115263484135177680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115263484135177680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115263484135177680'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/06/switching-roles-scrum-master-to.html' title='Switching roles: scrum master to developer'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-30978416.post-115263463159113587</id><published>2006-06-26T21:14:00.000-07:00</published><updated>2009-01-08T13:59:24.400-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='distributed teams'/><category scheme='http://www.blogger.com/atom/ns#' term='people'/><title type='text'>Outsourced!</title><content type='html'>My job got outsourced to India. The rumors had been floating around &lt;a href="http://www.storeperform.com"&gt;StorePerform&lt;/a&gt; for a few days that something was up, and I figured there would be a few layoffs, but I got cold cocked. I didn’t expect that they’d offshore the entire product development, QA and support teams to India.&lt;br /&gt;&lt;br /&gt;“I hope you got a good severance,” several people told me. Not a chance. Not at SP. Taking care of employees was never high on the executives’ list of priorities.&lt;br /&gt;&lt;br /&gt;Fortunately, I’ve got a good network of friends and colleagues and it shouldn’t be too difficult jump back out of the unemployment line.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/30978416-115263463159113587?l=agileadvocate.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://agileadvocate.blogspot.com/feeds/115263463159113587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=30978416&amp;postID=115263463159113587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115263463159113587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/30978416/posts/default/115263463159113587'/><link rel='alternate' type='text/html' href='http://agileadvocate.blogspot.com/2006/06/outsourced.html' title='Outsourced!'/><author><name>Brad Swanson</name><uri>http://www.blogger.com/profile/03081884860431841622</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_RKQgVkLLIO8/SqkxeM_dbLI/AAAAAAAAAZI/H9xQhECGiZY/S220/swanson-headshot-zoom355x355.jpg'/></author><thr:total>0</thr:total></entry></feed>
