<?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-7903227215035313444</id><updated>2012-01-26T14:54:20.116-06:00</updated><category term='user scenarios'/><category term='ball point game'/><category term='documentation'/><category term='Fitnesse'/><category term='user story slicing'/><category term='continuous improvement'/><category term='iterative'/><category term='sdec11'/><category term='selenium'/><category term='risk'/><category term='user stories'/><category term='PrairieDevCon'/><category term='design studio'/><category term='influencer book'/><category term='innovationgames'/><category term='brainstorming'/><category term='mail merge index cards excel product backlog'/><category term='agile'/><category term='specification by example'/><category term='tips'/><category term='sdec'/><category term='co-location'/><category term='kanban'/><category term='readiness'/><category term='business analyst'/><category term='Agile Winnipeg'/><category term='agile vancouver'/><category term='podcasts'/><category term='adoption'/><category term='story'/><category term='estimating'/><category term='lean'/><category term='team ownership'/><category term='retrospectives'/><category term='agile practices'/><category term='process'/><category term='scope'/><category term='DotNet'/><category term='ux'/><category term='agile2010'/><category term='gift card'/><category term='agile101'/><category term='agile metrics'/><category term='wireframing'/><category term='incremental'/><category term='organizational change'/><category term='C#'/><category term='earned value'/><category term='shorten the distance'/><category term='coaching'/><category term='planning poker'/><category term='automated acceptance tests'/><category term='lean solutions'/><category term='quality'/><category term='waterfall'/><category term='power tools'/><category term='vancouver'/><category term='SOPA'/><category term='lean101'/><category term='ATDD'/><category term='test first'/><category term='Theory of Constraints'/><category term='discovery'/><title type='text'>Winnipeg Agilist</title><subtitle type='html'>Steve's thoughts on agile and lean software development.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7468854494899511036</id><published>2012-01-24T14:49:00.000-06:00</published><updated>2012-01-24T14:50:20.073-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='organizational change'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><title type='text'>Sea Star Wars: A lesson in organizational change</title><content type='html'>Sometimes in order to make a change happen, all you need to do is change the environment.&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/-EXKVRGNPSY8/Tx8YWqjGoDI/AAAAAAAABwE/550gvYZeBXo/s1600/SeaStarWars.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="239" src="http://1.bp.blogspot.com/-EXKVRGNPSY8/Tx8YWqjGoDI/AAAAAAAABwE/550gvYZeBXo/s320/SeaStarWars.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;This summer I witnessed a great example of this in a small but fantastic &lt;a href="http://www.uclueletaquarium.org/"&gt;aquarium &lt;/a&gt;in Ucluelet, BC. When you see a sea star in the ocean or at the aquarium, you rarely or if ever see them move. However, the staff at the aquarium instigated a sea star race by changing the environment. They put the feared Morning Sun Star in the same tank with other sea stars including the very large Sunflower Sea Star. Once the other sea stars detected the presence of the Morning Sun Star they all started to move away from it as fast as they could. The sudden reactions and speed of those sea stars was a sight to see – a turtle would have been proud! &lt;br /&gt;&lt;br /&gt;If you have analysts, developers, testers and users who don’t communicate very well you can help encourage better communication by changing the environment. Create a co-located space and then have them all work in that space together. The environmental change forces them to acknowledge each other’s presence and begin working together. Instead of “Hey, there’s a dangerous Morning Sun Star in here and I have to run away before it eats me”, you should get reactions like “Hey – there’s a user in here, I guess I’ll show them the changes I’m making to this screen to get some feedback”.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=WinnipegAgilist&amp;amp;amp;loc=en_US"&gt;Subscribe to Winnipeg Agilist by Email&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-7468854494899511036?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7468854494899511036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/sea-star-wars-lesson-in-change.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7468854494899511036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7468854494899511036'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/sea-star-wars-lesson-in-change.html' title='Sea Star Wars: A lesson in organizational change'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EXKVRGNPSY8/Tx8YWqjGoDI/AAAAAAAABwE/550gvYZeBXo/s72-c/SeaStarWars.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7431483254449686420</id><published>2012-01-18T00:30:00.000-06:00</published><updated>2012-01-18T00:30:03.420-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SOPA'/><title type='text'>SOPA Blackout</title><content type='html'>I couldn't find a SOPA gadget for blogger, so in solidarity with all the other blackouts today here is a link to an article on why SOPA should concern you:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blog.reddit.com/2012/01/technical-examination-of-sopa-and.html"&gt;http://blog.reddit.com/2012/01/technical-examination-of-sopa-and.html&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Here is the conclusion of that article:&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;"In Conclusion&lt;/h2&gt;It is my strong belief that both PROTECT IP and SOPA:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Will not stop the piracy they are targeting &lt;/li&gt;&lt;li&gt;Contain language that is highly ambiguous and extremely broad making them ripe for abuse, and &lt;/li&gt;&lt;li&gt;Introduce regulation and enforce censorship on what should be a free and open internet."&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/7903227215035313444-7431483254449686420?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7431483254449686420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/sopa-blackout.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7431483254449686420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7431483254449686420'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/sopa-blackout.html' title='SOPA Blackout'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-6603947558160690364</id><published>2012-01-15T22:56:00.001-06:00</published><updated>2012-01-24T12:01:44.745-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planning poker'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><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='estimating'/><title type='text'>Estimating tasks in hours is local optimization. Stop doing it!</title><content type='html'>This weekend I was listening to Eliyahu M. Goldratt's "&lt;a href="http://www.amazon.ca/Beyond-Goal-Eliyahu-Goldratt-Constraints/dp/1596590238"&gt;Beyond the Goal&lt;/a&gt;" where he expands on the Theory of Constraints. In chapter three I listened to him explain how estimating in hours is in fact local optimization and therefore "idiotic". Here is a portion of that chapter loosely transcribed:&lt;br /&gt;&lt;blockquote&gt;&lt;a href="http://www.amazon.ca/Beyond-Goal-Eliyahu-Goldratt-Constraints/dp/1596590238" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/-3j24yuAwQ3o/TxOjCOPMFbI/AAAAAAAABuo/pENlkJybuUU/s200/BeyondTheGoal.jpg" width="200" /&gt;&lt;/a&gt;"The way to ensure that the project will finish on time is to ensure that every task will complete on time. This is the local optima policy that leads to a huge conflict. Placing a person on such a project jeopardizes the most important thing for them - their own image.&lt;br /&gt;&lt;br /&gt;Suppose you are this person and you are asked how much time will this task take? You are extremely reluctant to give any number. And when you give that number the Project Manager will try to squeeze it. Why are you reluctant? Because you know that the number you give is an estimate but that it will be converted to a commitment - because the project needs to finish on time.&lt;br /&gt;&lt;br /&gt;So what situation does this place you in? This common procedure of turning estimates into commitments puts you into a huge dilemna. Why? The objective of every person is to be regarded as a reliable person by your boss, by your peers, by people. But what is the meaning of being reliable? For example, if you give a commitment and you don't meet it - once is ok. But if you give a commitment and many times don't meet them do you expect to be regarded as reliable? Of course not. So one of the conditions of being a reliable person is to meet your commitments.&lt;br /&gt;&lt;br /&gt;Also - if you are fighting for something (an estimate) and then it turns out that you have exaggerated by a mile? If it happens once, fine. If it happens frequently, then you will get the name of someone who exaggerates wildly - so kiss goodbye the image as someone who is reliable. In other words, another consideration for being a reliable person is to not be considered as someone who exaggerates. Now look what is happening when I come and ask you how long it will take to finish this task?&lt;br /&gt;&lt;br /&gt;Now look - whatever you do, you are doomed. This is a huge personal conflict. How do we in reality deal with this conflict? Let's face it - this conflict is so important we must find a way to break it. We want to not only be reliable, but to be considered reliable. How do we do it? We cheat.&lt;br /&gt;&lt;br /&gt;So we finish our estimates on the nose and sometimes a little more. They become self fulfilling prophecies. If there is a danger of finishing too quickly we add some more tests, do a more thorough job, we add another function in, we check things a little more thoroughly, and we finish on the nose. Do you see what's happening?&lt;br /&gt;&lt;br /&gt;Due to the result that our local optimization turns any estimate into a commitment, we have developed the habit of giving estimates which includes in it the safety. If murphy (i.e. Murphy's Law) doesn't hit, we waste the time rather than giving it to the next link in the chain or project. If we do give it to the next link then we are declared as exaggerating and next time they won't give us the extra time. So look what a horrible situation this is. And this... is what kills the project. This is totally idiotic"&lt;/blockquote&gt;When you read this story the first time you will likely notice there are several examples in there of how not to run a project, of poor leadership, and his concluding statement is a little harsh. As many commenters have pointed out, this style of project management is not similar to how we typically run agile projects. However, at the core of the story is the desire of each person to be reliable by meeting hourly estimates whether they are created by the team, by yourself, or by someone else. When I first listened to this argument I was fascinated by that part of it. So, if that part of his argument is correct, then what alternatives do we have if we need to estimate? &lt;i&gt;(This paragraph has been updated based on the comments - thank you)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;If your project requires an estimate:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Stop estimating tasks - hopefully the argument above has already led you to this conclusion.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Don't estimate user stories in hours or convert relative points to hours. OK - I do understand that it can be valuable to look historically at hours vs. points, but don't use this conversion for guessing how long a task or user story will take.&lt;/li&gt;&lt;li&gt;Where possible, avoid asking how many hours are left for a task or user story. I understand why and how this information can be valuable, but understand the risk you take when you ask this question.&amp;nbsp;&lt;/li&gt;&lt;li&gt;If possible, estimate at higher levels (epics) rather than lower levels (user story). &lt;/li&gt;&lt;li&gt;Give broad project estimates with ranges like 1-2 months, 3-6 months, 1-2 years instead of doing detailed estimates. Most projects don't need a detailed estimate in order to determine if they should be completed or not. For many projects on our list we already have a good enough guess about their size to understand their value compared to the cost. (Unfortunately, as a consultant that usually doesn't include the projects I work on).&lt;/li&gt;&lt;li&gt;This logic also suggests that relative estimating might be dangerous. I still have to think about that one as there are &lt;a href="http://winnipegagilist.blogspot.com/2011/04/debate-about-estimating.html"&gt;significant benefits&lt;/a&gt; to exercises like planning poker even if estimates are not created as output.&lt;/li&gt;&lt;/ul&gt;If your project does not require an estimate: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Do a little song and dance!&amp;nbsp;&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;In either case, continue to break down your project into smaller projects and small deliverable pieces of value and working code. Build the high priority pieces first in an &lt;a href="http://winnipegagilist.blogspot.com/2011/02/iterative-development-and-user-story.html"&gt;iterative&amp;nbsp;&lt;/a&gt; fashion. Make a decision about whether the project is done after each completed story or each iteration to avoid the problem described above - the temptation to finish on your estimated completion date. Continue measuring your progress using completed stories but consider using &lt;a href="http://leanandkanban.wordpress.com/2009/04/18/lead-time-vs-cycle-time/"&gt;cycle time&lt;/a&gt; (average time to completion for all stories) vs. &lt;a href="http://www.versionone.com/Agile101/Velocity.asp"&gt;velocity&lt;/a&gt; (average number of points completed in a given time frame) to avoid some of the local optimization that could occur for each user story.&lt;br /&gt;&lt;br /&gt;For further reading on the Theory of Constraints, check out any of &lt;a href="http://www.amazon.ca/s?_encoding=UTF8&amp;amp;search-alias=books-ca&amp;amp;field-author=Eliyahu%20Goldratt"&gt;Goldratt's books&lt;/a&gt;. I highly recommend starting with &lt;a href="http://www.amazon.ca/Goal-Process-Ongoing-Improvement/dp/0884271781/ref=sr_1_3?s=books&amp;amp;ie=UTF8&amp;amp;qid=1326686763&amp;amp;sr=1-3"&gt;The Goal&lt;/a&gt; which is also available on iTunes Canada as an audiobook for $2.95.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=WinnipegAgilist&amp;amp;loc=en_US"&gt;Subscribe to this blog by Email&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-6603947558160690364?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/6603947558160690364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/estimating-tasks-in-hours-is-local.html#comment-form' title='17 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6603947558160690364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6603947558160690364'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/estimating-tasks-in-hours-is-local.html' title='Estimating tasks in hours is local optimization. Stop doing it!'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-3j24yuAwQ3o/TxOjCOPMFbI/AAAAAAAABuo/pENlkJybuUU/s72-c/BeyondTheGoal.jpg' height='72' width='72'/><thr:total>17</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-8096077372224071289</id><published>2012-01-09T10:11:00.002-06:00</published><updated>2012-01-10T16:26:25.096-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='brainstorming'/><title type='text'>Silent Brainstorming</title><content type='html'>I read an interesting &lt;a href="http://www.businessinsider.com/brainstorming-team-building-effectiveness-2012-1"&gt;article &lt;/a&gt;earlier this week that summarized some of the &lt;a href="http://onlinelibrary.wiley.com/doi/10.1002/acp.1699/pdf"&gt;latest research on brainstorming&lt;/a&gt;. The research found that group brainstorming (out loud) doesn't restrict the amount of ideas generated, but it does restrict the variety of ideas. By contrast, brainstorming as individuals allows a greater variety of ideas to be generated. They also found that once the ideas were generated, having a group discussion about the ideas was beneficial in order to combine and improve upon the ideas. Here are some interesting quotes: &lt;br /&gt;&lt;blockquote&gt;"Cognitive fixation causes people to focus on other people's ideas and are, inevitably, unable to come up with their own."&lt;/blockquote&gt;&lt;blockquote&gt;"If the goal is to come up with a bunch of unique ideas or solutions to problems, then the group should be split up so that individuals can come up with their own ideas and these ideas can later be combined with other members' ideas."&lt;/blockquote&gt;&lt;blockquote&gt;"...a group session after an individual session might be the optimal brainstorming technique."&lt;/blockquote&gt;So how can you combine both individual and group brainstorming? Here is an approach that I have been using that I've put together based on my experiences facilitating and participating in other sessions. This approach can be used for any brainstorming session whether you are trying to generate user stories, ideas for a retrospective, or strategies for your community group.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 1: Establish the goal.&lt;/b&gt;&lt;br /&gt;Make sure everyone understands the purpose of the brainstorming session. For many sessions this can be communicated to attendees before the meeting begins.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Note: If your group is larger than 10, I would recommend splitting the group up into several smaller groups for steps 2 through 5. The groups can present their best ideas to each other at the end of the exercise and re-open the discussion and voting at that point if appropriate.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 2. Individual (and silent) brainstorming.&lt;/b&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-EUWbzEpLrzc/Twy0OCCIRfI/AAAAAAAABuY/szKU_k5Plvg/s1600/StoppedThinking.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="191" src="http://1.bp.blogspot.com/-EUWbzEpLrzc/Twy0OCCIRfI/AAAAAAAABuY/szKU_k5Plvg/s200/StoppedThinking.JPG" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;Hand out post-it notes to everyone in the group. Ask each person to write down one idea per post-it until they run out of ideas. This part of the session should be performed in silence. There are a few cues to look for to understand when the group is done but the most consistent one I use is to watch their body language. When most of the group is leaning back or looking up, they are probably done. If you are having trouble reading their body language, a good rule of thumb is to wait until most people have at least 3-5 ideas written down. Also - be prepared with extra post-it notes in case someone runs out. I once had a participant say "I stopped thinking when I ran out stickies" ;).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 3. Describe your ideas&lt;/b&gt;&lt;br /&gt;Once everyone has finished writing down their ideas, choose one person and ask them to describe their best idea and then place that post-it on the wall or the table. Continue going around the table asking each person to describe their top one idea until all ideas have been presented. It should take several rounds and each person will have the opportunity to present several ideas - one during each round. While the ideas are being described encourage everyone to keep writing additional ideas down. This allows the group to combine and improve upon ideas presented by others.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 4. Group the ideas&lt;/b&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-MlDfUFyc4fI/Twy0dlJ_zhI/AAAAAAAABug/x_ke-XThrSM/s1600/GroupedPostits.JPG" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-MlDfUFyc4fI/Twy0dlJ_zhI/AAAAAAAABug/x_ke-XThrSM/s320/GroupedPostits.JPG" width="258" /&gt;&lt;/a&gt;There are several ways to group the ideas depending on your group size.&lt;br /&gt;&lt;br/&gt;a) If your group size is five or less I prefer using silent affinity grouping because it is fast and collaborative. Ask your team to silently group the ideas. Things that are similar to each other should be moved closer to each other. Things that are dissimilar to each other should be moved farther apart. Groups should form naturally and fairly easily. Once again, body language will help you see when they are done - usually 2-3 minutes.&lt;br /&gt;&lt;br /&gt;b) If your group size is more than five I prefer to have one person group the post-its as they are presented because it is faster. Simply put the post-it near other post-its with similar ideas.&lt;br /&gt;&lt;br /&gt;Once the groups are created you can name each group with a short title.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Step 5. Silent Voting&lt;/b&gt;&lt;br /&gt;If you need to vote on the ideas or on the groups, I prefer using silent voting. Number each post-it and then ask each person to write down their top three on a post-it. Once all the votes are in, tabulate the votes to identify the top ideas. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;br/&gt;This method of brainstorming combines the best of both individual and group brainstorming techniques and is consistent with the latest research. However, I initially started using it not because it conforms to the latest research but because it allows everyone to have a voice - the loud people can't dominate the conversation and the quiet people are given a way to contribute. That it reduces the effect of cognitive fixation when generating the initial list of ideas is an added benefit.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;References:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.businessinsider.com/brainstorming-team-building-effectiveness-2012-1"&gt;http://www.businessinsider.com/brainstorming-team-building-effectiveness-2012-1&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://onlinelibrary.wiley.com/doi/10.1002/acp.1699/pdf"&gt;http://onlinelibrary.wiley.com/doi/10.1002/acp.1699/pdf&lt;/a&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/7903227215035313444-8096077372224071289?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/8096077372224071289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/silent-brainstorming.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8096077372224071289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8096077372224071289'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/silent-brainstorming.html' title='Silent Brainstorming'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-EUWbzEpLrzc/Twy0OCCIRfI/AAAAAAAABuY/szKU_k5Plvg/s72-c/StoppedThinking.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-5650676567584622774</id><published>2012-01-06T10:23:00.000-06:00</published><updated>2012-01-06T10:23:42.760-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='user scenarios'/><category scheme='http://www.blogger.com/atom/ns#' term='lean solutions'/><title type='text'>User Scenarios and Lean Solutions</title><content type='html'>After reading the book &lt;a href="http://www.amazon.ca/Lean-Solutions-Companies-Customers-Together/dp/0743277783/ref=sr_1_1?ie=UTF8&amp;amp;qid=1325863509&amp;amp;sr=8-1"&gt;Lean Solutions&lt;/a&gt; a few years ago it was easy to see that agile methodolgies are "Lean Solutions" in comparison to traditional methodologies, but I wondered how we could apply that knowledge to design and build Lean Solutions for our clients (yes, you can still build bad systems with agile). User Scenarios are one tool that can help.&lt;br /&gt;&lt;br /&gt;Well written user scenarios put all the 'features' into a flow that is relevant to the user's value stream. They can help us design a solution as a unified value stream rather than just a bunch of features put together. From Lean Solutions: &lt;br /&gt;&lt;blockquote&gt;"Companies must provide the goods and services consumers actually want, when and where they are wanted, without burdening the consumer."&lt;/blockquote&gt;For more information and an example, check out Jeff Patton's &lt;a href="http://www.stickyminds.com/s.asp?F=S10730_COL_2"&gt;stickyminds &lt;/a&gt;article.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-5650676567584622774?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/5650676567584622774/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/user-scenarios-and-lean-solutions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5650676567584622774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5650676567584622774'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2012/01/user-scenarios-and-lean-solutions.html' title='User Scenarios and Lean Solutions'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-1736808659661582998</id><published>2011-12-15T08:55:00.000-06:00</published><updated>2012-01-24T11:19:39.803-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile101'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Is agile suitable for all projects?</title><content type='html'>At some point in your agile journey you begin to ask and/or hear this question: "Is agile suitable for all projects?"&lt;br /&gt;&lt;br /&gt;Here are some of the responses I've heard from both those who are still learning about agile and those who have a lot of agile experience:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Agile isn't necessary when you have a known problem and a known solution.&lt;/li&gt;&lt;li&gt;Agile doesn't work in regulated environments.&lt;/li&gt;&lt;li&gt;Agile doesn't work in government.&lt;/li&gt;&lt;li&gt;Agile can't work in a large enterprise.&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In my opinion and experience all of these answers are borne out of legitimate concerns but none of these responses are valid. Let me explain why.&lt;br /&gt;&lt;br /&gt;One of the significant differences between traditional projects and agile projects are the short feedback loops. These short feedback loops allow teams to validate assumptions sooner, identify and deal with risks and issues sooner, find and correct defects sooner, and deliver a solution sooner. Agile will be implemented differently based on the project types identified in the responses above, but I believe that all projects will benefit from agile's short feedback loops. To say otherwise assumes that we always get it right the first time - even in the uncommon situation where the solution is 100% known, we get everything right the first time about 0% of the time. Agile helps us discover that sooner so that we can correct our mistakes.&lt;br /&gt;&lt;br /&gt;Additionally, any project can benefit from increased trust amongst team members, increased trust between teams and customers, increased trust between teams and management, and increased trust of project status.&lt;br /&gt;&lt;br /&gt;In my opinion and experience, the only question you need to ask has nothing to do with the type of project, the type of problem, or the type of solution. Instead, here is the key question:&lt;br /&gt;&lt;blockquote&gt;Does the team want to use agile and have the support to do it?&lt;/blockquote&gt;If the answer is yes, then it can work. If the answer is no, it is not likely to work.&lt;br /&gt;&lt;br /&gt;P.S. Here are some examples of agile being used in projects and organizations where &lt;i&gt;"agile won't work"&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Agile in a regulated environment.&lt;/b&gt;&lt;br /&gt;&lt;a href="http://scalingsoftwareagilityblog.com/agile-in-regulated-environment-abbott-labs-experience-report/"&gt;Abbot Labs experience report&lt;/a&gt; - Development of a &lt;i&gt;nucleic acid purification platform and companion real-time analyzer&lt;/i&gt;&lt;br /&gt;&lt;a href="http://www.linkedin.com/groups/Agile-in-Regulated-Environment-3919232"&gt;Agile in a Regulated Environment&lt;/a&gt; - Linkedin Group &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Agile in government.&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.slideshare.net/valtechuk/agile-in-highly-regulated-environments"&gt;Public sector case study&lt;/a&gt; - Social Security domain, software to support change in legislation. &lt;br /&gt;&lt;a href="http://bornagainagilist.wordpress.com/2011/04/19/my-agile-adoption-story/"&gt;Manitoba Parks Reservation Service &lt;/a&gt;- Agile case study as told by &lt;a href="http://twitter.com/#%21/tbunio"&gt;Terry Bunio&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Agile in a large enterprise&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=jqAG_VxcNjE"&gt;The agile experience at John Deere's Intelligent Solutions Group&lt;/a&gt;.- presentation by &lt;a href="http://www.twitter.com/#%21/ChadHoldorf"&gt;Chad Holdorf&lt;/a&gt; at Much Ado About Agile VI - Vancouver 2011.&lt;br /&gt;Plus an &lt;a href="http://www.rallydev.com/agileblog/2011/08/deere%e2%80%99s-gone-agile-5-questions-with-chad-holdorf/"&gt;article talking about the John Deere agile experience&lt;/a&gt;. "I figure if John Deere can test working software every two weeks on a tractor in a field, then Agile will work anywhere."&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Agile with a known solution and a known problem&lt;/b&gt;&lt;br /&gt;I recently completed a project with a known solution and a known problem - converting a VB6 application to dotnet "as is". We used agile and the project was very successful.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Want to receive future blog posts in your inbox? Enter your email address &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=WinnipegAgilist&amp;amp;amp;loc=en_US"&gt;here&lt;/a&gt;. &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-1736808659661582998?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/1736808659661582998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/12/is-agile-suitable-for-all-projects.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1736808659661582998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1736808659661582998'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/12/is-agile-suitable-for-all-projects.html' title='Is agile suitable for all projects?'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4925486240293293956</id><published>2011-11-30T07:41:00.001-06:00</published><updated>2011-12-01T09:12:40.015-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='organizational change'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><title type='text'>Making the undesirable desirable - a lesson from Tom Sawyer</title><content type='html'>Today's Google home page celebrates the birthday of Mark Twain with images that tell the story of Tom Sawyer convincing his friends to whitewash his fence for him. It is an example of making the undesirable desirable. You can read more about the story &lt;a href="http://en.wikipedia.org/wiki/The_Adventures_of_Tom_Sawyer"&gt;on wikipedia&lt;/a&gt; and here are some pictures of the story courtesy of google:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-oURE6_dqC2U/TtZ2x_VWsfI/AAAAAAAABto/eHoX1JQOwM8/s1600/TomSawyerWhitewash1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-oURE6_dqC2U/TtZ2x_VWsfI/AAAAAAAABto/eHoX1JQOwM8/s1600/TomSawyerWhitewash1.png" /&gt;&lt;/a&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/-hvKsVwDaqmE/TtZ2zbARQ-I/AAAAAAAABtw/R2CnuHzAg8Y/s1600/TomSawyerWhitewash2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="193" src="http://1.bp.blogspot.com/-hvKsVwDaqmE/TtZ2zbARQ-I/AAAAAAAABtw/R2CnuHzAg8Y/s320/TomSawyerWhitewash2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-H1aMu87jZds/TtZ20YJ37yI/AAAAAAAABt4/hA5FdNh0Cns/s1600/TomSawyerWhitewash3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-H1aMu87jZds/TtZ20YJ37yI/AAAAAAAABt4/hA5FdNh0Cns/s1600/TomSawyerWhitewash3.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Tomorrow an article I wrote on Agile Adoption will be published by InfoQ. One of the strategies and patterns for change in that article is to "make the undesirable desirable". Here is an excerpt from the article:&lt;br /&gt;&lt;blockquote class="tr_bq"&gt;"A colleague of mine recently experienced some resistance from his team when he asked them to try pair programming. Instead of forcing them to do it, he simply asked ”What would it take to get you to try it?” When they joked that they would gladly try it if they had a big screen TV to use for paired programming, he quickly obliged and the rest was history. The new behaviour became fun – it became desirable."&lt;/blockquote&gt;Although Tom used this strategy for selfish gain, this strategy can also be used to affect positive change in your organization. You can find more strategies and examples useful for your agile adoption in the &lt;a href="http://www.infoq.com/articles/agile-adoption-vital-behaviours"&gt;InfoQ article&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4925486240293293956?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4925486240293293956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/11/making-undesirable-desirable-lesson.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4925486240293293956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4925486240293293956'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/11/making-undesirable-desirable-lesson.html' title='Making the undesirable desirable - a lesson from Tom Sawyer'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-oURE6_dqC2U/TtZ2x_VWsfI/AAAAAAAABto/eHoX1JQOwM8/s72-c/TomSawyerWhitewash1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-3878240664715010415</id><published>2011-11-14T08:43:00.001-06:00</published><updated>2011-11-22T08:41:08.347-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='specification by example'/><category scheme='http://www.blogger.com/atom/ns#' term='Fitnesse'/><category scheme='http://www.blogger.com/atom/ns#' term='automated acceptance tests'/><title type='text'>An alternative to bug tracking tools</title><content type='html'>One of my pet peeves is working in and with bug tracking tools. I am well aware of some of the arguments for the importance of these tools and I am not trying to address those here. Instead, I'll show you an example of an alternative that I have found useful.&lt;br /&gt;&lt;br /&gt;First, using an approach like &lt;a href="http://watirmelon.com/2011/05/18/specification-by-example-a-love-story/"&gt;Specification by Example&lt;/a&gt; can reduce the need for bug tracking tools because communication goes up and defect counts go down. But even using this technique, defects still occasionally occur. Here is an example of how to use Specification by Example not only for 'requirements', but also for defects.&lt;br /&gt;&lt;br /&gt;In June of this year I spoke at the &lt;a href="http://www.prairiedevcon.com/"&gt;Prairie Developer's Conference&lt;/a&gt; in Regina, Saskatchewan. Some of the speakers and volunteers were involved in creating the website, services, and mobile application for that conference. Since I was doing a Specification By Example &lt;a href="http://www.slideshare.net/SteveRogalsky/moving-towards-zero-defects-with-specification-by-example?from=ss_embed"&gt;talk&lt;/a&gt; I decided to use the conference web services to illustrate how easy it is to create your first automated test against a web service using FitNesse. As I was working with the services I found a small defect. Instead of writing up a defect in a bug tracker with the steps to re-produce it, I wrote a test in FitNesse to confirm the defect:&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/-LWacGGt6XSM/TsUYAxvAdqI/AAAAAAAABtU/uYfgmupuEpU/s1600/DefectInFitNesse.Failing.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="236" src="http://1.bp.blogspot.com/-LWacGGt6XSM/TsUYAxvAdqI/AAAAAAAABtU/uYfgmupuEpU/s400/DefectInFitNesse.Failing.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This example calls a service that returns a list of sessions and does a few basic C# calculations on that list. It counts the number of sessions (allSessions.Count) in the conference and FitNesse maps that to the &lt;b&gt;NumberOfSessions&lt;/b&gt; variable above. It then counts the number of unique abstracts (allSessions.Abstracts.Distinct.Count) and FitNesse maps that to the &lt;b&gt;Number of Unique Abstracts&lt;/b&gt;. FitNesse then compares the numbers and displays the results. In this case, 63 does not match 62 so it displays an error with the expected and actual results as above.&lt;br /&gt;&lt;br /&gt;Once the test confirmed the defect, I simply communicated the failing test to the developers. When the developers reviewed the test they could clearly see what the problem was. No back and forth was required to understand the issue or to confirm the steps required to reproduce it. No one had to set the status of the defect to "working", "fixed", "duplicate", "resolved", "more information required", or anything else. One of the developers fixed the issue and even added an additional service that we could call to address the root cause - Are Session Abstracts Unique? I added the new test, ran all my tests again and was pleased to see them all go green.&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/-7dbRZslR9Rk/TsUYMY7cpsI/AAAAAAAABtc/dXu0qJpwokg/s1600/DefectInFitNesse.Fixed.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="202" src="http://2.bp.blogspot.com/-7dbRZslR9Rk/TsUYMY7cpsI/AAAAAAAABtc/dXu0qJpwokg/s400/DefectInFitNesse.Fixed.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This process improved communication between tester and developer, ensured that the defect would always be tested and re-tested for, and kept us from spending unnecessary time in a bug tracking tool. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-3878240664715010415?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/3878240664715010415/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/11/alternative-to-bug-tracking-tools.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3878240664715010415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3878240664715010415'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/11/alternative-to-bug-tracking-tools.html' title='An alternative to bug tracking tools'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-LWacGGt6XSM/TsUYAxvAdqI/AAAAAAAABtU/uYfgmupuEpU/s72-c/DefectInFitNesse.Failing.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-8929602144282615586</id><published>2011-10-05T10:49:00.000-05:00</published><updated>2011-10-05T11:11:26.174-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><title type='text'>Are we agile yet? Applying fuzzy logic to the manifesto</title><content type='html'>Some background on logic from my brother who is a math professor:&lt;br /&gt;&lt;br /&gt;In Greek logic (the logic of Plato and Aristotle) there are only two truth values. Any statement is either true, or false, but not both. Truth is absolute. This works nicely except for when we say things like:&lt;br /&gt;&lt;blockquote&gt;&lt;div style="text-align: left;"&gt;"This sentence is false"&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;If this statement is true, then it is also false, and if it is false, then it is also true, and if it is true, then it is also false - a 'fun' logical circle which causes trouble for Greek logic. This liar's paradox was ignored for about 2500 years. Since sentences are either true or false, then the sentence above obviously isn't a sentence. Case closed.&lt;br /&gt;&lt;br /&gt;In the last century, mathematicians started to realize that things were not so simple. A quote from my brother:&lt;br /&gt;&lt;blockquote&gt;"There are contradictions in the laws of physics – We have Einstein’s relativity that explains planetary motion, gravity, all these big things. And we have quantum mechanics that explains subatomic energy and matter, all those tiny things. Unfortunately, they contradict each other in the middle. Because the one requires physical reality to be absolutely smooth and continuous, while the other requires quantum bumps, which are profoundly non-smooth and discontinuous. Right now the laws of physics are both true and false (and by false, I mean true.)"&lt;/blockquote&gt;More common examples of statements that can be both true and false include: "I am young", "I am tall", and of course, "We are agile". Truth becomes fuzzy. The truth of those statements can lie somewhere in between absolutely false and absolutely true depending on who is saying them.&lt;br /&gt;&lt;blockquote&gt;"A newborn is young" = truth value of 100%.&lt;br /&gt;"A 20 year old is young" = truth value of 80%&lt;/blockquote&gt;Thus, fuzzy logic was born. Statements can have a truth value in between true and false.&lt;br /&gt;&lt;br /&gt;Now let's apply this to the question "Are we agile yet?" by looking at the four tenants of the agile manifesto:&lt;br /&gt;&lt;blockquote&gt;Individuals and interactions over processes and tools&lt;br /&gt;Working software over comprehensive documentation&lt;br /&gt;Customer collaboration over contract negotiation&lt;br /&gt;Responding to change over following a plan&lt;/blockquote&gt;Many of us have read articles or have been in discussion groups where these statements are discussed at length and usually someone tries to apply Greek logic by making statements such as: "Agile has no documentation" and "Agile means no planning". However, the word "over" in the middle implies that fuzzy logic is at work. The manifesto authors are saying that for agile teams truth should be closer to the left than the right. We should focus more of our time on working software and less of our time creating documentation. Planning is still important but responding to change is more important so our plans need to be more flexible. For each statement, we want the left side to be more true than the right - the truth value should be above 50%. Additionally, having a truth value of 100% for any of the statements above can be a dangerous thing. We should stay fuzzy.&lt;br /&gt;&lt;br /&gt;So when answering the original question for your team or organization - "Are we agile yet?" - don't expect a checklist of practices to give you the answer. Instead, ask your team this question: "Given the statements above, which direction are we moving?" If you are moving to the left and have committed to staying on the left side of each equation, then you've joined the club - you are agile. Agile is a direction, and that is absolutely true.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;i&gt;My brother Tim's bio: &lt;a href="http://www.cmu.ca/facultystaff/trogalsky.html"&gt;http://www.cmu.ca/facultystaff/trogalsky.html&lt;/a&gt;&lt;/i&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-8929602144282615586?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/8929602144282615586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/10/are-we-agile-yet-applying-fuzzy-logic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8929602144282615586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8929602144282615586'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/10/are-we-agile-yet-applying-fuzzy-logic.html' title='Are we agile yet? Applying fuzzy logic to the manifesto'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-5155295930930523990</id><published>2011-09-29T10:35:00.000-05:00</published><updated>2011-09-29T10:44:55.932-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='co-location'/><title type='text'>A short story about co-location</title><content type='html'>The &lt;a href="http://winnipegagilist.blogspot.com/2011/09/strategizing-to-solve-communication.html"&gt;post I created yesterday&lt;/a&gt; reminded me of this story:&lt;br /&gt;&lt;br /&gt;A team I was working on was asked to sit together in a rather cramped area. Five of us (two developers, one application architect, one tester, one business analyst) were asked to share a very small area about the size of a typical office. The business analyst had desk space equivalent to the size of a typical end table; there were monitors perched precariously above us on small shelves; we shared one phone; and the limited wall space we had was covered with our visible boards and stickies. Fun!&lt;br /&gt;&lt;br /&gt;As we reflected on our space at the end of the project, this comment was made from one of the developers: "On the bright side, I don't think I looked at the requirements document once. I just turned to the business analyst beside me and asked her what needed to be done!" Co-location for the win.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"The most efficient and effective method of conveying information to and within a development team is &lt;b&gt;face-to-face conversation&lt;/b&gt;" - Agile Manifesto&lt;/i&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-5155295930930523990?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/5155295930930523990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/09/short-story-about-co-location.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5155295930930523990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5155295930930523990'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/09/short-story-about-co-location.html' title='A short story about co-location'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-8109828376070808467</id><published>2011-09-28T09:58:00.000-05:00</published><updated>2011-09-28T11:12:29.140-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='shorten the distance'/><category scheme='http://www.blogger.com/atom/ns#' term='co-location'/><title type='text'>Strategizing to solve a communication problem</title><content type='html'>&lt;br /&gt;My wife spent part of this past weekend on a leadership retreat. Her team was asked to participate in the following game to help them develop their team strategy and communication skills:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setup:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;One person acts as a builder.&lt;/li&gt;&lt;li&gt;One person acts as the architect.&lt;/li&gt;&lt;li&gt;Two people are observers.&lt;/li&gt;&lt;li&gt;The builder and architect sit back to back in chairs. The two of them are not allowed to look at each other, but they are allowed to talk.&lt;/li&gt;&lt;li&gt;The two observers stand on either side and watch and are not allowed to talk or interfere in any way.&lt;/li&gt;&lt;li&gt;The builder is handed a blank piece of paper and some shapes that have been cut out.&lt;/li&gt;&lt;li&gt;The architect is handed a drawing where the shapes are already put in place - the blueprint.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Playing the game:&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Round 1&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The architect's job is to have the builder re-create the drawing by putting the shapes in the correct placements on the blank piece of paper. The architect is not allowed to turn around, but is allowed to talk.&lt;/li&gt;&lt;li&gt;The observers are instructed to watch - no talking or gesturing.&lt;/li&gt;&lt;li&gt;The builder is also not allowed to turn around but is allowed to talk.&lt;/li&gt;&lt;li&gt;Time how long it takes for the team to correctly finish replicating the drawing.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Rounds 2-n&lt;/li&gt;&lt;ul&gt;&lt;li&gt;A rule change: For this and any subsequent rounds the observers are allowed to 'tap in' during the round. That is, when they tap the architect's shoulder they can trade places with the architect who then becomes an observer. You can 'tap in' as many times as you want during the round.&lt;/li&gt;&lt;li&gt;Before starting the round the team is asked to strategize together on ways that they could improve their communication and their results.&lt;/li&gt;&lt;li&gt;Once again the team times how long it takes for them to correctly finish replicating the drawing.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;The teams enjoyed the challenge of working together to improve their communication strategies. The best solution that any team found was to have the observer 'tap in' whenever the builder put one piece in the correct spot. This strategy enabled the builder to easily understand when they had done something right (improving communication) and helped the team to improve their time. Hurray for the team!&lt;br /&gt;&lt;br /&gt;This was a great exercise to promote team building, continuous improvement, strategizing, and to encourage the team to actively work on their communication skills. It reminds of some of the ways I have seen and used to help teams improve communication between roles. Does the developer have a hard time understanding the requirements document? Let's work on our documentation skills to make our writing clearer. Does the team struggle to meet it's project deadlines? Let's increase the project management rigour and status reporting. Are bugs found during user acceptance testing? Let's write a better test plan.&lt;br /&gt;&lt;br /&gt;Or... have the architect &lt;i&gt;(customer/business analyst/tester/project manager)&lt;/i&gt; turn around and talk to the builder &lt;i&gt;(developer)&lt;/i&gt; directly. Break the rules (and your cubicle walls). Shorten the distance.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-8109828376070808467?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/8109828376070808467/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/09/strategizing-to-solve-communication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8109828376070808467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8109828376070808467'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/09/strategizing-to-solve-communication.html' title='Strategizing to solve a communication problem'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-691548267262021473</id><published>2011-08-09T01:06:00.001-05:00</published><updated>2011-08-09T01:06:04.607-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='business analyst'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>The role of a business analyst in agile</title><content type='html'>I ran into Kevin Brennan tonight at #agile2011. I was glad for the chance to talk to him because I've received quite a few questions from BAs in Winnipeg about how their role will change when they work on agile projects and Kevin has been doing a lot of work with the agile extension to IIBA's BABOK.&lt;br /&gt;&lt;br /&gt;Here are is a summary of our conversation:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;How many BAs can articulate the goals and objectives of their company, team, or project? Start here if you cannot.&lt;/li&gt;&lt;li&gt;Even if you are able to articulate the goals and objectives - can your team? Without understanding the project goals and objectives the team doesn't have enough information to help them make decisions about scope and priorities and often makes decisions based on 'Is this helping somebody?' which can increase the scope of the project.&lt;/li&gt;&lt;li&gt;BAs can help facilitate the alignment of priorities and goals - enabling the business to speak to the development team with one voice.&lt;/li&gt;&lt;li&gt;Facilitate requirements and a common understanding of the proposed system through inclusive modeling techniques (eg. user story maps, silent brainstorming, product box - see more &lt;a href="http://www.agilemodeling.com/essays/inclusiveModels.htm"&gt;here&lt;/a&gt;)&lt;/li&gt;&lt;li&gt;Facilitate the acceptance of change (rather than the restriction of it).&lt;/li&gt;&lt;li&gt;BAs don't do any less analysis, but they will end up doing less documentation. This reminds me of this tweet:&lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;“Documents we write communicate our good thinking. You can write one without thinking. You can communicate good ideas without a document.” – Jeff Patton &lt;/i&gt;&lt;i&gt;(Jan. 19, 2011 - twitter)&lt;/i&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;As a BA, if you need to create a document, it will more likely be after the story is complete rather than before creating the story. Some additional guidelines for documentation on agile projects can be found &lt;a href="http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-ii-guiding.html"&gt;here&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt;Plus, here are a few more that I thought of after our conversation:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Collaborate with testers who share many of the same concerns about priorities, goals, scope, and requirements.&lt;/li&gt;&lt;li&gt;One thing that doesn't change is the need to work with the business as any software produced by the team may change the business processes. Even with iterative delivery, there will be adjustments to be made.&lt;/li&gt;&lt;/ul&gt;If you have others to add or even disagree with some above - please comment or find Kevin or myself during the conference and we'll chat. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-691548267262021473?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/691548267262021473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/role-of-business-analyst-in-agile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/691548267262021473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/691548267262021473'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/role-of-business-analyst-in-agile.html' title='The role of a business analyst in agile'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-1451005583631059358</id><published>2011-08-05T08:41:00.001-05:00</published><updated>2011-08-05T08:42:44.337-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='influencer book'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><title type='text'>Agile Adoption - 6 Influence Strategies</title><content type='html'>&lt;br /&gt;&lt;div class="MsoNormal"&gt;The vital behaviours for successful software projects (agileor not) are simply these: &lt;b&gt;a) improvecommunication by co-locating, b) get access to the customer and c) have shortdelivery cycles&lt;/b&gt;. (Read part 1 of this post &lt;a href="http://winnipegagilist.blogspot.com/2011/08/agile-adoption-3-vital-behaviours.html"&gt;here&lt;/a&gt;). This is so simple, andyet agile adoption continues to be a big question mark for many people and atrack is dedicated to the question at Agile2011. So how can we influence thesethree behaviours?&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The second half of the book “&lt;a href="http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=3&amp;amp;ved=0CCUQFjAC&amp;amp;url=http%3A%2F%2Fwww.amazon.com%2FInfluencer-Change-Anything-Kerry-Patterson%2Fdp%2F007148499X&amp;amp;ei=tdTZTeT-JcXa0QGV3oT8Aw&amp;amp;usg=AFQjCNHLrfWABZf9F5EQ87RArTHTkbm56Q&amp;amp;sig2=YoljPZiYAw5_Uqoe7pd1eQ"&gt;Influencer:The Power to Change Anything&lt;/a&gt;” (Patterson, Grenny, Maxfield, McMillan,Switzler) is devoted to the six types of influence strategies you can use tomake sure the vital behaviours occur. But first, let’s look at some quotes fromthe book that describe strategies that we often find ourselves using, but thathave been proven to be ineffective:&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;“When it comes to resistant problems, verbal persuasionrarely works” (No kidding eh?)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;“People bet onsingle-source influence strategies all the time (and fail)”&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Understanding that I am a beginner influencer, here is abrief summary of the six influence strategies found in the book with concreteexamples of how you can execute these strategies in order to bring about thevital behaviours that will improve the results of your software projects.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;1) Make the Undesirable Desirable (Personal Motivation)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If people find the behaviour undesirable then they are notlikely to exhibit that behaviour unless you can convince them it is fun. Oneway to make the behaviour intrinsically satisfying is to turn it into a game. Keepingtrack of things like velocity and the number of passing tests in a visible areacan be a fun way to keep score. As the team has early successes, find fun waysto recognize them for their accomplishments such as completed stories,iterations with decreasing defects and happier customers. One of our teamsrings a cow bell when a story is completed and employees cheer when they hearthe bell. The team also gives a syphilis stuffed toy to anyone that breaks thebuild (they can redeem themselves by buying donuts). These are simple ways tomake new behaviours fun and desirable.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;2) Surpass Your Limits (Personal Ability)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;People need to be convinced that they have the ability tomake the required changes. Send your team to a hands-on agile training so thatthey can experience what it is like to work on a project that exhibits thesevital behaviours. Make sure that the training is hands-on rather than lecturebased. Once the project has started, help your team to gain confidence bystarting with short delivery cycles where they are producing working, highquality code (even if only in very small batches). Once the team sees earlyresults they will gain confidence that they can change their approach. &lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;3) Harness Peer Pressures (Social Motivation)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Use peer pressure to your advantage by creating a co-locatedarea. According to one of the studies in the book, “one variable more than anyother affected how people behaved: the presences of one more person”. Puttingpeople in a common space with expectations set for the 3 vital behaviours willimprove your team’s chances of changing their behaviours. Also, find theopinion leader on your team (the one that has the most respect and influence)and spend a lot of time with that person addressing their concerns. If thereare included in the process they will begin to share your ideas with the teamand the vital behaviours will occur.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;4) Find Strength in Numbers (Social Ability)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;We are more likely to be successful when we have a littlehelp from our friends. Create a dedicated team that is responsible for theresults and hold the team accountable rather than an individual. Teams thatwork together are more likely to come up with a plan that will succeed.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;5) Design Rewards and Demand Accountability (StructuralMotivation)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Any system of rewards can be dangerous. The book is verycareful to describe that if the other influence strategies are properly used,rewards need only to be small in order to influence change. A simple strategy wouldbe to create a visual project management board where individuals can movepost-its from one column to another as they progress through the steps requiredto complete each story. Moving a post-it is can symbolize a very small rewardthat happens during your daily stand-up meetings. Rewards such as the cow bellused above for completed stories can also be simple and effective.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;6) Change the Environment (Structural Ability)&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Make use of the physical environment to influence thedesired change. Create your co-located space so that it encourages people towork together by removing the cubicle walls, office doors, etc. Increase the“propinquity” of your teams and your customers by having them work in the samespace. “The best predictor of whether two people will work together is thedistance between them.” Additionally, make sure your visual project managementboard is in a central place and displays some of the common metrics such asvelocity, wip limits, and burn down charts. This helps make the invisiblevisible.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;To recap, the Influencer book has some great ideas andstrategies on how to influence change. If you are considering how to influenceyour team to improve their software project results, promote the three keybehaviours identified above by using all six influence strategies to make thechange inevitable. If your teams are struggling to exhibit the behaviours,consider changing your influence strategies rather than giving up or targetingother behaviours.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-1451005583631059358?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/1451005583631059358/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/agile-adoption-6-influence-strategies.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1451005583631059358'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1451005583631059358'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/agile-adoption-6-influence-strategies.html' title='Agile Adoption - 6 Influence Strategies'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7759215790436997638</id><published>2011-08-05T08:38:00.003-05:00</published><updated>2011-08-05T08:44:53.394-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='influencer book'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><title type='text'>Agile Adoption - 3 Vital Behaviours</title><content type='html'>&lt;br /&gt;&lt;div class="MsoNormal"&gt;One of the books on my reading list this year was “&lt;a href="http://www.google.ca/url?sa=t&amp;amp;source=web&amp;amp;cd=3&amp;amp;ved=0CCUQFjAC&amp;amp;url=http%3A%2F%2Fwww.amazon.com%2FInfluencer-Change-Anything-Kerry-Patterson%2Fdp%2F007148499X&amp;amp;ei=tdTZTeT-JcXa0QGV3oT8Aw&amp;amp;usg=AFQjCNHLrfWABZf9F5EQ87RArTHTkbm56Q&amp;amp;sig2=YoljPZiYAw5_Uqoe7pd1eQ"&gt;Influencer:The Power to Change Anything&lt;/a&gt;” (Patterson, Grenny, Maxfield, McMillan,Switzler). As I read it, I was struck by how the ideas in the book can behelpful for guiding an agile adoption.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;The book is split into two parts. The first section outlineshow any change can be made inevitable by looking for the vital behaviours thatwill bring about the change. The second section outlines six different types ofinfluence strategies that you must use in order to make those vital behaviourshappen. In this post, I’ll just be talking about the first section on vitalbehaviours.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;According to the authors, any change can be made inevitableif you can find the correct set of vital behaviours. For many common problems,these vital behaviours have already been discovered by various research teams.For example, the vital behaviours for losing weight and keeping it off wereidentified by a U.S. government research project: a) weigh yourself every day,b) eat breakfast every day, and c) exercise with home equipment. A strong marriagecan be determined by looking for the following vital behaviours duringarguments:&amp;nbsp; a) statements thatcommunicate shared respect and purpose, and b) taking timeouts when required tohalt emotional escalation. The best teachers a) reward positive actions oftenand b) alternate frequently between teaching and testing.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;So what are the vital behaviours for agile adoption? First,let me suggest that agile adoption isn’t the goal at all – rather the goal thatwe are looking for is to have successful projects. Agile adoption may or maynot be required to meet that goal. If then our goal is to have successfulprojects, has anyone done the research to find the vital behaviours that arepart of all successful software projects? Indeed – Alistair Cockburn did significantresearch into this topic and found three common behaviours amongst allsuccessful teams. He described his findings in a &lt;a href="http://agiletoolkit.libsyn.com/agile06_alistair_cockburn_crystal_methodlogies_and_agility"&gt;2006Agile Toolkit podcast&lt;/a&gt; where he said: (starting at about 3:25) “Those thatwere &lt;b&gt;collocating face to face, shortdelivery cycles, access to customers &lt;/b&gt;were delivering. Those that werefollowing some process very carefully were not delivering.” In an article wherehe describes his research methods and results he writes that &lt;b&gt;a) they improved their communication byco-locating, b) had access to their customer and c) had short delivery cycles&lt;/b&gt;.He also commented in his article that “I ran the seemingly odd hypothesis thatif you simply put four &lt;b&gt;people in a room&lt;/b&gt;with whiteboards and computers, &lt;b&gt;givethem access to the users&lt;/b&gt;, and have them &lt;b&gt;deliver running software every month or two&lt;/b&gt;, they would have a highlikelihood of success in delivering useful, working software. Surprisingly,this hypothesis has not yet been broken." Reflecting on my own projecthistory, I find that I agree with his hypothesis. You can read more about hisresearch &lt;a href="http://alistair.cockburn.us/People+and+methodologies+in+software+development"&gt;here&lt;/a&gt;. &lt;i&gt;Notice by the way, that all 3 of thesebehaviours are about shortening the feedback loops.&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;If you look at Alistair’s work and writing on Crystal Clear,you’ll notice something interesting. These three behaviours are all in includedin the 7 properties of Crystal Clear. However, of the 7, only 3 are listed asmandatory and one of the above was not included in the mandatory list. “EasyAccess to Expert Users” was excluded (still on the list, but not mandatory) andreplaced by “Reflective Improvement” despite his findings and hypothesis. I’veasked Alistair about this and look forward to his answer – I’ll keep youposted. &lt;u&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Another interesting observation about “Easy Access to ExpertUsers” is that for external products with external customers, it would bedifficult or impossible to have access to those users. It makes sense then thatthe Lean Startup movement is heavily focused on tools and techniques to findand measure feedback from your external users.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;While these 3 vital behaviours may be the ‘key’ behaviours thatwill help your team be successful, they will also spawn other behaviours toimprove your results. For example, in order to have short delivery cycles, youwill need to deliver small increments of value which could lead your teamtowards the practice of user stories. In order to have short delivery cyclesand not spend an inordinate amount of time doing manual regression testing foreach delivery, your team will likely move towards automated testing. In orderto have short delivery cycles and not spend an inordinate amount of time creatingdeployment packages, your team will likely move towards a continuous deploymentpractice.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;In conclusion, if you are a manager, executive or coach wonderinghow you can make your teams more successful but have struggled with or withoutagile techniques, try encouraging and supporting these three vital behaviours asa starting point and then examine the results. Then, use something likereflection workshops to examine the results and start adding, deleting, ormodifying practices over time to improve your results. Based on what we knowabout organizational change management, this iterative approach to processimprovement has an increased chance of being successful. If the Influencer bookis correct, (and there are lots of examples in the book to indicate it is) thenthese three behaviours should make a significant impact on your projects.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;Read &lt;a href="http://winnipegagilist.blogspot.com/2011/08/agile-adoption-6-influence-strategies.html"&gt;part II&lt;/a&gt; of this post to find six possible influencestrategies to make these behaviours inevitable. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-7759215790436997638?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7759215790436997638/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/agile-adoption-3-vital-behaviours.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7759215790436997638'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7759215790436997638'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/agile-adoption-3-vital-behaviours.html' title='Agile Adoption - 3 Vital Behaviours'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2489891805793827908</id><published>2011-08-03T21:37:00.067-05:00</published><updated>2011-08-04T09:50:20.559-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='user stories'/><title type='text'>User stories and sandbag dikes</title><content type='html'>This year on the Canadian prairies we experienced a lot of flooding and residents banded together to support each other - building sandbag dikes to help keep the water out. During this ordeal, I had a small aha moment in comparing user stories to sandbag dikes. User stories and sandbag dikes are similar because:&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/-1GMfuaIVRs0/TjjC1y8Q2II/AAAAAAAABtE/ROCPM-JKdsM/s1600/BoundaryObject.Sandbagging3.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="178" src="http://4.bp.blogspot.com/-1GMfuaIVRs0/TjjC1y8Q2II/AAAAAAAABtE/ROCPM-JKdsM/s320/BoundaryObject.Sandbagging3.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;1. They are both boundary objects. Well constructed dikes keep water out and contain a dry area. Well crafted user stories contain scope and keep additional scope out.&lt;br /&gt;&lt;br /&gt;2.&amp;nbsp; There is no value to the user unless all layers are complete. To build a dike, you need to pile the sandbags on top of each other in layers and also weave in the plastic. Leave a layer out or forget the plastic and the dike is useless to the homeowner. To complete a user story, you need to build all layers or tiers of the system. A new database table doesn't provide any value to the user.&lt;br /&gt;&lt;br /&gt;3. Size is important. If you want to protect a home from flooding, the dike only needs to surround the home, not the whole property. In fact, if you build it too big (for example, to protect the house, the shed, and the swing set), there are more potential points of failure, it takes longer to build which increases the risk of the dike not being completed on time, and you could have spent more time building dikes to protect other homes. If your stories are too big (for example, to implement logging in for a site, you build the login w/ password, forgot password, password reset, max login attempts, etc before building other stories), there are more potential points of failure, it takes longer to build which increases the risk of the story not being completed on time, and you could have spent more time completing other stories to increase the value of your project.&lt;br /&gt;&lt;br /&gt;4. Priority is important. If you build dikes around the homes that are less likely to be affected by the flood, then when you run out of time it is likely that more homes will be flooded. If you complete lower priority user stories first, then when you run out of money you may not have accomplished the goals of your project.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2489891805793827908?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2489891805793827908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/user-stories-and-sandbag-dikes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2489891805793827908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2489891805793827908'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/user-stories-and-sandbag-dikes.html' title='User stories and sandbag dikes'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-1GMfuaIVRs0/TjjC1y8Q2II/AAAAAAAABtE/ROCPM-JKdsM/s72-c/BoundaryObject.Sandbagging3.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-3829528935472916729</id><published>2011-08-02T22:03:00.001-05:00</published><updated>2011-08-03T11:15:50.699-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='continuous improvement'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>I don't know, but you probably do.</title><content type='html'>Sometimes, the best answer to a question is "I don't know, but you probably do". Let me explain...&lt;br /&gt;&lt;br /&gt;I occasionally have the opportunity to speak at user groups or to groups of employees to introduce them to agile - what it is, why it is important, how to start, etc. The presentations vary depending on the audience but always end in an open question period to answer any and all questions about agile. I can usually provide an answer to most of the questions, but I try to use various strategies to draw answers from the audience instead of answering each one on my own. Many times, their answers are better or more convincing than my own. If I'm not sure of the answer, I *usually* tell them I don't know but point them to some resources that might help. However... sometimes I forget.&lt;br /&gt;&lt;br /&gt;At a recent speaking engagement I was asked a question about how to apply agile principles to address specific operations and maintenance issues. I answered the question, but I'm pretty sure my answer was too vague and largely unhelpful - some useful comment about reducing wip I think ;). So, here is my attempt at answering the question again using both the principles and the knowledge of the group to solve the problem. Of course, that group isn't here, but hopefully this will help anyways (I'll be e-mailing this to them).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;"Thanks for the excellent question! I don't know the answer, but you probably do. Yes, it is true that reducing wip will likely help improve your situation, but since I don't at the moment understand the specifics of your problem, let me give you a few ideas to try. You probably have or can start tracking some metrics of how long it takes maintenance and operational issues to be solved. Using this as a baseline, try a few experiments and measure their results. To determine what experiments to try, have regular meetings with your team and ask them a) what has worked well in the past, b) what hasn't worked well and c) what would they recommend. Based on those recommendations, pick one or two experiments to try and then measure the results. Over time, I'd bet that your team will be successful in solving this problem together."&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-3829528935472916729?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/3829528935472916729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/i-dont-know-but-you-probably-do.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3829528935472916729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3829528935472916729'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/08/i-dont-know-but-you-probably-do.html' title='I don&apos;t know, but you probably do.'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2074051300478316054</id><published>2011-07-08T03:21:00.005-05:00</published><updated>2011-07-08T12:42:37.182-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PrairieDevCon'/><category scheme='http://www.blogger.com/atom/ns#' term='sdec'/><category scheme='http://www.blogger.com/atom/ns#' term='ux'/><category scheme='http://www.blogger.com/atom/ns#' term='sdec11'/><title type='text'>Colour and it's relationship to usability</title><content type='html'>This June I had the priviledge of doing&amp;nbsp;some travelling in Saskatchewan - speaking at both &lt;a href="http://www.prairiedevcon.com/"&gt;PrairieDevCon&lt;/a&gt; and &lt;a href="http://www.mosoconf.com/"&gt;MosoConf&lt;/a&gt;. At PrarieDevCon, I was fortunate to have the time to attend a UX session by &lt;a href="http://twitter.com/#%21/davidalpert"&gt;David Alpert&lt;/a&gt; (who will also be presenting at &lt;a href="http://www.sdec11.com/"&gt;SDEC11&lt;/a&gt; in Winnipeg this fall). I haven't spent a lot of time doing UX research, but his presentation opened my eyes to&amp;nbsp;a few things. One of these is the targetted use of colour to direct the user to what is most important to you (and maybe to them). In the presentation David demonstrated this concept with several examples from live sites where the&amp;nbsp;use of two colours is used to direct the user to certain actions.&lt;br /&gt;&lt;br /&gt;As I returned to work the following week, I noticed that a change was made to&amp;nbsp;our internal dashboard at Protegra.&amp;nbsp;A reminders and announcements section was added and highlighted in yellow/green while the rest of the site remained&amp;nbsp;in blue. Everytime I looked at this site and my eyes were drawn to the words highlighted by the use of colour I thought of David's presentation.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-flBptIFY_nM/Tha3wx3f1lI/AAAAAAAABsg/wOF4sv2qKU4/s1600/Dashboard2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="187" m$="true" src="http://1.bp.blogspot.com/-flBptIFY_nM/Tha3wx3f1lI/AAAAAAAABsg/wOF4sv2qKU4/s400/Dashboard2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;Here are few other examples that David showed to us to demonstrate&amp;nbsp;how the use of colour could be used to influence user behaviour effectively:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Twitter&lt;/b&gt; &lt;br /&gt;What are they trying to get you to do?&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/-t6PnASdNDLk/Tha3-3nvHdI/AAAAAAAABsk/qiUqM6HKLmY/s1600/twitter.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="162" m$="true" src="http://4.bp.blogspot.com/-t6PnASdNDLk/Tha3-3nvHdI/AAAAAAAABsk/qiUqM6HKLmY/s400/twitter.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Sign-Up is highlighted in yellow to attract new users while Search and Sign-in are blue like the rest of the site. Twitter is assuming that if you are already signed up then you are committed to finding the Sign In button on your own.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. JetBlue&lt;/b&gt; &lt;br /&gt;What is important to them?&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/-mDNMgGfHTzs/Tha4HLZpQII/AAAAAAAABso/n6llvHn6qNs/s1600/JetBlue.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" m$="true" src="http://2.bp.blogspot.com/-mDNMgGfHTzs/Tha4HLZpQII/AAAAAAAABso/n6llvHn6qNs/s400/JetBlue.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Fly Now and Find Flights are highlighted in orange and they are using other more subtle UX strategies so that you will know the first bag is free and that they now offer vacation packages. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. Facebook&lt;/b&gt;&lt;br /&gt;What are they trying to influence you to do?&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/-QyFzdsSCrEc/Tha4NqQNGZI/AAAAAAAABss/uHtBfXMDuxY/s1600/Facebook.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="243" m$="true" src="http://2.bp.blogspot.com/-QyFzdsSCrEc/Tha4NqQNGZI/AAAAAAAABss/uHtBfXMDuxY/s400/Facebook.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Sign-Up is highlighted in Green for new users, while Log In is smaller and in blue - just like twitter, facebook is assuming if you are already signed up you are committed to finding the Log In button on your own. &lt;br /&gt;&lt;br /&gt;David's presentation has peaked my interest and I'll be looking&amp;nbsp;to find other ways to use colour like this on projects (external facing or not) to guide the user to the actions we would like them to take and discourage them from unwanted actions or workflows. Also, as the Dashboard example shows, it isn't just about highlighting buttons - it can also be about highlighting sections of the site.&lt;br /&gt;&lt;br /&gt;Thanks David.&lt;br /&gt;&lt;br /&gt;You can find more positive and negative examples and other UX strategies in his &lt;a href="http://www.spinthemoose.com/attachments/presentations/PRDC11D4S1027_Ways/PRDC11-D4S102-7_ways_to_make_your_app_more_learnable_usable_and_enjoyable-David_Alpert.pdf"&gt;presentation&lt;/a&gt; found on his site - or join us at &lt;a href="http://www.sdec11.com/"&gt;SDEC11&lt;/a&gt; to hear him present. &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2074051300478316054?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2074051300478316054/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/07/colour-and-its-relationship-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2074051300478316054'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2074051300478316054'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/07/colour-and-its-relationship-to.html' title='Colour and it&apos;s relationship to usability'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-flBptIFY_nM/Tha3wx3f1lI/AAAAAAAABsg/wOF4sv2qKU4/s72-c/Dashboard2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-8359133000112284075</id><published>2011-07-08T02:19:00.000-05:00</published><updated>2011-07-08T02:19:38.604-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><title type='text'>Assessing your process - 6 great questions</title><content type='html'>Recently, I was asked to&amp;nbsp;work with a client to&amp;nbsp;help them improve their process. In some of my other readings I found a list of 6 questions used by Alistair Cockburn in his &lt;a href="http://alistair.cockburn.us/People+and+methodologies+in+software+development"&gt;research &lt;/a&gt;to search for the most successful&amp;nbsp;properties of software methodologies. We used his questions&amp;nbsp;to interview the team&amp;nbsp;and found the results to be fascinating and useful. The interviewees took on average 3 hours to answer these 6 questions: &lt;br /&gt;&lt;br /&gt;1. Please give me a brief history of the project: timeframes, changes in project size, problem domain, technology used, key events in the life of the project, the general approach.&lt;br /&gt;&lt;br /&gt;2. What would you say are the things that worked in the project?&lt;br /&gt;&lt;br /&gt;3. What would you say are the things that did not work well?&lt;br /&gt;&lt;br /&gt;4. If you were going to start another project, or give advice to someone starting a similar project, what things would you be sure to put in place (recommend)? What are your priorities for those?&lt;br /&gt;&lt;br /&gt;5. If you were going to start another project, or give advice to someone starting a similar project, what would you work (recommend) to avoid, or keep from happening?&lt;br /&gt;&lt;br /&gt;6. What else?&lt;br /&gt;&lt;br /&gt;Pretty simple list - I hope you find these useful as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-8359133000112284075?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/8359133000112284075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/07/assessing-your-process-6-great.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8359133000112284075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8359133000112284075'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/07/assessing-your-process-6-great.html' title='Assessing your process - 6 great questions'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2483973666615386734</id><published>2011-05-24T16:47:00.000-05:00</published><updated>2011-05-24T16:47:38.865-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile101'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><title type='text'>Agile Documentation – Part II: Guiding Questions</title><content type='html'>&lt;i&gt;In &lt;a href="http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-i.html"&gt;Part I&lt;/a&gt; of this topic I asked you to consider how and why you currently use documentation and posed some questions for you to consider as you think about the place documentation may or may not have on your project. In this post I will list some additional guiding questions that I have found helpful when deciding on the level of documentation to include in a project.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;While it is true that agile projects often produce less documentation, some documentation is still useful in order to communicate project scope, progress, and ideas. However, teams are asked to embrace some additional realities: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;We rarely know everything up front and that producing high quality documentation about requirements or design that may not be implemented is wasteful.&lt;/li&gt;&lt;li&gt;A document isn’t the only vehicle for expressing or transferring good thinking and ideas&lt;/li&gt;&lt;/ul&gt;The tension between creating just enough documentation and too much documentation is part of the discipline that is needed for agile team members. Here are a few things to consider before your start writing that document: &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;1. Is this document for internal team use only? (example, for hand-off from one person to another) If so… &lt;/strong&gt;&lt;br /&gt;Can you communicate the information through a conversation instead? &lt;br /&gt;Can you communicate the information through code instead? &lt;br /&gt;Can you communicate through a drawing, picture, or other lite weight model instead? &lt;br /&gt;If the answer is no to the questions above, what is the minimum amount of information you can capture in the document that would serve as a reminder for a future conversation? &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;2. Is the document for now or later? &lt;/strong&gt;&lt;br /&gt;If the document is required now, consider simplifying or replacing with a conversation, white board pictures, paper prototypes, code snippets, or brief videos summarizing decisions. If the document is for later (ex. Help Documents, regulatory documents, etc), then consider creating it later or adding it to your done criteria for each item in your backlog. Documents for ‘later’ do not need to be created up front but can be continually updated throughout the project. If the document is for later, how often do people actually use it? &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;3. Who is the audience for this documentation? &lt;/strong&gt;&lt;br /&gt;Ask your audience about the minimum set of information they require. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;4. What is the business value of this documentation? &lt;/strong&gt;&lt;br /&gt;If it has little value, then it doesn’t need a lot of information. If it has a lot of value (like a required regulatory document), then make sure the level of detail accomplishes the required value and no more. Why are we producing this document? Would you pay someone to create this document? Is it worth the investment? &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;5. Is this information available through another means? &lt;/strong&gt;&lt;br /&gt;Instead of creating API documentation or SOA documentation, consider using one of the many tools available to generate your documentation. Instead of asking someone to read a design document, ask them to read and run your tests. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;6. Does this document specify requirements or design in detail? &lt;/strong&gt;&lt;br /&gt;Since requirements change on our projects, capturing this level of detail up front may not be providing value to the project. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;7. How often have I had to change this document in the past? &lt;/strong&gt;&lt;br /&gt;This is often a clue that your document contains too much detail. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;8. Can I specify this information through an automated test instead? &lt;/strong&gt;&lt;br /&gt;Specification by Example (also known as ATDD or BDD) promotes writing your requirements as automated test cases (examples) instead of requirements bullets. This allows you to have an executable yet readable specification that is developed throughout the project in cooperation with your client and the development team. Test Driven Development is a technical practice that developers can use to write unit tests that describe and validate their code and design. This practice has lots of advantages, but one of the side effects is that the unit tests specify how and why the code works so that future developers viewing this code can understand this information without having to rely on out of date documentation. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;9. How should I create the content for this document? &lt;/strong&gt;&lt;br /&gt;Consider creating the content using &lt;a href="http://www.agilemodeling.com/essays/inclusiveModels.htm"&gt;inclusive models&lt;/a&gt;. Inclusive models allow others to easily&amp;nbsp;contribute as active participants&amp;nbsp;in creating the content of the document and often involve paper, post-its, and whiteboards. A 35 page word document draft is not an inclusive model - you are more likely to get grammar and formatting edits than suggestions for improving or even re-doing the content.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;10. Is this document so big that no one will read it? &lt;/strong&gt;&lt;br /&gt;“An attempt to avoid this ambiguity by writing everything down often leads to a document of the type Winston Churchill was working on before he was Prime Minister.&amp;nbsp; Mr. Churchill described it as follows: ‘&lt;b&gt;this document, by its very size, ensures that it will never be read.’”&lt;/b&gt;- Allan Shalloway in “The Role of Quality Assurance in Lean-Agile”&lt;br /&gt;&lt;br /&gt;For additional reading on this topic, take a look at the following links: &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.agilemodeling.com/essays/agileDocumentation.htm/"&gt;http://www.agilemodeling.com/essays/agileDocumentation.htm/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tynerblain.com/blog//2010/11/16/agile-documentation/"&gt;http://tynerblain.com/blog//2010/11/16/agile-documentation/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://watirmelon.files.wordpress.com/2011/05/specificationbyexamplealovestory.pdf"&gt;http://watirmelon.files.wordpress.com/2011/05/specificationbyexamplealovestory.pdf&lt;/a&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/7903227215035313444-2483973666615386734?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2483973666615386734/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-ii-guiding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2483973666615386734'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2483973666615386734'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-ii-guiding.html' title='Agile Documentation – Part II: Guiding Questions'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-1500620255224607121</id><published>2011-05-19T16:02:00.004-05:00</published><updated>2011-05-24T16:48:41.896-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile101'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='documentation'/><title type='text'>Agile Documentation - Part I</title><content type='html'>Agile Documentation. These two simple words represent a common question and concern for professionals who are new to agile. Many IT professionals who work in traditional environments are accustomed to spending a lot of their time carefully crafting documents to support the planning, requirements, and design of their project. They are often measured and compensated by their abilities to communicate ideas through documentation. After spending much of their career perfecting their communication skills through MS Word, Visio and MS Project, it is natural for them to wonder how projects can be successful without significant investment in documentation. Since one of the common early misconceptions about agile development is that documentation is no longer needed, you can understand how agile adoption would cause them to be concerned about both their careers and their projects. &lt;br /&gt;&lt;br /&gt;For those who share this concern, let’s start by considering the following quote from Jeff Patton: &lt;br /&gt;&lt;blockquote&gt;&lt;i&gt;“Documents we write communicate our good thinking. You can write one without thinking. You can communicate good ideas without a document.” – Jeff Patton &lt;/i&gt;&lt;i&gt;(Jan. 19, 2011 - twitter)&lt;/i&gt;&lt;/blockquote&gt;Before you sit down to write your next document, ask yourself these two questions: &lt;br /&gt;&lt;br /&gt;1. Do I use the process of creating a document as a vehicle for good thinking? If so, what other ways could be used as a vehicle for good thinking?&lt;br /&gt;&lt;br /&gt;2. Do I use documentation as a means of storing and then transferring good ideas to other team members (current and future)? If so, what other ways could be used to store and transfer those ideas?&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-ii-guiding.html"&gt;part II&lt;/a&gt; I’ll talk about some additional guiding questions and suggestions to help you make decisions on when and how to use documentation in agile projects. Before you read that post, please consider Jeff’s words and the questions above as you think about the place documentation may or may not have on your project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-1500620255224607121?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/1500620255224607121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1500620255224607121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1500620255224607121'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/05/agile-documentation-part-i.html' title='Agile Documentation - Part I'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2832534321295375317</id><published>2011-05-10T23:32:00.003-05:00</published><updated>2011-05-10T23:34:39.818-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='test first'/><title type='text'>Agile Testing - a response to The Golden Rules of Testing</title><content type='html'>Today someone sent me a link to a Software Test Professionals (STP) article on the &lt;a href="http://bit.ly/mKNYb1"&gt;Golden Rules of Testing&lt;/a&gt; as applied to an agile project. I'm pleased that the testing community is embracing agile more and trying to figure out how to fit in. However, I was troubled by some of the statements I read. It appears I'm the "that's not how we do it in agile" guy who has some objections to his views. Commenting on the article directly required giving my name, address, occupation etc which I was unwilling to do so I'm posting my comments here. Interestingly, the author wrote a post on his personal blog “&lt;a href="http://www.testertroubles.com/2010/01/am-i-agile-tester.html"&gt;Am I an agile tester?&lt;/a&gt;” that is much closer to the views that I hold.&lt;br /&gt;&lt;br /&gt;Ray's words are in normal text below. &lt;span style="color: blue;"&gt;&lt;em&gt;My replies are italicized and in blue.&lt;/em&gt;&lt;/span&gt; &lt;br /&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;&lt;/span&gt;&lt;/em&gt;&amp;nbsp; &lt;br /&gt;&lt;em&gt;&lt;span style="color: black;"&gt;***************************&lt;/span&gt;&lt;/em&gt; &lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Switching from Waterfall to Agile is known to directly impact testers.&lt;/div&gt;&lt;span style="color: blue;"&gt;&lt;em&gt;Yes. But not just testers - everyone.&lt;/em&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;It's true; the change can be difficult for some of us. However, fear not, some things never change regardless of the development approach.&lt;/div&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;Agreed.&lt;/span&gt;&lt;/em&gt; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;I've put together what I think are the golden rules of testing that still apply. So when someone says "that's not how we do it in Agile" (and believe me - they will) don't take none of it and stick with the basics.&amp;nbsp;&lt;/div&gt;&lt;span style="color: blue;"&gt;&lt;em&gt;&amp;lt;spidey senses tingling&amp;gt;Depending on how you interpret this statement, this is either ok, or a recipe for failure.&amp;lt;/spidey senses tingling&amp;gt;&lt;/em&gt;&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Read these simple golden rules for software testing based on my own experiences. &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;strong&gt;It’s all about finding the bug as early as possible:&lt;/strong&gt; &lt;/div&gt;&lt;div&gt;&lt;em&gt;&lt;span style="color: blue;"&gt;Close. It is actually about preventing the defect from being found rather than finding it as early as possible. Finding it earlier is better, preventing it is best. For more on this topic, check out this fantastic go-to article on agile QA: &lt;a href="http://bit.ly/aOfJM5"&gt;http://bit.ly/aOfJM5&lt;/a&gt;&lt;/span&gt;&lt;/em&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Start the software testing process by analyzing requirements long before development.&amp;nbsp;&lt;span style="color: blue;"&gt;&lt;em&gt;I object to the word “long” here. It implies that we do big requirements up front. It also more than implies a process smell - the long gap between anaylsis and implementation. Rather, let’s take a look at a story together as a team right before development begins on that story&amp;nbsp;to analyze the requirements and create our tests before we start coding. Then, repeat for the next story.&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Make sure you have these 3 software testing levels: &lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Integration testing (performed by IT) &lt;em&gt;&lt;span style="color: blue;"&gt;performed by the &lt;strong&gt;team&lt;/strong&gt;.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;li&gt;System testing (performed by professional testers) &lt;span style="color: blue;"&gt;&lt;em&gt;performed by the &lt;strong&gt;team&lt;/strong&gt;.&lt;/em&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Acceptance testing (performed by business users) &lt;em&gt;&lt;span style="color: blue;"&gt;performed by the &lt;strong&gt;team&lt;/strong&gt;.&lt;/span&gt;&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Don’t expect too much of automated testing: &lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;First let me state this: Automated testing can be extremely useful and can be a real time saver. But it can also turn out to be a very expensive and an invalid solution.&lt;span style="background-color: white;"&gt;&lt;span style="color: blue;"&gt;&amp;nbsp;&lt;em&gt;I tried to find more some information from Ray on what he means by automated testing but couldn’t find any additional info despite the fact that he has written a few blog posts about automated testing. This statement is usually delivered by someone who has attempted and struggled with automated &lt;strong&gt;UI&lt;/strong&gt; testing. Automated UI testing can be more difficult and more expensive, but I'm not sure how it is an "invalid solution". However, automated &lt;strong&gt;service&lt;/strong&gt; testing is comparably simple, not expensive, not invalid, and a consistent time saver. Automated UI testing can still be valuable, but the ratio of service to UI tests should be heavily weighted toward service testing IMO.&lt;/em&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Deal with resistance: &lt;/strong&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;If you like to be instantly popular, don’t become a software tester! You’ll find out that you are going to meet a great deal of resistance. It is very likely that you will end up being the sole defender of quality at a certain point. Other participants in the project will be tempted to go for the deadline, whatever the quality of the application is.&amp;nbsp;&lt;em&gt;&lt;span style="color: blue;"&gt;This is one of the reasons the agile testing community preaches a whole team approach to quality. Being the sole defender of anything on a project is a problem. We want our teams to own the budget and schedule, not just the PM. We want our teams to own quality, not just the tester, etc.&lt;/span&gt;&lt;/em&gt;&lt;span style="color: blue;"&gt;&lt;/span&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/7903227215035313444-2832534321295375317?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2832534321295375317/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/05/agile-testing-response-to-golden-rules.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2832534321295375317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2832534321295375317'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/05/agile-testing-response-to-golden-rules.html' title='Agile Testing - a response to The Golden Rules of Testing'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-1842268947604420423</id><published>2011-04-27T09:46:00.002-05:00</published><updated>2012-01-24T11:19:01.114-06: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='influencer book'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>Kanban Boards - What Restaurants and Agile Projects Have in Common</title><content type='html'>I recently finished reading the book "Influencer: The Power to Change Anything." Among other things, the book describes several influence strategies and one of them is to use physical things to promote the desired behaviour. To illustrate their point they provided a simple example that I'll summarize in the next paragraph before drawing similarities to how a kanban&amp;nbsp;system can influence good behaviours for your team.&lt;br /&gt;&lt;br /&gt;The 1940s saw an increase in people eating out at restaurants after the end of the war and a surge in growth and prosperity. During this time restaurants struggled to keep up with the demand and tension grew between wait staff and cooks. Orders were late or confused and customers were annoyed. Dr. William Foote Whyte was invited to help. His solution was to install a simple 50 cent order spindle - a basic kanban system that later evolved into the order wheel. Wait staff wrote their detailed orders on paper that were skewered onto the spindle and the cooks would fulfill the orders generally in a first in first out sequence. This simple system worked wonders and still exists today. Cook staff could clearly understand the priorities and requirements for the meals while still being allowed some flexibility to make the meals in an efficient order. Wait staff could detail the order expectations and&amp;nbsp;gain a better understanding of when meals would be completed. For more of the story, you'll need to read the book (Influencer, pages 220-222).&lt;br /&gt;&lt;br /&gt;If your organization is experiencing similar issues and frustrations between your customers and your IT staff, then implementing a simple kanban system like the spindle could be a first step to improving your results,&amp;nbsp;communication and behaviour. If your requests are sized appropriately (think meals for individuals&amp;nbsp;vs. meals for everyone in the restaurant), then your customers can decide which stories are important enough to put on the kanban board and put them on in the order they would like them completed. Use index cards or stickies with detailed instructions on them (acceptance tests) as a way of keeping the requests small. Keep the board small enough so that only a limited amount of requests can fit. As one request moves off the board, the customer gets to add another. Measure the average time it takes for a request to enter and exit the board so that your customers can understand how long it will take to complete an average request. Making this process visible in a physical and tangible way can help encourage communication and cooperation between your customers and your IT staff.&lt;br /&gt;&lt;br /&gt;For another view of a simple kanban board and how it works, check out Henrik Kniberg's cartoon here: &lt;a href="http://blog.crisp.se/henrikkniberg/2009/06/26/1246053060000.html"&gt;http://blog.crisp.se/henrikkniberg/2009/06/26/1246053060000.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;If you are already doing some agile development but have not yet experimented with kanban, consider using a kanban board within each iteration. Our team had discussions today for how we are going to set up our iteration kanban board for a new project and here is the draft plan with 5 columns left to right:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;Iteration Backlog (limited to the points we think we can achieve in this iteration)&lt;/li&gt;&lt;li&gt;WIP - Tests Defined (limit of 3)&lt;/li&gt;&lt;li&gt;WIP - In development (limit of 5)&lt;/li&gt;&lt;li&gt;WIP - Testing (limit of 3)&lt;/li&gt;&lt;li&gt;Done (limited to the number of stories we can actually complete in an iteration)&lt;/li&gt;&lt;/ul&gt;This simple board helps improve communication and expectations between team members and stakeholders. It also encourages behaviours that we value - blurring of specializations, team cooperation,&amp;nbsp;team ownership, and getting things to 'done'. Enforced wip limits will inevitably mean that developers will need to help testers/analysts and vice versa, and that&amp;nbsp;one story has to move to done before a new story can begin. Also, a&amp;nbsp;board that visualizes your process can increase ownership&amp;nbsp;of the process and the results. I expect the columns and wip limits to change as we use our board but we find this mix of scrum and kanban to be valuable.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Want to receive future blog posts in your inbox? Enter your email address &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=WinnipegAgilist&amp;amp;amp;loc=en_US"&gt;here&lt;/a&gt;.&amp;nbsp; &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-1842268947604420423?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/1842268947604420423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/04/kanban-boards-what-restaurants-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1842268947604420423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1842268947604420423'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/04/kanban-boards-what-restaurants-and.html' title='Kanban Boards - What Restaurants and Agile Projects Have in Common'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4124197150279790946</id><published>2011-04-13T10:45:00.003-05:00</published><updated>2011-05-26T16:19:37.581-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planning poker'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='estimating'/><title type='text'>The debate about agile estimating</title><content type='html'>There has been a lot of noise recently about eliminating estimating for software development projects. I'd like to thank&amp;nbsp;Terry Bunio for putting out his thoughts as a rebuttal &lt;a href="http://bornagainagilist.wordpress.com/2011/04/12/agile-project-estimate-guarantee/"&gt;here&lt;/a&gt;. (Note - Terry sits right beside me so we've had a lot of discussion on this topic recently - especially since we thought someone was wrong on the internet #gasp)&lt;br /&gt;&lt;br /&gt;To summarize my understanding of the issue:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Estimating is a waste because we are going to be wrong anways.&lt;/li&gt;&lt;li&gt;Estimating is a waste because we could be delivering value instead.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;While these two statements have caused a lot of debate, there is a ring of truth in both of them. So, if we are going to do some form of estimating, can it a) help us be more truthful about our estimates and b) increase our ability to deliver value? This is the beauty of relative estimating through planning poker - and here is my main point, bolded and centered for emphasis:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;strong&gt;Planning Poker is not just an estimating exercise.&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;Yes, one of the main outputs of planning poker are points estimates. But it has other results that address the concerns above. &lt;br /&gt;&lt;br /&gt;a) It allows us to be more truthful about our estimates:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Relative estimates in concert with user stories and managing to done enable you to track the velocity of your project so you can predict actuals sooner (i.e. tell the truth about your estimates as soon as possible). In turn, this allows us to make better choices about the future of the project (like helping the marketers decide when to launch a campaign about the project), and measure the results of our continuous improvement experiments.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;b) It increases our ability to deliver value:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Planning Poker is also a scope discovery tool (see my thoughts &lt;a href="http://winnipegagilist.blogspot.com/2010/03/agile-scope-completion-techniques.html"&gt;here&lt;/a&gt;). After a planning poker session our team will have a much better understanding of what the client wants and expects - therefore enabling us to deliver it to them sooner and with less misunderstanding and frustration.&lt;/li&gt;&lt;li&gt;Planning Poker creates team ownership of your estimates - including joint ownership with the client.&lt;/li&gt;&lt;li&gt;Planning Poker allows your client and users to have a much better understanding of what it takes to build what they are asking for and informs their choices when prioritizing.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In closing, so far all of our clients have required us to create estimates and we'll continue to do that. But, we like to start with points through planning poker because of the value added as above and then take a few stories and extrapolate to hours. After that, we ignore the hours and focus on velocity. This feels like a balanced and professional approach.&lt;br /&gt;&lt;br /&gt;**************&lt;br /&gt;&lt;br /&gt;Some additional reading on this issue if you choose. The last one contains some ideas that I strongly disagree with and that Terry responded to in the post above (despite his affection for TargetProcess in general).&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.mountaingoatsoftware.com/how-do-story-points-relate-to-hours"&gt;http://blog.mountaingoatsoftware.com/how-do-story-points-relate-to-hours&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://the-tread-way.blogspot.com/2011/04/how-many-hours-are-in-story-point.html"&gt;http://the-tread-way.blogspot.com/2011/04/how-many-hours-are-in-story-point.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.sdtimes.com/link/35401"&gt;http://www.sdtimes.com/link/35401&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.targetprocess.com/blog/2011/04/5-reasons-why-you-should-stop-estimating-user-stories.html"&gt;http://www.targetprocess.com/blog/2011/04/5-reasons-why-you-should-stop-estimating-user-stories.html&lt;/a&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/7903227215035313444-4124197150279790946?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4124197150279790946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/04/debate-about-estimating.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4124197150279790946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4124197150279790946'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/04/debate-about-estimating.html' title='The debate about agile estimating'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-8513701626334318191</id><published>2011-04-05T15:10:00.003-05:00</published><updated>2011-12-16T09:24:06.591-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='risk'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><title type='text'>Agile as a risk mitigation technique</title><content type='html'>When I first started using and investigating agile principles and practices, I didn't immediately realize how well these techniques worked in order to reduce project risk. As I talk with others about adopting agile, many fear the 'risk' of moving to agile techniques. Here are a few thoughts on how agile practices&amp;nbsp;reduce risk on your projects (I'm sure I've missed a few):&lt;br /&gt;&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;Project Risk&lt;/b&gt;&lt;/td&gt;&lt;td&gt;&lt;b&gt;Agile Practice&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Addressing schedule and estimate risks&lt;/td&gt;&lt;td&gt;Manage to done, Velocity, Relative estimating, User stories&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Addressing the risk of building the wrong thing&lt;/td&gt;&lt;td&gt;Deliver early and often in small increments, Iteration demos&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Addressing the risk of validating your architecture&lt;/td&gt;&lt;td&gt;Steel thread, Iterative development&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Identifying risks and issues as soon as possible&lt;/td&gt;&lt;td&gt;Daily stand-ups, Frequent retrospectives, Iterative Development, Manage to done&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Addressing scope risks&lt;/td&gt;&lt;td&gt;Iterative development, User stories, User story slicing, Relative Estimating, User story mapping, Trim the tail&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Addressing people risks&lt;/td&gt;&lt;td&gt;Paired programming, Team ownership practices&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Addressing quality risks&lt;/td&gt;&lt;td&gt;TDD, BDD, ATDD&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;This list doesn't address the risks that accompany any change initiative, but it does underline that many agile techniques are directly targetted at averting project risk. Agile practices help us shorten the distance between guessing (planning, designing,&amp;nbsp;estimating, etc)&amp;nbsp;and knowing.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;See also - Chris Matts wrote about this topic recently and gave some nice examples of how he talked about risk during a methodology audit. &lt;/i&gt; &lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;a href="http://theitriskmanager.wordpress.com/2011/12/12/the-language-of-risk/"&gt;http://theitriskmanager.wordpress.com/2011/12/12/the-language-of-risk/&lt;/a&gt; &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-8513701626334318191?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/8513701626334318191/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/04/agile-as-risk-mitigation-technique.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8513701626334318191'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8513701626334318191'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/04/agile-as-risk-mitigation-technique.html' title='Agile as a risk mitigation technique'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-453694669890028059</id><published>2011-03-27T23:03:00.000-05:00</published><updated>2011-04-01T10:47:27.369-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='design studio'/><category scheme='http://www.blogger.com/atom/ns#' term='ux'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>Team Ownership through the UX Design Studio Approach</title><content type='html'>&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;A few weeks ago I was added to a new team that had already spent some time working on the technical challenges for the project but had yet to do much UX work. One of the&amp;nbsp;first things the team asked me to help with was to create the User Interface design. I think what they expected was for me to ask some&amp;nbsp;probing questions, go draw some pretty pictures in Visio or some other tool and then present (and dictate) the results. I've certainly taken this approach on previous projects. However, in this case I went to my agile improvement backlog and decided to try&amp;nbsp;the Design Studio&amp;nbsp;approach I had learned at&amp;nbsp;Agile 2010 in a session by Todd Zaki Warfel.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The Design Studio approach is a team approach to UX design. When I first asked the team if they would consider doing the UX design&amp;nbsp;as a team, they were surprised and delighted to be asked&amp;nbsp;(cool!). I had high hopes for this approach&amp;nbsp;because I was excited to&amp;nbsp;see the results of using the collective imagination of the team to create a cohesive and well thought out&amp;nbsp;design. Before I share the results, here are the details of this technique:&lt;/span&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;strong&gt;Prerequisites&lt;/strong&gt;: You should have already created your initial backlog of user stories. Creating other artifacts like personas and user scenarios first would also be useful. In our case we had the stories and some scenarios, but no personas yet. You will also need to print out several 8up sheets like the one in the image below and bring along several pencils.&amp;nbsp;You can download the 8Up &lt;a href="http://dl.dropbox.com/u/24652970/DesignStudioTemplate.8Up.xlsx"&gt;here&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;or create your own in Excel.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-qCD5LvoKkIw/TZAELiNIZHI/AAAAAAAABrM/xAwOSrodPfk/s1600/8UpWPencils.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;img border="0" height="256" r6="true" src="http://1.bp.blogspot.com/-qCD5LvoKkIw/TZAELiNIZHI/AAAAAAAABrM/xAwOSrodPfk/s320/8UpWPencils.png" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Steps:&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;ol&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Gather team members for the exercise. Not everyone needs to participate, but you should have willing participants from each role including developers and client. &lt;/span&gt;&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Decide on a focus for your UX design. This could be a specific release, user scenario, or some grouping of user stories. &lt;/span&gt;&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Hand out 8up papers and pencils to everyone on the team. &lt;/span&gt;&lt;/li&gt;&lt;li style="border-bottom: medium none; border-left: medium none; border-right: medium none; border-top: medium none;"&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ask everyone to create 6-8 sketches of the different pages/screens in the app (see tips below). &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Once you start, tell them they only have 5 minutes to complete their 6-8 sketches. &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;You could tell them this before, but it seems to help crystalize their thoughts when they hear this.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;After 5 minutes, review each set of drawings: &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Each person has 3 minutes to pitch their drawings to the team. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;The team then has 2 minutes to identify 3 things that worked and 2 things to change.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Repeat steps 3-6 until the team reaches a consensus on the design. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Once your design is complete, keep the final sheets as your UI reference model. &lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;You won't likely need to transfer this to Visio or any other tool. The model should contain enough information and brief notes so that you can develop straight from the paper and make final adjustments in your development tool while having a conversation.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ol&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Some tips:&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Gloss over details in your drawings. You need just enough detail&amp;nbsp;to communicate your design. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Aim for quantity not quality. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;When doing this for the first time, don't tell your team they only have five minutes until after they start. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Do steal ideas from each other. &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;As always, include your client in these sessions.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;strong&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Results&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Four of us met in a conference room to try out this new approach. For a user scenario that included about 10 stories, we executed three rounds. As a team, we were very pleased with the results and how quickly the final design emerged. Despite starting with very different ideas, we discovered that by the third round our drawings were nearly identical and represented the best work of the team. Using this approach helped generate ideas none of us would have thought of individually and resulted in team ownership of the design. We also found that we identified a few new 'excitement' user stories to add to and enhance our existing&amp;nbsp;backlog. Additionally, as we walked through each other's drawings we discovered one or two basic stories that we had missed while generating our initial backlog. Time will tell if the resulting UX design will be successful, but as a whole the team is confident in both the approach and the result.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial;"&gt;In summary, this approach was fast, promoted team ownership, and produced a great result. &lt;/span&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-family: Arial;"&gt;You can learn more about the Design Studio approach here: &lt;a href="http://unify.eightshapes.com/page-pattern/sketching-design-studio-page-patterns/"&gt;http://unify.eightshapes.com/page-pattern/sketching-design-studio-page-patterns/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;I thought the success of this team approach was appropriate to write about on a day where this quote was found in @ThisIsSethsBlog - "I'm not going to believe that only a few people are permitted to be gatekeepers or creators or generous leaders". Indeed.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial;"&gt;&lt;em&gt;Update April 1, 2011: I introduced this approach to a larger group of my fellow employees this week. Someone asked "why we should continue with round 2, 3 etc - why not just have&amp;nbsp;the group consolidate the good ideas and produce one design together after round 1?"&amp;nbsp;&lt;/em&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: Arial;"&gt;&lt;em&gt;My answer: If you consolidate your ideas after round one then you are&amp;nbsp;risking two things:&amp;nbsp;1)&amp;nbsp;That the 'loud' voices will be the one driving the ideas and design. The practice of having everyone re-drawing the design allows each person's ideas to be incorporated. 2) As you repeat the process of re-drawing your design, the ideas from your team members will seep into your ideas and birth new ones. If you consolidate your design too early, you risk losing those new ideas that can only form in the act of putting your ideas down with paper and pencil.&lt;/em&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-453694669890028059?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/453694669890028059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/03/team-ownership-through-ux-design-studio.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/453694669890028059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/453694669890028059'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/03/team-ownership-through-ux-design-studio.html' title='Team Ownership through the UX Design Studio Approach'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-qCD5LvoKkIw/TZAELiNIZHI/AAAAAAAABrM/xAwOSrodPfk/s72-c/8UpWPencils.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-5229800057882244429</id><published>2011-03-21T22:21:00.000-05:00</published><updated>2011-04-05T14:42:04.126-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='ball point game'/><category scheme='http://www.blogger.com/atom/ns#' term='Agile Winnipeg'/><category scheme='http://www.blogger.com/atom/ns#' term='shorten the distance'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>Agile Winnipeg Inaugural Event - "Shorten the Distance"</title><content type='html'>It was pretty exciting for myself and the other organizers to see a packed room of over 60 people attend the first &lt;a href="http://www.agilewinnipeg.com/"&gt;Winnipeg Agile User Group&lt;/a&gt; event on Thursday, March 10, 2011. After a quick meal from &lt;a href="http://www.homersrestaurant.ca/"&gt;Homers &lt;/a&gt;and some furniture re-organization, we kicked off the event with a word from several of our sponsors. Wadood Ibrahim spoke on behalf of &lt;a href="http://www.protegra.com/"&gt;Protegra &lt;/a&gt;and recalled giving a presentation to the local PMI group 10 years ago about agile techniques that was not well received and was delighted by the turnaround of opinions and interest 10 years later.&lt;br /&gt;&lt;br /&gt;For the main presentation, &lt;a href="http://www.twitter.com/dougkok"&gt;Doug&amp;nbsp;Kok&lt;/a&gt;&amp;nbsp;and&amp;nbsp;I split the attendees into groups of about 15 people and led them through the &lt;a href="http://dpwhelan.com/blog/uncategorized/learning-scrum-through-the-ball-point-game/"&gt;ball point game&lt;/a&gt;. The ball point game is a simple and fun exercise that allows teams to&amp;nbsp;think about process&amp;nbsp;* people through team decision making and the power of&amp;nbsp;reducing hand-offs. Here are a few images from the event:﻿﻿&lt;br /&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-L3asjiGlkO4/TYgSgbKvV-I/AAAAAAAABq4/pmrc8zY-kPU/s1600/TeamPlayingBallPointGame.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="298" r6="true" src="https://lh5.googleusercontent.com/-L3asjiGlkO4/TYgSgbKvV-I/AAAAAAAABq4/pmrc8zY-kPU/s400/TeamPlayingBallPointGame.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Team&amp;nbsp;1 Discussing their strategy&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;﻿ &lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-pTZV_Us5y8Q/TYgS4NdV5nI/AAAAAAAABq8/mn5gzawIaCk/s1600/TeamScores.JPG" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="298" r6="true" src="https://lh6.googleusercontent.com/-pTZV_Us5y8Q/TYgS4NdV5nI/AAAAAAAABq8/mn5gzawIaCk/s400/TeamScores.JPG" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;The scores of the game. Notice the significant improvements from most teams. Team 3 forgot to count during the last iteration, but based upon the process they were using, I think they would have surpassed their estimate of 160&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;﻿ &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;And, thanks to Doug - here is a brief video summary of the teams playing&amp;nbsp;the game:&amp;nbsp;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/-88-W79oj3c/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/-88-W79oj3c&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266" src="http://www.youtube.com/v/-88-W79oj3c&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;﻿﻿&lt;br /&gt;So how does the ball point game relate to agile? In both the ball point game and in software development, improvements in speed can be gained in similar ways:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Focus on reducing hand-offs by having face-to-face conversations, dedicated teams, shortening the distance between a requirement and its implementation, a question and its answer,&amp;nbsp;etc. &lt;/li&gt;&lt;li&gt;Stop frequently to determine how to go faster.&lt;/li&gt;&lt;li&gt;Measure your experiments through velocity and frequent feedback.&lt;/li&gt;&lt;li&gt;Value and encourage cross-functional, de-centralized,&amp;nbsp;self-organizing teams.&lt;/li&gt;&lt;/ul&gt;&lt;em&gt;Homework: To take this further, read the 12 principles in the &lt;a href="http://www.agilemanifesto.org/principles.html"&gt;Agile Manifesto&lt;/a&gt;&amp;nbsp;&lt;/em&gt;&lt;em&gt;and think about how each of the 12 could be re-stated as a way to reduce handoffs, or as shortening the distance between [A] and [B]. Also, to see how these ideas can work in the 'wild', read this &lt;a href="http://www.limitedwipsociety.ch/en/case-study.html"&gt;case study&lt;/a&gt; on facebook.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;To close the event, we held a short open Q&amp;amp;A session. Some of the questions we discussed were:&lt;br /&gt;&amp;nbsp;1. Can you do agile without TDD (Test Driven Development)&lt;br /&gt;&amp;nbsp;2. When/how do you do requirements?&lt;br /&gt;&amp;nbsp;3. How do you control scope creep when you aren't defining the requirements&amp;nbsp;up front?&lt;br /&gt;Lively&amp;nbsp;discussion continued over drinks at Triple Bs on Scurfield.&lt;br /&gt;&lt;br /&gt;Based on the survey responses, the top&amp;nbsp;3 categories for&amp;nbsp;future event topics were Agile Testing, Agile Adoption, and Agile Estimating.&lt;br /&gt;&lt;br /&gt;Finally, on behalf of the organizers I would like to thank you for participating and thank the sponsors for allowing this event to occur. To register for future event notification, please click &lt;a href="http://eepurl.com/cHaY6"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-5229800057882244429?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/5229800057882244429/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/03/agile-winnipeg-inaugural-event-shorten.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5229800057882244429'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5229800057882244429'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/03/agile-winnipeg-inaugural-event-shorten.html' title='Agile Winnipeg Inaugural Event - &quot;Shorten the Distance&quot;'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-L3asjiGlkO4/TYgSgbKvV-I/AAAAAAAABq4/pmrc8zY-kPU/s72-c/TeamPlayingBallPointGame.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-678702684152525371</id><published>2011-03-09T08:56:00.000-06:00</published><updated>2011-03-09T19:37:17.940-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>What I learned about agile teams from 8/9 year old girls basketball</title><content type='html'>I am a very fortunate daddy. I am one of the coaches for my&amp;nbsp;eldest daughter's basketball team. The community league she plays in has a rule designed to promote team work that at first glance may seem counter intuitive - "No double teaming". This means that in most circumstances when playing defense each girl must cover her own 'check' and can not help out her teammate. To explain this a little more, I'll give you two examples.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Example 1 - double teaming:&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Mary is new to basketball and is tentatively dribbling the ball over half court. Ann is playing defense on Mary and is doing a pretty good job of limiting where Mary can go and who she can pass to. Laura is a very strong player on Ann's team and notices that Mary is struggling and that she has an opportunity to make a play. Laura leaves her own check, runs over to Mary (who is now double teamed), steals the ball and races to her own basket where she scores an easy two points. Her team cheers loudly.&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;Example 2 - helping:&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family: inherit;"&gt;Amber is an experienced basketball player and is dribbling the ball over half court. Kari is playing defense on Amber but is having trouble limiting where Amber can go and who she can pass to. Deanna is a very strong player on Kari's team, but because she is not allowed to double team, she does not immediately race over to help Kari. Amber makes a quick move that allows her to get past Kari and race towards the basket. At this point, Kari knows she is in trouble and yells 'help'. Deanna races over and gets in front of Amber to slow her down just enough so that Kari can catch up. Once Kari has caught up, Deanna races back to her own check and Kari resumes playing defense on Amber. No baskets are scored and mild applause is heard. &lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: inherit;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;The nature of community led basketball leagues is that there is a combination of inexperienced but willing coaches and inexperienced but willing referees. This means that most times example 1 occurs without the ref or the coach interfering. While our team has been mostly executing as example 2, many of the teams we play against have been executing mostly as example 1. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;Over the course of the season, the result has been interesting. Teams that were beating us at the beginning of the season by taking full advantage of the skills of their best player through double teaming are now struggling to even have a chance to score against our girls. The girls on those teams are trying just as hard, but the double teaming strategy that worked so well early in the season is no longer effective.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;We have a team of 10 girls who have each improved. Some of the girls are more skilled than others, but each girl has improved noticably from the beginning of the season. The net effect is that our team has also improved noticably from the beginning of the season. Maybe more importantly, this team supports each other, learns from each other, and trusts each other.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;em&gt;Note: It would be easy to credit our brilliant coaching strategy, but that would clearly discount the effort, teamwork, and skill of the girls on our team. They are a wonderful group.&lt;/em&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;The parallels for agile teams are pretty clear to me. If you expect your team to perform at a high level, you need to let them improve at every role and reinforce team ownership of the project.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;If you are the PM, don't take sole responsibility of the budget, tasks, project goals etc. Make these visible to your team and help your team own them and make decisions about tasks&amp;nbsp;and priorities&amp;nbsp;together.&lt;/li&gt;&lt;li&gt;If you are the DBA, don't get upset when the database design is insufficient, teach the team how to improve their design the first time. Work with them rather than 'fixing' their work later.&lt;/li&gt;&lt;li&gt;If you are&amp;nbsp;a tester, don't assume full responsibility for testing, teach your team how to be better testers by testing every day and pair testing with the developers.&lt;/li&gt;&lt;li&gt;If you are the UI expert, involve your team when designing the UI. Lead the exercise, but don't steal the design for yourself.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;Of course, the converse of all of these is also true:&lt;/div&gt;&lt;ul&gt;&lt;li&gt;If you are a developer, take responsibility for the budget and priorities&lt;/li&gt;&lt;li&gt;If you are a tester, learn how to code a little&lt;/li&gt;&lt;li&gt;etc.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;There are other lessons to be learned from 8/9 year old girls basketball, like how to ask for help when you need it, but those are for another day.&lt;/div&gt;&lt;br /&gt;&lt;div&gt;Occasionally I meet former co-workers who inevitably ask me what I'm doing. When I announce my agile and lean passions and talk even briefly about the differences between traditional teams and agile teams, I often am greeted with a response something like "But someone still has to manage the team and the budget right?" My answer is usually "Yes, but it doesn't need to be you anymore. It&amp;nbsp;should be the whole team."&lt;/div&gt;&lt;br /&gt;&lt;div&gt;As the African proverb says, "If you want to go fast, go alone. If you want to go far, go together."&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-678702684152525371?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/678702684152525371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/03/what-i-learned-about-agile-teams-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/678702684152525371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/678702684152525371'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/03/what-i-learned-about-agile-teams-from.html' title='What I learned about agile teams from 8/9 year old girls basketball'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-5229046618750408758</id><published>2011-02-09T11:17:00.000-06:00</published><updated>2011-02-09T11:17:34.544-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='continuous improvement'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>Quit your belly-aching and try it!</title><content type='html'>I get a little frustrated whenever I hear people say things like: &lt;br /&gt;&lt;br /&gt;&lt;em&gt;"[Agile Practice X] is [insert doubting words here], prove it to me that it&amp;nbsp;[is better/is more efficient/is cost effective, etc]". &lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Built right into agile is your own little test lab where you can try it yourself without needing the official research study.&lt;br /&gt;&lt;br /&gt;1. Execute in iterations to determine your velocity.&lt;br /&gt;2.&amp;nbsp;As a team, determine to try [Agile Practice X]&amp;nbsp;for one or two iterations.&lt;br /&gt;3.&amp;nbsp;See if your velocity went up or down and reflect on the results.&lt;br /&gt;4. Decide whether or not to keep [Agile Practice X].&lt;br /&gt;&lt;br /&gt;So, as I have often heard my dad say: "quit your belly-aching" and try it already!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-5229046618750408758?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/5229046618750408758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/02/quit-your-belly-aching-and-try-it.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5229046618750408758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5229046618750408758'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/02/quit-your-belly-aching-and-try-it.html' title='Quit your belly-aching and try it!'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-6163080607586443715</id><published>2011-02-01T12:13:00.000-06:00</published><updated>2012-01-24T11:17:55.148-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='user story slicing'/><category scheme='http://www.blogger.com/atom/ns#' term='iterative'/><category scheme='http://www.blogger.com/atom/ns#' term='incremental'/><title type='text'>Iterative Development and User Story Slicing</title><content type='html'>You may have seen Jeff Patton's slides showing iterative vs. incremental development using the Mona Lisa as an example (slides are &lt;a href="http://www.agileproductdesign.com/downloads/patton_user_story_mapping.ppt"&gt;here&lt;/a&gt;, page 80, 81). Iterative development suggests that you build each feature from the ground up&amp;nbsp;increasing the subjective quality of each feature&amp;nbsp;with each user story that you implement. This method is important for allowing you and your team to narrow in on the final solution rather than designing and understanding it all up front. It also allows you to deliver a full featured application earlier and to use methods like &lt;a href="http://alistair.cockburn.us/Trim+the+Tail"&gt;trim the tail&lt;/a&gt;&amp;nbsp;to optimize your available budget vs the value that the project is delivering.&lt;br /&gt;&lt;br /&gt;Here is a quick discussion on Iterative vs Incremental development:&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/_SOWsoNd4jeU/TUhERZoH4WI/AAAAAAAABqQ/_-F_Io-iJYY/s1600/IterativeVsIncremental.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" s5="true" src="http://2.bp.blogspot.com/_SOWsoNd4jeU/TUhERZoH4WI/AAAAAAAABqQ/_-F_Io-iJYY/s320/IterativeVsIncremental.jpg" width="282" /&gt;&lt;/a&gt;&lt;/div&gt;The diagram to the left shows&amp;nbsp;how a project could be completed using Iterative or Incremental development. In both cases, iterations were used to develop the list of features, but in&amp;nbsp;iterative development we build each feature up a slice at a time rather than a feature at a time.&amp;nbsp;Some of the advantages of iterative development are that it:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Allows you to validate your architecture and solution early&lt;/li&gt;&lt;li&gt;Allows users to see and test the whole application early&lt;/li&gt;&lt;li&gt;Minimizes the affects of change to a feature&lt;/li&gt;&lt;li&gt;Ensures important stories are built first&lt;/li&gt;&lt;li&gt;Elicits improved feedback on the whole application early&lt;/li&gt;&lt;li&gt;Allows you to deliver your application early&lt;/li&gt;&lt;li&gt;Discourages "gold plating"&lt;/li&gt;&lt;li&gt;It partners nicely with user story mapping (turn the diagram upside down and you have your story map)&lt;/li&gt;&lt;/ul&gt;Some of the disadvantages are:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Your code and design has to be change tolerant&lt;/li&gt;&lt;li&gt;You have to be proficient at slicing your user stories&lt;/li&gt;&lt;li&gt;You won't know the final solution at the beginning of the project&lt;/li&gt;&lt;/ul&gt;User story slicing is an important technique in iterative development, but what does this look like in practice? Using Jeff's Mona Lisa pictures as a pattern, I've created a few images that show how a feature like "Send Email" could be completed iteratively.&lt;br /&gt;&lt;br /&gt;The first story slice is simply a form with little or no validation with text boxes &lt;b&gt;To&lt;/b&gt;, &lt;b&gt;Subject&lt;/b&gt; and &lt;b&gt;Body&lt;/b&gt; with&amp;nbsp;&lt;b&gt;Send&lt;/b&gt; and &lt;b&gt;Cancel&lt;/b&gt; buttons. When the user fills in the text boxes and clicks &lt;b&gt;Send&lt;/b&gt; an e-mail is sent provided the e-mail addresses entered are correct. But, this e-mail has no extra features like support for HTML formats, RTF, attachments, e-mail priorities, etc. Once this story is implemented, the team will implement similar slices of each feature for Read Email, Create Appointment, View Calendar, Create Task, Edit Task, Create Contact, Edit Contact, etc in order to create a minimalist working model of the whole application.&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMttBrur2I/AAAAAAAABpo/RzxlGO8w8TA/s1600/MonaLisa1.jpg"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMttBrur2I/AAAAAAAABpo/RzxlGO8w8TA/s200/MonaLisa1.jpg" width="134" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMtz_5xfNI/AAAAAAAABp8/nVQ4-G-beXQ/s1600/ComposeEmail1.jpg"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMtz_5xfNI/AAAAAAAABp8/nVQ4-G-beXQ/s200/ComposeEmail1.jpg" width="250" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The&amp;nbsp;next slices of this particular feature would be to implement stories such as implementing&amp;nbsp;Carbon Copy (CC)&amp;nbsp;and taking e-mail addresses from your contact list. You can also see that the form has changed slightly - the &lt;b&gt;Cancel&lt;/b&gt; button has been removed and the &lt;b&gt;Send&lt;/b&gt; button has been moved to the top.&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMtvAK_YCI/AAAAAAAABps/02pRakJug_o/s1600/MonaLisa2.jpg"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMtvAK_YCI/AAAAAAAABps/02pRakJug_o/s1600/MonaLisa2.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_SOWsoNd4jeU/TUMt1ty-IaI/AAAAAAAABqA/VSU2Uf_m0IU/s1600/ComposeEmail2.jpg"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_SOWsoNd4jeU/TUMt1ty-IaI/AAAAAAAABqA/VSU2Uf_m0IU/s320/ComposeEmail2.jpg" width="250" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;As we continue to iterate through this feature by adding story slices, the form takes additional shape, adding tool bars and tool bar items. At this point, the application&amp;nbsp;may be&amp;nbsp;finished enough to release to production and start earning revenue for the organization while we continue to add new features and use that revenue to help fund&amp;nbsp;the remainder of the project.&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMtwMVrxWI/AAAAAAAABpw/SpVA_1ZCgHY/s1600/MonaLisa3.jpg"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMtwMVrxWI/AAAAAAAABpw/SpVA_1ZCgHY/s1600/MonaLisa3.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/_SOWsoNd4jeU/TUMt3Gg-r1I/AAAAAAAABqE/HD7IzwXchcc/s1600/ComposeEmail3.jpg"&gt;&lt;img border="0" height="200" s5="true" src="http://4.bp.blogspot.com/_SOWsoNd4jeU/TUMt3Gg-r1I/AAAAAAAABqE/HD7IzwXchcc/s320/ComposeEmail3.jpg" width="250" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;A further release with more story slices implemented:&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_SOWsoNd4jeU/TUMtxTzTtGI/AAAAAAAABp0/kK2wmbTWNr0/s1600/MonaLisa4.png" imageanchor=""&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_SOWsoNd4jeU/TUMtxTzTtGI/AAAAAAAABp0/kK2wmbTWNr0/s1600/MonaLisa4.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMt4m6r_TI/AAAAAAAABqI/6vxPvbPu8W4/s1600/ComposeEmail4.jpg"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TUMt4m6r_TI/AAAAAAAABqI/6vxPvbPu8W4/s320/ComposeEmail4.jpg" width="250" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;The final release:&lt;br /&gt;&lt;table border="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/_SOWsoNd4jeU/TUMtyuKP3AI/AAAAAAAABp4/QlbMMnapq7M/s1600/MonaLisa5.png"&gt;&lt;img border="0" height="200" src="http://2.bp.blogspot.com/_SOWsoNd4jeU/TUMtyuKP3AI/AAAAAAAABp4/QlbMMnapq7M/s1600/MonaLisa5.png" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;td&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_SOWsoNd4jeU/TUMt6AzQANI/AAAAAAAABqM/jrxqo0ZiXJ0/s1600/ComposeEmail5.jpg"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/_SOWsoNd4jeU/TUMt6AzQANI/AAAAAAAABqM/jrxqo0ZiXJ0/s320/ComposeEmail5.jpg" width="250" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Iterative development is an important tool in your agile toolbox to help your teams deliver early and&amp;nbsp;adapt to change while keeping the project's end goals in mind. User story slicing is one of the important&amp;nbsp;techniques you can use to help make this happen.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Want to receive future blog posts in your inbox? Enter your email address &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=WinnipegAgilist&amp;amp;amp;loc=en_US"&gt;here&lt;/a&gt;. &lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-6163080607586443715?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/6163080607586443715/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/02/iterative-development-and-user-story.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6163080607586443715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6163080607586443715'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/02/iterative-development-and-user-story.html' title='Iterative Development and User Story Slicing'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_SOWsoNd4jeU/TUhERZoH4WI/AAAAAAAABqQ/_-F_Io-iJYY/s72-c/IterativeVsIncremental.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4082871651775347106</id><published>2011-01-20T13:41:00.000-06:00</published><updated>2011-01-20T14:41:31.809-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='PrairieDevCon'/><category scheme='http://www.blogger.com/atom/ns#' term='story'/><title type='text'>For lunch - an agile story</title><content type='html'>The speaker list for &lt;a href="http://www.prairiedevcon.com/"&gt;PrairieDevCon&lt;/a&gt; 2011 was published today and I'm really looking forward to it. Some great speakers and talks are lined up and &lt;a href="http://geekswithblogs.net/dlussier/Default.aspx"&gt;D'Arcy Lussier&lt;/a&gt; as always will arrange for some great food. But... let me tell you a story of what might have been at PrairieDevCon 2010.&lt;br /&gt;&lt;br /&gt;In the spring of 2010, D'Arcy Lussier (the conference organizer) and I were talking about the conference and he confessed to me that he was trying to cut costs. We brainstormed some ideas and prioritized them using a risk assessment matrix. Just before D'Arcy brought out his MS Project gantt chart, I suggested a new idea - Why don't we make the food ourselves! Knowing my reputation as an accomplished food critic and noted chef, D'Arcy quickly agreed and called the hotel to cancel his lunch orders.&lt;br /&gt;&lt;br /&gt;I took on the responsibility of planning the meal in advance; purchasing and delivering the ingredients from the finest markets in Regina. The morning of the first day of the conference, D'Arcy and I met in one of the unused conference rooms to prepare the meal. We knew that our gourmet Ham &amp;amp; Cheese sandwhiches would be a huge hit.&lt;br /&gt;&lt;br /&gt;Here was our work break down structure (straight out of MS Project)&lt;br /&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;strong&gt;Task Name&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Start&lt;/strong&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Finish&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Setup 8 preparation tables&lt;/td&gt;&lt;td&gt;8:15am &lt;/td&gt;&lt;td&gt;8:30am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Open 100 loaves of bread&lt;/td&gt;&lt;td&gt;8:30am&lt;/td&gt;&lt;td&gt;8:40am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Layout individual bread slices on the tables&lt;/td&gt;&lt;td&gt;8:40am&lt;/td&gt;&lt;td&gt;9:10am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Spread gourmet mayonaise on the even slices of bread&lt;/td&gt;&lt;td&gt;9:10am&lt;/td&gt;&lt;td&gt;9:30am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Spread garlic butter on the odd slices of bread&lt;/td&gt;&lt;td&gt;9:30am&lt;/td&gt;&lt;td&gt;9:50am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Put smoked ham on top of the even slices of bread&lt;/td&gt;&lt;td&gt;9:50am&lt;/td&gt;&lt;td&gt;10:10am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Put Trappist Monk Cheese on top of the even slices of bread&lt;/td&gt;&lt;td&gt;10:10am&lt;/td&gt;&lt;td&gt;10:30am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Put 3 slices of pre-smoked bacon on top of the even slices of bread&lt;/td&gt;&lt;td&gt;10:30am&lt;/td&gt;&lt;td&gt;10:50am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Put Emerald Frizz lettuce on top of the even slices of bread&lt;/td&gt;&lt;td&gt;10:50am&lt;/td&gt;&lt;td&gt;11:10am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Put the odd slices of bread on top of the even slices of bread to create each sandwhich&lt;/td&gt;&lt;td&gt;11:10am&lt;/td&gt;&lt;td&gt;11:30am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Put a toothpick topped with an olive through the middle of each sandwhich&lt;/td&gt;&lt;td&gt;11:30am&lt;/td&gt;&lt;td&gt;11:50am&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Test the sandwhiches&lt;/td&gt;&lt;td&gt;11:50am&lt;/td&gt;&lt;td&gt;12:00pm&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Serve!&lt;/td&gt;&lt;td&gt;12:00pm&lt;/td&gt;&lt;td&gt;1:00pm&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_SOWsoNd4jeU/TTiZaBgPb3I/AAAAAAAABpI/A3Zf4NP-xZE/s1600/Sandwhiches.jpg" imageanchor="1" style="clear: left; cssfloat: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" s5="true" src="http://2.bp.blogspot.com/_SOWsoNd4jeU/TTiZaBgPb3I/AAAAAAAABpI/A3Zf4NP-xZE/s1600/Sandwhiches.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;We proceeded and followed this plan to the tee (our project manager would have been proud!). As it turned out, our estimates were fantastic and we started the testing phase at exactly 11:50am. Both D'Arcy and I eagerly grabbed a sandwhich, took a few pictures to put on twitter and took a huge bite. It was... awful. It turns out that my mayonnaise supplier gave us some really rancid mayo. Each and every sandwhich was ruined.&lt;br /&gt;&lt;br /&gt;Fortunately, when we sheepishly went to report this to the catering staff at the Delta, they kindly informed us that they were pretty sure we would fail and had prepared a wonderful lunch anyways. So, the attendees were spared, and D'Arcy and I graciously thanked the Delta for being such great hosts.&lt;br /&gt;&lt;br /&gt;The lesson? If we wouldn't make lunch that way, why would we create software that way? Instead, shorten the distance between a possible problem and its resolution by frequently delivering working software and&amp;nbsp;testing every day. First-Time-Right for the win.&lt;br /&gt;&lt;br /&gt;Enjoy your lunch! Hope to see you at PrairieDevCon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4082871651775347106?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4082871651775347106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/01/for-lunch-agile-story.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4082871651775347106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4082871651775347106'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/01/for-lunch-agile-story.html' title='For lunch - an agile story'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_SOWsoNd4jeU/TTiZaBgPb3I/AAAAAAAABpI/A3Zf4NP-xZE/s72-c/Sandwhiches.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-1147118135158383227</id><published>2011-01-06T16:53:00.000-06:00</published><updated>2011-01-06T16:53:37.782-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gift card'/><category scheme='http://www.blogger.com/atom/ns#' term='power tools'/><title type='text'>How to wrap a gift card (hint - it involves power tools)</title><content type='html'>&lt;em&gt;Note: &lt;/em&gt;&lt;em&gt;This post has nothing to do with agile, but hopefully it will&amp;nbsp;add some excitement to your future gift card giving experiences.&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;This Christmas I was tasked with buying gifts for three of my nephews. I bought two gift cards from West 49 and another from Chapters. For some of you these may be fine gifts to give and you are happy to check off three more items&amp;nbsp;on your list. However, my goal in giving any gift is to first give them what they want and second to try and surprise and delight them with something unexpected. A gift card is not surprising or particularly delightful.&lt;br /&gt;&lt;br /&gt;So... what to do? For the first gift card, I took a typical approach and wrapped it in ever increasing sizes of boxes with lots of duct tape and topped it off with pretty ribbon and a bow. It was a very delightful looking gift. But, in the end I decided this was a little too typical and unwrapped it while I pondered other ideas.&lt;br /&gt;&lt;br /&gt;It was while wandering through the garage that I received my inspiration - an old eight foot 2x6. Here are the steps&amp;nbsp;that followed.&lt;br /&gt;&lt;br /&gt;1. Using a circular saw, cut a slit about 3 inches deep and&amp;nbsp;6 inches long into the edge of the 2x6. After making the cut,&amp;nbsp;make sure that the gift card will fit inside the slit.&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/_SOWsoNd4jeU/TSY9v303maI/AAAAAAAABoE/sI544Nuq92A/s1600/GiftCard01.jpg" imageanchor="1"&gt;&lt;img border="0" height="185" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TSY9v303maI/AAAAAAAABoE/sI544Nuq92A/s320/GiftCard01.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_SOWsoNd4jeU/TSY9-CSD-SI/AAAAAAAABoM/IIXdPqKJo_8/s1600/GiftCard02.jpg" imageanchor="1"&gt;&lt;img border="0" height="90" src="http://4.bp.blogspot.com/_SOWsoNd4jeU/TSY9-CSD-SI/AAAAAAAABoM/IIXdPqKJo_8/s320/GiftCard02.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;2. Next, decide on a shape to create out of the wood (for this example I used a Christmas bell ornament) and cut the 2x6 into pieces accordingly and nail or screw the pieces together to form your masterpiece. Depending on the size of the gift card you may need to cut an additional slit in a second piece of the 2x6 so that the card will fit properly 'inside' your wooden ornament.&lt;br /&gt;&lt;br /&gt;Before wrapping your ornament you may want to secure a ribbon to the top so that you can hang it up. At the top of the ornament, hammer in a nail half way.&amp;nbsp;Now wrap a small piece of ribbon around the nail and then bend the nail over completely so that it holds the ribbon in place.&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/_SOWsoNd4jeU/TSY-K8sMHVI/AAAAAAAABoU/Q2AmJkjxKBU/s1600/GiftCard03.jpg" imageanchor="1"&gt;&lt;img border="0" height="202" src="http://4.bp.blogspot.com/_SOWsoNd4jeU/TSY-K8sMHVI/AAAAAAAABoU/Q2AmJkjxKBU/s320/GiftCard03.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;3. The finished and fully wrapped product!&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/_SOWsoNd4jeU/TSZAQkTJNNI/AAAAAAAABok/fr5gqF9u7T8/s1600/GiftCard04.jpg" imageanchor="1"&gt;&lt;img border="0" height="249" src="http://4.bp.blogspot.com/_SOWsoNd4jeU/TSZAQkTJNNI/AAAAAAAABok/fr5gqF9u7T8/s320/GiftCard04.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_SOWsoNd4jeU/TSZAWbUtPyI/AAAAAAAABos/XzaX5sBu_ps/s1600/GiftCard05.jpg" imageanchor="1"&gt;&lt;img border="0" height="261" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TSZAWbUtPyI/AAAAAAAABos/XzaX5sBu_ps/s320/GiftCard05.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;4. Now repeat with other shapes as necessary until all your gift cards are wrapped. I created a Christmas bell, a Christmas tree, and a Christmas ball.&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/_SOWsoNd4jeU/TSZAf-rKFuI/AAAAAAAABo0/OqoW1-96bFs/s1600/GiftCard06.jpg" imageanchor="1"&gt;&lt;img border="0" height="132" src="http://2.bp.blogspot.com/_SOWsoNd4jeU/TSZAf-rKFuI/AAAAAAAABo0/OqoW1-96bFs/s320/GiftCard06.jpg" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;The reactions you get may vary, but my nephews used the words 'best' and 'ever' after opening their gift cards. Also, the look on their faces after they unwrapped their homemade&amp;nbsp;'ornaments' and before they realized there was more unwrapping to do was priceless.&lt;br /&gt;&lt;br /&gt;Hopefully I can wrap more gift cards next year. My brother has already promised it will involve acetlyane torches.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-1147118135158383227?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/1147118135158383227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2011/01/how-to-wrap-gift-card-hint-it-involves.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1147118135158383227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/1147118135158383227'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2011/01/how-to-wrap-gift-card-hint-it-involves.html' title='How to wrap a gift card (hint - it involves power tools)'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SOWsoNd4jeU/TSY9v303maI/AAAAAAAABoE/sI544Nuq92A/s72-c/GiftCard01.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-6355734904248699580</id><published>2010-12-09T00:24:00.000-06:00</published><updated>2011-04-05T14:45:37.638-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='process'/><category scheme='http://www.blogger.com/atom/ns#' term='ball point game'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>Perfecting your process</title><content type='html'>&lt;strong&gt;“Eliminating delays between what you do gives you a better return than getting better at what you do.”&lt;/strong&gt; - Alan Shalloway (Dec 2, 2010, twitter).&lt;br /&gt;&lt;br /&gt;I was recently introduced to the &lt;a href="http://dpwhelan.com/blog/uncategorized/learning-scrum-through-the-ball-point-game/"&gt;ball point game&lt;/a&gt; as a way to introduce agile concepts. A colleague of mine had decided to try it out for a larger group so I volunteered one of our teams in order to ‘test drive’ the game and the facilitation of that game.&lt;br /&gt;&lt;br /&gt;The game itself is pretty straightforward. If you want to read about it, check out Declan’s link above or one of the many other sites describing the game. One of the objectives of the game is to show how teams can dramatically improve their process just by stopping, reflecting, and re-planning. &lt;br /&gt;&lt;br /&gt;This particular team improved from a velocity of 28 to 57 in four iterations (see the image)&lt;a href="http://4.bp.blogspot.com/_SOWsoNd4jeU/TQByZ4dThFI/AAAAAAAABnM/0vMxiFIFFjA/s1600/BallPointScores.JPG" imageanchor="1" style="clear: right; cssfloat: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="149" n4="true" src="http://4.bp.blogspot.com/_SOWsoNd4jeU/TQByZ4dThFI/AAAAAAAABnM/0vMxiFIFFjA/s200/BallPointScores.JPG" width="200" /&gt;&lt;/a&gt;. However, if you read about this game from other sources, this kind of improvement is ok, but not great. The team focused their iteration planning efforts on perfecting their style rather than changing their process. They did discuss some alternative processes but ultimately rejected them and decided together that their best course of action was to perfect their current method. &lt;br /&gt;&lt;br /&gt;To make matters worse, as facilitators we were terrible project managers as we told them stories of great improvements by other teams (“I bet you can get to 150, I’ve seen other teams do it”) but all this did was make them frustrated as they continued to try and perfect their process with only small gains. Plus, even though they doubled their efficiency in a short period of time, they were frustrated that they couldn’t go faster and started to slow down at the end of iteration 4. They suggested that if an iteration 5 would have been held, they would only have gone slower as the realization sunk in that they would not be able to achieve 150.&lt;br /&gt;&lt;br /&gt;The exercise up until this point did not achieve what we had hoped for. We had hoped that they would find huge jumps in productivity each iteration and that they would get more and more excited each iteration. Instead, they only achieved modest gains and got more frustrated each iteration. So, what did we learn from this?&lt;br /&gt;&lt;br /&gt;1. As the quote above says, it confirmed that focusing on improving and perfecting your current process is only going to give you modest gains. Practice doesn’t make perfect if your process is flawed. Continually practicing a bad process isn’t going to result in the benefits you are looking for and will likely slow your teams down over time as apathy builds.&amp;nbsp;We need to give teams the lean tools and techniques to help them find their delays. One of the ‘tricks’ to this game is to reduce or eliminate your delays instead of perfecting your throws.&lt;br /&gt;&lt;br /&gt;2. We need to give teams enough time to not only re-plan the next iteration, but to ask them to reflect upon and challenge both their process and their assumed constraints.&lt;br /&gt;&lt;br /&gt;3. Teams who are pushed to achieve incredible productivity gains by well meaning leaders under the guise of empowerment or encouragement may see short term gains, but in the long term those teams will likely be negatively affected - especially if the teams haven't been given the tools and techniques to achieve those gains.&lt;br /&gt;&lt;br /&gt;The team we tried this with did not at first come away with tools that they could use to improve their current project. In fact, we may have scarred them forever ;) We are trying this game again in a few weeks with a different group and we’ve made some changes with the hope of enabling the teams to see the ‘ahah’ moment before the end of the game. I’ll keep you posted.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-6355734904248699580?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/6355734904248699580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/12/perfecting-your-process.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6355734904248699580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6355734904248699580'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/12/perfecting-your-process.html' title='Perfecting your process'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_SOWsoNd4jeU/TQByZ4dThFI/AAAAAAAABnM/0vMxiFIFFjA/s72-c/BallPointScores.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2629275065460441167</id><published>2010-11-24T00:09:00.000-06:00</published><updated>2010-11-24T00:09:06.104-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile vancouver'/><category scheme='http://www.blogger.com/atom/ns#' term='retrospectives'/><title type='text'>Agile Retrospectives - a Rising Patton Fusion</title><content type='html'>The last session of Agile Vancouver 2010 was a unique opportunity to watch Linda Rising conduct a conference retrospective with the Agile Vancouver organizers. It was interesting to watch how she facilitated and I wrote down some of her techniques so that I could try them out. The following day during the tutorials Jeff Patton led us through a mini retrospective with his own interesting twists based on his story mapping experience. What follows is the fusion of their ideas.&lt;br /&gt;&lt;br /&gt;Note: This retrospective works nicely using index cards that can easily be sorted and grouped around a common table. If you are using walls and stickies, you can adapt where required.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 1 - Set the tone:&lt;/strong&gt;&lt;br /&gt;Recite Norm Kerth's Prime Directive (Linda was able to recite this by memory): &lt;br /&gt;&lt;br /&gt;"Regardless of what we discover, we understand and truly believe that everyone did the best job they could,&amp;nbsp;given what they knew at the time, their skills and abilities, the resources available, and the situation at hand." &lt;br /&gt;&lt;br /&gt;After reciting, ask each team member one by one if they agree to uphold this statement during the meeting and to avoid blame. A simple verbal "yes" indicates agreement. The verbal agreement is a simple influencing strategy or pattern that helps set the tone for the retrospective.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 2 - Framing the Retrospective:&lt;/strong&gt;&lt;br /&gt;The facilitator tells a story of a co-worker meeting you in the hallway of your company. The co-worker asks: "I know you were on project [X], how was that?". Each person responds with "It was great because...". Instead of speaking the answers out loud, give each person 3 index cards and have them write their answers down in silence. This allows input from each person regardless of personality type and keeps your team member's answers from influencing your own.&lt;br /&gt;&lt;br /&gt;When each person has filled out their 3 cards, they read each one out loud and place them on the table. Once all cards are on the table, ask the group to silently group the answers together. Cards that are similar should be close to one another and cards that are different should be farther apart. According to Patton, the simple reason for doing this in silence is because it allows the work to happen quickly and without much discussion. In our exercise, we found this to be true.&lt;br /&gt;&lt;br /&gt;Now that the good things are grouped together, take a different coloured index card and have the group summarize each grouping with a new card. For example, summarizing items like "team worked well together", "Bob collaborated to help me with my task", "Team rallied to complete the stories together" might be summarized with a card called "Great team work".&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 3 - Do Differently:&lt;/strong&gt;&lt;br /&gt;Now that we have acknowledged the good things about the last period, remind the team that it is only a perfect project if they would do that project or iteration again in exactly the same way. In reality there is always something we would do differently. Ask the team to silently fill out 3 more index cards with what they would do differently. They may not write cards that associate blame, describe what wrong, or try to problem solve. In this part of the retrospective we are only identifying what we would do differently.&lt;br /&gt;&lt;br /&gt;Once everyone has completed their cards, we again read them aloud as we place them on the table, group the cards in silence, and summarize with a different coloured index card. As the cards are read or summarized, the facilitator may need to remind the team to refrain from problem solving or directing blame.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 4 - Voting:&lt;/strong&gt;&lt;br /&gt;The next step is for the team to agree on which items on the "Do Differently" list are the most important. To keep the voting impartial and independent, have each team member write their top 3 items on an index card and hand the cards to the facilitator. The facilitator then tallies the votes and records the totals on the summarized cards. An alternative is to use dot voting, but I've found that dot voting can be 'gamed' too easily and that initial dots influence those who vote later (group think).&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 5 - Experiments:&lt;/strong&gt;&lt;br /&gt;Using the top 1 or 2 voted items, ask the group to split into groups to discuss them - 1 group per item. Instruct the groups to discuss small experiments or tweaks that the team could try in the next iteration. If you practice frequent retrospectives, this discussion does not need to be about problem solving or even root cause analysis. The goal is to quickly agree on small experiments to try to resolve the issue you are discussing. For those dedicated to root cause analysis this may be a problem, but give it a try and do what works for your team while avoiding blame or delving deep into problem solving. This part should be time boxed to 10 or 15 minutes maximum.&lt;br /&gt;&lt;br /&gt;After deciding on the experiments, have one person from each group present the idea to the group. This idea needs to be included in the backlog for the iteration and the team (not an individual) commits to completing the experiment during the iteration and examining the results.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Step 0 - Review Experiments:&lt;/strong&gt;&lt;br /&gt;At the beginning of the next retrospective, add a new step at the beginning to discuss your experiments to see how effective they were and use this information as input into future experiments.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Other notes:&lt;/strong&gt;&lt;br /&gt;If you are doing a retrospective for a larger period of time, then consider starting the retrospective by building a timeline of events. For more info, check out this blog: &lt;a href="http://www.thekua.com/rant/2006/03/a-retrospective-timeline/"&gt;http://www.thekua.com/rant/2006/03/a-retrospective-timeline/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Thanks Linda and Jeff for sharing your methods and ideas.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2629275065460441167?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2629275065460441167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/11/agile-retrospectives-rising-patton.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2629275065460441167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2629275065460441167'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/11/agile-retrospectives-rising-patton.html' title='Agile Retrospectives - a Rising Patton Fusion'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7367092016689739669</id><published>2010-11-05T14:59:00.000-05:00</published><updated>2010-11-05T14:59:29.561-05: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='vancouver'/><title type='text'>What is your top 1 agile tip? @AgileVancouver</title><content type='html'>The agile Vancouver conference wrapped up yesterday - a great Canadian conference if you are wondering where to spend your training budget in 2011. On Wednesday morning we held an open space similar to the agile panel at SDEC. We opened the floor for questions, ranked them, and then spent 10 minutes on each topic. Since the open space was largely filled with speakers and experienced agilists, I asked this question: "What is your top 1 agile tip". Here are our responses with twitter usernames where applicable:&lt;br /&gt;&lt;br /&gt;@lucisferre - "Working towards continuous delivery"&lt;br /&gt;@dbelcham - "Be agile w/ agile practices. Adopt what works"&lt;br /&gt;@mikeeedwards - "One step at a time. Find small wins"&lt;br /&gt;unknown - "Adopt pair programming"&lt;br /&gt;Angel from Spain - "Make the change come from them - get them to see the problem and come up with the improvement"&lt;br /&gt;@Ang3lFir3 - "Can't do it without the right people. One bad egg spoils the whole bunch. Get the right people on the bus"&lt;br /&gt;@dwhelan - "Find the bottlneck in your value flow and cut it in half"&lt;br /&gt;@srogalsky - "Uncover better ways. Never stop learning. You are never finished being agile"&lt;br /&gt;@mfeathers - "Don't forget about the code or it will bury you. It will $%#ing bury you"&lt;br /&gt;@robertreppel - "Recognize your knowledge gaps and bring in help if you need it"&lt;br /&gt;@jediwhale - "Pull the caps lock key off your keyboard"&lt;br /&gt;&lt;br /&gt;Next time I'm in a panel, the question will be: "I love agile because..." Feel free to comment with your answers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-7367092016689739669?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7367092016689739669/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/11/what-is-your-top-1-agile-tip.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7367092016689739669'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7367092016689739669'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/11/what-is-your-top-1-agile-tip.html' title='What is your top 1 agile tip? @AgileVancouver'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-431841772262781533</id><published>2010-11-05T11:25:00.000-05:00</published><updated>2010-11-05T11:49:01.816-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>Why is collective team ownership and commitment better than individual ownership and commitment?</title><content type='html'>Recently I've been&amp;nbsp;pondering collective vs. individual ownership and commitment, the theories behind it, and how to respond to someone who many not have considered why collective ownership and commitment is important. If you are involved on a team that is assigning responsibility to individuals, you could respond in several ways. My own impulse&amp;nbsp;may be&amp;nbsp;to respond either with frustration or to smile, nod and wink to my more agile-aligned team members. However, I have never found these types of responses to be very productive ;). You could also respond by informing the team that the agile community is full of luminaries who tell us that individual responsibility is not compatible with good results over the long term. However, as you can imagine, it also&amp;nbsp;won't be an effective strategy just to tell your team that Johanna, Brian, Bob, Esther, James, Jeff, Mary, (etc) and&amp;nbsp;you don't think this is an effective way to manage the work. Instead, I suggest that you a attempt a face to face discussion on the pros and cons of assigning the work to the team vs. the individual.&amp;nbsp;Here are a few things you might use in your discussion.&lt;br /&gt;&lt;br /&gt;Team ownership reduces the risk of having or creating one 'smart person in the room' (i.e. bottleneck) who does all the work. Even though Jim may be the best person to complete the job, if Tim and Jane work on it together with Jim it will take a little longer initially to complete the task, but those gains will be realized over the long term as the whole team becomes better at accomplishing each task and filling each role. While a cross functional team isn't always easily or immediately created, eventually that team can function effectively to complete any task even if one or more team members are missing.&lt;br /&gt;&lt;br /&gt;Collective ownership should result in less items that are in progress. Work in progress tasks have zero realized value to the organization's goals. If we commit to and own items as a team, we should work hard to get them done one at a time so that we can realize the value of those items sooner. Rather than 5 people completing 5 tasks individually that are finished together at the end of the month, task 1 is finished and creating value at the end of week 1, task 2 at the end of week 2, etc. &lt;br /&gt;&lt;br /&gt;Quality has a better chance of being built in from the beginning when a team owns and takes responsibility of a task together. As the team works together on a backlog item, we will collectively discover our 'quality blind spots' earlier in the process and adjust accordingly. When I work on an item myself and then present it to the team for review after I'm finished, there will be more re-work required to incorporate the ideas of my team members in order to mark the item as done. It is critical to get feedback early and often in order to 'fail fast' and improve quality. Teamwork is an effective way to accomplish this.&lt;br /&gt;&lt;br /&gt;Finally, collective team ownership promotes... teamwork. Individual accountability and responsibility tend to generate selfish behaviour (I'm working on my task that I'll be measured on so I can't help you with yours). Team accountability and responsibility builds a stronger team because if any one task is sub par it reflects on the whole team and not on an individual.&lt;br /&gt;&lt;br /&gt;Of course, this doesn't work very well if we don't sit together&amp;nbsp;- which is why we do.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-431841772262781533?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/431841772262781533/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/11/why-is-collective-team-ownership-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/431841772262781533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/431841772262781533'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/11/why-is-collective-team-ownership-and.html' title='Why is collective team ownership and commitment better than individual ownership and commitment?'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-6690660657098014</id><published>2010-10-25T22:16:00.000-05:00</published><updated>2010-10-25T22:16:37.186-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='podcasts'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><title type='text'>My top 12 agile podcast episodes</title><content type='html'>When I mentioned at SDEC10 that much of what I know about agile I learned from podcasts, several people expressed interest in my favourites.&amp;nbsp; Here are my top 12 podcast episodes&amp;nbsp;in random order:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://www.hanselminutes.com/default.aspx?showID=137"&gt;Hanselminutes 119&lt;/a&gt;. What is Done?&amp;nbsp;A conversation with Scrum co-creator Ken Schwaber.&amp;nbsp;An excellent conversation that&amp;nbsp;answered some of my initial questions about Agile like - how do logging, security and other infrastructure tasks fit in the back log, and of course - what is done?&lt;br /&gt;&lt;br /&gt;2. &lt;a href="http://agiletoolkit.libsyn.com/agile06_alistair_cockburn_crystal_methodlogies_and_agility"&gt;AgileToolkit&lt;/a&gt; - Allistair Cockburn interview at Agile2006. Allistair&amp;nbsp;talks about his evolution as a Methodologist from a hardware guy, the Crystal family of agile methodologies, his writing and much more.&amp;nbsp;&amp;nbsp; Crystal recognizes that one agile methodology cannot be used in all companies and tries to identify the core principles and practices that are important for all agile projects.&lt;br /&gt;&lt;br /&gt;3. &lt;a href="http://www.hanselminutes.com/default.aspx?showID=163"&gt;Hanselminutes 145&lt;/a&gt;. An overview of the SOLID principles with Robert C. Martin ("Uncle Bob").&amp;nbsp; Excellent overview with examples.&lt;br /&gt;&lt;br /&gt;4. &lt;a href="http://www.netobjectives.com/blogs/lean-and-what-do-we-do-next-part-1"&gt;LeanAgileTalk 20070118&lt;/a&gt;. Part 1 of a great conversation with Alan Shalloway&amp;nbsp;on how to apply lean principles to agile development.&amp;nbsp; A good start on how to implement practices - the 'how'.&amp;nbsp; Some excellent sound bites in here.&lt;br /&gt;&lt;br /&gt;5. &lt;a href="http://agiletoolkit.libsyn.com/bob_martin_agile_2005_conference"&gt;AgileToolkit&lt;/a&gt; - Uncle Bob interview at Agile2005. A brief discussion with Bob Martin on the essential principles of Agile&lt;br /&gt;&lt;br /&gt;6. &lt;a href="http://www.hanselminutes.com/default.aspx?showID=32"&gt;Hanselminutes 23&lt;/a&gt;. A short introduction to scrum.&lt;br /&gt;&lt;br /&gt;7. &lt;a href="http://www.hanselminutes.com/default.aspx?showID=42"&gt;Hanselminutes 31&lt;/a&gt;.&amp;nbsp; A good introduction on Test Driven Development and the benefits.&amp;nbsp; Includes discussion of the pros/cons.&lt;br /&gt;&lt;br /&gt;8. &lt;a href="http://agiletoolkit.libsyn.com/transitioning_to_agility_sanjiv_augustine_thad_sheer_bob_payne_and_cliff_berg"&gt;AgileToolkit&lt;/a&gt; - APLN Panel discussion. Long (2 hours), but good.&amp;nbsp; Here are some of the highlights:&lt;br /&gt;&lt;div&gt;&lt;div&gt;- Worst agile transition failures?&lt;/div&gt;&lt;div&gt;- What is required for transition?&amp;nbsp;Leadership, don't do partial agile, must integrate testers on the team, need to form teams that work effectively together&lt;/div&gt;&lt;div&gt;- Self organizing teams - is this possible?&amp;nbsp;The original XP team was full of architects, but our teams may not be&amp;nbsp;- how can we do this?&amp;nbsp;The original backlash against architecture was that architects were responsible to standards, not to the business problem.&amp;nbsp;Also - it is important to move our experts out of the corner office and off the pedestal and on to the teams as active members producing code.&lt;/div&gt;&lt;div&gt;- Level of up front architecture required?&amp;nbsp;Depends on problem/project.&amp;nbsp;With a new domain, or a junior team, more architecture guidance&amp;nbsp;is required.&amp;nbsp;With a known domain and an experienced team, less architecture guidance&amp;nbsp;is required.&amp;nbsp; &lt;/div&gt;&lt;div&gt;- Is requirements a dirty word?&amp;nbsp;No - signoff is the dirty word.&amp;nbsp;Requirements are good - but waiting months before implementing is not, not accepting change is not.&amp;nbsp;Don't penalize people from finding errors, omissions, changes at any step.&lt;/div&gt;&lt;div&gt;- How to do fixed price projects?&amp;nbsp;One suggestion - share the risk (i.e. cost)&amp;nbsp;for the first 6-8 weeks (2 or 3 iterations) to measure your velocity and gain trust.&amp;nbsp;Then if client is happy, you have enough info to fix the price, and you get your "risk" back.&lt;/div&gt;&lt;div&gt;- Why is fixed bad?&amp;nbsp;You give them what they asked for, rather than what they need.&amp;nbsp; Never used + rarely used features = 64% of the code (Standish report)&lt;br /&gt;&lt;br /&gt;9. &lt;a href="http://agiletoolkit.libsyn.com/index.php?post_id=217936#"&gt;AgileToolkit&lt;/a&gt; - Uncle Bob explains the agile manifesto.&amp;nbsp;Robert "Uncle Bob" Martin answers the&lt;br /&gt;question of "What is Agile?" He goes back to the start, to the Snowbird meeting, the formation of the Agile Alliance and the drafting of the Agile Manifesto. He also looks at the core principles and key practices of Agile software development.&lt;br /&gt;&lt;br /&gt;10. &lt;a href="http://agiletoolkit.libsyn.com/agile06_tom_and_mary_poppendieck"&gt;Agile Toolkit&lt;/a&gt; - Poppendiecks at Agile 2006. Tom and Mary&amp;nbsp;discuss several topics including:&lt;br /&gt;&lt;div&gt;&lt;div&gt;- optimize the whole, not the pieces&lt;/div&gt;&lt;div&gt;- don't neglect one of the pillars of lean: respect people&lt;/div&gt;&lt;div&gt;- queueing theory.&amp;nbsp; Examples a&amp;nbsp;defect list is a queue that should not exist.&amp;nbsp;&amp;nbsp;We should be mistake free after each step.&amp;nbsp; Don't build on top of bad software.&amp;nbsp; Also, this helps eliminate interim artifacts like 'test strategy document'.&lt;/div&gt;&lt;div&gt;-&amp;nbsp;testing phase - this is testing too late&lt;/div&gt;&lt;div&gt;- relating lean to cooking by a master chef&lt;br /&gt;- describing how clothing store Zara implemented lean (very interesting)&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;11. &lt;a href="http://itc.conversationsnetwork.org/shows/detail350.html"&gt;IT Conversations&lt;/a&gt; - Ken Schwaber. Ken talks through many of reasons why agile SW development is such a necessary change in the industry.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;12. &lt;a href="http://www.hanselminutes.com/default.aspx?showID=187"&gt;Hanselminutes 169&lt;/a&gt; - TDD with Roy Osherove. Roy Osherove educates Scott on best practices in Unit Testing techniques and the Art of Unit Testing.&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;Hope you enjoy them.&amp;nbsp;Let me know if you have other favourites - I'd love to listen to them.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-6690660657098014?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/6690660657098014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/10/my-top-12-agile-podcast-episodes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6690660657098014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/6690660657098014'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/10/my-top-12-agile-podcast-episodes.html' title='My top 12 agile podcast episodes'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2816133648996726119</id><published>2010-09-18T07:03:00.000-05:00</published><updated>2010-09-18T07:05:19.911-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ATDD'/><category scheme='http://www.blogger.com/atom/ns#' term='Fitnesse'/><title type='text'>FitNesse and today's date with .net</title><content type='html'>I have an acceptance test that says I need to validate the age of majority in each of the different states and provinces.&amp;nbsp; Here is a simple example:&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;Given Mary who is born January 5, 1995 and lives in Manitoba&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;When she asks if she is the age of majority&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;Then return no&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The test above is faily simple and I could write it like this in the wiki as a Column Fixture&amp;nbsp;(using the fitSharp.dll to test C# code)&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;!|Check Age of Majority|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|Province State|Birth Date|Am I Underage?|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|MB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |5-Jan-1995|Yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;The problem of course is that this test will start failing on January 5, 2013 when Mary turns 18.&amp;nbsp; Also, it does not&amp;nbsp;perform the boundary testing that I would like it to do in order to test someone who is 18 today vs. someone who will turn 18 tomorrow.&amp;nbsp; In order to improve this test, I investigated some other date functions in FitNesse and a plugin by &lt;a href="http://blog.james-carr.org/2006/11/11/fitnesse-date-plugin/"&gt;James Carr&lt;/a&gt; that allowed you to add days to the current date.&amp;nbsp; These work ok for smaller calculations like "Given document ABC, When it is 30 days old, Then archive it".&amp;nbsp; However, this would be a little more cumbersome for&amp;nbsp;birth dates when adding 18 years (esp. with leap year calculations)&amp;nbsp;and the !today function in FitNesse does not work in ColumnFixture wiki tables.&amp;nbsp; So, I found a simple way to meet my requirement.&lt;br /&gt;&lt;br /&gt;First, I wrote a class in C# that accepts two parameters to Add or Subtract Years and Days to the current date.&amp;nbsp; The class uses C#'s simple DateTime addition to add or subtract the years/days from today and returns the result.&amp;nbsp; You could easily extend this to add months or add other functionality required in your tests:&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: blue; font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;namespace&lt;/span&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt; FitNesseTutorial.Tests&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;{&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;GetDateBasedOnToday&lt;/span&gt; : &lt;span style="color: #2b91af;"&gt;ColumnFixture&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; AddYears;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: blue;"&gt;int&lt;/span&gt; AddDays;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;public&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DateTime&lt;/span&gt; ResultingDate()&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue;"&gt;return&lt;/span&gt; &lt;span style="color: #2b91af;"&gt;DateTime&lt;/span&gt;.Today.AddYears(AddYears).AddDays(AddDays);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="font-family: 'Courier New'; font-size: 10pt; mso-ansi-language: EN-US;"&gt;}&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;Then in FitNesse at the top of my script for this story I call GetDateBasedOnToday and store the resulting values in FitNesse variables.&amp;nbsp; Finally,&amp;nbsp; I use the variable names through my script to reference the underage and of age birth dates.&amp;nbsp; Here is an example:&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;i&gt;&lt;span style="font-family: 'Arial','sans-serif'; font-size: 10pt;"&gt;The FitNesse script:&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;''Get underage and of age dates for 18 and 19 year olds''&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;!|Get Date Based On Today&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|Add Years|Add Days|Resulting Date?|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|-18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;gt;&amp;gt;UNDERAGE_18&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|-19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;gt;&amp;gt;UNDERAGE_19&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|-18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;gt;&amp;gt;OFAGE_18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|-19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;gt;&amp;gt;OFAGE_19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;!|Check Age of Majority|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|Province State|Birth Date&amp;nbsp;&amp;nbsp; |Am I Underage?|&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|MB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;lt;&amp;lt;OFAGE_18&amp;nbsp;&amp;nbsp;&amp;nbsp;|Yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|MB&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;lt;&amp;lt;UNDERAGE_18|No&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|BC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;lt;&amp;lt;OFAGE_19&amp;nbsp;&amp;nbsp;&amp;nbsp;|Yes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin: 0cm 0cm 0pt;"&gt;&lt;span lang="EN-US" style="color: #1f497d; mso-ansi-language: EN-US;"&gt;&lt;span style="font-family: Calibri;"&gt;|BC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;lt;&amp;lt;UNDERAGE_19|No&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;In FitNesse, the final result including the acceptance criteria above looks like this:&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/_SOWsoNd4jeU/TJSp7mJw6XI/AAAAAAAABmY/W2jUEGKBK-8/s1600/FitNesseDateResults.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="330" qx="true" src="http://3.bp.blogspot.com/_SOWsoNd4jeU/TJSp7mJw6XI/AAAAAAAABmY/W2jUEGKBK-8/s400/FitNesseDateResults.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;(Note: The example above should probably be written as a unit test because it is fairly straightforward, but it simply illustrates how to use the date logic that I'm using as part of larger acceptance tests.)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2816133648996726119?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2816133648996726119/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/09/fitnesse-and-todays-date-with-net.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2816133648996726119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2816133648996726119'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/09/fitnesse-and-todays-date-with-net.html' title='FitNesse and today&apos;s date with .net'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_SOWsoNd4jeU/TJSp7mJw6XI/AAAAAAAABmY/W2jUEGKBK-8/s72-c/FitNesseDateResults.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-489816972188881657</id><published>2010-08-15T11:44:00.000-05:00</published><updated>2010-09-04T09:46:51.512-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><category scheme='http://www.blogger.com/atom/ns#' term='readiness'/><title type='text'>Agile readiness assessments at Agile2010</title><content type='html'>I've posted the images from the session "Look before you leap - Agile readiness assessments done right" at Agile2010.&amp;nbsp; The images are here &lt;a href="http://tinyurl.com/26bwlzw"&gt;http://tinyurl.com/26bwlzw&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Some of the images are blurry in my browser (IE), but if you 'Save As' to your computer then you get more detail (not sure why).&amp;nbsp; If there are any images you need more detail on, let me know - I still have all the originals.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-489816972188881657?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/489816972188881657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/agile-readiness-assessments-at.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/489816972188881657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/489816972188881657'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/agile-readiness-assessments-at.html' title='Agile readiness assessments at Agile2010'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4509170956693512124</id><published>2010-08-14T11:48:00.000-05:00</published><updated>2010-09-04T09:46:35.690-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><title type='text'>Agile2010 - My Conference Summary</title><content type='html'>My user stories for the conference were:&lt;br /&gt;- Learn more about coaching and agile assessments (done)&lt;br /&gt;- Get ideas for promoting and increasing agile adoption (done)&lt;br /&gt;- Find better ways to use FitNesse and Selenium (done)&lt;br /&gt;- Acquire some new tools for expressing user needs (done)&lt;br /&gt;- Meet many of the people I’ve been following over the years (done)&lt;br /&gt;- Meet some of the AA-FTT folks (done)&lt;br /&gt;&lt;br /&gt;In addition, I encountered a passionate community that is willing to share their time, skills and ideas with anyone who asks. In addition, I encountered a troubled group of leaders that is legitimately concerned about the lack of technical content at the conference. In addition, I encountered leaders advocating for agile in all its flavours instead of promoting any specific one (hurray!). In addition, I encountered people passionate about taking what they have learned in agile and using that to improve communities outside of the business world. In addition, I encountered a few technical folks who undervalue mastery of the ‘soft’ skills over the technical skills. In addition, I encountered new friends that I hope to see again next year. In addition, I encountered a dedicated and friendly volunteer staff that helped make the conference run smoothly. In addition, I encountered a community willing to volunteer their time and money towards a cause (&lt;a href="http://www.manoamano.org/"&gt;mano-a-mano&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Finally, I encountered a growing and dedicated community that has a lot of success stories to share, some challenges in the road ahead, and hopefully a commitment to continue the fight together.&lt;br /&gt;&lt;br /&gt;Thanks all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4509170956693512124?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4509170956693512124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/agile2010-my-conference-summary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4509170956693512124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4509170956693512124'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/agile2010-my-conference-summary.html' title='Agile2010 - My Conference Summary'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2014607433286305773</id><published>2010-08-14T11:40:00.000-05:00</published><updated>2010-09-04T09:46:22.945-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><title type='text'>Day 5 at Agile2010</title><content type='html'>The final day of the conference contained three general sessions.&amp;nbsp; I found a few people who skipped out on these sessions - too bad for them as the sessions were a great wrap up for the entire week.&lt;br /&gt;&lt;br /&gt;Dave West talked about&lt;a href="http://www.ca.com/Files/IndustryAnalystReports/forrester_prod_dev_hot_new_trend_242756.pdf"&gt; Product-Centric Development &lt;/a&gt;and the move away from the separation of business and IT (yes please!).&amp;nbsp; He asked us to start measuring ourselves and our teams by how much value we deliver and not by on-time, on-budget, # of defects, # of stories, lines of code, etc. We can’t make our teams act as part of the business unless we change our measurements.&lt;br /&gt;&lt;br /&gt;Ron Jeffries and Chet Hendrickson provided both comic relief and poignant commentary.&amp;nbsp; I think Chet's comment sums up their talk: "there’s lots of ideas out there and we need to look at every damn one of them”.&lt;br /&gt;&lt;br /&gt;Finally, Mike Cohn's talk was a great ending to the conference as he challenged us with some practical ideas of how to spread what we’ve learned using the &lt;b&gt;ADAPT&lt;/b&gt; model.&amp;nbsp;&amp;nbsp;Create &lt;b&gt;Awareness&lt;/b&gt; of the problem by communicating using metrics and stories. Focus on one or two reasons to change.&amp;nbsp;Increase the &lt;b&gt;Desire&lt;/b&gt; to change by communicating that there is a better way. Get the team to take agile for a test drive and focus on addressing any fears.&amp;nbsp;Develop the &lt;b&gt;Ability&lt;/b&gt; to work in an agile manner by providing coaching and training.&amp;nbsp;&lt;b&gt;Promote&lt;/b&gt; agile by publicizing success stories or holding agile safaris where people can drop in to agile teams for a short time to see how it works.&amp;nbsp;&lt;b&gt;Transfer&lt;/b&gt; agile to all non development teams, departments, divisions, etc. Align promotions, raises, HR, and Marketing. Finally, don’t expect an agile transition to happen all at once. Create an improvement backlog and improvement communities and work on a few stories that are important to your community before tackling the next ones.&lt;br /&gt;&lt;br /&gt;A final call to action from Mike: “Now we’ve upped our skills, up yours!”&amp;nbsp; Well said.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2014607433286305773?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2014607433286305773/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-5-at-agile2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2014607433286305773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2014607433286305773'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-5-at-agile2010.html' title='Day 5 at Agile2010'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4405206639894468182</id><published>2010-08-14T11:38:00.000-05:00</published><updated>2010-09-04T09:45:57.764-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><category scheme='http://www.blogger.com/atom/ns#' term='readiness'/><title type='text'>Day 4 at Agile2010</title><content type='html'>Two of today's sessions were more about aquiring ammunition and ideas for my own future talks than about aquiring new skills.&amp;nbsp; In confessions of a Flow Junkie, Dave Rooney introduced me to the &lt;a href="http://www.ktaylor.name/2007/10/the-coin-flip-g.html"&gt;coin flipping game&lt;/a&gt; which contrasts the flow in Agile vs Waterfall.&amp;nbsp; In the final session of the day, James Shore and Arlo Belshee&amp;nbsp;made us laugh and cry with their Bloody Stupid Johnson routine.&amp;nbsp; The highlight of the session is the soon to be framed certificate that I attained as an "Agile Software Specialist" or A.S.S.&lt;br /&gt;&lt;br /&gt;The session with Gerry Kirk and Michael Sahota was designed to create a knowledge base of methods and tools&amp;nbsp;for doing agile readiness assessments.&amp;nbsp;It was great to see ideas from other coaches and I look forward to the compiled results.&lt;br /&gt;&lt;br /&gt;The conference party at Epcot was also a lot of fun and I enjoyed some non-agile time with my agile friends.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4405206639894468182?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4405206639894468182/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-4-at-agile2010.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4405206639894468182'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4405206639894468182'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-4-at-agile2010.html' title='Day 4 at Agile2010'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4809003458675672085</id><published>2010-08-12T00:33:00.000-05:00</published><updated>2010-09-04T09:45:32.367-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='discovery'/><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><category scheme='http://www.blogger.com/atom/ns#' term='wireframing'/><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>Day 3 at Agile2010</title><content type='html'>Here is a summary of another satisfying day:&lt;br /&gt;&lt;br /&gt;I was introduced to some powerful team wireframing techniques that could be incorporated into the discovery phase of a project as another tool to aid in creating and defining the backlog.&amp;nbsp; I wonder what my UX friends would think of doing UX as a whole team.&amp;nbsp; It definitely fits the agile model where every team member provides input and takes responsibility for the whole process, not just their specialty.&lt;br /&gt;&lt;br /&gt;The 11am session reminded me of the Trident Splash commercials - I wasn't prepared for the amount of information I received from Jeff Patton and I'll have to review my notes and his slides several times.&amp;nbsp; What I do know is that there was a lot of valuable information on how to do agile discovery.&amp;nbsp; The techniques were designed to help you get to a definition of ready - ready to start sprinting.&amp;nbsp; Some quotes I wrote down: "Our job is to minimize output, and maximize outcome"; "Most agile practives emphasize delivery, and not much discovery", and as an example of that second quote: "velocity is a measurement of output, not outcome".&amp;nbsp; A good reminder to focus on why the project was started in the first place.&amp;nbsp; &lt;i&gt;Update 8/31: The slides are now available &lt;/i&gt;&lt;a href="http://www.agileproductdesign.com/downloads/beyond_sprint_zero.pdf"&gt;&lt;i&gt;here&lt;/i&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The first session after lunch I joined the presenter up front as a timer object.&amp;nbsp; Brian Marick was explaining OO programming practices to non-programmers&amp;nbsp;by using volunteers who acted as objects.&amp;nbsp; He explained SRP, encapsulation, MVC, etc.&amp;nbsp; You can see a partial video of a previous talk he did on the topic at &lt;a href="http://vimeo.com/13506935"&gt;http://vimeo.com/13506935&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Not shockingly, in the last session I learned I was using Selenium in the most basic (and mostly abhorred) way.&amp;nbsp; I was able to spend some time with Patrick Wilson-Welsh after the session in a mini open jam to go through some coding examples of how to do it the 'right' way.&amp;nbsp; Good thing I haven't given my Selenium SDEC presentation yet.&amp;nbsp; Thanks Patrick for spending the extra time - you are one of many at the conference that have shared your time and energy with me and others.&lt;br /&gt;&lt;br /&gt;The day ended when I didn't win an iPad, but I did thoroughly enjoy playing beach volleyball in the dark&amp;nbsp;until almost midnight&amp;nbsp;with occasional swim breaks.&amp;nbsp; Thanks to everyone who participated - it was a great&amp;nbsp;way to give my brain a rest.&lt;br /&gt;&lt;br /&gt;We're at epcot tomorrow night until midnight so I don't think I'll be posting my Day 4 notes&amp;nbsp;until Friday sometime.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4809003458675672085?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4809003458675672085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-3-at-agile2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4809003458675672085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4809003458675672085'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-3-at-agile2010.html' title='Day 3 at Agile2010'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7616366368618089770</id><published>2010-08-10T23:18:00.000-05:00</published><updated>2010-09-04T09:44:00.582-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='coaching'/><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><category scheme='http://www.blogger.com/atom/ns#' term='innovationgames'/><title type='text'>Day 2 at Agile2010</title><content type='html'>Today was another satisfying day at the conference in 'sunny' (I did see the sun this morning) Orlando. I started the day off with 11 other agilists going for a morning run on the paths and walkways around the Disney complex followed by a great breakfast. The catering at the Dolphin has been fantastic so far.&lt;br /&gt;&lt;br /&gt;The first of two notable sessions that I attended was called "Effective Questions for an Agile Coach." The two presenters Arto and Sami from Reaktor were great and cleverly crafted the table discussions so that we would fall into common coaching traps and then helped demonstrate better alternatives. Here is a brief overview of some of the ideas from the presentation:&lt;br /&gt;- By giving advice you are creating motivation from the outside. You need to ask effective questions to let them figure it out for themselves&lt;br /&gt;- The four acceptance tests for good coaching questions are a) leads to exploration, b) aim at descriptive answers, c) avoids judgement and d) avoids unproductive states of mind&lt;br /&gt;- Avoid the question 'why'. Try converting the question into a What, When, How Much or How many. For example, instead of Why, ask What benefit did you expect to receive?&lt;br /&gt;- When trying to help the team solve a problem, follow the GROW model. Grow: first, find their goal. Reality: Second, ask questions to help them describe the current state. Options: Third, ask questions to find at least 3 options. Simply ask how would you solve this. What: Finally, ask questions to find agreement on a path forward.&lt;br /&gt;&lt;br /&gt;Some other random thoughts:&lt;br /&gt;- I attended an www.innovationgames.com seminar. After playing The Product Tree game and Scream, I want to explore how to introduce these games in my own projects.&lt;br /&gt;- Dave Thomas was funny and poignant as the keynote speaker although I did wonder if his talk was targeted more at those not at the conference than those of us who have already 'taken the pill'. They videotaped his talk and I suggest looking for it in the next few weeks.&lt;br /&gt;- I took some advice from other conference veterans and walked out of a session that was covering topics I was already familiar with. As a result, I had some great conversations about retrospectives and the intersection of agile and church.&lt;br /&gt;- The 'soft skill' sessions at this conference have been great, but I wonder if there is room for more advanced developer topics. &lt;br /&gt;- Played some beach volleyball at the end of the day with 2 other Canadians and a Swede. Are there any Americans at this conference?&lt;br /&gt;&lt;br /&gt;More tomorrow...&amp;nbsp; looking forward to the open jam on ATDD/BDD wording.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-7616366368618089770?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7616366368618089770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-2-at-agile2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7616366368618089770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7616366368618089770'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/day-2-at-agile2010.html' title='Day 2 at Agile2010'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2879381658200969102</id><published>2010-08-09T23:01:00.000-05:00</published><updated>2011-04-05T14:44:47.302-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile2010'/><category scheme='http://www.blogger.com/atom/ns#' term='adoption'/><category scheme='http://www.blogger.com/atom/ns#' term='automated acceptance tests'/><title type='text'>Some thoughts from day 1 of Agile2010</title><content type='html'>I started the day with Mary Poppendieck's talk "&lt;a href="http://www.crisp.se/deeplean2010/MaryPoppendieck-MakingChangeHappen.pdf"&gt;Leader's Workshop: Making Change Happen and Making it Stick&lt;/a&gt;" which was based on the following book: Switch: How to Change things when change is hard. The talk was split into 3 parts. First you need to Motivate the Elephant, then you need to Direct the Rider, and finally you need to Shape the Path.&lt;br /&gt;&lt;br /&gt;Mary suggested that in order to Motivate people, you need to treat them like volunteers. You need to treat them like they could leave at any time. A quote from Peter Drucker: "They need, above all, challenge. They need to know the organization's mission; believe in it, they need to see the results". As our table discussed this concept, we were able to easily relate to our own stories of leading youth at church or in boyscouts. I think this would be a great way to be treated and I can see how it would translate into energized and passionate employees. A volunteer team has to be engaged or they will disappear.&lt;br /&gt;&lt;br /&gt;The purpose of Directing the Rider is to provide clear direction. One of the ways to do this when change is difficult is to find the bright spot. When you are having trouble implementing a change, look for some small success and then duplicate it. She gave a great example about post-it notes. When 3M first made the post-it notes, they could not sell them. They test marketed them in several locations and they only sold them in one ("the bright spot"). It turns out that the sales rep in Richmond Virginia decided to give them away and once he did everyone wanted one. 3M then followed this model in other locations and now post-it notes are a household item (and a valuable agile tool!). So, to direct the rider in difficult situations, find instances of success and clone it. A book that she references is: Positive Deviance: Influence: The Power to Change Anything"&lt;br /&gt;&lt;br /&gt;Finally, she suggests Shaping the Path by looking at the long term and allowing local decision making. You also need to find ways to make the desired change the path of least resistance. "Change will only stick when the path of least resistance is the path of change." IBM's move towards agile was used as an example. Instead of forcing agile, they allowed it to succeed in smaller teams and then sold and promoted those successes. Soon, everyone wanted to do it.&lt;br /&gt;&lt;br /&gt;In summary, to encourage change in a team when it is difficult a) treat your team as volunteers b) find the bright spot and clone it and finally c) make the desired change the path of least resistance.&lt;br /&gt;&lt;br /&gt;In the afternoon I went to Hacker Chick and Dawn Cannan's hands on presentation "Better Story Testing through Programmer-Tester Pairing". We had fun doing developer/tester pairing of acceptance tests in FitNesse and Java. I learned a few new FitNesse tricks and also that I haven't lost all my dev skills. I played the dev role and our team was the first to complete the assigned task, beating some notable names in the room &amp;lt;cough&amp;gt;Brian Marick&amp;lt;/cough&amp;gt;. The session also re-inforced ATDD and gave me some ideas I'd like to incorporate into a future presentation.&lt;br /&gt;&lt;br /&gt;Also, I missed Janet Gregory's talk this morning on the Dance of QA in agile, but I managed to talk to her this evening at the mixer. She gave a quick summary of her talk and how she related it to dance. Agile team members need to be like contestants on "So You Think You Can Dance". On the show, hip-hop dancers learn other dance styles like ballet and vice versa. Similarly, agile team members (including QA) need to improve their skills in all of the disciplines in a project team. An interesting thought.&lt;br /&gt;&lt;br /&gt;Thanks to everyone - a great first day.&lt;br /&gt;&lt;br /&gt;In other news, Bob Payne is now following me. #Stalker.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2879381658200969102?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2879381658200969102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/some-thoughts-from-day-1-of-agile2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2879381658200969102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2879381658200969102'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/08/some-thoughts-from-day-1-of-agile2010.html' title='Some thoughts from day 1 of Agile2010'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4269253468220981687</id><published>2010-07-05T21:43:00.000-05:00</published><updated>2010-07-05T21:43:00.131-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='selenium'/><title type='text'>Using Selenium for Meta tag testing</title><content type='html'>I recently tweeted that I had figured out how to use Selenium to test for meta tag content. Here is in an example using &lt;a href="http://www.protegra.com/"&gt;http://www.protegra.com/&lt;/a&gt;.&amp;nbsp;On the Protegra home page, I wanted to make sure the following 2 tags existed:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;meta name="title" content="Protegra.com" /&amp;gt;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;meta name="description" content="Business. Technology. Solutions." /&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Obviously, meta tags don't show on the page at all, but do exist in the HTML. To test this manually, I would need to open the page in a browser, click view source, search for 'meta' and then manually compare the results to the expected meta tags. To test this using Selenium, all you need to do is create a test case that opens up Protegra.com and then uses VerifyElementPresent to search for each meta tag. The VerifyElementPresent command allows you to enter the name of the meta tag and the expected content in the format of :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;//meta[@name='name of the meta tag' and @content='the expected content']&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The Selenium test case html for the two meta tags I'm looking for looks like this:&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &amp;lt;td&amp;gt;verifyElementPresent&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &amp;lt;td&amp;gt;//meta[@name='title' and @content='Protegra.com']&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &amp;lt;td&amp;gt;verifyElementPresent&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &amp;lt;td&amp;gt;//meta[@name='description' and @content='Business. Technology. Solutions.']&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;nbsp; &amp;lt;td&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace;"&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Now I can run this test repeatedly to test for the expected meta tag content on the home page&amp;nbsp;whenever I want without using manual effort.&amp;nbsp; I can also create&amp;nbsp;similar tests for each page throughout the site and run them all consecutively.&amp;nbsp; Additionally, I could use Excel to generate the Selenium test case html for all my pages and meta tags without having to write the html manually or I could&amp;nbsp;export this&amp;nbsp;test case&amp;nbsp;into C# (or any of the other programming languages supported by Selenium) and transform this test to lookup pages and meta tag values in a database table.&amp;nbsp; Fast and easy.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4269253468220981687?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4269253468220981687/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/07/using-selenium-for-meta-tag-testing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4269253468220981687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4269253468220981687'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/07/using-selenium-for-meta-tag-testing.html' title='Using Selenium for Meta tag testing'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-3592074432453572552</id><published>2010-07-02T11:43:00.000-05:00</published><updated>2010-07-02T11:43:58.321-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quality'/><category scheme='http://www.blogger.com/atom/ns#' term='agile metrics'/><title type='text'>But does it work? - an agile metric</title><content type='html'>I've said publicly at conferences and other gatherings that my passion for agile and lean began years ago&amp;nbsp;after a particularly troubling project that tried to be agile.&amp;nbsp; While that project had a strong team and eventually delivered a product, it had trouble with quality, scope and budget.&amp;nbsp; In retrospect the biggest problem was that we had little&amp;nbsp;knowledge of&amp;nbsp;what it meant to be agile - our process was flawed.&amp;nbsp; As a leader of that team, I took responsibility for the&amp;nbsp;result and began&amp;nbsp;a search to understand agile.&amp;nbsp; Borrowing a phrase from the &lt;a href="http://agilemanifesto.org/"&gt;agile manifesto&lt;/a&gt;, I wanted to&amp;nbsp;'uncover better ways'.&lt;br /&gt;&lt;br /&gt;After implementing several changes to our process, my projects over the&amp;nbsp;years&amp;nbsp;seem to have improved significantly.&amp;nbsp; But how do you measure this?&amp;nbsp; While no metric should stand alone, here is one quality metric that I'm experimenting with:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;((# of high defects * 5) + (# of medium defects * 3) + (# of low defects * 1) / Total project hours * 100.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;The 'troubled' project had a&amp;nbsp;score&amp;nbsp;of 18.7.&amp;nbsp; My most recent project score was 1.2&amp;nbsp;which is almost&amp;nbsp;a 1600% improvement on quality.&amp;nbsp;I think I'll keep doing this agile thing.&lt;br /&gt;&lt;br /&gt;P.S.&amp;nbsp; I'm heading to &lt;a href="http://agile2010.agilealliance.org/"&gt;Agile2010&lt;/a&gt; this summer.&amp;nbsp; Give me a shout if you are going and we can find ways to de-brief together over lunch or dinner in Orlando.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-3592074432453572552?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/3592074432453572552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/07/but-does-it-work-agile-metric.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3592074432453572552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3592074432453572552'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/07/but-does-it-work-agile-metric.html' title='But does it work? - an agile metric'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7770238530658603376</id><published>2010-06-08T16:34:00.000-05:00</published><updated>2010-06-28T21:56:19.019-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='user stories'/><title type='text'>User Stories in more detail</title><content type='html'>Several people at the conference last week asked me for more information about how to write user stories.&amp;nbsp; I&amp;nbsp;could write a long blog with lots of examples and explanation, but someone has already done that. Check out Scott Ambler's post &lt;a href="http://www.agilemodeling.com/artifacts/userStory.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;While Scott recommends capturing stories on cards, I like to capture them initially in a spreadsheet because it makes it easier to organize and prioritize.&amp;nbsp; Once the project starts I print out the cards&amp;nbsp;- instructions are in one of my earlier blogs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-7770238530658603376?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7770238530658603376/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/06/user-stories-in-more-detail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7770238530658603376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7770238530658603376'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/06/user-stories-in-more-detail.html' title='User Stories in more detail'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-3729685696144680695</id><published>2010-06-07T16:15:00.000-05:00</published><updated>2010-06-07T16:15:39.518-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='test first'/><title type='text'>The last shall be first</title><content type='html'>At what point in the project&amp;nbsp;do you start your testing effort?&amp;nbsp; In many project plans that I have seen, QA and/or UAT is added to the end of the project.&amp;nbsp; The development team hands over the code to the testing team who then writes and executes the scripts.&amp;nbsp; The bugs are passed to the developer and the test &amp;amp; fix cycle begins.&amp;nbsp; What fun.&lt;br /&gt;&lt;br /&gt;Here is an alternative to the test &amp;amp; fix cycle:&lt;br /&gt;&lt;br /&gt;1. Write test scripts before development starts on any particular feature. Test scripts help confirm the requirements with the client and allow developers to have a full understanding of how the code must work.&amp;nbsp; The test scripts function as executable requirements and answer "How will I know when I'm done".&lt;br /&gt;&lt;br /&gt;2. Minimize the time between when a features has been developed and when it is tested. This allows you to find defects or requirement misunderstanding early so that developers do not re-build the same defects or misunderstandings into future features. This helps increase the quality of the system while decreasing the time spent in the test-fix-test-fix cycle.&amp;nbsp; Complete testing of any feature should occur in the same iteration that the code is written and should be part of your 'done' criteria. &lt;br /&gt;&amp;nbsp; &lt;br /&gt;Both of these two simple steps are based on the Lean Principles of Eliminate Waste and Build Quality In.&amp;nbsp; For more information, check out this &lt;a href="http://www.netobjectives.com/files/role-quality-assurance-lean-agile-software-development.pdf"&gt;article &lt;/a&gt;from NetObjectives.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-3729685696144680695?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/3729685696144680695/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/06/last-shall-be-first.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3729685696144680695'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3729685696144680695'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/06/last-shall-be-first.html' title='The last shall be first'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-296801288286103043</id><published>2010-06-01T11:14:00.001-05:00</published><updated>2011-05-19T16:01:14.714-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile101'/><category scheme='http://www.blogger.com/atom/ns#' term='PrairieDevCon'/><category scheme='http://www.blogger.com/atom/ns#' term='lean101'/><title type='text'>PrairieDevCon Presentation links</title><content type='html'>Here are some additional links for my presentations at PrairieDevCon this week.&lt;br /&gt;&lt;br /&gt;Introduction to Lean and Agile:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Books&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Lean Software Development. Tom and Mary Poppendieck (2003)&lt;/li&gt;&lt;li&gt;User Stories Applied. Mike Cohn (2004)&lt;/li&gt;&lt;li&gt;The Art of Agile Development. James Shore and Shane Warden (2008)&lt;/li&gt;&lt;li&gt;The Art of Lean Software Development. Curt Hibbs, Steve Jewett, Mike Sullivan (2009)&lt;/li&gt;&lt;li&gt;Agile Estimating and Planning.&amp;nbsp; Mike Cohn (2005)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Sites&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.poppendieck.com/"&gt;http://www.poppendieck.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.leanprimer.com/"&gt;http://www.leanprimer.com/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.agilemanifesto.org/"&gt;http://www.agilemanifesto.org/&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Podcast Sites&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.hanselminutes.com/"&gt;http://www.hanselminutes.com/&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.agiletoolkit.com/"&gt;http://blog.agiletoolkit.com/&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Newsgroups&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="mailto:leanagile@yahoogroups.com"&gt;leanagile@yahoogroups.com&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Other links to articles, blogs, videos&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.martinfowler.com/articles/newMethodology.html"&gt;www.martinfowler.com/articles/newMethodology.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://agileinaflash.blogspot.com/2009/08/12-principles-for-agile-software.html"&gt;http://agileinaflash.blogspot.com/2009/08/12-principles-for-agile-software.html&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.infoq.com/Agile2009"&gt;www.infoq.com/Agile2009&lt;/a&gt; (Videos from Agile 2009)&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.netobjectives.com/files/BusinessCaseForAgility.pdf"&gt;http://www.netobjectives.com/files/BusinessCaseForAgility.pdf&lt;/a&gt; (requires account registration)&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/agile-developer-skills/web/draft-summary-of-chicago-meeting?hl=en&amp;amp;pli=1"&gt;http://groups.google.com/group/agile-developer-skills/web/draft-summary-of-chicago-meeting?hl=en&amp;amp;pli=1&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.agilemanifesto.org/history.html"&gt;http://www.agilemanifesto.org/history.html&lt;/a&gt; - History of the Manifesto&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.devx.com/architect/Article/32836/0/page/4"&gt;http://www.devx.com/architect/Article/32836/0/page/4&lt;/a&gt; - comparison of seven popular agile methodologies&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;Planning Poker:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Links&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.planningpoker.com/detail.html"&gt;www.planningpoker.com/detail.html&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.youtube.com/watch?v=fb9Rzyi8b90&amp;amp;feature=PlayList&amp;amp;p=3F5BBA263D7DF99C&amp;amp;playnext=1&amp;amp;playnext_from=PL&amp;amp;index=2"&gt;http://www.youtube.com/watch?v=fb9Rzyi8b90&amp;amp;feature=PlayList&amp;amp;p=3F5BBA263D7DF99C&amp;amp;playnext=1&amp;amp;playnext_from=PL&amp;amp;index=2&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&amp;nbsp;- Video of Mike Cohn explaining Planning Poker&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-296801288286103043?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/296801288286103043/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/06/prairiedevcon-presentation-links.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/296801288286103043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/296801288286103043'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/06/prairiedevcon-presentation-links.html' title='PrairieDevCon Presentation links'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-7353400312644553359</id><published>2010-04-30T10:00:00.000-05:00</published><updated>2010-08-15T10:11:58.954-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile practices'/><title type='text'>List of Agile practices</title><content type='html'>I read an interesting list of agile practices at Naresh Jain's blog: &lt;a href="http://blogs.agilefaqs.com/2010/04/30/explosion-of-agile-practices/"&gt;Explosion of Agile Practices&lt;/a&gt;.&amp;nbsp; I think there is a lot of overlap in&amp;nbsp;his list, but it made me re-visit what I think the core list of lean and&amp;nbsp;agile practices should be.&amp;nbsp; My list is below in no particular order.&amp;nbsp; Each item can be expanded -&amp;nbsp;for example, Technical Excellence implies TDD, simple design, following SOLID principles, etc.&lt;br /&gt;&lt;br /&gt;1. Daily Stand-ups&lt;br /&gt;2. Visual Project Management&lt;br /&gt;3. Customer Accessibility&lt;br /&gt;4. Technical Excellence&lt;br /&gt;5. Frequent Delivery&lt;br /&gt;6. Frequent Retrospectives&lt;br /&gt;7. Continuous Improvement&lt;br /&gt;8. Continuous Integration&lt;br /&gt;9. Co-located teams&lt;br /&gt;10. Iteration Planning&lt;br /&gt;11. Team Estimating&lt;br /&gt;12. Acceptance Tests&amp;nbsp;(and automation of those tests)&lt;br /&gt;13. User Stories&lt;br /&gt;14. Self Organized Teams&lt;br /&gt;16. Iteration Demos&lt;br /&gt;&lt;br /&gt;Update 8/15/2010:&lt;br /&gt;- And one more... Deliver Value!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-7353400312644553359?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/7353400312644553359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/04/list-of-agile-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7353400312644553359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/7353400312644553359'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/04/list-of-agile-practices.html' title='List of Agile practices'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2436087292517909937</id><published>2010-03-27T20:00:00.000-05:00</published><updated>2010-04-28T13:57:14.498-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planning poker'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='scope'/><category scheme='http://www.blogger.com/atom/ns#' term='estimating'/><title type='text'>Agile scope completion techniques</title><content type='html'>One of the questions I've received in the past about agile techniques is how to ensure you've captured enough detail about your requirements in order to proceed without missing major scope elements.&lt;br /&gt;&lt;br /&gt;Whether you are using story cards, features or other techniques to capture your requirements, you need to answer this question: "How do I know when I've done enough requirements gathering?" In waterfall this is ‘easy’ – gather all the detail and sign-off (ok – I’m simplifying). In agile, we depend on features or stories, but many are concerned that major scope elements will be left out which will either cause many items to grow exponentially in size or that feature X is really feature X, Y and Z. For example, when the registration screen has 50 fields instead of the 10-15 that we might have assumed, but didn’t write down. It is hard to understand how this can be done in 1 or 2 days using feature or story cards that contain only one line of description, a few lines of acceptance and a few assumptions.&lt;br /&gt;&lt;br /&gt;Three things for you to consider to help you solve this dilemna:&lt;br /&gt;&lt;br /&gt;1. In waterfall techniques, although we hold some comfort in our massive requirements documents, we know from experience that even then things will change and things will be missed.&lt;br /&gt;&lt;br /&gt;2. My teams estimate using planning poker with the full team including the client and we have found this has helped to uncover hidden or unknown scope. We discuss each item together before estimating and talk about the number of screens, inputs, outputs, services etc involved. This discussion itself often uncovers additional scope, but so does the estimating that follows each discussion. For example, when most of us say ‘2’ and one person says ‘8’, the person who said ‘8’ enlightens the team on the complex caching required to meet the performance requirements listed as an Acceptance test. This is especially important if your client is the one with the highest estimate. Don't ignore it.&lt;br /&gt;&lt;br /&gt;3. Lastly, I attended a virtual class on agile estimating that suggested another technique. For every feature or story, categorize the requirements certainty as high, medium and low. Keep challenging your client until the requirements certainty on each story is 'low'.&lt;br /&gt;&lt;br /&gt;I'd be interested in other techniques you may be using to keep the initial requirements gathering phase light weight, yet complete. I think as an industry we are getting better at embracing the changes that are inevitable on all projects, but our clients still require us to have a good understanding of the known scope and the resulting estimate before starting the project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2436087292517909937?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2436087292517909937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/03/agile-scope-completion-techniques.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2436087292517909937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2436087292517909937'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/03/agile-scope-completion-techniques.html' title='Agile scope completion techniques'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-3143375091937651263</id><published>2010-02-24T21:51:00.000-06:00</published><updated>2011-04-05T14:43:44.613-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='planning poker'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='team ownership'/><title type='text'>Planning Poker and Buckets of Hockey Pucks</title><content type='html'>The teams I've been working with over the past while have been using planning poker for project estimating. Despite initial and fleeting skepticism by a few when we bring out the cards, as a whole our teams and our sponsors are finding value in this approach. I was reminded today that we should look at poker points as buckets of sand. That is, when deciding between a 5 and an 8, if something is a 6, you can probably still put it into a size 5 bucket if you think of the points as sand that can be heaped at the top of the bucket. Also, a 7 would overflow a size 5 bucket but would fit easily into a size 8.&lt;br /&gt;&lt;br /&gt;In light of Canada's 7-3 victory over Russia in Olympic quarter finals, I've decided to change the metaphor to buckets of hockey pucks instead of sand. Go Canada!&lt;br /&gt;&lt;br /&gt;P.S. I'll be presenting on Planning Poker in Regina in June at &lt;a href="http://www.prairiedevcon.com/"&gt;http://www.prairiedevcon.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-3143375091937651263?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/3143375091937651263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/02/planning-poker-and-buckets-of-hockey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3143375091937651263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/3143375091937651263'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/02/planning-poker-and-buckets-of-hockey.html' title='Planning Poker and Buckets of Hockey Pucks'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4165653249916599305</id><published>2010-02-17T08:33:00.000-06:00</published><updated>2010-06-28T22:01:49.650-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><category scheme='http://www.blogger.com/atom/ns#' term='Fitnesse'/><category scheme='http://www.blogger.com/atom/ns#' term='automated acceptance tests'/><title type='text'>FitNesse gets the gold!</title><content type='html'>I've been using FitNesse for just over 3 weeks and I am pleased with the value it is adding to our project even though I'm only using the basic features at this time. As a former developer I'm finding it fun to use because I have to write a little bit of code in order to create an interface between FitNesse and each service that I'm testing. Most of our testing on the project was going well and we were avoiding major errors - until last Thursday...&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/_SOWsoNd4jeU/S3wABEym7KI/AAAAAAAABgg/3ZlPiGRYPmQ/s1600-h/fitnesseresults.JPG"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5439222468422593698" src="http://1.bp.blogspot.com/_SOWsoNd4jeU/S3wABEym7KI/AAAAAAAABgg/3ZlPiGRYPmQ/s400/fitnesseresults.JPG" style="cursor: hand; float: right; height: 222px; margin: 0px 0px 10px 10px; width: 400px;" /&gt;&lt;/a&gt;A change in the code from a newly completed work item resulted in 81 of our 191 tests failing. Imagine how long it would take to re-run all 191 tests manually to find out that 81 had failed. Imagine how long it would take to re-test all 191 tests manually to make sure they were fixed. As you can see from the image below, it took us 39 minutes to find, fix and re-test all 191 tests. Thanks FitNesse.&lt;br /&gt;&lt;br /&gt;** Update 6/28:&amp;nbsp; This project had the highest quality metric that I've ever been a part of in terms of defects / month / developer.&amp;nbsp; FitNesse was a big part of that success.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4165653249916599305?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4165653249916599305/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/02/fitnesse-gets-gold.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4165653249916599305'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4165653249916599305'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/02/fitnesse-gets-gold.html' title='FitNesse gets the gold!'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_SOWsoNd4jeU/S3wABEym7KI/AAAAAAAABgg/3ZlPiGRYPmQ/s72-c/fitnesseresults.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-2463124050123451430</id><published>2010-01-27T16:51:00.000-06:00</published><updated>2010-08-05T23:05:05.144-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DotNet'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='Fitnesse'/><title type='text'>Fitnesse with C#</title><content type='html'>I've decided to try out Fitnesse on my current project so I attempted to find a complete tutorial on fitnesse with C# today. The best tutorial I found is contained in the following 2 links:&lt;br /&gt;&lt;br /&gt;1. &lt;a href="http://gojko.net/FitNesse/book/ch02.html"&gt;Installing FitNesse&lt;/a&gt;&lt;br /&gt;2. &lt;a href="http://gojko.net/FitNesse/book/ch02s02.html"&gt;Writing your first Hello World test&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a great tutorial.&amp;nbsp;Although in the end I figured everything out, there are a few steps that were implied in the tutorial that I missed on the initial pass. Here are those steps:&lt;br /&gt;&lt;br /&gt;a. Leave the command line open. You need to execute this command line everytime you want to use Fitnesse. If you close the command line, Fitnesse will not work.&lt;br /&gt;b. When downloading the FitSharp binaries from github, place the contents of the zip file in a "dotnet2" folder that you create as a subfolder in the folder that you downloaded/installed the .jar file to.&lt;br /&gt;&lt;br /&gt;After adding those 2 steps, everything worked great. Thanks to Gojko for all the work you put into the tutorial at the links above. I found the Fitnesse User Guide to be lacking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-2463124050123451430?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/2463124050123451430/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/01/fitnesse-with-c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2463124050123451430'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/2463124050123451430'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/01/fitnesse-with-c.html' title='Fitnesse with C#'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-83801794472441104</id><published>2010-01-26T23:11:00.000-06:00</published><updated>2010-04-28T13:58:01.443-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='earned value'/><category scheme='http://www.blogger.com/atom/ns#' term='agile'/><category scheme='http://www.blogger.com/atom/ns#' term='lean'/><title type='text'>Delivering Bad News Early</title><content type='html'>I was listening to a Controlling Chaos podcast today, and heard this:&lt;br /&gt;&lt;br /&gt;Project Team to Executive: "When should we tell you if we have bad news?"&lt;br /&gt;Executive (dumbfounded of a little): "Well, right away of course!"&lt;br /&gt;Project team (Excellent - thanks for giving us permission)&lt;br /&gt;&lt;br /&gt;Yes, I think we all realize that it is important to deliver bad news as soon as possible. And the technique above can be useful to gain permission to deliver it early and allow you to understand and negotiate what 'bad news' means. Bad news can be found on all projects regardless of methodology - resource changes, customers who aren't sure what they want, budget risk, schedule risk, etc. The sooner we can identify the bad news and deal with it, the better.&lt;br /&gt;&lt;br /&gt;For bad news related to the budget, how do your teams know when you will be over budget or schedule? Traditional project management methodologies use "Earned Value" to measure project progress against a budget. What frustrates me about this method is that until your team has delivered value through working code, your actual earned value is... zero. If requirements or design is complete, what value is that to the business? Does it verify what % complete the project is? Does it verify your estimates? Does it ensure that the business is getting what they asked for? How useful is it to measure the "Earned Value" on a traditional project until that project is complete?&lt;br /&gt;&lt;br /&gt;This is my favourite thing about agile. Once your backlog is complete, estimated using relative estimating, and your first iteration is complete with working code you can calculate your initial velocity and compare it to the budget and schedule. After your second, third and future iterations you refine your velocity and with it your cost and schedule. You have delivered value through working and implemented code and you can calculate actual Earned Value based on what you have delivered vs what is remaining in the backlog. In this way, you can verify your project process early and report budget and schedule issues to your executive or sponsor early and more accurately.&lt;br /&gt;&lt;br /&gt;Of course, this depends on short iterations, a backlog of user stories based on the INVEST model that is relatively complete, and working to 'done'. More on these at a later date.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-83801794472441104?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/83801794472441104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/01/delivering-bad-news-early.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/83801794472441104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/83801794472441104'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/01/delivering-bad-news-early.html' title='Delivering Bad News Early'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-5442635940581316694</id><published>2010-01-11T16:40:00.000-06:00</published><updated>2012-01-24T11:20:05.153-06:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mail merge index cards excel product backlog'/><title type='text'>Generate index cards from your Excel 2007 backlog</title><content type='html'>You have captured all your user stories in Excel 2007 and now you want to print them out as index cards.  Follow these steps in Word 2007.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;First, create the word document and select your data&lt;/b&gt;&lt;br /&gt;1. Make sure you have headings in your excel document.  Example: User Story, Points, User Story ID&lt;br /&gt;2. Open Word 2007 and create a new document&lt;br /&gt;3. Go to the "Mailings" tab&lt;br /&gt;4. Click "Start Mail Merge" and select "Step by Step Mail Merge Wizard"&lt;br /&gt;5. Click "Select Recipients" and select "Use Existing List"&lt;br /&gt;6. Select your excel file and then the name of the sheet (eg. 'Sheet1$')&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Second, setup your index cards&lt;/b&gt;&lt;br /&gt;7. In the "Mail Merge" window (usually on the right), select the "Labels" document type and click "Next: Starting document" at the bottom.&lt;br /&gt;8. Click "Label options…" to choose create a custom label size for your index cards&lt;br /&gt;9. Click "New Label…"&lt;br /&gt;10.  Use the following settings for 4 index cards per page:&lt;br /&gt;○ Label name: "Index Cards"&lt;br /&gt;○ Top margin: 1.5 cm&lt;br /&gt;○ Side margin: 0.6 cm&lt;br /&gt;○ Vertical pitch: 13 cm&lt;br /&gt;○ Horizontal pitch: 10 cm&lt;br /&gt;○ Page size: Letter (8 1/2 x 11 in)&lt;br /&gt;○ Label height: 12 cm&lt;br /&gt;○ Label width: 9 cm&lt;br /&gt;○ Number across: 2&lt;br /&gt;○ Number down: 2&lt;br /&gt;11. Click OK (Note - you can now re-use the new "Index Cards" label format the next time you print index cards.  Look under "Product Number" on the "Label Options" window)&lt;br /&gt;12. Click OK again to close the "Label Options" window&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Now we add data to the index cards&lt;/b&gt;&lt;br /&gt;13. Click "Next: Select recipients"&lt;br /&gt;14. If you want to select only some of your stories, use the check box column to do so.  Click OK.&lt;br /&gt;15. The page should now show four labels, with the first one blank and the other three containing "&amp;lt;&lt;next record=""&gt;&amp;gt;"&lt;br /&gt;16. Click "Next: Arrange your labels"&lt;br /&gt;17. In the blank label, add the static text you want to display.  I like to show Story ID, Points and the User Story on the card, but you can display whatever information is relevant for your project and process.&lt;br /&gt;17. To add the fields from your product backlog, place the cursor where your field should go and click "More Items".  Select the field you want to add and click "Insert".  Repeat for any additional fields&lt;br /&gt;18. Now format your fields (bold, size, positioning etc) within the first label.&lt;br /&gt;19. When you are finished, click the "Update all labels" button to move your formatting to all the index cards.&lt;br /&gt;20. Click "Next: Preview your labels".  At this point, you should have four index cards per page populated with your stories.&lt;br /&gt;21. Click "Next: Complete the merge"&lt;br /&gt;22. Now print your index cards! (make sure they are not printing double sided…)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bonus Tip&lt;/b&gt;:  Use the "&lt;a href="http://www.amazon.com/3M-Scotch-Restickable-Ounce-Stick/dp/B001AS994E"&gt;Scotch Glue Stick Restickable Adhesive&lt;/a&gt;" to turn your index cards into reusable sticky notes.&lt;/next&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Want to receive future blog posts in your inbox? Enter your email address &lt;a href="http://feedburner.google.com/fb/a/mailverify?uri=WinnipegAgilist&amp;amp;amp;loc=en_US"&gt;here&lt;/a&gt;.&amp;nbsp; &lt;/i&gt;&lt;next record=""&gt;&lt;br /&gt;&lt;/next&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-5442635940581316694?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/5442635940581316694/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2010/01/generate-index-cards-from-your-excel.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5442635940581316694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/5442635940581316694'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2010/01/generate-index-cards-from-your-excel.html' title='Generate index cards from your Excel 2007 backlog'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-4215174708099819747</id><published>2009-10-15T14:10:00.000-05:00</published><updated>2009-10-15T15:06:21.810-05: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'>Agility on Waterfall projects</title><content type='html'>So you find yourself on a strict waterfall project, but you want to inject as many Agile practices as you can, where do you start? There are many agile practices that can be incorporated into your day-to-day activities. Here is a start:&lt;br /&gt;&lt;br /&gt;1. Acceptance Tests. Regardless of your role, you can write acceptance tests to verify your understanding of the requirements and to reduce the waste that is 'UAT'. Do this before you code.&lt;br /&gt;&lt;br /&gt;2. Technical Excellence. TDD, SOLID Principles, etc can be used on waterfall projects even if you don't have official support to write your code that way. Depending on the development team make-up, you may have to find a way to refactor your tests when someone else changes your code, but since waterfall projects are sometimes silo-ed, this may not be an issue.&lt;br /&gt;&lt;br /&gt;3. Customer Accessability. Find ways to get near your customers, analysts and testers to walk them through prototype screens, talk about the requirements, or discuss acceptance tests. Do this frequently (daily if possible).&lt;br /&gt;&lt;br /&gt;4. Work to done. Make sure your code is shippable and passes all the tests you wrote, plus all the requirements. Be thorough.&lt;br /&gt;&lt;br /&gt;5. Deliver Frequently. While you may not be able to put the code in production every 2 weeks, you can certainly put the code (prototypes, screen shots, diagrams, etc) in front of your customer frequently.&lt;br /&gt;&lt;br /&gt;6. Be ready for change. Don't be upset when requirements change or new requirements are found. Make sure your code (and your mindset) is change tolerant. You'll still need to fill out the change request forms and follow the process, but at least your code will be ready for it.&lt;br /&gt;&lt;br /&gt;7. Team of One. You may not be invited to help with the project estimate, plan the project, write status reports etc, but you can run your own tasks like an agile team. Create your own visual project management board, hold stand-ups and retrospectives with yourself, practice your planning poker skills by re-estimating all the tasks assigned to you, plan your iterations.&lt;br /&gt;&lt;br /&gt;8. Suggests phases. If you can, suggest a phased approach to the project (rather than iterations). This may enable you to eliminate some of the waste and respond better to change.&lt;br /&gt;&lt;br /&gt;In short, try to intregrate as many practices as possible, but don't necessarily ask permission to do so. Hopefully someone will notice and ask the important question: "Why are you doing that?"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-4215174708099819747?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/4215174708099819747/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2009/10/agility-on-waterfall-projects.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4215174708099819747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/4215174708099819747'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2009/10/agility-on-waterfall-projects.html' title='Agility on Waterfall projects'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7903227215035313444.post-8529034506999348059</id><published>2009-10-15T13:29:00.000-05:00</published><updated>2010-01-11T14:30:50.561-06:00</updated><title type='text'>Agility in Winnipeg</title><content type='html'>Yesterday I presented at sdec09 (&lt;a href="http://www.sdec09.com/"&gt;http://www.sdec09.com/&lt;/a&gt;) in Winnipeg. My two presentations were at the opposite ends of the Overview/Detail spectrum. The first presentation was an introduction to Agile and Lean using a Lego project to demonstrate the usefulness of the various agile practices as compared to waterfall. The second presentation was a hands-on Planning Poker exercise (one of many agile practices). The day was fantastic and we (as a team) received a lot of questions ranging from specific questions on agile practices to how do I start using agile at my company.&lt;br /&gt;&lt;br /&gt;In this blog, I will try to capture discussions about agile that are happening in Winnipeg and elsewhere. I hope you find it useful.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7903227215035313444-8529034506999348059?l=winnipegagilist.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://winnipegagilist.blogspot.com/feeds/8529034506999348059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://winnipegagilist.blogspot.com/2009/10/agility-in-winnipeg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8529034506999348059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7903227215035313444/posts/default/8529034506999348059'/><link rel='alternate' type='text/html' href='http://winnipegagilist.blogspot.com/2009/10/agility-in-winnipeg.html' title='Agility in Winnipeg'/><author><name>Steve Rogalsky</name><uri>https://profiles.google.com/106779753875358224619</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-aLf2X84YvDg/AAAAAAAAAAI/AAAAAAAAAAA/6VNU67N6mss/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
