tag:blogger.com,1999:blog-213279842024-02-07T21:34:41.393-06:00tommynorman.comAgile, ALM, and Software Development.Anonymoushttp://www.blogger.com/profile/12525579727559385079noreply@blogger.comBlogger112125tag:blogger.com,1999:blog-21327984.post-16893386257090269692015-04-20T17:36:00.000-05:002015-04-20T17:55:01.226-05:00The First Ever White House Tech MeetupWhen <a href="https://www.linkedin.com/pub/sandra-hoff/7/99b/9a6">Sandi Hoff</a> from the<a href="http://www.technologycouncil.com/"> Nashville Technology Council </a>called and asked if I wanted to go to the <a href="https://www.whitehouse.gov/blog/2015/04/14/friday-tech-meetup-white-house-0">White House's first ever Tech Meetup</a>, I was very humbled and extremely excited. This was a meeting of over 50 tech community organizers from across the United States getting together with White House officials to talk about how to help bridge to gap between the 500,000 unfilled tech jobs and the vast, under-served population of qualified candidates. It was a great honor to represent Nashville along with<a href="https://twitter.com/bryan_hunter"> Bryan Hunter</a> and <a href="https://www.linkedin.com/in/salnovin">Sal Novin</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheCUXi7Rn4L51a_6SN2WVlhRFOm0hshzv1eJVRJCl2x1W68G7c5CU2G7glMgKO3De15WilTZ3ml5zX2auYqo7UJqGT9UR2qzP2MIeMvoMb687LVJ_9iidZdr_8tIjCFfU9sxuS/s1600/white-house-meetup.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheCUXi7Rn4L51a_6SN2WVlhRFOm0hshzv1eJVRJCl2x1W68G7c5CU2G7glMgKO3De15WilTZ3ml5zX2auYqo7UJqGT9UR2qzP2MIeMvoMb687LVJ_9iidZdr_8tIjCFfU9sxuS/s1600/white-house-meetup.png" height="131" width="400" /></a></div>
<br />
<h3>
The Venue: The Eisenhower Executive Office Building</h3>
<div>
<br /></div>
The meetup was held in the <a href="https://www.whitehouse.gov/1600/eeob">Eisenhower Executive Office Building</a> right next to the West Wing of the White House. While I was disappointed it was not an intimate chat in the Oval Office, the EEOB is a very impressive building itself. This building contains the majority of the President's staff, the Vice President's office, the Secret Service, the White House medical unit, and more. When you see the President in a room full of people in front of some dark blue curtains announcing some presidential thing or another, he is usually in the rooms we were in for the meetup.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMavxRVyggcoMHmV1H4YhvksIBnFEerCAJwrfEB4rTHDjkAEuJcGPd8dlafUU2AOevHj2ZjpGsjbFNl9M13h8lBkySFGRGxqJ09QOIS0mMKok2EEiIpjctR8xuJuJpxB0fzfXt/s1600/eeob.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMavxRVyggcoMHmV1H4YhvksIBnFEerCAJwrfEB4rTHDjkAEuJcGPd8dlafUU2AOevHj2ZjpGsjbFNl9M13h8lBkySFGRGxqJ09QOIS0mMKok2EEiIpjctR8xuJuJpxB0fzfXt/s1600/eeob.png" height="296" width="400" /></a></div>
<br />
<br />
The building has been around since 1871 and is gorgeous. The staircases have over 4,000 individually cast bronze balusters and are capped with domed stained glass rotundas. The Executive Office of the President's Library is also housed in the building and according to Megan Smith it is very "Harry Potter looking." Bryan and I wandered out the east balcony and almost to the doorstep of the West Wing until we were discouraged by armed Marines.<br />
<br />
<h3>
Kicking Off the Meetup</h3>
<div>
<br /></div>
<a href="https://twitter.com/rafaellopez2">Rafael Lopez</a>, Senior White House Advisor, was our engaging master of ceremonies. He kept things going smoothly along with his army of White House staffers and interns. <a href="https://www.whitehouse.gov/administration/eop/ostp/about/leadershipstaff/smith">Megan Smith</a>, the Chief Technology Officer of the United States, was the meetup host and got things kicked off. Megan is energetic and her constant smile is infectious. She encouraged everyone to work together to see how tech community organizers could create a more inclusive culture in the tech industry for minorities and underrepresented populations. With an impressive resume including a degree from MIT and stints at Google, Megan has tons of geek cred. I was impressed with how much she know about all the different initiatives and meetups when they had everyone get up and introduce themselves.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPisovn31fFj2phMe6NEwkP91UIEZdZB0zXcWng0S35RbG1YiEV5HE5tv6-k4EDV8T112ijkNEZKtZ-FDQi5oA9xqK4zdnEybvuUhEevLsyTYiCJPLlbgYQS2_67tX0OJizlRE/s1600/wh-speakers.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPisovn31fFj2phMe6NEwkP91UIEZdZB0zXcWng0S35RbG1YiEV5HE5tv6-k4EDV8T112ijkNEZKtZ-FDQi5oA9xqK4zdnEybvuUhEevLsyTYiCJPLlbgYQS2_67tX0OJizlRE/s1600/wh-speakers.png" height="140" width="400" /></a></div>
<br />
<br />
<a href="https://www.whitehouse.gov/blog/author/Jeffrey%20Zients">Jeffrey Zients</a>, Director of the National Economic Council, followed with a pitch to empower Americans with the skills to land any of the 500,000 unfilled tech jobs in the United States. He lamented that many individuals considered these types of jobs out of their reach due to their lack of specific degrees or not being located in a perceived "tech hub." He pointed out that local tech meetups are a great way for these individuals to gain tech skills outside of traditional academic means and find better opportunities.<br />
<br />
<a href="https://twitter.com/heif">Scott Heiferman</a>, CEO and co-founder of <a href="http://www.meetup.com/">Meetup</a>, wrapped up the kick off talking about how tech meetups can help make people's lives better by inspiring them, getting the jobs, getting funding for startups, and more. It was interesting to hear how they were surprised and Meetup that certain types of meetups they thought would be very popular never took off and ones they never dreamed of became huge communities. His energy and excitement was infectious as he enthusiastically described some of the tech meetup organizers attending the event and how their organizations were creating opportunities for people.<br />
<br />
<h3>
Spotlight Sessions</h3>
<div>
<br /></div>
The rest of our morning was spent highlighting some of the great work being done all over the United States by the tech meetup organizers. There were so many great examples but I'll just touch on a few that inspired me personally.<br />
<br />
<a href="https://twitter.com/feliciaogarro">Felicia </a>and <a href="https://twitter.com/jsogarro">Jamal </a>O'Garro were both laid off and decided to start a meetup to learn how to code and find better jobs. They found many others in the same situation and now <a href="http://codecrew.co/">Code Crew NYC</a> has over 7,000 members and have taught of 1,000 people to code. This was a very inspiring story about alternative methods for teaching people tech skills outside of traditional institutions.<br />
<br />
<a href="https://twitter.com/andrewcoy">Andrew Coy</a> of <a href="http://www.digitalharbor.org/">Digital Harbor</a> took over failing rec centers and turned them in tech centers where they now serve over 2,500 youth in Baltimore. They help teach them skills in electronics, 3D printing, etc. to help prepare them for better paying jobs in the tech industry.<br />
<br />
<a href="https://twitter.com/denicewross">Denise Ross</a> & <a href="https://twitter.com/cwardell">Clarence Wardell</a> are using data to improve policing, build trust, and engage the community. This session seemed very timely with all the recent incidents around police aggression and their initiative was striving to use policing data to help bridge the divide between police departments and the communities they serve.<br />
<br />
<a href="https://twitter.com/elle_mccann">Laurene McCann</a> gave an inspiring talk about using tech to make a social impact. Here quote "Build with, not for" struck and chord with me and inspired me to come back to Nashville and do more work with our local tech community rather than for it.<br />
<br />
<a href="https://twitter.com/zachleat">Zack Leatherman</a> from the <a href="http://nebraskajs.com/">Nebraska JS Meetup</a> said one of the things that inspired him to start his group was the flight of top tech talent from his state to other higher profile tech hubs.<br />
<br />
<a href="https://twitter.com/brettgreene">Brett Greene's</a> meetup does a cool thing where they color code attendee badges based on why they are attending the event. They get one color if they are looking for a job, another if they are looking to hire people, another for people seeking funding, etc. I am totally going to steal that idea.<br />
<br />
These are just a few of the fantastic people that shared their stories of how their tech meetups are giving people better opportunities. I posted links to all of these spotlight sessions on<a href="https://twitter.com/tommynorman/"> my Twitter feed </a>if you want to see more of them.<br />
<br />
<h3>
Afternoon Un-Conference</h3>
<div>
<br /></div>
The afternoon was held like an un-conference with two sessions where the attendees submitted and voted for session topics. My first session was centered on filling the pipeline for tech jobs with qualified candidates who may usually be overlooked such as minorities, under-served populations, and people without technical certifications or degrees. There were some great discussions around an array ideas such as early education in grade school (via <a href="https://www.linkedin.com/pub/kimberly-boyd/11/b76/781">Kimberly Boyd</a>), people already working in the industry volunteering as technical guidance counselors for high school and college students, and organizations to help provide screening and recommendations to companies on candidates who might not immediately meet their requirements but have great potential (something I do for my company, <a href="http://hollandsquare.com/">Holland Square</a>, but would love to see adopted by other organizations).<a href="https://www.linkedin.com/in/johnfraboni"> John Fraboni</a> from <a href="https://operationspark.org/">Operation Spark </a>was worried that our industry while being more open to people without degrees was still hung up on technical certifications.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXdFTF2Yv9ry5O1NvxMtbhUQa0Rmz6lVwyn9_cyp9YPjIPYyFY3sOFtNDwuv6eNhZttPHJwkibkypnPlKNMPWiyH5jFvwyZglDP2Zzk_fsbxdpHF-e_em0smc13zpONieUORyi/s1600/IMG_2818.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXdFTF2Yv9ry5O1NvxMtbhUQa0Rmz6lVwyn9_cyp9YPjIPYyFY3sOFtNDwuv6eNhZttPHJwkibkypnPlKNMPWiyH5jFvwyZglDP2Zzk_fsbxdpHF-e_em0smc13zpONieUORyi/s1600/IMG_2818.JPG" height="300" width="400" /></a></div>
<br />
<br />
Our second session was about collecting and analyzing data about under-served children and using it to identify ways to give them better opportunities. <a href="https://twitter.com/sixtocancel">Sixto Cancel'</a>s organization, <a href="http://www.thinkof-us.org/">Think of Us</a>, is already using videos that present a style of "choose your own adventure" decisions that can be a very engaging way to survey children who may otherwise not respond well to being asked a series of rote questions. I brought up an idea inspired by a social group my autistic daughter belongs to where we create an online community where kids can create their own characters much like a game like World of Warcraft and then participate in any number of different challenges to earn experience, badges, achievements, etc. This would tap into kids natural love for video games and act as a catalyst to get them to be engaged. This could be made into a generic platform that could be used by both non-profits and for profit companies alike (which is also a way to get funding for it!). <a href="http://www.cbidinc.org/shelonda_stokes.html">Shelonda Stokes</a> of <a href="http://www.greibo.com/">Greibo.com </a>was excited by our discussion so much that she is going to seek out organizations to help build that platform.<br />
<br />
There were many other great sessions that I did not get to attend but thankfully, <a href="https://twitter.com/rawrsoft">Michael Calvert</a> of <a href="https://www.mongodb.org/">MongoDB </a>setup a <a href="https://usmeetups.slack.com/messages">Slack.com channel</a> for the White Meetup attendees to continue our conversations.<br />
<br />
<h3>
Wrap Up</h3>
<div>
<br /></div>
It was a long, long day but even though I was exhausted at the end, I left truly inspired. There were so many examples of people in tech communities helping people find better opportunities. It was also amazing to see government officials so engaged and knowledgeable about what we do. I totally would be on board for a Megan Smith 2016 presidential run!<br />
<br />
<div style="text-align: center;">
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/DF_5NgLoZyI" width="560"></iframe>
</div>
<div style="text-align: justify;">
<br /></div>
You can see the morning session on <a href="https://www.youtube.com/watch?v=DF_5NgLoZyI">YouTube</a> and listen at the 1:25:45 mark for Megan to give a shout out to Bryan's <a href="http://nashfp.org/">Functional Programming group</a> and my <a href="http://agilenashville.com/">Agile Nashville group</a>. You can also see all my photos from the trip <a href="https://www.flickr.com/photos/131943383@N08/sets/72157652036894861/">here</a>.<br />
<br />
<h3>
Thanks to Everyone Involved</h3>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwNp_GcphOu9nFoFDToG-ALc58DaFMwwDe_orDPV6FLp9tYrWTUbjD4Bf43QfrTaXkiBN-GNPsgv4E2Xaudl5lf5gVCFIdLSP70Joxy0PS6JU53j13DIlmCEmh6Z9J95u1SlwV/s1600/wh-meetup-peeps.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwNp_GcphOu9nFoFDToG-ALc58DaFMwwDe_orDPV6FLp9tYrWTUbjD4Bf43QfrTaXkiBN-GNPsgv4E2Xaudl5lf5gVCFIdLSP70Joxy0PS6JU53j13DIlmCEmh6Z9J95u1SlwV/s1600/wh-meetup-peeps.png" height="128" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
Thanks to Megan, her team at the White House, and Meetup.com for putting on such a great event!<br />
<br />
Thanks to the Nashville Technology Council for recommending me for the meetup, and my awesome management at Holland Square who enthusiastically footed the bill for me to go!<br />
<br />
Thanks to Bryan Hunter for being my partner in crime and to Sal Novin for rounding out a kick ass Nashville delegation!<br />
<br />
Big thanks to my wife for not killing me when I sprung this trip on her last minute!<br />
<br />
Thanks to all the new people I met who inspired me with their stories!<br />
<br />
Let's keep this going and hopefully I'll see everyone at the next White House tech meetup!<br />
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-11830279344372652492014-10-21T16:36:00.000-05:002015-04-20T17:50:24.231-05:00BarCamp Nashville 2014 Recap: Pie, chimps, and more!<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6ttuOjsg-VT4S3_UEATj3dqiJ5dUCbHIzkPprcmV5QnbhFr5tDwkWUQ5WjWG53XGmHPH5y-jVEOT3NZ0GLeg2GUE9lgjabfggDBdZVZ4LXIw2wzAnJS2VwAfWPlUZGGPMvlDS/s1600/barcamp-nashville-2014.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6ttuOjsg-VT4S3_UEATj3dqiJ5dUCbHIzkPprcmV5QnbhFr5tDwkWUQ5WjWG53XGmHPH5y-jVEOT3NZ0GLeg2GUE9lgjabfggDBdZVZ4LXIw2wzAnJS2VwAfWPlUZGGPMvlDS/s1600/barcamp-nashville-2014.png" height="240" width="400" /></a></div>
<br />
<a href="http://www.barcampnashville.org/bcn14/">BarCamp Nashville 2014</a> is in the books and it was a good one.I personally had a great, very well rounded experience in that I got to attend some great sessions, met and talked to some new and interesting people, gave my own presentation, and then got to cap of the night by jamming at the after party. That was a pretty good day.<br />
<br />
I've run a few events and conferences myself so I know how much organization goes into them and how hard it is especially with only volunteers. My hat is off to the organizers for doing such a good job. Here's a quick recap of my experience.<br />
<br />
Special shout out to <a href="https://twitter.com/ericnear">Eric Near</a>, <a href="https://twitter.com/chuckbryant">Chuck Bryant</a>, and <a href="https://www.linkedin.com/in/audreyhunter">Audrey Hunter</a>!<br />
<h2>
The Venue</h2>
<div>
I was sad about not going back to <a href="http://soundchecknashville.com/">Sound Check</a> but that is mainly for my selfish reasons of loving to play music there. <a href="http://deavor.co/">Deavor </a>was a very cool setting, truly reflecting Nashville's IT community environment. While a little cramped, I think the space was very effectively used. We were lucky with the good weather so that people could mingle and eat outside during breaks and lunch.</div>
<div>
<br /></div>
<div>
I was mainly in the Mud room most of the day and it was a good space for both presenting and attending a session. I was told there are plans to expand that space so that it may open it up more for next year. It would be nice to have some spaces outside of the session rooms for people to lounge and talk (maybe even some white boards and flip charts for some impromptu sessions?).</div>
<div>
<br /></div>
<h2>
The Sponsors</h2>
<div>
With a free event like this, sponsors make it happen and there were some great companies helping out this year. It was nice that it was never an in-your-face sales pitch with any of them. While they all do want to get their brands out there and tell you about their services, they mainly just want to support the local IT community since a rising tide floats all boats.</div>
<div>
<br /></div>
<div>
Special note on the best SWAG of the conference. <a href="http://mailchimp.com/">MailChimp </a>gave away a ton of free knitted monkey caps that were a huge hit. Everyone was wearing them and sharing them on social media. Very well played, MailChimp! Other sponsors should take notice and remember that probably 80% of what attendees get in their bags get's tossed with barely a glance. Be creative in trying to get their attention and you will be surprised how well it can pay off!</div>
<div>
<br /></div>
<h2>
The Sessions</h2>
<div>
One of the things I love most about BarCamp is the diversity of the topics. There is something for just about everyone from hard core coding, web development, social media, product marketing, etc. <a href="http://www.tysoncadenhead.com/">Tyson Cadenhead</a> did good job showing us how to use Meteor.js and I loved <a href="https://twitter.com/bryanhuddleston">Bryan Huddleston's</a> session on the rising IT sector in Nashville. Unfortunately I had to miss some of the sessions I really wanted to see to get the band setup for the after party, but I heard lots of good feedback about all of the presentations.</div>
<h2>
The People</h2>
<div>
Networking and meeting new people is a big part of this conference and this year's was no exception. I think the smallness of the venue actually helped in that respect in that I was often just standing next to a group of people who spontaneously starting chatting.</div>
<div>
<br /></div>
<div>
One great experience was chatting with a guy that had attended one of my presentations about his ideas for a start up and then several people rolling by and adding their own spin to the conversation ranging from VC funding, to MVP, to hiring good developers, to getting your brand out.</div>
<div>
<br /></div>
<div>
I love that most of the people I talked to were starting their own business. I cannot claim to be very entrepreneurial, sticking with being the guy they call to get stuff done, but I have a ton of respect for those who risk it all to get their own idea out there. The variety of ideas was also very interesting from beauty/barber shop management to apps for behavioral change. I wish all of them luck and hope they make millions (just don't forget the guy you talked to when you just started out!). </div>
<div>
<br /></div>
<div>
A thought I had for next year would be a bulletin board where some of these start ups could post something like "I need help with (XYZ)" and then some open space sessions could be organized around people who have that same need and people who might be able to help out.</div>
<h2>
The After Party</h2>
<div>
I was initially worried about the after party in the parking lot due to some threatening clouds (please do not rain on my Fender Stratocaster!), but there was no rain and it was only slightly chilly. The stage was excellent and the food and beer was delicious (<a href="http://www.musiccitypiecompany.com/">Music City Pie'</a>s Cajun pot pies rule!). </div>
<div>
<br /></div>
<div>
A bit of self criticism here in that the band tried some new, lesser known songs in our set which did not get everyone going initially. We will work on that for next year! Once things got going, and the beer started flowing, there were some fun moments with a rousing sing-a-long of the 4 Non Blondes "What's Going On?" and <a href="https://twitter.com/gainesk">Gaines</a> rapping to Ice Ice baby with <a href="https://twitter.com/cpound">Scott Walters </a>laying down the fiddle (where else but Nashville?).</div>
<h2>
The Wrap Up</h2>
<div>
BarCamp continues to be a great technology event for Nashville and I am already excited about next year's possibilities. I encourage you to attend, speak (even if you think you have nothing to say), mingle, and have fun!</div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-50951856444803251742014-06-10T11:11:00.001-05:002014-06-10T11:11:11.148-05:00Interview on InfoQ.com<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxNAFgrxp1HeF0uS50LG3xRO4rb6w5AMIORw6tAcKdsw3MexAFCX9-zo6cED7uozWTJwgKfXKataLMoXGwA7HJTdQu_oU-rACj2E0ldtzyoNULCgUs1cFDBA52MITldaaJHYeS/s1600/logo_bigger.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxNAFgrxp1HeF0uS50LG3xRO4rb6w5AMIORw6tAcKdsw3MexAFCX9-zo6cED7uozWTJwgKfXKataLMoXGwA7HJTdQu_oU-rACj2E0ldtzyoNULCgUs1cFDBA52MITldaaJHYeS/s1600/logo_bigger.jpg" /></a></div>
<a href="http://www.infoq.com/author/Ben-Linders">Ben Linders</a> from <a href="http://infoq.com/">InfoQ.com</a> interviewed me about my "<a href="http://www.informit.com/store/scrum-fundamentals-livelessons-video-training-downloadable-9780133748529">Scrum Fundamentals</a>" video on <a href="http://informit.com/">InformIt.com</a>. We covered why we made the video, a few of the topics covered, as well as some other resources to get a basic understanding of Scrum. Check it out <a href="http://www.infoq.com/articles/video-lesson-introducing-scrum-agile">here</a>!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-18545351154098029552014-01-08T20:44:00.002-06:002014-01-08T20:44:44.563-06:00Speaking at Memphis Agile User Group Jan. 30th "Agile Quality Assurance: The Long Ugly Tale of How We Got Better"I will be speaking at the Memphis Agile User Group on Thursday, January 30th. This is the same presentation I did at the<a href="http://agile2013.sched.org/event/13eee3dc5271ca6922304fc2a243b12d#.Us4MnfRDuSo"> Agile 2013 conference</a> last year called <b>"Agile Quality Assurance: The Long Ugly Tale of How We Got Better"</b> which got a great response. You can register <a href="http://www.meetup.com/memphis-technology-user-groups/events/155232852/">here</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz9cJBBIkyQFrQ-4_oPrBaFSjQTQqJGk56zF6zasRnmI15G93W6ioLsD1wW0dojpW_bt5aXA6QJTNU72pdg4ZK9isaRvwpWRoKD_DYrcByF6XuEE6DRQtz6tivyvPEDgFryzGw/s1600/memphis.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhz9cJBBIkyQFrQ-4_oPrBaFSjQTQqJGk56zF6zasRnmI15G93W6ioLsD1wW0dojpW_bt5aXA6QJTNU72pdg4ZK9isaRvwpWRoKD_DYrcByF6XuEE6DRQtz6tivyvPEDgFryzGw/s1600/memphis.jpg" height="208" width="320" /></a></div>
<br />
The session covers my experience at a past employer helping them adopt Scrum over the course of 2+ years and all of our trials and tribulations during that transition. I played many roles over that span including developer, QA manager, Scrum Master, and Agile coach and the presentation covers man of those aspects but has a strong focus on QA.<br />
<br />
I lived in Memphis for about 5 years in the 90s and always love to go back. Anyone who is up for a trip down to Beale afterwards should let me know.<br />
<br />
See you there!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-78744219451884666322014-01-08T11:52:00.000-06:002014-01-08T11:52:10.777-06:00My Scrum Fundamentals Video Goes Live This WeekI recently had the pleasure of working with the crew from <a href="http://www.pearson.com/">Pearson Publishing</a> and created an online training video called "Scrum Fundamentals". If you are a Safari Books Online subscriber you can already access it <a href="http://my.safaribooksonline.com/9780133749076">here</a>, and it is available for purchase on InformIt.com <a href="http://www.informit.com/store/scrum-fundamentals-livelessons-video-training-downloadable-9780133748529">here</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBjnZZxoSfXGMgskIOeA0NsbVN7LRKOSYtJlYMDQkv2VGnIT2Xr2i-5TzBMJ7jxs0Kks_zC7S3LGZAAwnRra3CN2aM1yIXT1Cs_ftLEgbWNTleQQIUyFw8ioGqu41kAa3M9pT0/s1600/LiveLessons.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBjnZZxoSfXGMgskIOeA0NsbVN7LRKOSYtJlYMDQkv2VGnIT2Xr2i-5TzBMJ7jxs0Kks_zC7S3LGZAAwnRra3CN2aM1yIXT1Cs_ftLEgbWNTleQQIUyFw8ioGqu41kAa3M9pT0/s1600/LiveLessons.png" height="222" width="400" /></a></div>
<br />
<br />
While I have been training, coaching and speaking on Scrum for years now, it was a totally new experience filming a video of this type. My producer <a href="https://twitter.com/IreneAMagafan">Irene Magafan</a> from <a href="http://www.rhedpixel.com/">RHED Pixel</a> was a huge help it getting me through the three day shoot and the rest of the team did a great job filming and editing the final result.<br />
<br />
This video has over 3 hours of content from my <a href="http://hollandsquare.com/agiletraining.html">"Agile Software Development with Scrum"</a> training class we deliver at <a href="http://hollandsquare.com/">Holland Square Group</a> and covers the following topics:<br />
<br />
<ul>
<li>History of Agile and its values and principles</li>
<li>Basics of Scrum including roles, artifacts, and events</li>
<li>Starting a Scrum Project</li>
<li>Managing your Product Backlog</li>
<li>Writing good User Stories</li>
<li>Agile Estimation and Planning</li>
<li>Prioritizing work</li>
<li>Working as a Scrum Team</li>
<li>Planning for a Sprint</li>
<li>Executing and tracking work in a Sprint</li>
<li>Agile engineering principles and practices</li>
<li>Integrating QA into Scrum</li>
<li>Dealing with bugs</li>
<li>Delivering a product increment</li>
<li>Inspecting and Adapting your process</li>
</ul>
<div>
I am very happy with how it came out and I think it gives a solid overview of implementing Scrum. It's a great option for educating team members new to Scrum where sending them to instructor led training is not an option. You may also want to incorporate it into your onboarding process and is something you can use with off-shore teams as well.</div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-2496943954136948112013-08-13T20:28:00.000-05:002013-08-13T21:04:36.064-05:00Agile 2013 RecapSo the Agile 2013 conference is in the books and we could not have asked for a better experience for my home town of Nash Vegas. I heard multiple comments from newcomers as well as the veterans that this was one of the best and I have to wholeheartedly agree. Here's a quick recap from my personal experience:<br />
<h2>
The Sessions</h2>
<div>
<br /></div>
<h3>
<a href="http://agile2013.sched.org/event/1be367798d887898ff35b97f5fa5d9d1#.UghIP5KsiSo">Estimating Business Value</a> (<a href="https://twitter.com/ChrisSims">Chris Sims</a>)</h3>
<div>
This was a very fun session with some good, hands-on exercises. I came away with some validation of techniques I have been using previously and some new ideas on how to train and coach on the subject moving forward. I had a forehead slapping moment as I realized his primary technique was almost exactly like what we do with sizing stories and I wondered why I have never translated that over to assigning business value. Chris is very engaging and made it a fun experience.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVBfo0g1EqMSijvIRW8t9rlCkHxzLgQPhtr9cMI8mnXYpvljO8AwvGLv0XC1ngukNm-Mh67U7amGyNvgmOaQsdfNeCxt73cDaXLjQPg0o7LKrkRB7xuY2iRY8AXum3LMZjvb2O/s1600/IMG_1032.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVBfo0g1EqMSijvIRW8t9rlCkHxzLgQPhtr9cMI8mnXYpvljO8AwvGLv0XC1ngukNm-Mh67U7amGyNvgmOaQsdfNeCxt73cDaXLjQPg0o7LKrkRB7xuY2iRY8AXum3LMZjvb2O/s400/IMG_1032.JPG" width="400" /></a></div>
<br /></div>
<div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTwUaQhiDHNLg9pfK0q0Ka5uD-03giv5_8YVR4bqCq9sKNyma8WhnNy-iIuC6jWeAMsWab6gwzI8xs8ZAervxDAHjXPT_xE3uHAMFF8V2P_b577TvJvwwZ9s9iwf9cwtCIO1-L/s1600/IMG_1034.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTwUaQhiDHNLg9pfK0q0Ka5uD-03giv5_8YVR4bqCq9sKNyma8WhnNy-iIuC6jWeAMsWab6gwzI8xs8ZAervxDAHjXPT_xE3uHAMFF8V2P_b577TvJvwwZ9s9iwf9cwtCIO1-L/s400/IMG_1034.JPG" width="400" /></a></div>
<br /></div>
<div>
<h3>
<a href="http://agile2013.sched.org/event/be897565e0ab0c3af9dfc5b280db9eef#.UghJi5KsiSo">Agile Planning & Project Management</a> (<a href="https://twitter.com/mikewcohn">Mike Cohn</a>)</h3>
</div>
<div>
The session I was headed to got cancelled and I popped into this presentation with a friend. I have seen Mike present on this material before and while there were a few new twists, it was basically the same information. While this was not new to me (I am a big Cohn fan already), it was a great session for anyone new the idea of User Stories, Story Points, Planning Poker, and Release Planning.</div>
<div>
<br /></div>
<h3>
<a href="http://agile2013.sched.org/event/f1b2a7fbc1214f16e53f6623917d4945#.UghKhJKsiSo">Enterprise Product Owner's Challenge: Managing Networks of Backlogs </a><br />(<a href="http://www.scaledagileacademy.com/members/?id=16918382">Alan Goerner</a>)</h3>
<div>
While he never said it in the session, much of this content came from the much contested<a href="http://scaledagileframework.com/"> Scaled Agile Framework (SAFe)</a>. And while Ken Schwaber<a href="http://kenschwaber.wordpress.com/2013/08/06/unsafe-at-any-speed/"> blasted it</a> (and those who seek to sell it), I was validated in that some of the techniques for taming an enterprise backlog that he suggested were ones I have reached organically with multiple clients. I understand the mistrust of big frameworks promising the world as long as you use their software and services (I have been bit by that snake a time or two before..ahem..RUP), but I hate that it seems the good was thrown out along with the bad as the whole thing was often entirely dismissed. To say this was a sore subject among the attendees is an understatement. While chatting about it with some friends and <a href="https://twitter.com/arlobelshee">Arlo Belshee</a> (here let me pick up that name you dropped) at the Valtech conference party, a SAFe supporter stormed off from our table. </div>
<div>
<br /></div>
<h3>
<a href="http://agile2013.sched.org/event/71913c8bbd3e82750797b485b59e0d8b#.UghND5KsiSo">Agile at scale at Spotify</a> (<a href="https://twitter.com/joakimsunden">Joakim Sundén</a>, <a href="https://twitter.com/anders_ivarsson">Anders Ivarsson</a>) </h3>
<div>
I had already read the excellent <a href="http://ucvox.files.wordpress.com/2012/11/113617905-scaling-agile-spotify-11.pdf">white paper on this</a>, but it was nice to hear it direct from the source and there was plenty of "between the lines" content. They basically implemented a more Agile friendly twist on the matrix organization with a focus on the product and features. I've done variations of this in larger organizations, but this is definitely a go to example. Who wouldn't want to be on a squad as part of a tribe in their particular guild? I also love their office setup with each squad having its own development area along with a dedicated meeting space as well. This <a href="http://www.youtube.com/watch?v=ZZFc9Epznuc">video </a>by Anders has some of the same content.</div>
<br />
<div>
<h3>
<a href="http://agile2013.sched.org/event/26a8bf5b5750408807f5fb38893bbb00#.UgqyxZKsiSo">LEGO TDD and Refactoring</a> (<a href="https://twitter.com/billygarnet">Bryan Beecham</a>)</h3>
</div>
<div>
Bryan Beecham's (with special guest <a href="https://twitter.com/mike_bowler">Mike Bowler</a>) session was the most fun. We were separated into tables with bags of LEGOS and he totally <a href="http://nickshell1983.files.wordpress.com/2009/06/mr_miyagi-sticks.jpg">Miyagied</a> us by having us make stuff with them and before you knew it, you were practicing TDD. It was an excellent exercise for non-developers (but there were several developers there as well and we all had a great time). I sat with Bryan and <a href="https://twitter.com/tottinge">Tim Ottinger</a> while they tweaked the exercise and it was very cool to see it evolve. Here is a <a href="http://www.slideshare.net/BillyGarnet/tdd-and-refactoring-with-lego">link </a>to Bryan's slides for the session.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUG_5toXTFoVIb7G2NItxXUnE2S1zBPM2xUzNy5ZUQAFibb_eePmxqu2W-paZv9Eh3TPnnyTmgeXAtC_9NrtTTNkUl_B1iinEn3iaN6q-qET7MESOZDzt6d8ca849jVMytmynG/s1600/IMG_1043.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUG_5toXTFoVIb7G2NItxXUnE2S1zBPM2xUzNy5ZUQAFibb_eePmxqu2W-paZv9Eh3TPnnyTmgeXAtC_9NrtTTNkUl_B1iinEn3iaN6q-qET7MESOZDzt6d8ca849jVMytmynG/s400/IMG_1043.JPG" width="298" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOxRG3Gkx1wcZE6736vT-U8Py3fddNcaEZqRJXKziB8XflGlTtDS3abLTurltBMbzmchbDxEUT9_CnFEK7pNhyphenhyphenBvjxTw7CylymBcKA8TX-x_ETXY3xWKRSBMWYOoIX7I98-aZl/s1600/IMG_1045.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhOxRG3Gkx1wcZE6736vT-U8Py3fddNcaEZqRJXKziB8XflGlTtDS3abLTurltBMbzmchbDxEUT9_CnFEK7pNhyphenhyphenBvjxTw7CylymBcKA8TX-x_ETXY3xWKRSBMWYOoIX7I98-aZl/s400/IMG_1045.JPG" width="298" /></a></div>
<div>
<br /></div>
<div>
<h3>
<a href="http://agile2013.sched.org/event/2f5f6fa97c1d65b929e46c5833541da8#.Ugq0JJKsiSo">Story Maps, Slices, Customer Journeys and Other Product Design Tools</a><br />(<a href="https://twitter.com/davidhussman">David Hussman</a>) </h3>
</div>
<div>
While this session was not what I originally thought, it was definitely interesting and informative. I have used mind mapping techniques for eliciting stories and to help slice them into small, workable components before. This was a new technique with a bit more structure that I am looking forward to trying out. This<a href="http://vimeo.com/14499975"> video</a> is fairly close to the content David covered. He used a product called <a href="https://www.cardboardit.com/">CardBoardIt </a>that was an online version of how he did story mapping that might be something for distributed teams to try.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAM-yHYxCbSi1Exut69DNHUsXMDwUi01JdJ3rUPQtap9A0t0Eb6Z-gLCGKvgNhWH1PtL4Tr0tpO92ItvCvmu4_2wonYpK1HqPe2aMELgrnA33en_ePTRFaHjq0OksS0ZxbGU68/s1600/FXy-oWJzflu-p07cwRpbtOWzIwRHEbtiCte4FWATTI0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAM-yHYxCbSi1Exut69DNHUsXMDwUi01JdJ3rUPQtap9A0t0Eb6Z-gLCGKvgNhWH1PtL4Tr0tpO92ItvCvmu4_2wonYpK1HqPe2aMELgrnA33en_ePTRFaHjq0OksS0ZxbGU68/s400/FXy-oWJzflu-p07cwRpbtOWzIwRHEbtiCte4FWATTI0.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
The Open Jams</h2>
<div>
Sometimes the best stuff you get is not from the presentations, but from the ad-hoc sessions called Open Jams. In the middle of the conference area was a big space with tables, chairs, flip charts, and white boards where groups could get together and talk about anything that tickled their fancy. If it strays from what interests you, get up and go to another one! I popped in a few of these.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZu0_n8FXwucGLvgszw5nhsHkhtH9G_4nI3UdZmTWU9HAkjfSRwuldWPEv3oSi1dEF0-G1G5bdbtanqCay1izTE1NxigJGZRuaNBrr9FFFOxhDJG4H-EWIGuU1-Xl_JXfMu4Hp/s1600/IMG_1038.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZu0_n8FXwucGLvgszw5nhsHkhtH9G_4nI3UdZmTWU9HAkjfSRwuldWPEv3oSi1dEF0-G1G5bdbtanqCay1izTE1NxigJGZRuaNBrr9FFFOxhDJG4H-EWIGuU1-Xl_JXfMu4Hp/s400/IMG_1038.JPG" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEHq-K3ZJJEWiYVXFQswkLr_maFikjK1hLPdhldMwBjb5i9Dev6ssh7YumQOLO4Cm38jOoO2v9Z8hyPOXQ3_mz3dBGMPYbyQJ9iTn1UoQ6zHYnYS3GnaquZI3y1u-C-kKGooQA/s1600/uCIWwcme7McvgdqBaL8JPIzRnZniX889ihoZHj7sAoI.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEHq-K3ZJJEWiYVXFQswkLr_maFikjK1hLPdhldMwBjb5i9Dev6ssh7YumQOLO4Cm38jOoO2v9Z8hyPOXQ3_mz3dBGMPYbyQJ9iTn1UoQ6zHYnYS3GnaquZI3y1u-C-kKGooQA/s400/uCIWwcme7McvgdqBaL8JPIzRnZniX889ihoZHj7sAoI.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
This open jam was all about how to get teams and companies to be more collaborative. The guys from Spotify, Arlo Belshee, and <a href="https://twitter.com/DianaOfPortland">Diana Larsen</a> were there just to name a few. It was a very interesting discussion that I wished I had videoed. Each time we talked about some goal, impediment, or action around collaboration we kept coming back to trust.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfcIZ9x9bnAEVj8qVSFYcjmuDUt-zuykCIFMt01ATZZr5gAgWSP7zAyR9m1i3x0-TdHIuaYJb1qLSeXkiLqk_nY4v4jWbNh5IrG5caXmRrVuybWojRYzVj2OBR5CUbEB9tOfw/s1600/UdfypUDxJiETT9yN75HRaFYLwMHu6R_hHZ1I4kBJtrs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQfcIZ9x9bnAEVj8qVSFYcjmuDUt-zuykCIFMt01ATZZr5gAgWSP7zAyR9m1i3x0-TdHIuaYJb1qLSeXkiLqk_nY4v4jWbNh5IrG5caXmRrVuybWojRYzVj2OBR5CUbEB9tOfw/s400/UdfypUDxJiETT9yN75HRaFYLwMHu6R_hHZ1I4kBJtrs.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
As I mentioned before I sat with Bryan Beecham and Tim Ottinger while they were tweaking the TDD LEGO game and Tim kept rattling off study after study that applied to the various topics we covered. He has a wealth of knowledge that I wish I had had more to talk through with him. One that stuck with me was <a href="http://www.davidrock.net/files/NLJ_SCARFUS.pdf">SCARF </a>which is about how people interact with each other. Guess what it all started to boil down to? Trust. (Hmmm, I sense a theme.)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9BReN3yVSEYKClOrvLUqwP7WrKjo6NcckXFGRo_gDdLsD4wpN6McNHvB6-y7JSL8Gt2-zjs2PLxmT31w7wUPwRv3ieahQhueOHwTT_sZDVmYmU0ynow1I3z_qbZ7IfQwlL4OP/s1600/UtvqlueGY7W2RCniu8CDLXBfNitcbtqIxxQlMWtApms.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="212" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9BReN3yVSEYKClOrvLUqwP7WrKjo6NcckXFGRo_gDdLsD4wpN6McNHvB6-y7JSL8Gt2-zjs2PLxmT31w7wUPwRv3ieahQhueOHwTT_sZDVmYmU0ynow1I3z_qbZ7IfQwlL4OP/s320/UtvqlueGY7W2RCniu8CDLXBfNitcbtqIxxQlMWtApms.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
I walked into another group midway through their discussion about the language of learning. Diana Larsen was holding court and it was very enlightening how she mapped some of the higher concepts to concrete Agile practices. I asked her if the content was online somewhere and while he particular topics were not, she pointed me <a href="https://leanpub.com/gettingstartedlanghunt">here</a>. </div>
<div>
<br /></div>
<h2>
Socializing</h2>
<div>
Another great part of the conference is getting to unwind and hang out with everyone. There were some great events ranging from a simple dinner with a few new friends to an epic party on the Shelby Street Bridge hosted by <a href="http://leankit.com/">LeanKit</a>.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn9rwITZ5S6zH990c19fwl-DgsClSYSQMGCfEDpOFlsxh3wQF0OOcW9cZPiJJYt-h8jbpJBMg9kuKlOub4CRDfqLKf2WzRTPEreLTPrTw6WnqSG2_MVb7fNpvDkHj7RARTO8A3/s1600/yQz6-gncwhlAaYhLKzcawdxeXyGJ1OIM-Ot8D6T0eqU.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhn9rwITZ5S6zH990c19fwl-DgsClSYSQMGCfEDpOFlsxh3wQF0OOcW9cZPiJJYt-h8jbpJBMg9kuKlOub4CRDfqLKf2WzRTPEreLTPrTw6WnqSG2_MVb7fNpvDkHj7RARTO8A3/s400/yQz6-gncwhlAaYhLKzcawdxeXyGJ1OIM-Ot8D6T0eqU.jpg" width="400" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjQ-JLcEO4KMP_d0PSuZIxtefnom33-ad7M1CnNKDq1L7rYK0dv6LaprhJnFKC3ESsPx4wn5XrsJhb7yY88czbZKVpgNsgNXxPJaIZ7E4SzenBQ_iuSGhE9uSo66ips5jca1th/s1600/WtoULWQfzKgHcOYlGIBGshxfS9kKbrLfmF03OiLqXVY.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjQ-JLcEO4KMP_d0PSuZIxtefnom33-ad7M1CnNKDq1L7rYK0dv6LaprhJnFKC3ESsPx4wn5XrsJhb7yY88czbZKVpgNsgNXxPJaIZ7E4SzenBQ_iuSGhE9uSo66ips5jca1th/s400/WtoULWQfzKgHcOYlGIBGshxfS9kKbrLfmF03OiLqXVY.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih7aJdCdEtY5n0JR7snTmmqVQkIvdq616waVJ93MnVuMsjRniDSBTFJPOILvY27JULB_fqOp-OO0wJsra5jYdSCzqEKXos1dsvnsl7g5SAaxJ6LfNC_licAQHr8g0iGHKd5Hhj/s1600/gYsXVKgtsI5As9SFDZEGgIR_2ZHcfX_1dqFTHYVrGss.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="266" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEih7aJdCdEtY5n0JR7snTmmqVQkIvdq616waVJ93MnVuMsjRniDSBTFJPOILvY27JULB_fqOp-OO0wJsra5jYdSCzqEKXos1dsvnsl7g5SAaxJ6LfNC_licAQHr8g0iGHKd5Hhj/s400/gYsXVKgtsI5As9SFDZEGgIR_2ZHcfX_1dqFTHYVrGss.jpg" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9bzuh09kLd00L6B1QoVMXj-ZfdXQML6MhGN9znznilNs6v7_3L1roj4ziuSxjiCCiMhsnxoOeIVNv2rBqNgO0SYVd1fWg63UsaBgOQGHtZNLKoP4P-CmQMwv5_dD89XAzV_as/s1600/MeAndBryanBeecham.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="300" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9bzuh09kLd00L6B1QoVMXj-ZfdXQML6MhGN9znznilNs6v7_3L1roj4ziuSxjiCCiMhsnxoOeIVNv2rBqNgO0SYVd1fWg63UsaBgOQGHtZNLKoP4P-CmQMwv5_dD89XAzV_as/s400/MeAndBryanBeecham.jpg" width="400" /></a></div>
<br />
<h2>
Online Content From Agile 2013</h2>
<div>
<a href="http://www.bigvisible.com/">Big Visible</a> interviewed a ton of the speakers and other thought leaders at the conference and you can find those videos and podcasts <a href="http://vimeo.com/album/2490672/page:1/sort:preset/format:thumbnail">here</a>.</div>
<div>
<br /></div>
<div>
Most the pictures in this post came from<a href="http://about.me/doc.list"> Steven List</a> and are posted <a href="https://www.dropbox.com/sh/32cv4o0i9q1ofbc/w1UTlPiiZn#/">here</a>.</div>
<div>
<br /></div>
Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-13893767659771510182013-07-08T21:34:00.001-05:002013-07-08T21:34:25.163-05:00Develop What's Valuable First<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgijsvYRndsQH1lQMmQGFhK8RtHPoMbYo3tfMh-DEK8fz7MGD73zG3cCZrdvHJ4R0z2Ylzm3srKwGJzq6tm9BhIaQlmjdrG-LzzBO4uQxk2CumIXfALUN79AIcOeu03L-G15-iB/s1600/61LIy-y9A4L.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgijsvYRndsQH1lQMmQGFhK8RtHPoMbYo3tfMh-DEK8fz7MGD73zG3cCZrdvHJ4R0z2Ylzm3srKwGJzq6tm9BhIaQlmjdrG-LzzBO4uQxk2CumIXfALUN79AIcOeu03L-G15-iB/s320/61LIy-y9A4L.jpg" width="320" /></a></div>
<br />
If you were developing a new application where would you start? Would you first create all the supporting frameworks for security, logging, etc.? Would you create the login screen?<br />
<br />
Most of the time when I've worked with new Scrum teams, they initially order the Product Backlogs sequentially along with the flow of the application: Frameworks, Login, User Administration, etc. This seems like a natural flow to creating components since it normally maps to the natural flow of the application itself to some extent.<br />
<br />
But one of the basic principles of a Product Backlog is to prioritize by value. What do we mean by value? That could be many things such as ROI, risk, regulatory compliance, etc.<br />
<br />
So, is the logging framework a highly valuable backlog item? What's the ROI? Little to none unless your company's primary business is selling logging frameworks. What about risk? Do we mean that it is risky to NOT implement a logging framework? No, when we push items to the top based on risk it is because we are not sure of the technology we are using or the approach we are taking so we want to implement the item sooner so that we can prove the technology or concept early on in case we have to change. So is a logging framework risky? Hopefully not. If you are a developer, with any kind of experience, you have implemented logging countless times and probably know a few out of the box frameworks you can easily integrate. So, it looks like we are simply building the logging framework first because it is our idea of a natural flow of building software applications.<br />
<br />
But if we build all of the support frameworks, and the login page, and user management, etc. first, then when do we get to the real functionality that we are actually selling to our customers? Probably late in the game and uncomfortably close to our deliver date. Which means if we have any issues with these features we have less time to react to them and more likelihood we will have to work nights and weekends to "get er done" and probably have some quality issues once we do deliver.<br />
<br />
So then what should we build first?<br />
<br />
Ask yourself- 'what is the main feature set your customers are going to be paying for?' Build that first.<br />
<br />
"What? You're crazy! I can't build that feature until I have all that other stuff you mentioned before."<br />
<br />
First, I am not crazy, my mother had me tested.<br />
<br />
Second, you can build those types of features first. You will have to unlearn a good bit of what you were taught as a tried and true architect in the layered application design. I am not saying you will not eventually build those things because obviously most of it is something you need to deliver a customer ready application.<br />
<br />
I had a client in the financial services industry who was building a new product. Their initial user story sessions started exactly as I described above where the group started listing off the features they needed to build in the order of the application flow with several framework stories at the very top. I asked them what was the primary feature their customers were paying for in the application and they said transferring money from X to Y institution. I pointed out that this would be the best candidate for one of their first stories to tackle and after some convincing they caught on and ran with it.<br />
<br />
Once we started breaking that down into smaller stories (since the original one was identified as an Epic) they once again start prioritizing the components of the feature sequentially: create a new X institution, list existing X institutions, create a new Y institution, etc. The story for the actual transfer of funds from X to Y was fairly far down the list. I once again asked what the most valuable part of this feature was to their customers and it was unanimous for the funds transfer.<br />
<br />
Then the common questions rose up like: "How can we build the transfer from X to Y when we do not have the functionality to manage X and Y?" Do you sell X and Y management solutions to your customers? "No." You can create the simplest solution to populate X and Y even if it is just a database script. This way you can concentrate of getting the actual transfer part correct and demo that to your stakeholders and customer representatives first. That way you get feedback right off the bat and expose any implementation issues early. Then you can start to get to the other items such as the ability to add X and Y, login, logging, etc.<br />
<br />
"You're crazy! How can we design the application architecture without knowing how we are going to implement security, logging, etc.?"<br />
<br />
First, I am not crazy, the voices in my head said so.<br />
<br />
Second, when building applications incrementally in an Agile environment your should follow the practice of <a href="http://www.mountaingoatsoftware.com/blog/agile-design-intentional-yet-emergent">emergent design</a> where you build applications with just enough framework to support the current functionality but using an approach that allows for extension or replacement of these frameworks in the future. This approach includes the principles commonly called <a href="http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod">SOLID </a>that help build decoupled, independent systems. Understand that there may be some level or rework, but just as we want to embrace change in the requirements in an Agile environment, you have to accept a certain amount of change in your architectural approach as well. We want to build features first and just enough framework to support them now and in the foreseeable future. Too many architects (me included) have gone all "mad scientist" when building glorious architectures that solve all the world's problems (even if they did not ask us to).<br />
<br />
To further illustrate my point we talked to another team that had implemented Scrum on a previous project, but had built their features in that logical sequence. They were running on a 4 sprint release cycle and when they spent the first 3 sprints building frameworks and supporting functionality, they found that they had issues when trying to implement the core user functionality. By then it was too late because they were in their last sprint before their release. So what happened? They missed that release date and lost half the team in the next sprint to finishing the functionality. On top of that the rush to get it done left them with a ton of production bugs.<br />
<br />
Now all of this is easy to say and harder to execute. Slicing up features this way takes practice since it often goes against your historical methods. While emergent design and SOLID principles sound great for building these types of systems, they do demand a certain level of development expertise and experience. But it is achievable and allows you concentrate on delivering your most valuable items first without weighing your application down with over bloated design from the start.<br />
<br />
So when you start to prioritize your Product Backlog, remember to concentrate on value and not fall back on sequential flow.Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-21327984.post-54265488825952609512013-06-11T10:32:00.000-05:002013-06-11T10:32:17.327-05:00I'll Be Speaking at Agile 2013<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis6FFOQb3DfO3AeWc65wko9cYpKoozye0hvKQzrlKrrzhadHyv-hIvwrxGqvI6AGNGfYoD0erkW5WoNWlcsirja_MKBfvaCE07Om6mIrnI41b99CUxh9uclTgFxClzlXL6XxW0/s1600/Agile2013_Speaker_banner.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEis6FFOQb3DfO3AeWc65wko9cYpKoozye0hvKQzrlKrrzhadHyv-hIvwrxGqvI6AGNGfYoD0erkW5WoNWlcsirja_MKBfvaCE07Om6mIrnI41b99CUxh9uclTgFxClzlXL6XxW0/s1600/Agile2013_Speaker_banner.png" /></a></div>
<br />
The Agile 2013 conference is being held in my backyard here in Nashville (not literally!) the second week of August. I will be speaking with a former colleague of mine, Fahed Sider, on "Agile Quality Assurance: The Long Ugly Tale of How We Got Better". This session goes over our shared experience at a company that was struggling with their adoption of Scrum and how we really turned things around in the Quality Assurance department.<br />
<br />
If you are coming to the conference, I hope you can attend our session!<br />
<br />
<a href="http://agile2013.sched.org/speaker/tommynorman">http://agile2013.sched.org/speaker/tommynorman</a><br />
<br />
<br />Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-46998477540971375622013-05-16T20:53:00.000-05:002013-05-16T20:53:22.845-05:00Nerds of Rock Event, Thursday June 13th at 7 PMMy company <a href="http://hollandsquare.com/">Holland Square </a>is putting on a great event called Nerds of Rock. It will be held on Thursday June 13th starting at 7 PM. We'll have free food and free beer plus a house band laying down some tunes. If you sing or play an instrument you can jump on stage and jam with the band.<br />
<br />
We are giving away some great prizes including an iPad Mini, Apple TV, Best Buy Gift Card, and more. Follow us on Twitter at <a href="https://twitter.com/HollandSquare">@HollandSquare</a> for updates and information on prizes.<br />
<br />
Tweet about the event using the hast tag #<i>NerdsOfRock2013 </i>starting now for a chance to win one of the prizes at the event.<br />
<br />
Register now at <a href="http://www.nerdsofrock.com/">www.NerdsOfRock.com</a>. See you there!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicXZWsqElYse7T30SpETfk03M4q-nGoHRuLz01uEMcQog7lWnm8KuzU1Tl3EgBlgCl-HkQYiaw9rKBxRWJcJ2C4DKAlAhC1hymVLSH_ocq6YmPtCHaY3lG-Ft91q_45_shEQgc/s1600/Nerds-of-Rock-Poster.FINAL.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicXZWsqElYse7T30SpETfk03M4q-nGoHRuLz01uEMcQog7lWnm8KuzU1Tl3EgBlgCl-HkQYiaw9rKBxRWJcJ2C4DKAlAhC1hymVLSH_ocq6YmPtCHaY3lG-Ft91q_45_shEQgc/s640/Nerds-of-Rock-Poster.FINAL.png" width="492" /></a></div>
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-49522262154713867832013-04-10T21:29:00.000-05:002013-04-10T21:29:09.955-05:00Nashville Agile User Group - April Meeting Recap - "Agile Certifications"<div class="separator" style="clear: both; text-align: center;">
<a href="http://agilenashville.com/"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirAYaYMQblsF954Gj882udt8qZNSWCNbCJLmjLgL4L5dmUzsEFz9Dn56SclnonDjILtHTIKrJcqD9LvgHNqWfjZ6VhBQWL0A8_tWzs8Jpotpe49WVLNlBo5deINyVdxyDR0Ciw/s1600/Agile+Nashville+Logo.png" /></a></div>
<br />
<div style="color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin-bottom: 1.625em;">
<br />
We had a great turnout for the <a href="http://agilenashville.com/">Nashville Agile User Group'</a>s April luncheon and there was a good deal of information shared about Agile certifications.<br />
<br />
I said I would post some links to online resources and here they are:</div>
<h2 style="clear: both; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; margin: 0px 0px 0.8125em;">
Agile Certifications</h2>
<ul style="color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; line-height: 24px; list-style: square; margin: 0px 0px 1.625em 2.5em; padding: 0px;">
<li style="color: inherit; font-style: inherit; line-height: 1.625;"><a href="http://scrumalliance.org/pages/scrum_certification">Scrum Alliance</a> is the most well known, providing a variety of certifications for Scrum Masters, Product Owners, developers, coach</li>
<li style="color: inherit; font-style: inherit; line-height: 1.625;"><a href="http://scrum.org/">Scrum.org</a> was created a few years ago by <a href="http://kenschwaber.wordpress.com/">Ken Schwaber </a>when he broke away from the Scrum Alliance in order to make a certifications program more aimed at practitioners and not merely trainers.</li>
<li style="color: inherit; font-style: inherit; line-height: 1.625;">Recently the PMI added their own <a href="http://www.pmi.org/en/Certification/New-PMI-Agile-Certification.aspx">Agile certification</a>.</li>
<li style="color: inherit; font-style: inherit; line-height: 1.625;">The <a href="http://icagile.com/">International Consortium for Agile</a> has their own certification track (I don't know much about it) that was primarily started by <a href="http://alistair.cockburn.us/">Alastair Cockburn</a>.</li>
</ul>
<div>
<span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">There were many interesting ideas bounced around and here is a basic synopsis:</span></span></div>
<div>
<span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;"><br /></span></span></div>
<div>
<span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;"><b>Advice for an Individual Looking to get Certified</b></span></span></div>
<div>
<ul>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Scrum Alliance's CSM is the most well known certification currently. The class content is not regulated so the materials may be different between classes. There are only a handful of courses offered in the Nashville area. Ask around about trainers from people who have already attended the course. Going with a big name in the industry is not necessarily the best choice. Most said the test was realtively easy based on the content from the courses. They did start offering a certification for developers, but no one had heard much about it.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">The PMI Agile certification requires a good deal of hands on experience. Both attendees who had pursued this certification were audited and had to get signed affidavits around their experience. Overall is a bit more costly than the CSM courses, but seems to have a bit more weight behind it. The material was said to concentrate on project management aspects but covered more than just Scrum. This <a href="http://www.amazon.com/PMI-ACP-Exam-Prep-Premier-Practitioner/dp/1932735585/ref=sr_1_1?s=books&ie=UTF8&qid=1365645144&sr=1-1">book </a>was highly suggested for exam prep.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Scrum.org offers certifications that basically match all of the Scrum Alliance ones, but their course ware is the same every class so you know what to expect no matter whose class you attend. Some people had some very positive feedback about the developer course when was very hands on with .NET and TFS (they have a Java one too).</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Even if you are against certifications, many companies perform initial searches and screenings with them so you may be hurting your chances in some places.</span></span></li>
</ul>
<div>
<span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;"><b>Advice for Companies Looking to get Their People Certified</b></span></span></div>
</div>
<div>
<ul>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">If you can afford it, bring someone in house so that the training can be more focused on your company's specific issues.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Remember that certification classes only go so far. Follow up hands on coaching was highly suggested.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Look for training/certifications for everyone in your organization who will participate in your Agile process. Don't just get your Scrum Masters trained.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Don't assume that certified training is better than those that aren't certified. Several people enlisted training without certification and were very happy with it. Look for deep, wide spread experience and references.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Several people pointed out that a good many trainers target the project management side of Agile heavily and do not offer practical guidance on the practical engineering side.</span></span></li>
</ul>
<div>
<span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;"><b>Advice for Companies Hiring People with Certifications</b></span></span></div>
</div>
<div>
<ul>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Certifications only show that the person holding them attended a class and passed a test. While some may be harder to get than others, certifications do not guarantee expertise.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Look for people who have experience in multiple environments. Many people claim to be experts with a few years in one environment.</span></span></li>
<li><span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">Don't just look for certifications. You can miss out on some good people.</span></span></li>
</ul>
<div>
<span style="color: #333333; font-family: Helvetica Neue, Helvetica, Arial, sans-serif;"><span style="font-size: 15px; line-height: 24px;">If you attended and think of something we covered that I missed, please let me know. See you next month!</span></span></div>
</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-43943677627848830372013-04-10T18:19:00.001-05:002013-04-10T18:19:54.877-05:00Collaborative Sprint PlanningRecently while coaching a client's Scrum team, I noticed that during <a href="http://www.mountaingoatsoftware.com/scrum/sprint-planning-meeting">Sprint Planning</a> the team was starting to concentrate on filling in tasks for their <a href="http://www.agilemodeling.com/artifacts/userStory.htm">User Stories</a> in the their Agile management tool <a href="http://msdn.microsoft.com/en-us/vstudio/ff637362">Team Foundation Server</a> (TFS) and less on the hows and whys around its implementation. This of course immediately drew me back to the basics of Agile from the <a href="http://agilemanifesto.org/">manifesto </a>of<b> "Individuals and Interactions over Process and Tools"</b>. When I thought I had been helping the team by showing them a quick and easy way to enter tasks into <a href="http://msdn.microsoft.com/en-us/library/dd286627.aspx">TFS with Excel</a>, that had turned around and become the focus of the meeting. This diversion had also started to manifest itself in the work being done in the Sprint as there was more friction between team members when what was being delivered did not exactly fit together initially.<br />
<br />
It became clear that we needed to get away from the tool and get the team interacting more when discussing the User Stories so that they all walked away on the same page on how they were going to implement it. The next Sprint Planning only used TFS to bring up the User Stories initially. Once the story was reviewed, we had two members from the team (one developer and one QA) go to the white board where we wrote "<b><i>Design</i></b>" on one side and "<b><i>Test</i></b>" on the other. The team then discussed how they would test the story and how they would design the implementation to meet those tests concurrently. They drew UI mock ups, work flows, wrote out test scenarios, business rules, etc. Once they were done the tasks for the story organically fell out of what was on the white board. One team member would act as scribe and record all the tasks into Excel to be uploaded to TFS afterwards.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYVpHyu6TQp7A6XPvEbcp9BG_qhfP11gzRyL_tsrcAVx2e2jadmkB-H0pgr3VnxaVX8GvHkfAIrKUeJ7Vngr_e-nhuA1wQ5AJBQCzqKeaYgXAd4tjQaq-gPlVA0FonDXIILLpw/s1600/CollaborativeSprintPlanning.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="310" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYVpHyu6TQp7A6XPvEbcp9BG_qhfP11gzRyL_tsrcAVx2e2jadmkB-H0pgr3VnxaVX8GvHkfAIrKUeJ7Vngr_e-nhuA1wQ5AJBQCzqKeaYgXAd4tjQaq-gPlVA0FonDXIILLpw/s400/CollaborativeSprintPlanning.png" width="400" /></a></div>
<br />
<br />
After trying this approach the next few Sprint Plannings (as well as in <a href="http://www.scrumcrazy.com/What+does+Product+Backlog+Grooming+Look+Like%3F">Product Backlog Grooming</a>), the team agreed that they were coming away with a better idea of how to implement the stories and there was less friction between team members. Another benefit was that more test scenarios seemed to be identified using this technique and thereby increased our test coverage. This also helped make these meetings less tedious since team members were up walking around, drawing, and actively engaging one another.<br />
<br />
So if you feel your Sprint Planning and Backlog Grooming sessions are straying from their true meaning, this is a fun approach to try and get them back on track.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-91817414789024377502013-03-27T13:15:00.003-05:002013-03-27T13:15:48.068-05:00Work In Progress Limit PosterRecently a team I am working with was stressing limiting their work in progress during their Sprints so we made this poster to put up in their team area. I am sure it violates all sorts of copyright laws, but it would actually be cool to get a cease and desist letter from <a href="https://twitter.com/DEVO">Devo</a>. Enjoy!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY92D0pKgRlZQCAwQXJwegHs-vba3smwOyVpJXwNRFIZ4FRtRoCVZqJv0U678Eew1z1PfVMq5vqcFQoTxUMmtO-HR-7B6k-24JgmeVWdKutd54zRGlLnqt0BcbYK0aONs6F7fJ/s1600/WipItGood.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="247" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY92D0pKgRlZQCAwQXJwegHs-vba3smwOyVpJXwNRFIZ4FRtRoCVZqJv0U678Eew1z1PfVMq5vqcFQoTxUMmtO-HR-7B6k-24JgmeVWdKutd54zRGlLnqt0BcbYK0aONs6F7fJ/s320/WipItGood.png" width="320" /></a></div>
<br />Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-24324777430290162042013-01-20T20:55:00.000-06:002013-01-20T20:55:39.242-06:00Community TFS Report Extensions Version 1 ReleasedLast year <a href="http://sstjean.blogspot.com/">Steve St. Jean</a> and myself did some extensive work creating custom reports for a joint client of ours. The client was a large company well into an enterprise adoption of Scrum and other Agile practices. The reports we made them ranged from a set that helped make the testing efforts and work in progress in each Sprint more visible to multiple views of their Release Plan and its allocation of work to support software capitalization.<br />
<br />
The client was gracious enough to give its permission for us to remove any of their proprietary material and release them to the public. Thus the <a href="http://communitytfsreports.codeplex.com/">Community TFS Report Extensions </a>project on <a href="http://www.codeplex.com/">Codeplex </a>was born.<br />
<br />
We are happy to announce our first release of the report pack that includes our first two reports:<br />
<br />
<b></b><br />
<h2>
<b>
<b>Test Plan Status Report</b> </b></h2>
<b>
</b><br />
<div>
The <a href="http://communitytfsreports.codeplex.com/wikipage?title=Test%20Plan%20Status%20Report&referringTitle=Documentation">Test Plan Status</a> is a report that extends the functionality found in the Test tab of Microsoft Test Manager. While Test Manager can show you the completion status of the selected Test Suite, it does not show roll-up information when you have a hierarchy of suites. This report is intended to fill that gap.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6CmFo4BGf-xRi2mDwrPchAQ2WiOe1II3OEDzRc1IqoNkvGbgsDofnELnk-kyqtUkkpNYWpJ5_viSBMEmiHnNuiLhRetPvC2P60c9LrecSIaVTulgYSAHj_OklO8HKi6k1zTSf/s1600/SNAGHTML8efdec8_thumb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="287" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6CmFo4BGf-xRi2mDwrPchAQ2WiOe1II3OEDzRc1IqoNkvGbgsDofnELnk-kyqtUkkpNYWpJ5_viSBMEmiHnNuiLhRetPvC2P60c9LrecSIaVTulgYSAHj_OklO8HKi6k1zTSf/s400/SNAGHTML8efdec8_thumb.png" width="400" /></a></div>
<div>
<br /></div>
<h2>
<b>Release Plan Report</b></h2>
<div>
The <a href="http://communitytfsreports.codeplex.com/wikipage?title=Release%20Plan%20Report&referringTitle=Documentation">Release Plan report</a> shows the Product Backlog sorted by priority and overlaid with which sprint the items are forecasted to be delivered based on a given velocity. Only backlog items that have an effort, priority, and are in a valid state are included. Optionally you can specify a deadline which will appear before the Sprint it would fall during so you can see what items are forecasted to be completed by that date.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilyFYHj_VXHrWhUZTqnDDem8rPG7Y4I_YejYTb1o_MVMmTy26IcHyJx-dGqTLqIfHWzwnXFxTkwI7hcmfoTtrkMvipEMkRyp28t1jLamZfwtA6AIXdyjMOrIvLU_qpQLC1NW2_/s1600/Release+Plan+Report.MsScrum1_thumb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilyFYHj_VXHrWhUZTqnDDem8rPG7Y4I_YejYTb1o_MVMmTy26IcHyJx-dGqTLqIfHWzwnXFxTkwI7hcmfoTtrkMvipEMkRyp28t1jLamZfwtA6AIXdyjMOrIvLU_qpQLC1NW2_/s400/Release+Plan+Report.MsScrum1_thumb.png" width="310" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
This initial release supports TFS 2010 and the <a href="http://msdn.microsoft.com/en-us/library/dd380647(v=vs.100).aspx">MSF Agile 5.0</a> and <a href="http://msdn.microsoft.com/en-us/library/ff731587(v=vs.100).aspx">MS Scrum 1.0 </a>process templates (the Test Plan Status Report also support the CMMI template). We will be adding more reports in the near future along with updates to the current release with support for 2012 and some extensions.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Please take a look at the project and give us your feedback so we can continue to make these reports better. If you are interested in contributing, please let us know. The more the merrier!</div>
<div>
<br /></div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-51209852518954148472013-01-15T21:37:00.000-06:002013-01-15T21:37:09.821-06:00Distributed Planning Poker and TFSMountain Goat software makes a great online planning poker application at <a href="http://www.planningpoker.com/">PlanningPoker.com</a> (funny enough). After registering for free you can create games and invite your team members to participate and cast votes for User Stories.<br />
<br />
We used this for our distributed estimation sessions but entering all the stories was bit laborious. There is a great option when you create the game to import stories in a comma delimited format. When you are using Team Foundation Server you can create a query to export selected fields for your User Stories and add them all at once while creating a new game.<br />
<br />
Create a TFS query with the fields you want to show in the planning poker game like the one below.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6lMoghyZjNOoV7SLYXEsfj3x7QjhOhD2Zzmm2lb_VP9NPaGU96ZGc9aFK_hIF3thh0zr4LfffHygEgYn1kTyjSrTeLZveJBJD0-BdT8mocssHN8K8ww6vZizQJmJHXMqkjdF9/s1600/TFSQueryForPlanningPoker.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="273" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6lMoghyZjNOoV7SLYXEsfj3x7QjhOhD2Zzmm2lb_VP9NPaGU96ZGc9aFK_hIF3thh0zr4LfffHygEgYn1kTyjSrTeLZveJBJD0-BdT8mocssHN8K8ww6vZizQJmJHXMqkjdF9/s640/TFSQueryForPlanningPoker.png" width="640" /></a></div>
<br />
Open the query in Excel.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_1FOsbMIiAJEwMQsC3-IC7AOqkPxmDKuwxy6MZ6VlHzmjB0Z6VuifdzHt48rKbygxLtOJA-wmTnXYa_yruAIWdpS23Zas-3eUqZXHoZDp7BI86fE1seG9dwV6iGsL_mlm0w3a/s1600/TfsQueryForPlanningPokerInExcel.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="354" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_1FOsbMIiAJEwMQsC3-IC7AOqkPxmDKuwxy6MZ6VlHzmjB0Z6VuifdzHt48rKbygxLtOJA-wmTnXYa_yruAIWdpS23Zas-3eUqZXHoZDp7BI86fE1seG9dwV6iGsL_mlm0w3a/s640/TfsQueryForPlanningPokerInExcel.png" width="640" /></a></div>
<br />
Then save the spreadsheet as a CSV.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD03HXnOP__ueHvlCa1_yQCFv7nHAdAgPqfmW-0ukFeaf8PwhpUSCRDsrfYSITJViZrBiuWnJcl3sv4R9JQIbG8WgbQZ7MkfFNrYYRh29ORY82xxD7b5E-5q0ub2_ilxdRfv8y/s1600/ExcelSaveAsCsv.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="105" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgD03HXnOP__ueHvlCa1_yQCFv7nHAdAgPqfmW-0ukFeaf8PwhpUSCRDsrfYSITJViZrBiuWnJcl3sv4R9JQIbG8WgbQZ7MkfFNrYYRh29ORY82xxD7b5E-5q0ub2_ilxdRfv8y/s400/ExcelSaveAsCsv.png" width="400" /></a></div>
<br />
Then open the file in Notepad.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT1a2XrSdIs0INsUr_X8MR4sG6W0vj6Zz2zCRSJr2goW2vxsVPxXNWVdmrq_SDpGEHOw92uBbr2M5dP1LmHvbVARc7H8IAuHHHrnGrmP3gq01-jW2TN1vWBmF0YYjDzGIaNLFu/s1600/TfsQueryInNotepad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="340" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgT1a2XrSdIs0INsUr_X8MR4sG6W0vj6Zz2zCRSJr2goW2vxsVPxXNWVdmrq_SDpGEHOw92uBbr2M5dP1LmHvbVARc7H8IAuHHHrnGrmP3gq01-jW2TN1vWBmF0YYjDzGIaNLFu/s640/TfsQueryInNotepad.png" width="640" /></a></div>
<br />
Copy the column header rows and the rows with the User Story data. When you create a new game on PlanningPoker.com there is a field where you can paste the rows to import them.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTpWuTXfeAkIjuMIcCLXrjA3o9jrV6V11lT7zov0ynVLwganYNxXoaTP_AYxEb3u7Oo8C8OeC0Hz1PY_dysthjJAUJ857ruOjI80lX-cJ31Rthp5O0Sv4CMBccj1BCGmLPnO22/s1600/PlanningPokerImport.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="246" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTpWuTXfeAkIjuMIcCLXrjA3o9jrV6V11lT7zov0ynVLwganYNxXoaTP_AYxEb3u7Oo8C8OeC0Hz1PY_dysthjJAUJ857ruOjI80lX-cJ31Rthp5O0Sv4CMBccj1BCGmLPnO22/s640/PlanningPokerImport.png" width="640" /></a></div>
Then when you start the game you can add each story.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmsjkfzarpAODxzlodQelQXbEhiqeezBM6nBOhqxyPMVQUd4QmJWnZGqZh6A4MsnSbA5svWbhFLWoa37fGqygmpnVGMmaVd4mglMDwulCgdeUSbV0K3d36W4vEA7ZL2fGj6mA/s1600/AddStory.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="242" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDmsjkfzarpAODxzlodQelQXbEhiqeezBM6nBOhqxyPMVQUd4QmJWnZGqZh6A4MsnSbA5svWbhFLWoa37fGqygmpnVGMmaVd4mglMDwulCgdeUSbV0K3d36W4vEA7ZL2fGj6mA/s640/AddStory.png" width="640" /></a></div>
Then your team can estimate each story.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbrkpbBTiemAnmWYrBxN2lmyUVaddhIe27ZLsa-kCeM0l-h7644ZilyShWSa8yJsANPt9BYWbCaeeXp5grJwRa5Hwd01jt9mtMJIBm0HVun946_QoI8ibbI_IuAC79GjRyweol/s1600/EstimatingStory.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbrkpbBTiemAnmWYrBxN2lmyUVaddhIe27ZLsa-kCeM0l-h7644ZilyShWSa8yJsANPt9BYWbCaeeXp5grJwRa5Hwd01jt9mtMJIBm0HVun946_QoI8ibbI_IuAC79GjRyweol/s640/EstimatingStory.png" width="640" /></a></div>
Now if only they had an option to have it automatically update TFS with the result. Enjoy!Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-21327984.post-59200820836609589682013-01-02T23:23:00.001-06:002013-01-02T23:23:24.184-06:00Agile Game Night RecapThis post has been sitting in my drafts folder for a few months! Sorry to post it so late.<br />
<br />
On October 23rd the <a href="http://www.agilenashville.com/">Nashville Agile User Group</a> held an Agile Game Night to help people learn the principles and values of Agile through fun and games. While some really bad traffic kept some attendees away, those who braved the grid lock had a great time. Here's a recap of the games:<br />
<h2>
The Domino Effect</h2>
<div>
<a href="https://twitter.com/bennybaggott">Benny Baggott </a>facilitated the <a href="http://tastycupcakes.org/2012/09/the-domino-effect/">Domino Game</a>. In this game teams estimate how long it will take them to build a tower of Dominoes to a specific height. Once they start executing the facilitator starts to treat each team a little differently to see how outside influences affect their progress towards their goal. Each team had different outcomes and it was a very interesting conversation afterwards.</div>
<div>
<br /></div>
<div>
It was noted that once one team finished and Benny started urging other teams to finish as fast as the first team they felt more pressure and knocked their half built towers down more. We discussed another option for running the game would be to have the different teams in separate rooms where they cannot see each other and then when getting estimates say things like "Really? That's your estimate? The other team was doing it in half that time." The idea is to illustrate how these outside influences from management can have a significant detrimental affect on team performance.</div>
<h2>
The Penny Game</h2>
<div>
<a href="https://twitter.com/tommynorman">Tommy Norman</a> ran the <a href="http://tommynorman.blogspot.com/2008/11/comfortably-scrum-scrum-penny-game.html">Penny Game</a> which a few people has done before in their certified Scrum Master training. In this game you simulate work by having 4 people at a table flip 20 pennies and pass them around the table. You start with large batch sizes and then reduce the size from 20, 10, 5, and finally to 1. The time each person takes is timed by their "manager" and the "customer" times how long it takes for them to get their first deliverable while the "CEO" times the whole process start to finish. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Be5Jt44FEm2RFNDlNJxCmp6MoI57fggi7Fq2oUBSgkoFW2WnaVI1z__IE6vOyZpIunyD2nsG8joIW7sYminZ1EbJUl3BGjLm4Eb33xreta4R2laV-pvKn4LSSpgje9nng-i-/s1600/GetAttachment.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg2Be5Jt44FEm2RFNDlNJxCmp6MoI57fggi7Fq2oUBSgkoFW2WnaVI1z__IE6vOyZpIunyD2nsG8joIW7sYminZ1EbJUl3BGjLm4Eb33xreta4R2laV-pvKn4LSSpgje9nng-i-/s320/GetAttachment.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
After repeating the process with the different batch sizes you get some interesting conclusions from the time data. Time to market and total duration of a project is greatly reduced with the smaller batch sizes, but the individual performance is longer. The cost of each batch transition (passing the pennies to the next person) which could equate to any hand off overhead in your process adds up and reduces the efficiency of each worker but the performance of the whole process is much better. It is also a great way to also debunk the myths of productivity by making the individual parts of a process more efficient rather than the whole process.</div>
<h2>
<b>The Agile Ball Game</b></h2>
<div>
This is <a href="https://www.box.com/shared/mg9kq3d17e">another game</a> some people had experienced as part of previous Agile training, but not as much as the penny game. <a href="http://www.linkedin.com/pub/peter-balcarce/1/48b/975">Peter Balcarce</a> led this game in which everyone is on a team who's goal is to pass around balls of various sizes to each other seeing how many they can get all the way through in 2 minutes. The rules are you have to have air time when passing the ball, everyone has to touch the ball at least once, you cannot pass to the people directly left or right of you, any dropped ball has to start over, and the first person who touches the ball has to be the last person. You get 1 minute planning and retros between 5 of the 2 minute sprints.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT6PHdnoBh841iJ2QuhRt5nWEaOJB39Il_FoVSHLV8G0TH6QUtqsx6njakYPS9avo8wh6Z3MQfV-ONesrnZACvorLzmvtzv6bvDU55iQ1uboxiu873Aylb7VRcs20B97fcQVvo/s1600/IMG_0531.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT6PHdnoBh841iJ2QuhRt5nWEaOJB39Il_FoVSHLV8G0TH6QUtqsx6njakYPS9avo8wh6Z3MQfV-ONesrnZACvorLzmvtzv6bvDU55iQ1uboxiu873Aylb7VRcs20B97fcQVvo/s320/IMG_0531.JPG" width="320" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Those who have done it before are asked not give away the better processes for passing around the balls and to let the team self organize to figure it out. Generally the first run is very hectic and the team does not meet their goal. They normally regroup during the 1 minute retro and improve their process. On the second or third run the facilitator will start to remove people to simulate team members being called away for other important work. They also will bring in new team members who may not know the rules. The effect is that removing or adding team members almost always causes a significant disturbance.</div>
<div>
<br /></div>
<div>
Some other observations we had were that when we were tossing around balls of roughly the same size (like tennis balls) we established a good rhythm but when balls of drastically varying sizes were introduced we were not as efficient. This is a great game for managers to show them how shuffling teams has a detrimental effect on their performance.<br />
<h2>
GetKanban Board Game</h2>
<a href="http://www.linkedin.com/in/chrishefley">Chris Hefley</a> and the gang from<a href="https://leankitkanban.com/"> LeanKit Kanban</a> introduced the <a href="http://getkanban.com/BoardGame">GetKanban Board Game </a>which is a fun, hands on way to learn the basics of <a href="http://en.wikipedia.org/wiki/Kanban_(development)">Kanban</a>. There are several versions of the game, some you can download for free, and everyone who played had a great time and said it really brought home the concepts of WIP, bottlenecks, lead time, etc.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit0XoDCS9hxBV1NsoEIYCSDW3i2YonIiFQzSY0W4zvyId1iNMED_Fqqmr7EY8lMjHKG1T3pBp1zRMl3a23TQFh5xVP6CW4T9qS2iC44LSO8bxDTcWyGCeMWJmJUQv_ADgt5ivj/s1600/wpid-2011-09-23_10-51-02_685.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEit0XoDCS9hxBV1NsoEIYCSDW3i2YonIiFQzSY0W4zvyId1iNMED_Fqqmr7EY8lMjHKG1T3pBp1zRMl3a23TQFh5xVP6CW4T9qS2iC44LSO8bxDTcWyGCeMWJmJUQv_ADgt5ivj/s400/wpid-2011-09-23_10-51-02_685.jpg" width="400" /></a></div>
<br /></div>
<div>
<br />
Thanks<br />
We'd like to thank all attendees and those who helped facilitate the games. We would also like to thank our sponsors: <a href="http://hollandsquare.com/">Holland Square Group</a>, <a href="http://www.vaco.com/nashville">Vaco</a>, <a href="https://leankitkanban.com/">LeanKit Kanban</a>, and <a href="http://www.omnicell.com/">Omnicell</a>.</div>
Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-21327984.post-80854584184252906062012-10-03T09:41:00.000-05:002012-10-03T09:41:32.616-05:00Tons of Technology Events in Nash Vegas this October<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3HB3B35rzj6CJ9baEtLwgzpSFqIkfh1NCRBLmenZjTgPHKbmQIt4Ckd9e8tylDMVolAcAO1EZYeXdZ6OJiXfo4FPNqFGtt8psMEjWKm4MOrn19i7DcfwijC6A6aTmSUJs506C/s1600/OctTechEvents.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="83" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3HB3B35rzj6CJ9baEtLwgzpSFqIkfh1NCRBLmenZjTgPHKbmQIt4Ckd9e8tylDMVolAcAO1EZYeXdZ6OJiXfo4FPNqFGtt8psMEjWKm4MOrn19i7DcfwijC6A6aTmSUJs506C/s400/OctTechEvents.png" width="400" /></a></div>
Here is out little town of Nash Vegas we have a great technical community and they seem to have outdone themselves this month. There are so many great events happening I am having to negotiate with my wife to get to go to as many as I can: "I'll go see that chick-flick you've been wanting to see if I can go to BarCamp Nashville."<br />
<br />
There is truly something for everyone, so take a look at this list and support our local technology groups by attending some of these events. Also help spread the word by Tweeting, Facebooking, shouting on street corners, body painting, or whatever!<br />
<br />
<br />
<ul>
<li><b>Nashville Agile User Group Monthly Luncheon, Oct. 8th<span style="font-weight: normal;"> - Come join the discussion around "Engineering Best Practices in Agile". These are open discussions where everyone can get involved and share their experience. </span></b><a href="https://groups.google.com/forum/?fromgroups=#!topic/agilenashville/cDAXX8qcdtc">https://groups.google.com/forum/?fromgroups=#!topic/agilenashville/cDAXX8qcdtc</a></li>
<li><b>GeektoberFest, Oct. 9th</b> - Vaco is throwing and big "Thank You" party for the local tech community with free beer. You can't beat that. Plus they have really cool t-shirts. <a href="http://geektoberfest2012.eventbrite.com/">http://geektoberfest2012.eventbrite.com/</a></li>
<li><b>Nashville Technology Council's User Group Roundtable, Oct. 10th</b> - If you help run any of the local user groups in Nashville, the NTC wants to find out help they can best support your group. This is going to be a great collaborative effort with many of the local group leaders attending. <a href="http://new.evite.com/#view_invite:eid=017AMDVWTUTCHIKMCEPB7XNQRD7M2I">http://new.evite.com/#view_invite:eid=017AMDVWTUTCHIKMCEPB7XNQRD7M2I</a></li>
<li><b>Nashville .NET User Group Lecture Series, Oct. 11th</b> - Alan Stevens, a great technologist and a friend of mine, is going to be speaking on how developers can add more value to their company and teams by "leveling up". Always entertaining and informative. <a href="http://nashdotnet.org/2012/09/october-11-alan-stevens/">http://nashdotnet.org/2012/09/october-11-alan-stevens/</a></li>
<li><b>Nashville .NET User Group Coding Dojo, Oct. 18th </b>- Coding dojos are a fun way to sharpen your coding skills by practicing with your peers. Bring your laptop and get ready to karate chop some .NET code! <a href="http://nashdotnet.org/">http://nashdotnet.org/</a></li>
<li><b>Nashville BarCamp 2012, Oct. 20th</b> - What could be better than a technical conference held at a bar? The wide range of sessions has something for everyone. A great event to meet new people and discover new ideas. <a href="http://www.barcampnashville.org/bcn12/">http://www.barcampnashville.org/bcn12/</a></li>
<li><b>Nashville Agile User Group's Agile Game Night, Oct. 23rd</b> - Come learn the principles of Agile through fun and games. Learn stuff like theory of constraints, benefits of iterations, myths of fungible resources, and more! <a href="https://groups.google.com/forum/?fromgroups=#!topic/agilenashville/7eoDmWVKcWY">https://groups.google.com/forum/?fromgroups=#!topic/agilenashville/7eoDmWVKcWY</a></li>
</ul>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-43199720734587596252012-09-18T23:01:00.000-05:002012-09-18T23:02:00.648-05:00Agile User Group Recap: Dealing With Technical Stories on the Backlog<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI52LWhN8JDN4377LV4NjWJ6GUPOmYZkMWDMo4_obOk1rfXmtgU9ShyphenhyphensOnvrHGloTP4RosmAmm22ZH4x5Bio08Do9sUrzLNJGSz-PdP0BLCgf09SMP5sIH_QM4ikMehD0zDmEu/s1600/robot1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhI52LWhN8JDN4377LV4NjWJ6GUPOmYZkMWDMo4_obOk1rfXmtgU9ShyphenhyphensOnvrHGloTP4RosmAmm22ZH4x5Bio08Do9sUrzLNJGSz-PdP0BLCgf09SMP5sIH_QM4ikMehD0zDmEu/s320/robot1.png" width="192" /></a></div>
At September's<a href="http://www.agilenashville.com/"> Nashville Agile User Group</a> meeting we had a discussion about how to deal with technical user stories on the backlog. There was a great deal of conversation with many good points from multiple approaches.<br />
<br />
First we talked about what we meant by a "technical user story". We referred to stories having to do with technical activities that did not deliver any new value to the end user. Some that were brought up were things like "upgrading servers or other supporting applications", "refactoring a module to be easier to maintain", etc.<br />
<br />
It was brought up that even though the story may not add value to the end user, it usually could be shown to have a tangible value to the company as a whole. An example was if we have a module that requires our operations folks to go onsite and manually perform some task on the servers, but we could rewrite this to be managed remotely, that could be quantified by how much time (i.e. money) we would save for the operations folks.<br />
<br />
In that same vein it we lamented that technical people often do not communicate the value well to the Product Owner and other stakeholders so these items are left off or always pushed out (sometimes permanently). Technical user stories need to be written so that their value is clearly outlined.<br />
<br />
At this point I mentioned that I had seen several instances online of very well respected Agile thought leaders saying never to put technical stories on the backlog. one such instance was recently on the <a href="http://tech.groups.yahoo.com/group/scrumdevelopment/message/55626">Scrum Development Yahoo group</a> where <a href="https://twitter.com/RonJeffries">Ron Jeffries</a> said:<br />
<blockquote class="tr_bq">
"We do not, repeat DO NOT, put code improvement "stories" in the Product Backlog."</blockquote>
Well that seems fairly clear, right? However if you read his entire post he directly follows the line above with:<br />
<blockquote class="tr_bq">
"The main reason for this is that we cannot state the value of the improvement in any terms that the Product Owner can understand, and therefore the Product Owner can never schedule the stories. P.S. We don't know the value either." </blockquote>
So it seemed like we were on the right track when we were talking about making sure the technical story had a demonstrable value. He goes on to say:<br />
<blockquote class="tr_bq">
"If we do put code improvement stories in the backlog, we can't count the work against our Product Burndown or other progress measurements."</blockquote>
So it does seem that he is okay with technical stories as long as you don't count the work. This lead us down the trail of not adding the story points for technical stories to the team's velocity for a sprint. It was pointed out that <a href="http://www.pivotaltracker.com/">Pivotal Tracker</a> identifies these types of stories as "chores" and their points are not included in any sprint's velocity.<br />
<br />
That sparked the debate over velocity being a metric of the team's productivity or a measure of value added each sprint. As it turns out you can find that the Pivotal Tracker folks had the very <a href="http://community.pivotaltracker.com/pivotal/topics/bugs_and_chores_should_be_estimable_without_counting_toward_velocity">same discussion</a> about this years ago.<br />
<br />
I had just been talking to one of the other members about release planning right before the meeting so I added my two cents in that I prefer to not only estimate technical stories like these, but I do include them in the team's velocity because I was a metric that is a good reflection of what the team can do in the sprint to make a release plan. (I blogged about the way I like to create release plans <a href="http://tommynorman.blogspot.com/2012/09/agile-release-planning-101.html">here</a>.) In that case I very much want to use velocity as a measure of what the team can produce.<br />
<br />
Where we have used velocity that way we have also used a product burn up (or down) chart where we differentiated the technical stories (and bugs) from the user stories so that you could see how the team was doing as far as adding value to the user each sprint versus fixing existing stuff or working on these technical chores. To me that met Ron's criteria that you don't count the effort spent on technical stories towards an measure of progress.<br />
<br />
Another side conversation came up when we added bugs into the mix. Do you point bugs? Do they go on the backlog with the user stories? Do fixed bugs count towards velocity? We did not get into that too deeply since that is an entire conversation in itself. Here just one instance of someone having a totally different view on how to <a href="http://www.agileforall.com/2010/05/05/agile-antipattern-sizing-or-estimating-bug-fixes/">tackle bugs</a>, but I could easily find tons more.<br />
<br />
When all was said and done all the attendees filled out our meeting survey which includes the questions "What did you take away from today's discussion?" Here are a few of those answers:<br />
<br />
<ul>
<li>"Have reports that can show value delivered as well as how much work was done."</li>
<li>"Bugs are not really bugs until they make it into production." (Side note: this reflects part of the bug conversation where many of us talked about fixing bugs you find in the current development of a sprint immediately and tracking them more using the Sprint Backlog and our test cases. We only logged a bug into the defect tracking system if it was in released code which is what we consider any code done at the end of the sprint.)</li>
<li>"Learn how you want to track bugs relative to velocity."</li>
<li>"There are multiple ways to tackle the same problem." (You said it brother!)</li>
<li>"Bugs with zero story points make it difficult to track them in release planning."</li>
</ul>
<div>
As usual it was a good, spirited discussion and I look forward to our <a href="https://groups.google.com/forum/?fromgroups=#!topic/agilenashville/cDAXX8qcdtc">October meeting</a> which is going to be about "Engineering best Practices in Agile." If you are in the Nashville area, sign up on <a href="http://www.agilenashville.com/">our website</a> to get notices about our meetings and upcoming events.</div>
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-25920583170821908582012-09-06T12:10:00.000-05:002012-09-06T12:11:53.510-05:00Agile Release Planning 101<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvKxqY66As46ICQyxiUAc7G_zG9a0z9cQYFUCeN85N5lQYoTrwPAsDh6w9kzfc-SbvMCfC58AmyRtNvz2SpKs3CNt6Y-2o2kpW_m9YXMSJw6pXLZ4y1LlIWnSkQz_TdMYt6E4/s1600/crystal-ball.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVvKxqY66As46ICQyxiUAc7G_zG9a0z9cQYFUCeN85N5lQYoTrwPAsDh6w9kzfc-SbvMCfC58AmyRtNvz2SpKs3CNt6Y-2o2kpW_m9YXMSJw6pXLZ4y1LlIWnSkQz_TdMYt6E4/s400/crystal-ball.png" width="326" /></a></div>
<br />
In this post I want to go over the mechanics of a basic Release Plan. I am not going to get into the principles and values behind Agile release planning in very much depth, but there are some links at the end of the post to some other online resources that cover that.<br />
<br />
This is but one way to accomplish a Release Plan and I am sure there are many other techniques out there. I have used this approach with many teams of various sizes on many projects of various sizes and complexity. I have extended it in many instances, but the basics have remained the same and served me well. I would love comments about how you accomplish this with your own teams.<br />
<h2>
The Product Backlog</h2>
To start with you need a Product Backlog. To keep things as simple our backlog will have only four fields:<br />
<br />
<ul>
<li><b>ID</b> - A unique identifier for each item in the backlog. In my example I started with 1000 so that it is not as easy to try and use ID as a default priority field (which I have seen done before).</li>
<li><b>User Story</b> - This is just a simple title for each story and not the full story. In a more in depth backlog you would have the full story, conditions of acceptance, possibly types of categorization, etc.</li>
<li><b>Backlog Priority</b> - This field notes the order in which the Product Owner wants the items to be delivered. This number should not have any more implied logic embedded in the number (more on that later).</li>
<li><b>Estimated Effort</b> - The team's estimated effort for completing the item. We won't get into using Story Points, developer days, hours, etc. Suffice to say this should be a high level estimation originating from the Scrum team in your metric of choice.</li>
</ul>
<h2>
Adding User Stories</h2>
<div>
There are many techniques for creating your User Stories such as story workshops, customer focus groups, etc. Again, not something I am covering here. However the Product Owner gathers them, he will record them in the backlog. Normally when we are brainstorming on stories, we simply record them in the order in which we think of them and do not try to categorize or prioritize at that point. That can sometimes hinder the flow of ideas. So you should wind up with just a list of stories. Here is a simple example of an initial backlog using Excel (the simplest tool you can use next to sticky notes on a wall).</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlASCHU62PauzYh-CffT_Ev82CTd8iC9grtrCyuP9pp_-Z6w4HRlObWVPH9dDlsAGzucoqA8KCrbEMqkl0f3iBMRb3o44w3StrP8gT8-lLZGUkflxSMSvQBQU_lUfoV8rtL-eA/s1600/InitialProductBacklog.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlASCHU62PauzYh-CffT_Ev82CTd8iC9grtrCyuP9pp_-Z6w4HRlObWVPH9dDlsAGzucoqA8KCrbEMqkl0f3iBMRb3o44w3StrP8gT8-lLZGUkflxSMSvQBQU_lUfoV8rtL-eA/s320/InitialProductBacklog.png" width="293" /></a></div>
<div>
<br /></div>
<h2>
Initial High Level Prioritization</h2>
<div>
Once you have your list some say you get the team to estimate them, but I advise you to do an initial round of high level prioritization to make sure that you maximize the team's time by looking at the ones you believe to be the most important first.</div>
<div>
<br /></div>
<div>
Do not make this more difficult than it needs to be. Use some simple metric with only a few values like: must, need, want. Or use 1,2,3. Or use High, Medium, Low. It really does not matter at this point and we've already discussed it too much. For my example I will use 1,2,3 since it is easy to sort in Excel.</div>
<div>
<br /></div>
<div>
Go down the backlog spending no more than a minute to discuss each one and give it an initial priority. Make sure everyone involved in helping with this activity knows this is not the final priority and that there will be continuous grooming sessions through out the project where it can be reassessed and changed. This will help curb the desire to analyze each item to death.</div>
<div>
<br /></div>
<div>
Here's our backlog with the initial priorities (NOTE: I totally made these up so try not to read anything into the actual stories.)</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kd8CkbS3QQK0szyztrjZWAKIHZboGOrsKHjxU__nswMIUy3UMcjmAB0dKuIYpkBqT9nHqf-yS3SAVClp6ER7eV4LV_V4SGvSD0t8smYTfzin4Ho02b3GgsMmhYj1eFwes-Gt/s1600/ProductBacklogInitialPriority.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3kd8CkbS3QQK0szyztrjZWAKIHZboGOrsKHjxU__nswMIUy3UMcjmAB0dKuIYpkBqT9nHqf-yS3SAVClp6ER7eV4LV_V4SGvSD0t8smYTfzin4Ho02b3GgsMmhYj1eFwes-Gt/s320/ProductBacklogInitialPriority.png" width="278" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<h2>
Initial High Level Estimates</h2>
<div>
Once we have the backlog sorted by the initial priorities, take it to the Scrum team to have them provide some initial high level estimates. At this early stage in the process it is okay to use a similar approach as we did with priority by using an easy simple metric like Small, Medium, and Large. As with the prioritization before, these estimates are not the final word and the team will be asked to take a closer look at them in the future, so try not to spend too much time on them. Good luck with that since engineers like to be precise and it is galactically hard getting them to not be. You can use any of the commonly suggested estimation techniques like planning poker or whatever works for your team.</div>
<div>
<br /></div>
<div>
If your team feels confident that they can use their normal metric for estimation (like the Fibonacci sequence) then let them. These techniques I am suggesting are really best at the beginning when everything is fairly high level and you really want to just get some idea of what you want to do first and how big that effort will be. As I said before, you will continuously refine the priority and estimates over the project. If your backlog is fairly large, you may want to primarily concentrate on the top most items since they should be the most valuable. </div>
<div>
<br /></div>
<div>
Below is our backlog now with our initial estimates.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjDqTPZTdp4GIt_jyFuWdvaebSMrsX5FVERNMy7KMZ-OyFEYyOd-NtAvpom4GE-RozMPoYpAG3w6lel6haM0VHFK8Tx0vJTTK92LKK91KAdT-C3EIidFrwHB3Y6bsuQMHD9oEw/s1600/ProductBacklogInitialEsimates.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjDqTPZTdp4GIt_jyFuWdvaebSMrsX5FVERNMy7KMZ-OyFEYyOd-NtAvpom4GE-RozMPoYpAG3w6lel6haM0VHFK8Tx0vJTTK92LKK91KAdT-C3EIidFrwHB3Y6bsuQMHD9oEw/s320/ProductBacklogInitialEsimates.png" width="275" /></a></div>
<div>
<br /></div>
<h2>
Refine Backlog And Priorities</h2>
<div>
Now that the Product Owner has some idea of how big the backlog items are, they may want to move some items around or split up some stories. Once they have the backlog arranged in the order in which they would like them delivered, it is time to refine your metric for prioritization.</div>
<div>
<br /></div>
<div>
The backlog priority field should have no implied logic to it. I have seen numbers used like 1102 which meant the stakeholders wanted it delivered by February 2011. This is not a good technique as it puts pressure on the team to deliver to that date and implies to the stakeholders that is when it will be delivered. But that number is usually not based on a team's Velocity or based on any input from the team so it is a recipe for disaster. </div>
<div>
<br /></div>
<div>
The best way to ensure that the field cannot be used in such a manner is to always start at 1 and force rank the entire backlog. Each time you rearrange the backlog, your force rank it again starting with 1 again. After you have executed an iteration, your force rank the remaining open items on the backlog starting from 1 again. This makes it pretty hard to embed any type of logic into the number.</div>
<div>
<br /></div>
<div>
Here is our Product Backlog now with a force ranked priority. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxcbY5ptRukLZDQ9iH39OpWSn76yAeN10FFVzCFtzrPpk2NgzETXKYm6JH9WZjzwwVwvfsIVgWd8WgPZJuFsJZo_zVjTbNyguoSKSsHreaLTcM-wSmu7eGj1J242GYRDpegPCo/s1600/ProductBacklogRefinedPriority.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxcbY5ptRukLZDQ9iH39OpWSn76yAeN10FFVzCFtzrPpk2NgzETXKYm6JH9WZjzwwVwvfsIVgWd8WgPZJuFsJZo_zVjTbNyguoSKSsHreaLTcM-wSmu7eGj1J242GYRDpegPCo/s320/ProductBacklogRefinedPriority.png" width="270" /></a></div>
<div>
<br /></div>
<h2>
Refining Estimated Effort</h2>
<div>
Just as we revisited our initial prioritization, bring the backlog back to the Scrum team to have them refine their estimates to your normal metric (unless you already did that from the start). Spend more time on the top most items since they are most likely to be played in the next few upcoming iterations. Then try to go as far down the backlog as you can (depending on the size of the backlog and your team's availability). In general your Scrum team should spend 10% to 15% of their time during a Sprint helping groom the backlog in this manner, so the items you don't get to in these initial rounds of estimating will eventually be addressed.</div>
<div>
<br /></div>
<div>
Now we have a Product Backlog that is force ranked and estimated to the best of the team's ability.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM_jrgFky5-7x1CmhK7YCgT4ACcXmF6s636KVu-q7N_JCCnx8tYeyykdzZDhkSsYLT3XfgoP46IDcoZqPG3lDqlhF1dJeoZsjECWhAAYrjfn1_JMDkkPuFM9jswRKdztlmLSbg/s1600/ProductBacklogEstimated.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjM_jrgFky5-7x1CmhK7YCgT4ACcXmF6s636KVu-q7N_JCCnx8tYeyykdzZDhkSsYLT3XfgoP46IDcoZqPG3lDqlhF1dJeoZsjECWhAAYrjfn1_JMDkkPuFM9jswRKdztlmLSbg/s320/ProductBacklogEstimated.png" width="280" /></a></div>
<div>
<br /></div>
<div>
You will notice that some of the items on the backlog have rather large estimates. This can be due to many factors such as uncertainty, risk, pure size and complexity, etc. The Scrum team should determine a maximum size that they will allow into an iteration. Drawing this line gives the team a tool to push back on items they do not feel they could complete in a single iteration. The Product Owner should go back and break these stories up or provide answers to the team's questions to allow them to refine their estimates.</div>
<div>
<br /></div>
<div>
Large items at the bottom of the backlog are expected since we do not expect them to be delivered any time soon so we can revisit them later when they rise on the backlog and get closer to being played in an iteration. If you have large stories towards the top of the backlog, they need to be broken up until they are an acceptable size or moved down the backlog.</div>
<div>
<br /></div>
<div>
The backlog here has the larger stories moved to the bottom and the priority field force ranked starting at 1 again. For my example the Scrum team has determined that any story larger than 13 is too large for a single iteration.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4nBF9z4ndu0KS1r47Brf3x4cP0S-uKSClFh-SNbm-3w7zxOm2ozaVMeje2L69jr_x2YVWpkkq8wNtD4xh4unOkXjHxIeuyQ1rIhYBq5dV9Xlzb2U0MxSSD9nmc1DXtY6P5Mml/s1600/ProductBacklogEstimatedAndPrioritized.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4nBF9z4ndu0KS1r47Brf3x4cP0S-uKSClFh-SNbm-3w7zxOm2ozaVMeje2L69jr_x2YVWpkkq8wNtD4xh4unOkXjHxIeuyQ1rIhYBq5dV9Xlzb2U0MxSSD9nmc1DXtY6P5Mml/s320/ProductBacklogEstimatedAndPrioritized.png" width="277" /></a></div>
<div>
<br /></div>
<h2>
Determining Initial Velocity</h2>
<div>
Velocity is the sum of effort the team completes in an iteration. At the beginning of a project you may not have any idea what your team's velocity will be. I've seen all sorts of suggestions online with algorithms and big math to figure it out based on iteration length, available days, team size, etc. Whichever technique you use, just know that you will most likely be wrong. And that is okay. After the first iteration you will have an actual velocity to start using and keep tracking it from there.</div>
<div>
<br /></div>
<div>
I suggest meeting with the Scrum team and talking through the items at the top of the backlog and just asking them team how far down they think they can commit to completing in the first iteration. Since this still stands a good chance of being wrong, don't spend too much time on it or hold the team too accountable to it.</div>
<div>
<br /></div>
<div>
For our example we will use an initial planning velocity of 15. We are also going to use an iteration length of 3 weeks and we are starting our project on 1/1/2013.</div>
<h2>
Creating the Initial Release Plan</h2>
<div>
With a prioritized and estimated Product Backlog and an initial velocity (which I like to call your planning velocity when used for release planning) we can make our first pass at a release plan. We simply start at the top of the backlog and work our way down summing the effort until we reach 15 (or right before we go over it). So if we have an item with an effort of 13 and then the next item has an effort of 3, then you should not put those in an iteration together since it would put you over you planning velocity of 15. When you reach the items at the bottom of the backlog that are too large to be played in an iteration, go ahead and stop for now. When doing this in Excel I use alternating colors to easily show the grouping of items into iterations as seen below.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5XKRfSkih5x_56pPqB4ZIMppWArtI5zJZZptYYaY4_AsJTrkmHLDdn1BLkc0Pe7wAtUirkNfJjMEjPyZt-ajuoiIarQQaKqtMJapmS1sLaY1_8c-k0XXe4DXeZvrI5AIETVC/s1600/InitialReleasePlan.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhg5XKRfSkih5x_56pPqB4ZIMppWArtI5zJZZptYYaY4_AsJTrkmHLDdn1BLkc0Pe7wAtUirkNfJjMEjPyZt-ajuoiIarQQaKqtMJapmS1sLaY1_8c-k0XXe4DXeZvrI5AIETVC/s320/InitialReleasePlan.png" width="267" /></a></div>
<div>
<br /></div>
<div>
Since we now have our items grouped into iterations based on our planning velocity, you can use a proposed project start date and the length of your iteration to add some dates to the groupings as well to get some idea of timing. Remember that this is very high level and is going to be constantly revisited each iteration so consider this a living document.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5OpWWvgx4tguVcvDJLewhZi0lYlrFqUPrAW8kI3l-t51j6hrWDHUmXGUNAJlmHEQ3bixN2vk7mwd9uwBU9Lx-72rBwM-wHe9q3TJXWFOwp1jggOgdFr-vG1G2owKqNZXEXm6Y/s1600/InitialReleasePlanWithDates.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5OpWWvgx4tguVcvDJLewhZi0lYlrFqUPrAW8kI3l-t51j6hrWDHUmXGUNAJlmHEQ3bixN2vk7mwd9uwBU9Lx-72rBwM-wHe9q3TJXWFOwp1jggOgdFr-vG1G2owKqNZXEXm6Y/s320/InitialReleasePlanWithDates.png" width="310" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
At this stage your Product Owner can pow wow with the appropriate stakeholders to talk about releases. Some companies release whenever they think they have enough value for their customers, so they will mainly ignore the dates at first and just see how far down the backlog they get when they reach the point where the functionality could be released to the customer. Then they can have some idea of when that may be, but of course each iteration this will be revised.</div>
<div>
<br /></div>
<div>
If your company does time based releases (like a regular release mid year, etc.), they can find the iteration end date before the release date. Then you can see what functionality would be completed and how much value you would be delivering to your customer. There may be issues where a group of functionality that needs to be delivered together as a unit to give the customer the best value spans your target release date and the Product Owner may have to make some tough choices.</div>
<div>
<br /></div>
<div>
Either way there will probably be some grooming of the backlog once this information has been hashed over. So the Product Owner may move items around, split them, combine them, etc. Anytime the Product Owner grooms the backlog, they should get with the team to have them revisit their estimates. This should happen even if they simply move some items around since some estimates may have had some assumptions on item B being easier to implement if item A was already in place and if you swap them then the estimates would need to be refined.</div>
<div>
<br /></div>
<div>
At this time you can choose to create a separate spreadsheet with just the items you want to slate for this upcoming release and use this as the working release plan. Then the Product Owner can move items on and off this separate list. This helps if you have a large backlog and only a subset is on the release plan. Keeping them separate can make it easier to manage them.</div>
<div>
<br /></div>
<h2>
Revising the Release Plan Each Iteration</h2>
<div>
During each iteration, the Product Owner will continuously groom the product backlog by working with stakeholders to add, remove, refine, and prioritize stories as well as getting with the Scrum team for estimation. </div>
<div>
<br /></div>
<div>
At the end of an iteration you can take the Scrum team's latest velocity and use it along with your historical velocities to adjust your planning velocity. One technique is to take the lowest 3 and average them for a worst case planning velocity and then average the highest 3 for a best case scenario. Giving stakeholders these two release plans with the range will help them not cling to individual dates in them as much.</div>
<div>
<br /></div>
<div>
The new release plan should be shared with the team and stakeholders each iteration. As you progress towards the target release the backlog and release plan becomes more refined and more accurate. The key thing is to realize that the release plan is like an Etch-A-Sketch that you shake up and recreate at the end of each iteration based on the latest empirical evidence.<br />
<br />
<h2>
Extending the Release Plan</h2>
This simple approach works well but in most cases you will need to extend it to meet your specific needs. Be careful to not add too much and make the release plan into something it is not. That is very easy to do. Here are some common extensions I have had to make for various reasons.<br />
<br />
<b>Adding Bugs - </b>I have been in many a debate about how to treat bugs when it comes to the backlog and the release plan. Many people do not like to waste time estimating the effort on bugs since there is often a good deal of discover involved before you can make a decent estimate. In those cases I have seen them put bugs in their own backlog and just dedicate a certain percentage of the velocity for each iteration to addressing the most critical. If this is your approach as well, then you will want to make sure that you adjust your planning velocity to exclude the effort set aside for bug fixes in your release planning.<br />
<br />
Unfortunately there are many companies that come into Agile with a significant backlog of existing bugs that need to be addressed. In those cases we did treat the bugs just like stories and put them on the backlog. They were estimated and prioritized just like the other backlog items. This incurs more overhead, but sometimes is warranted if you have to get a handle on the impact of your outstanding bugs. Since the bugs are now in the backlog, you can use your normal planning velocity during release planning. If you still have a significant amount of new bugs coming in too, then you may still want to adjust your planning velocity based on your historical average of new bugs introduced each iteration. Of course if you are in this situation you obviously have a quality issue and need to take other steps to shore up your quality processes.<br />
<br />
When we have added bugs to the backlog when then also added a field called <i>Type </i>that could be either User Story or Bug so that we could differentiate them when viewing the backlog or release plan. You can also then colorize that field based on the value (green for user stories and red for bugs) so with a quick glance at the release plan you can get some idea of how much of that release consists of new features.<br />
<br />
<b>Categorization and Grouping - </b>Often a group of stories make up a feature and need to be delivered together for that feature to add enough customer value to release it. Stakeholders like reports on those features that show when all of the needed stories are forecasted to be released or how many items in the feature group are complete versus open. This can usually be facilitated by just adding another column called <i>Category</i>. The problem arises when reporting needs start to require multiple or hierarchical groupings. You can try a couple of simple techniques for these cases like, adding more category columns (<i>Category1</i>, <i>Category2</i>, etc. or <i>MainCategory</i>, <i>SubCategory</i>, etc.). You can also stick with one field and use a delimiter, but that is not as easy to filter in Excel for simple reporting.<br />
<br />
<b>Baselines - </b>It never fails that someone asks to be able to see how a current release plan compares to what it looked like in the past. This can be very dangerous in that it reflects an inability to embrace change which is a major value of Agile. If you are asked for something like this I would recommend diving into why they need to know it and what they plan to do with the information. Backlogs are supposed to change and since a release plan is simply an overlay on top of the backlog, it is meant to change as well.<br />
<br />
<b>Business Value and ROI - </b>Business value is sometimes mistakenly seen as the only metric for sorting you backlog. It depends on what you mean. Normally business value is something tangible like adding feature X will bring in 10% more customers in the next quarter and result in $1,000,000 in additional sales. Can't argue with that. But what if the construction and support effort to get feature X out of the door is $1,500,000?<br />
<br />
There are also cases where you may implement a feature for less tangible reasons. You may have a very important beta customer who is very helpful in testing candidate releases. They may have a feature they really want, but it is not as applicable to your wider market. You may decide to implement this feature to maintain that relationship.<br />
<br />
All this to say that there are many variables that go into deciding the "value" of a backlog item. I still think capturing the estimated value of an item is worthwhile, I just use it as another input to setting the overall priority of the backlog. Try to keep it as a simple metric with some tangible guidance. One example would be a rating of 0 to 1000 (1000 be the highest value). Of course people will naturally try to say everything is 1000, but that is where the guidance comes in. Maybe the range or 750 to 1000 is for items that if they are not delivered in your next release will cost your company a significant amount of market share through the loss of existing or potential customers.<br />
<br />
Using a scale like that also allows you to do some simple Return on Investment (ROI) calculations. Divide the business value by the estimated effort, to get some idea of the actual value gained versus the amount of effort it would entail to deliver it. As I said, this is a very simplistic approach to ROI, but it is good at a high level. You can then start to see that the item valued at 1000 but with an effort of 20 has less ROI that an item at 500 with an effort of 5.<br />
<br />
<h2>
Other Resources</h2>
There are other ways to approach release planning, but the key is to make sure whatever mechanisms you decide to use reflects the Agile values your company is striving to adopt. Here are some online resources that have some additional insight on the subject.<br />
<br />
<ul>
<li><a href="http://www.versionone.com/Agile101/Agile-Development-Release-Planning/">http://www.versionone.com/Agile101/Agile-Development-Release-Planning/</a>
</li>
<li><a href="http://jamesshore.com/Agile-Book/release_planning.html">http://jamesshore.com/Agile-Book/release_planning.html</a>
</li>
<li><a href="http://scrumcoaching.wordpress.com/2010/05/30/release-planning-with-scrum/">http://scrumcoaching.wordpress.com/2010/05/30/release-planning-with-scrum/</a>
</li>
<li><a href="http://www.mountaingoatsoftware.com/books/agile-estimating-and-planning">http://www.mountaingoatsoftware.com/books/agile-estimating-and-planning</a>
</li>
</ul>
<br />
<br />
<br /></div>
Unknownnoreply@blogger.com4tag:blogger.com,1999:blog-21327984.post-74502388277102809732012-08-24T12:01:00.000-05:002012-08-24T12:01:02.954-05:00Super Fantastic Product Backlog Goodness!Do you love your <a href="http://www.mountaingoatsoftware.com/scrum/product-backlog">Product Backlog</a>? Do you stare at it for long periods of time with a dreamy look in your eye? Does the mere whisper of its <a href="http://www.agilemodeling.com/artifacts/userStory.htm">User Stories</a> make you shiver with delight?<br />
<br />
No?<br />
<br />
Don’t feel bad. Most of us don’t either. A good Product Backlog is hard to find and even harder to keep up. So how can we get to the point of “<em>Super Fantastic Product Backlog Goodness</em>”<strong>™</strong>? (Note: I actually have no legal trademark over this phrase, but I should because it is totally awesome.) Here’s a few ideas of how to build and maintain a better backlog:<br />
<h2>
It All Starts With The Product Owner</h2>
Since the Product Backlog is the responsibility of the <a href="http://www.mountaingoatsoftware.com/scrum/product-owner">Product Owner</a>, it goes without saying that their ability and availability have a significant affect on the quality of your backlog. Stay tuned for a more in depth posting about choosing the right Product Owner.<br />
<h2>
Writing Good User Stories</h2>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNkO-ty56Vxv19Fwg9Wgehpq-kOnbKBwW95KBy6yZCDv-6txynbqXA7uREB18lpvRDxct4oYk2rFz4xmRmsc6PbhB9qEemrpYrN9iqfIkwfxR0dggqwglRgFGtmtPObEKNSjM4/s1600-h/2332175%5B3%5D.jpg"><img alt="2332175" border="0" height="351" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQGRv_TN8xUKDHs1KQLRsyE2ZJ-GcsDhkTwMuOVHU3NV-5jlLvPVv56ME51xeS3emfG3ElUNArG8B8Z0NPrT2zTzHKYO9uDKybMonnUs5MwfFYrOcRX_XxJhltZPIMh_4l2ZgE/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" title="2332175" width="264" /></a> <br />
There are plenty of <a href="http://stevesmithblog.com/blog/investing-in-user-stories/">good posts</a> and <a href="http://www.mountaingoatsoftware.com/presentations/15-user-stories-for-agile-requirements">online resources</a> around writing good User Stories so I will only hit the high points:<br />
<ul>
<li><strong>Size</strong> – One of the biggest problems I have seen teams struggle with is sizing stories appropriately. What size is appropriate? Well that depends mostly on your team. A good rule of thumb is that a story should be no larger than what you can finish in half a <a href="http://scrummethodology.com/scrum-sprint/">Sprint</a>. I mostly see teams err on the side of too large since they have a hard time thinking a smaller story add legitimate value on its own.</li>
<li><strong>Roles & Personas</strong> – Too many times I see stories start with “As a user..”. Who is this user you speak of? Even if this story does apply to <em>every single use who will ever use the system</em>, the subtleties of how they interact with he system and what they expect can be different and imply other design considerations. Be sure to spend some due diligence figuring out the various types of roles for your application and some specific personas who would fulfill those roles.</li>
<li><strong>Clear Value</strong> – The third part of the User Story that outlines the benefit the user will gain from the described feature is often the hardest one to document. Smaller stories may seem to share the same benefit (and in some cases actually may), but don’t gloss over this part. Specifying the benefit of the feature helps with prioritization as well as giving the Scrum Team a better idea of why they are developing it.</li>
<li><strong>Acceptance Criteria</strong> – Even more so than the actual story itself, the <a href="http://www.nomad8.com/files/0787c369f92e9581d8ccf145ec62181b-15.php">Conditions of Acceptance</a> are key for giving the Scrum Team a better idea of how the feature should work when complete which leads to better estimates, better test cases, and a idea of when the feature is complete. As a story is groomed and given more detail, turning these into actual high level test cases is a good way to make sure the team has a clear vision of how to meet the needs of the users.</li>
</ul>
<h2>
Grooming The Product Backlog</h2>
The Product Backlog is not an artifact you work on at the start of the project and then ignore for the remainder. You constantly groom the backlog, adding to it, reprioritizing it, and gathering the appropriate amount of detail as stories rise to the top (more on this later). If you do not spend a fair amount of time grooming the backlog it can grow into a gnarly Phil Spector-ish mess.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYNDCDiAl-sxbaTb2ZNLMWmnaOz5o2MbgxEkwCM6VaPLyvxlytxm4_Qb1yqAqXwYCPapSD7bMAv5Q6SwK5_a1NhHhQtFT2X_k7C9_P7p45OtjodIBI8tetO1zRJZ8tsIgezW43/s1600-h/phil-spector-crazy-hair%5B3%5D.jpg"><img alt="phil-spector-crazy-hair" border="0" height="307" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOnuCNHUeOUOFW2ACN9zf94KDUUg7oTtDgijvAhyphenhyphenDLnB3Y90HwEPYiGc6GeQhj1UqDoXZKt5cAvNIn7CPVtVU0E7Eq-88buQ1VX3XWOYxobNwmAK1tzWh_NVduS_7W_6E1rZJr/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" title="phil-spector-crazy-hair" width="239" /></a> <br />
Most Scrum pundits proclaim a Scrum Team should spend 10% to 15% of the Sprint estimating the items on the backlog with the Product Owner. If you are running two week Sprints then that is almost 6 hours. I normally suggest breaking it up into two separate sessions so that if in the first one there are questions from the team the Product Owner has time to get answers. There is not a team I have met yet that does not initially balk at that. “Two more meetings each Sprint?!?! I’d rather spend that time coding.” You are going to spend the time either way. <br />
<br />
When you are estimating stories, you are reviewing them together, discussing your approach, clarifying business requirements, etc. This information is invaluable for getting solid estimates and for helping to ensure you don’t get sucker punched in the middle of a Sprint due to an ambiguous story that suddenly becomes much bigger than expected. If that happens you will definitely spend more than a few hours figuring it out in the Sprint and jeopardizing other stories in that Sprint in the process.<br />
<br />
Along with the Scrum Team dedicating time for estimating, the Product Owner must also dedicate time towards grooming the backlog each Sprint. This means holding story sessions with the stakeholders and users to get new stories, reviewing the priority of the backlog, and gathering more detail on stories that are high enough on the backlog to be slated for the next 2 or 3 Sprints. This is where the availability of the Product Owner becomes crucial. Poorly groomed stories tend to take the Scrum Team by surprise in <a href="http://mitchlacey.com/Scrum/Sprint-Planning-Meetings.html">Sprint Planning</a> which causes them to be poorly implemented or run long.<br />
<br />
<h2>
<strong>Not All User Stories Are Created Equal</strong></h2>
<strong><br /></strong>
The big myth about Agile is that it allows you to “get more stuff done faster with less people”. Not true. And if someone tells you that you should punch them in the ear. Agile is supposed to help you get the important things done quickly with probably about the same amount of people. (If you disagree then you can find me and punch me in the ear.)<br />
<br />
To ensure that you do the most important stuff first you must prioritize your Product Backlog items. This does not mean applying some business value metric and the sorting your backlog on it. The value of a backlog item has many different variables: business value to the user/company, the effort to deliver the feature, the ROI (business value divided by the estimated effort), it relation to other features that may need to come before it, and less tangible factors such as politics and solar flares. And on top of that it can change frequently. So prioritization needs to be part of any regular grooming. <br />
<br />
A friend of mine compared a well prioritized backlog to a PEZ dispenser: you pop back the top and the delicious candy on top pops out!<br />
<br />
<img alt="PezDispenser" border="0" height="290" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjd3Yo23sUj4XpdByrTM3Qo9zv9JUiA8RhssUyThE-QpjMWvMELjzqL25QAADUGrsCM7J4z3yRD73j36OQmIUMJYmCgcAke6dWgRP9armONVcQbvBWuAh7vIzP-QKUC32R3t1U2/?imgmax=800" style="border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; margin-right: auto;" title="PezDispenser" width="385" /><br />
<h2>
Be Ready To Throw It All Away</h2>
Remember that a good User Story is a “reminder of a conversation”. It is not a specification to be strictly adhered to. Once you commit to a story and start working on it during the Sprint, the team and the Product Owner can refine it as needed. Any effort you put into detailing a Product Backlog item is potentially wasted time if done too early in the process and in too much depth. Try not to get too hung up on the story and beware of sayings like “Where does it say that in the story?”. <br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvGuOgHTDR_0uNYdzYGQjtb1Kccgnq9NHx2WUhjbYNF9GvC0zP0ZKEkOn1ifBNv3S8KAsiJxHGd6-GDJ5tgKNcB9tiojh6WdgIA8MFDYvgcbNbtyBiJIck5_qL9-ftzgvLoWfy/s1600-h/etch_a_sketch%5B5%5D.jpg"><img alt="etch_a_sketch" height="294" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_aS611WpPjGs5IPozEdN9NGq6cn-VgOt19pQjwE9NPNgRCj5jj66xsto_6-RzU9h0cYe3u8TIL6IYpFiansYunQIy33bJQMSWXz6hp9N06IKnrWt4IYCG6MVrqOUsjMOfa_I-/?imgmax=800" style="display: block; float: none; margin-left: auto; margin-right: auto;" title="etch_a_sketch" width="327" /></a><br />
If the story says <strong>A + B = C</strong>, but while you are developing it the team and the Product Owner find that <strong>A + B = X</strong> then that is what it is. Do you go back to the story and change it? In my opinion, no. So where would you capture this change? In the test cases. This should be tested for in some kind of test (unit, integration, feature, whatever). Static documentation of a story can grow stale if not constantly updated and let’s face it, who the hell wants to update documentation? A test, on the other hand, verifies what the code does and as we all know “the code is the truth!”<br />
<h2>
Now Go Be Super Fantastic!</h2>
Hopefully these ideas will help you go make your own totally awesome backlog! I’ll explore implementing a good deal of these concepts in <a href="http://msdn.microsoft.com/en-us/vstudio/ff637362">Team Foundation Server</a> in an upcoming post.Unknownnoreply@blogger.com2tag:blogger.com,1999:blog-21327984.post-10286091911592191162012-08-24T11:59:00.000-05:002012-08-24T11:59:02.788-05:00More Than Just 3 Questions: Getting the Most Out of Your Daily ScrumsThe Daily Scrum is probably the most widely adopted mechanism in the Scrum arsenal. For good reason as it is a great communication and tracking tool for even non-Agile projects. Unfortunately people think that if they ask the standard three questions ("What did you do yesterday?", "What will you do today?", and "Are there any impediments preventing you from completing your work?") and keep it under 15 minutes then they are doing it correctly and getting the most out of this meeting.<br />
<br />
While you might be abiding to the two basic rules above, this does not necessarily mean these meetings are beneficial. All too often the mechanism of this meeting is implemented without much regard to the underlying concepts that support it. Here are some tips and ideas around Daily Scrums I have gathered over the years I think help you get the most out of them:<br />
<h2>
The Daily Scrum is for the Team</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjoxY9au9qAwIr12zFz-ujdPeBhXNOxRUfWjETIn3ZBhs2X6DgJ2reOuIOlUuAJWXGewp655gGuG1YDoR30CVFUzyJ9FACfDKxNtesv3ynGLrTBr-jvAZF81ZnPoKVr0JqT_A/s1600/standup2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="268" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBjoxY9au9qAwIr12zFz-ujdPeBhXNOxRUfWjETIn3ZBhs2X6DgJ2reOuIOlUuAJWXGewp655gGuG1YDoR30CVFUzyJ9FACfDKxNtesv3ynGLrTBr-jvAZF81ZnPoKVr0JqT_A/s400/standup2.jpg" width="400" /></a></div>
This meeting is not for reporting to the Scrum Master or anyone else for that matter. While anyone (including Chickens if they behave) can attend, the team members are reporting to each other. Sometimes just the mere presence of a VP or other manager causes the team to feel like they are giving a status update to this person. This often results in the chicken feeling the same way and emboldens them to ask clarifying questions or start directing the meeting. It may be as subtle as them moving it along by asking the next person to start, but it can quickly turn the orientation of the meeting. I see this most often if the Scrum Master cannot be present and an attending chicken thinks someone needs to be "in charge".<br />
<br />
To prevent this (and its hard to do when you report to these chickens in some way) try a few of these suggestions:<br />
<ul>
<li>Remind everyone that only the scrum team and the Scrum Master are allowed to talk during this meeting. After everyone has given their updates, then questions and clarifications can be asked but everyone else can leave. </li>
<li>If possible, position the team in an “inner circle” and have chickens behind them outside of the circle. It is a subtle physical reminder of who the meeting is intended for. </li>
<li>I also think that even chickens need to be standing, but a good argument for not making them stand is to have another physical reminder. </li>
<li>Even with the Scrum Master present, the team should take charge in starting and moving the meeting along. When the Scrum Master does this, it can still make it feel like you are reporting to them and if the Scrum Master is also a member of management it makes it even harder to break the habit.</li>
</ul>
<h2>
Use a Task Board</h2>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6RHj9Y4yo2yBsOqVykamHjnuqoMcg5XidGnqJ9Uq7ErFITrG3d-imsHcvkaUv3FowHsigRspJ2qyM2W5qofpW5wFJzNnQiaXLnLAEfYsvodK-rXjkt-5aKmDXUs3-zKKy-QYc/s1600/scrum-task-board-xqa.com_.ar_.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="230" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6RHj9Y4yo2yBsOqVykamHjnuqoMcg5XidGnqJ9Uq7ErFITrG3d-imsHcvkaUv3FowHsigRspJ2qyM2W5qofpW5wFJzNnQiaXLnLAEfYsvodK-rXjkt-5aKmDXUs3-zKKy-QYc/s400/scrum-task-board-xqa.com_.ar_.jpeg" width="400" /></a></div>
All too often with Scrum teams that do not use a task board for their Daily Scrums you here things like “I finished the widget class yesterday” and depending on how integrated the team is some of us may have no idea what the widget class is exactly and the fact that is it done does not give us any kind of clear picture of the progress for the User Story it belongs to. This is even less clear when you use a Agile management tool and people report things like “I finished task 24533 yesterday". If you are not intimately involved in that particular story you have no real reference to determine how it is progressing.<br />
<br />
By using a story board you can get an idea of how a story is progressing even if you do not have any knowledge about it. By merely seeing the flow of tasks in their various states you can determine how much of it is done.<br />
<br />
It is also easier to identify issues with stories with a task board. If someone has been reporting on the same 6 hour task for 3 days it becomes very clear there is an issue. Is there an impediment keeping them from finishing this task? Was the task originally scoped too small? Is this joker some kind of slacker? Even when people do not know they are in trouble the task board can identify the issue and them team can act appropriately. <br />
<br />
(Note: I am planning a follow up blog post just about task boards later with more details.)<br />
<br />
Another practice that deviates from the normal Daily Scrum rules is “walking the board”. Instead of asking the 3 questions, the team walks through each story on the backlog and says what tasks were done for each one, what is going to be started, and any impediments for that story. I was not a big fan of this at first when a client started doing it, but I think in some cases it works really well. If you do try this be careful that everyone on the team is participating since your attention is to the story and not the individual members.<br />
<h2>
<strong>Use Information Radiators</strong></h2>
Per <a href="http://alistair.cockburn.us/Information+radiator">Alistair Cockburn</a> an information radiator is something that show valuable project metrics that can be gained to a casual observer with a glance. This would include items like:<br />
<ul>
<li><strong>Sprint Burndown Chart</strong> – A graph showing the hours remaining from the Sprint Backlog for each day of the sprint. Good for monitoring how the flow of the tasks is going.</li>
<li><strong>Story Burndown Chart</strong> – Similar to the sprint burndown but instead of showing remaining hours per day it shows unfinished stories. </li>
<li><strong>Task Board</strong> – The task board itself is a good indication of how the project is doing per story.</li>
<li><strong>Build Status</strong> – Whether you use something like <a href="http://www.woodwardweb.com/gadgets/000434.html">Brian the Build Bunny</a> or simply track builds passing and failing on a graph, this can alert you to problems with code quality.</li>
</ul>
Placing information radiators like these in the Daily Scrum area help the team be aware of the status of the project on a daily basis. Make sure they get updated frequently to provide the most value.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-eilPH9hnxatigrX8UR3dYDynikl0LrJmU3BpbzSjUfJeDYjbnnNM3O0QsPVE6tEe4qCSP14zim17-fBQ4C3T3lcUcP4dKDvOABnUOYFQRI54VcYID05LkxX2P1Pkqj5bI8iW/s1600/DailyBurndown.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="232" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-eilPH9hnxatigrX8UR3dYDynikl0LrJmU3BpbzSjUfJeDYjbnnNM3O0QsPVE6tEe4qCSP14zim17-fBQ4C3T3lcUcP4dKDvOABnUOYFQRI54VcYID05LkxX2P1Pkqj5bI8iW/s320/DailyBurndown.jpg" width="320" /></a></div>
<br />
<h2>
Try It, You’ll Like It!</h2>
These are just a few ideas to try and remember that what has worked for my teams in the past may not work exactly the same for yours. For a quick test to see if you are getting good information from these meetings, gather the team after one of them (away from the room so they cannot cheat and look at any of the information radiators) and ask them questions like “how is the project going?”, “are we on target to reach our sprint goal?”, and “what is team member xyz working on today?” If your team members cannot answer these questions with a significant degree of confidence then they are probably not getting the most out of the meetings.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-63164553527422028892012-08-24T11:51:00.002-05:002012-08-24T11:51:49.140-05:00Scrum Masters are Like Referees<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4biz98Ggw2A27ZWTEb026tRqkPiHxKEbZIkUe6Ay9DL5B-xr9Lpy5O3BY4p06DZY1VijMeSZe-joVafORj3sff98_MmAgeE48C0Lur_CijQ8ORqVORV2MMfJZmXR2Koq4_BXg/s1600-h/referee-with-flag%5B3%5D.jpg"><img align="left" alt="Photo of a Referee - Penalty" border="0" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUHqHlAatEhug5sjkbSb_4SmHFp2eyBrm8PaDZ2vX0seraL0oBknMHxSNfKQcWc0InFDNaVeczYnnOrC48T1NMeUEqBpAr3d6Qdv3q_s5ZYp-LfYY1zMg4BVBJLG7CagcWOSIu/?imgmax=800" style="border: 0px; display: inline; margin: 0px 10px 5px 0px;" title="Photo of a Referee - Penalty" width="135" /></a> It almost never fails as a company begins to adopt Scrum there is a mad dash of people going to Certified Scrum Master training and dubbing themselves ScrumMasters. Often this comes from a vague understanding of what a ScrumMaster actually does and the misconception that they run the project. The most likely culprits are project managers, product managers, and just plain ole managers who fear their position of authority might be usurped if Scrum is adopted to the letter at their organization. And depending on the organization, they might be right (or at least their role would change quite a bit).<br />
<br />
At one client a would be Scrum Master told me "I coach the team like a football coach. I tell them what to do." No, the ScrumMaster is not the coach in the team <i>sport sense of the word</i>. If we want to equate it the sports world the almost perfect parallel is the <b>referee</b>. A referee makes sure the teams play by the rules and that nothing interferes with the game. Scrum Masters do coach the team in a mentoring sense, but they don't <i>call the plays</i>.<br />
<br />
Let's do a quick side by side comparison:<br />
<br />
<table border="1" cellpadding="2" cellspacing="0" style="width: 100%px;"><tbody>
<tr> <td align="center" valign="top" width="246"><strong>Referee</strong> <br /><span style="font-size: xx-small;">(specifically a football referee)</span></td> <td align="center" valign="top" width="252"><strong>ScrumMaster</strong></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Enforces the official league rules of play for the game.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Enforces the agreed upon rules for the team's adopted Scrum process.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Does NOT solely dictate the rules, but contributes to their definition along with team owners, coaches, player representatives, etc.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Does NOT solely dictate the rules, but contributes to their definition along with management, Product Owners, Scrum Team members, etc.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Ensures the progress of the game is correctly communicated via mechanisms like the down marker, the score board, etc.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Ensures the progress of a Sprint is correctly communicated via mechanisms like a sprint task board, burn down charts, etc.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Ensures the timely execution of each play by keeping track of the play clock.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Ensures the timely execution of each Sprint by keeping track of the time boxed activities.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Does NOT tell the teams what play to execute.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Does NOT tell the Scrum Team was tasks to execute.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Does NOT determine the game plan for the team to implement.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Does NOT determine the features a Scrum Team will implement.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Resolves any conflicts and removes any field obstructions to allow the teams to play the best game they can possibly play.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Resolves conflicts and removes obstacles so the Scrum Team can develop </span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Ensures that the plays and game plan executed by the team follow the league rules.</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Ensures that the tasks (Sprint Backlog) and features (Product Backlog) do conform to the agreed upon rules.</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Is not held accountable when a play is botched if all the rules were followed. (Not counting bad calls!)</span></td> <td valign="top" width="252"><span style="font-size: xx-small;">Is not held accountable for a team missing it's goal when all the rules are followed. (Although a good one helps find out why it was missed.)</span></td> </tr>
<tr> <td valign="top" width="246"><span style="font-size: xx-small;">Wears an ugly black and white uniform.</span></td> <td valign="top" width="324"><span style="font-size: xx-small;">Is free to wear whatever they wish. (Within reason that is…)</span></td> </tr>
</tbody></table>
<br />
<table border="1" cellpadding="0" cellspacing="0"><tbody>
<tr></tr>
</tbody></table>
<br />
Alright, so it is not a 100% perfect match, but the analogy is pretty darn close. The main point is that the ScrumMaster does not lead or control the team. The Scrum Team does that itself. The ScrumMaster does not manage the features and determine which ones the team should work on. The Product Owner does that. <br />
So if you do intend to be a ScrumMaster, pull on your white and black striped shirt and get your whistle ready! <br />
BTW - If you want some canned definitions for the role check out what <a href="http://www.mountaingoatsoftware.com/scrum/scrummaster">Mike Cohn</a> and <a href="http://www.scrumalliance.org/articles/39-glossary-of-scrum-terms#1121">Ken Schwaber</a> have to say. Also, if you ever wondered what the official duties for a football referee were, you can see the NFL's explanation <a href="http://www.nfl.com/rulebook/jurisdiction">here</a>.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-30148148205281846822012-08-24T11:45:00.001-05:002012-08-24T11:45:40.946-05:00The Ongoing Pursuit of the Perfect Virtual Task Board<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuGJAf588WgN67a3PpRiyk2o8ptuC1URFNCGTJbHXmN5-z-MFu1EiyqFtfxg2WMpKUruVxntJfjt3icTwFmsdBUvSKw4UCpLIRg19tMteUPk4m4zL85r97DVvDWiV6IEVaTHpz/s1600-h/PerfectVirtualWhiteBoard4.png"><img alt="PerfectVirtualWhiteBoard" border="0" height="313" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheWHfowYtOviOenR938faaFPA36QPkI8GeFao4yVsskVK6qTBxHhPXIAFJc15iYPgWg_6h0afn79Ez4Y4XLZZtjCvTUdiTX-cJAbf2bQTQkmx69rdoIhGqJgD391f0Y1kZ6kTc/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="PerfectVirtualWhiteBoard" width="459" /></a> <br />
I work in a distributed <a href="http://www.scrum.org/scrumguides/">Scrum</a> environment. Let me clarify. I work in a distributed <a href="http://www.scrum.org/scrumbut">Scrumbut</a> environment. Half of our team is here in <a href="http://www.visitmusiccity.com/indexfull.php">Nashville</a> and the other half is in <a href="http://www.ci.mtnview.ca.us/">Mountain View, CA</a>. We work very closely but as anyone who has worked in a similar situation, it is hard to be highly collaborative. I <a href="http://comfortablyscrum.blogspot.com/2010/10/collaborative-workspaces-virtual-tour.html">posted previously</a> about how my company has tried to create a workplace that promotes this type of collaboration and they are dedicated to improving it. <br />
Recently I lamented that our <a href="http://www.mountaingoatsoftware.com/scrum/daily-scrum">daily stand ups</a> were not conveying enough information about what the team was working on and made it my mission to improve them. Since we are located in two different offices (and because some people do not recognize the value as much) we do not use a <a href="http://www.mountaingoatsoftware.com/scrum/task-boards">physical sprint task board</a>. Let me be clear: a physical sprint task board is the <a href="http://www.phrases.org.uk/meanings/the-bees-knees.html">bee’s knees</a> and if you can use one, do so. <br />
<h5>
The Drawbacks of the Physical Task Board</h5>
So why do we not use a physical task board? First of all the ability for it to convey information to the entire team is diminished since only one office actual sees it regularly. We do use <a href="http://www.lifesize.com/">LifeSize</a> video conferencing during our stand ups, but it is just not practical to zoom in on the task board since the viewers on the other side can’t make out any real detail. <br />
We talked about having two boards, one in each location. This was dismissed since there would be a considerable effort for us to not only keep the two boards in sync, but also keep them in sync with our sprint backlog which we maintain in <a href="http://msdn.microsoft.com/en-us/vstudio/ff637362">Team Foundation Server</a>. Before you start quoting the <a href="http://agilemanifesto.org/">Agile Manifesto’s</a> views on tools, I did admit we are a Scrumbut shop and as a fairly large organization we have a great need to have this data in a digital format. <br />
Now I saw on <a href="http://scrum.jeffsutherland.com/2010/12/scrum-board-on-steroids-awesome-nature.html">Jeff Sutherland’s blog</a> a video of a team that used Jira and RFID tags on their cards for a virtual/physical task board that awesome with a capital AWESOME, but fairly impractical for us.<br />
<h5>
Setting Up the Environment</h5>
<div align="center">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4MtWLnBku-vjJloYA5f9z8dxeWrydA4r56gKDQouuiuD50IneLBJny-w3b-HaFg5FcEWdLkkGULBdpz4bZV6HZnJyvsY5bVQxRa6l6DP9vLfPtSDcdjrse6Hmz9PqTvoxtq-e/s1600-h/100_127363.jpg"><img alt="100_1273[6]" border="0" height="324" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQEbpllIIkUdxbFHfJDo6-3SMoP9tJSz0UNwfkARbtYTWGyrD0Y0qQPCa9KQQ3g9IFu9YGWWl6Ehl9oeu48andDj85j3QtGu8k1W84jeQOTdr2paYP1-OKwkJ-xS8F0LgSmLmS/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="100_1273[6]" width="431" /></a></div>
We have a great collaboration area in our office that we wanted to start using for our daily stand ups to take advantage of some of its technology. As I mentioned before there is a LifeSize video conference suite with a 55” LCD TV, remote control cameras with tilt/pan/zoom, and multiple microphones. We also have a <a href="http://smarttech.com/us/Solutions/Education+Solutions/Products+for+education/Interactive+whiteboards+and+displays/SMART+Board+interactive+whiteboards/885ix+for+education">SMART Technologies</a> virtual white board which allows us to not only share our desktop with our counterparts in the other office, but they have a matching virtual board there that we can both interact with in real time. This is very cool for collaborative white boarding but we also wanted to try some of the various digital task board applications out there.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEisMYcYPC9IVLhxhs9aJMujA9Lny316mBkVqlil6sOrpTAruHr3qZovbqTjbcSOEMW9oqHb213z354-dCfcdjTV1H7RnbjSIDAYm6GR6T5ijX43e4hLzCaCRRYXeWn7gKLD1470/s1600-h/100_1281123.jpg"><img alt="100_1281[12]" border="0" height="330" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUCjuU1i-sVs5_qvONbFmUQzRbp3evURvoSaxUkr6oktfgkQpxORLSnjrEfT-iONOXNa3qlUePn4fn0ywqZQg1kBkChpxaJxDybHthuL_Qs8loRZDD9wzIlGPVgwCHog3iGa2Y/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="100_1281[12]" width="439" /></a> <br />
When we started using this space for the stand ups a few short comings in the arrangement came to light: <br />
<ul>
<li>The video conferencing screen and the virtual white board were side by side on the same wall. This meant when someone was working with the virtual white board, they totally disappeared from the screen and we found ourselves jumping back and forth when we really tried to collaborate. We would love to have them on walls at right angles to each other, but that would require a good deal of construction work for our current space so we are looking into a mounting arm for the TV that we can tilt towards the white board. </li>
<li>The area is open to the rest of the office and we have very cool looking (but noisy) open ceilings. We found it hard to hear using the out of the box microphone/speaker that came with the LifeSize and the people on other side had a hard time hearing us. We had several sound dampening menageries installed that help cut down on the ambient noise, but in the end the best solution was purchasing two small microphones with long cords that could be placed deeper into the open area to pick up everyone talking better and we routed the audio from the other side through the TV speakers. </li>
<li>At first the video from our side was very dark due to the “cool” mood lighting the workspace designers had installed. These were soft glowing rings on the walls and hanging from the ceiling that did not provide very good lighting and gave you crazy patterns over your eyes when you stared at them too long and blinked. We removed these lights and installed brighter light fixtures. We thought this would cure our video quality problems but then we noticed that we now had very well lit video that was very fuzzy. The cool pan/tilt/zoom camera has an auto focus feature that was freaking out since the space is so open it cannot determine what to focus on. It did not help that the floor and the chairs in the area all have different, complex patterns on them. We found a sweet spot to zoom in that makes it clear but only gives you a narrow field of view. We are currently working with the LifeSize support team to find a better solution. We have also started using their stationary camera that does not have auto focus so it is clear but we have to manually move it around. </li>
</ul>
Despite some of these difficulties, these tools are great for gaining some of the individual interactions and collaboration back with a distributed team.<br />
<h5>
Virtual Sprint Task Board Software</h5>
Once we had our space setup we started using it for daily stand ups and tried using a few of the virtual sprint task board applications out there. We had a few requirements starting off:<br />
<ul>
<li>It had to integrate with Team Foundation Server and support the <a href="http://scrumforteamsystem.com/version-2/process-template">Conchango process template</a>. </li>
<li>Our project is currently on TFS 2008, but we are migrating to 2010 soon so we wanted something that could work with both versions. </li>
<li>We preferred not to install anything on the actual TFS server. </li>
<li>We preferred free software since this was at the time my personal pet project so it was not funded. </li>
</ul>
With that in mind we looked at a these applications:<br />
<ul>
<li><a href="http://scrumforteamsystem.com/version-2/task-board-v2-1-x86">Conchango’s Virtual Task Board</a> </li>
<li><a href="http://scrumforteamsystem.com/version-3/tfs-workbench-v2-1-x86">Conchango’s TFS Workbench</a> </li>
<li><a href="http://www.telerik.com/team-productivity-tools/tfsmanager-and-tfsdashboard.aspx">Telerik’s TFS Work Item Manager</a> </li>
</ul>
<h6>
Conchango’s Virtual Task Board</h6>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiEOn2K-CoL0JNSznltJ14pvTLsv47NPJKMwezuB2Q72Btosc4R0ucz_3p-bw0DYeip7i8C69y56a4Rn7LYqwpwjHpgo_BNtY6R2nKNs2cZT3G0I_vEVCEonmpR4-BVRvulhgvn/s1600-h/TaskBoard0014.jpg"><img alt="TaskBoard001" border="0" height="303" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6nSAkvcVZN_EWYy3o-zvjeYUUQpT2pSUcCk6VtmYR3hjEGA8HSepreGmPjyhK0Fj6z-kVOifUUUoZToiNQaM-9cCJAg9kWjKWXsUOW9fq4hIp8pRwrRl-Ps0Ik2PeCDodeHT8/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="TaskBoard001" width="450" /></a><br />
Pros:<br />
<ul>
<li>Shows tasks grouped by User Story/Bug – I think this is a must since a major purpose of the board is to convey the progress of the product backlog items you have chosen to implement during the sprint. </li>
<li>Zoom In/Out – We sometimes have quite a few stories and bugs in the sprint and being able to zoom out to see the big picture and then zoom in on one story is very handy. </li>
<li>Filter By Team – We have 5 separate scrum teams working on the project that have their individual team stand ups so being able to only see your team’s items was essential. NOTE: This for some reason did not work on our 2008 project so we had to sort the list by team and then scroll to each team’s items. </li>
<li>Drag & Drop Linking – If you drag a task to another user story or bug it automatically removes the previous link and creates the new one.</li>
</ul>
Cons:<br />
<ul>
<li>Small Scroll Bars – Since we are using the application on a touch sensitive board, it would be nice if the scroll bar was bigger so we could easily touch it with our finger and drag up and down the board. Often times when we zoomed in or out the scroll bar disappeared entirely and we had to restart the application to get it back. </li>
<li>Mouse Over Functionality – As I stated above, when you use the application through a touch screen type scenario, functionality like the mouse over for more detail become unusable. You also have to double click on some items which for some reason is also quirky on the virtual white board screen. It would be nice if the application was geared towards a touch interface. </li>
<li>Filter By User – The application does allow you to filter by user, but it is not easy to select a single user since the list contains every team member with access to the TFS project and they are initially all selected and there is no unselect all feature. This should be a single click away so that when each person steps up to the board, they can quickly filter the board to just the stories they have tasks for and then easily remove the filter to see them all. </li>
</ul>
<h6>
Conchango’s TFS Workbench</h6>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyCrlBAdlyXRYytitgRvcvr0df0NQ4cLZFzw45CYrCO3vICbNyBYrlMG0Io5EI9sblEgguqbcI_Qpltr9MMmNf4UsXAuPlTgRy05NQXBcbmZ_sIM9rE0daN06EKxaGddXDgGL_/s1600-h/TfsWorkBench5.png"><img alt="TfsWorkBench" border="0" height="410" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFD8O9iWy41cZFDfHinbzg6t8Rl1hKj0gBdOPexTKDgF4eMjnP4QMMdn30Q5ksmzgMCOHjkk7sGbPC2UCbaWnAdOH31YjoMgQJFn9z02BhBDV2ok2o0wDEJGgKO0QTti9hxMhm/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="TfsWorkBench" width="468" /></a><br />
Pros:<br />
<ul>
<li>Better User Interface – I like the new user interface on TFS Workbench much better than the one for the Sprint Task Board. It seems cleaner to me and easier to view the swim lanes. You can customize the colors of the notecards for each state which is a nice touch. It supports zoom in and out as well. There are also larger icons for adding, editing, etc. on the work items that make them more usable with a touch interface.</li>
<li>Customization– You can create custom task boards specifying the parent, link, and child types that work well for TFS 2010. This is good for viewing other items in a task board view like tests per bug/user story. Link types are not supported in 2008. You can also easily change the states shown in the swim lanes and which states show up in the “other items” bucket.</li>
<li>List Views – There are also list views that show work items in a list by type. It is not necessarily applicable to stand up meetings, but it is nice for other meetings where you may be editing items by batch.</li>
<li>More Sorting/Filtering Options – Compared to its predecessor, there are more sorting options and an easier filtering interface. With TFS 2010 it is easy to filter by team or by the higher level sprint to see all teams.</li>
<li>Custom Fields Supported – We don’t edit the work items from the touch board often, but when we do it is nice that our custom fields are available.</li>
<li>Drag & Drop Linking – If you drag a task to another user story or bug it automatically removes the previous link and creates the new one.</li>
</ul>
Cons:<br />
<ul>
<li>Filtering By Team with TFS 2008 – Since the new SfTS v3 template uses iterations for teams, if you are using TFS 2008 there is no option for sorting by teams. This was especially hard for us with 5 teams meeting at different times but all using the same backlog.</li>
<li>Small Scroll Bars – Once again the scroll bars are a bit too small to easily use with a touch interface.</li>
<li>Mouse Over Effects – There are still a few pieces of functionality that use mouse overs which of course do not work well on a touch interface.</li>
<li>Filter By User – There is no support for filtering the task board by users.</li>
</ul>
<h6>
Telerik’s TFS Work Item Manager</h6>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc6gApkZ5u1h8uB0ffZTFO_hq-_BtdFgGEvPgRQMeTvmg5h7reLDYT2Dvwjo7Nc7ZR-q935WBU170r8pdak88jEQrFBmEnoC894CX3PFoKVuW3NluIIIZ_djIzLYReguSRuRdC/s1600-h/image_thumb35.png"><img alt="image_thumb[3]" border="0" height="353" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmpBukS_UJVjET-tLZ9qEVL_9VmtvEnyejvm91TGlUP8eHn2vi2tiQMaENGP8p2GEaI_cStg9W31tWNz-T0CSoNUiWA5zmEpmdmfWGt2pl__yMh7WhW9kO8PrE31WNvWgOFMl6/?imgmax=800" style="background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; margin: 0px 5px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="image_thumb[3]" width="467" /></a><br />
Pros:<br />
<ul>
<li>Process Template Independent – This did not make any difference to us, but if you have multiple projects using different templates this would be a big plus.</li>
<li>Customization – The task board uses TFS team queries for specifying the work items in the task board which allows for some interesting customization.</li>
<li>Group By User – If you don’t “walk the board” by going over it by story, but rather have each user come up just to talk about their tasks, then grouping the tasks by user allows you to only view a specific user’s tasks.</li>
<li>Search – There is a search bar at the top of the board that will filter tasks with your search criteria in the title or description. Not super useful in a touch interface, but if you have lots of tasks it is nice to have.</li>
<li>Open In Separate Window – You can open the task board in a separate window without all the toolbars and menus which gives you more dedicated screen real estate.</li>
<li>Drag & Drop Linking/Update – If you drag a task to another grouping it will link or update the group by field appropriately. Interesting feature but not as useful for story linking due to the poor grouping interface. It is nice when grouped by user because you can drag items to other users to assign them.</li>
</ul>
Cons:<br />
<ul>
<li>Process Template Independent – Just as this is helpful for switching between multiple templates, it makes it less useful when you use one template that is more specialized (such as the Conchango ones). There’s almost too many options and you can’t get the exact same style interface as the other applications which mirror a truer sprint task board implementation.</li>
<li>Group By Story/Bug – Where the other task boards show the user story or bug at the side of the swim lanes, with this application you group by parent item and they show up as collapsible headers. This was not very usable and diminished its ability as an information radiator since it did not show the status or details of stories as clearly.</li>
<li>Mouse Over – While the notecards did have large icons for editing and linking, they do not show up until you mouse over the item.</li>
<li>Small Scroll Bars – Apparently none of these apps were made with touch screens in mind!</li>
<li>Poor User Interface – You may question this if you look at the app because it looks nice and sleek, but there are too many options and not enough vital information clearly displayed. I found myself having to search the screen to find information I wanted. There was also no way to tell what a notecard represented (user story, bug, task, etc.) except for a color legend that you had to view in a drop down list. Most of the items were also smaller and hard to manipulate easily with a touch interface.</li>
</ul>
<h5>
So Which One Do You Use?</h5>
We use the original Conchango Task Board currently since we are still hitting a TFS 2008 server on my project and we can sort the task board by team. Once we upgrade to 2010 we will most likely move to TFS Workbench.<br />
<h5>
My Perfect Virtual Task Board Application</h5>
My team sat down and talked about what we would want from the perfect task board application and here are some of our top requirements along with a screen mock up.<br />
<ul>
<li>Shows a selected sprint's tasks grouped by product backlog item (user story & bug). <ul>
<li>Defaults to the current sprint.</li>
</ul>
</li>
</ul>
<ul>
<li>Allows you to configure what swim lane states are displayed.</li>
<li>Allows you to drag and drop tasks from one state to another. <ul>
<li>If the underlying provider enforces state transition rules then it will respect those. <ul>
<li>For example you might not be able to drag an item from "Not Done" to "Done" and skip the "In Progress View".</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>Allows you to save your updates to the underlying provider. <ul>
<li>Meaning changes would be saved to your provider's Agile management tool like TFS, <a href="http://www.danube.com/scrumworks">Scrum Works</a>, <a href="http://www.versionone.com/">VersionOne</a>, etc.</li>
</ul>
</li>
</ul>
<ul>
<li>Allows you to sort by any available field from the product backlog items.</li>
<li>Allows you to filter the product backlog items by team.</li>
<li>Allows you filter the product backlog item by user, showing only ones that the selected user has tasks assigned to it. The less clicks to do this the better.</li>
<li>Allows you to switch to a "zoomed out" view where all the tasks are smaller so you can see more of the board. <ul>
<li>You can select a row and have only that row zoom to regular size.</li>
</ul>
</li>
</ul>
<ul>
<li>Allow users to easily change their remaining hours on an in progress task without having to use a keyboard.</li>
<li>Automatically zero out the work remaining on a task that is dragged to the "done" column. <ul>
<li>If trying to make this support multiple providers then the provider should be able to identify their final state to apply this rule to.</li>
</ul>
</li>
</ul>
<ul>
<li>Allow the user to quickly add a new task. <ul>
<li>Require as little typing as possible by auto populating as many fields as possible. <ul>
<li>Fields that could be derived from the current context would be: <ul>
<li>Assigned to user, current sprint, area, team, parent product backlog item.</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<ul>
<li>Allow user to delete a task easily.</li>
<li>Show in progress tasks as "stale" if they have not been updated after a configurable amount of time.</li>
<li>All non-essential menus would be able to be hidden while interacting with the board but easily accessible when needed.</li>
<ul>
<li>Most menus could be hidden an only shown when the user expands them by clicking on an icon. <ul>
<li>If the user clicks anywhere else on the task board the menus would be hidden again.</li>
</ul>
</li>
<ul>
<li>A menu like the one used to select a current user could be collapsed to a slim bar but toggled to be expanded also.</li>
</ul>
</ul>
<li>User interface would be designed with touch screens in mind with large icons, easy scrolling, no mouse over functionality, etc.</li>
</ul>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzcS_XORxa5WcWD16DnjdOifSa4RG4Zl702rL0Ikg3XpIo6pNdNUE474Y7Ybny3xUPZv1jDQJ2pxhv43sV-6iZwTGvRm6F0C0VACmFhn2HPeS0CR7szCM7Y8MxWa4V7puo1YPd/s1600-h/SprintTaskBoardMockup%5B3%5D.png"><img alt="SprintTaskBoardMockup" border="0" height="319" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhEPpCk0-qit4Ce19vAvai_5eLahV640K7oUAlMpPYoj0G1nPnY-5MzrxPbrX5Qv-Z0t9Ux9XWAgXd5Ljt8zNj5OxW0nryCkylCMyy5SzVzvGXnwzzO_RHnwgxM6A5aPUKxzXYs/?imgmax=800" style="background-image: none; border-bottom: 0px; border-left: 0px; border-right: 0px; border-top: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;" title="SprintTaskBoardMockup" width="454" /></a><br />
So if someone out there is looking for a new open source project, you can build our ultimate virtual task board app and we will be eternally grateful!<br />
If you have implemented a virtual task board, let me know how it is working for you.Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-11748580908567320042010-05-13T22:48:00.001-05:002010-05-13T22:48:34.544-05:00Agile 2010 Conference Location Move<p><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIdDIuYiFYqm48UVVAmrLZ4f1X8Z1lI2BAPXioQdgY9S3_pYOSl3uw6uS-2Saq7eh0Iy8mHGBVuZcJNLcx4ViczraW7qZLTq-HuRpq3HTmSAhNuBM0qD_5M7mWpD59zA2m-IM4/s1600-h/Agile2010Logo%5B3%5D.png"><img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="Agile2010Logo" border="0" alt="Agile2010Logo" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiketg-oUQ_gbggnYCX6NHHAOUxUb82x5jMtskYKms7cktF-Emwt3EAvky6h7B0KelKr-QF5045gCaQqHNRicYyuC8F9tVr_WjaHqMsgJb3U2hB7lEa1FLPcXm6tIPhCiqcZgQJ/?imgmax=800" width="244" height="81"></a></p> <p> Due to the damage caused to the <a href="http://www.gaylordhotels.com/gaylord-opryland/">Opryland Hotel</a> from Nashville’s <a href="http://www.youtube.com/watch?v=VfL5j9ckcyo">severe flooding</a> this month, the location for the <a href="http://www.agilealliance.org/">Agile Alliance’s</a> <a href="http://agile2010.agilealliance.org/">Agile 2010 conference</a> has been moved to The Walt Disney World Dolphin Hotel in Orlando, Florida. The dates will remain the same (August 9 - 13th). You can find more details about the move <a href="http://agile2010.agilealliance.org/faq.html">here</a>.</p> <p>Since I live in Nashville, it is doubly sad for me since I will most likely not be able to attend this year and I hate to see the economic impact of a large conference like that leaving the city especially now. I understand that there were no venues in Nashville for the same dates available, but I wish they could have stayed.</p> <p>Good luck to <a href="http://twitter.com/jamesnewkirk">Jim Newkirk</a> and the conference staff in organizing the move and I am sure it will be another great conference this year.</p> Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-21327984.post-58150262631461660072010-04-11T22:45:00.001-05:002010-04-11T22:45:35.068-05:00Nashville Agile User Group: Getting Our Act Together<p>I became involved with the Nashville Agile User Group a few years ago, first as an attendee and then helping out as an organizer. As with most groups with volunteer leadership, the group’s activity rises and falls with the free time of those organizing it. Both my self and <a href="http://twitter.com/jmikres">Jeff Mikres</a> have tried to keep things consistent, but its been hard in the last year to get the group back to a regular meeting schedule and drum up more attendance.</p> <p>With the <a href="http://agilealliance.com/">Agile Alliance’s</a> annual conference, <a href="http://agile2010.agilealliance.org/">Agile 2010</a>, being held here in Nashville this year, I think this is a golden opportunity to grow the group as well as our local Agile community. We had a <a href="http://tommynorman.blogspot.com/2010/03/agile-alliance-visits-nashville.html">reception in March</a> with several of the Agile Alliance board members to help kick things off and I am hoping that leading up to August we can keep up the momentum. </p> <p>Here’s an overview of what going on:</p> <p><strong>Monthly Meetings</strong></p> <p>Our monthly meetings are held the 2nd Monday of each month. We moved them to 12 PM per the requests of those who regularly attended. We are currently hosted at the <a href="http://www.vaco.com/nashville">Vaco</a> offices, but have opened up the possibility of rotating meeting locations every 3 months to different parts of town so everyone does not always have to drive out to Brentwood.</p> <p>These meetings are run in an open space style with topics suggested and voted on in the meeting held previously. And even though we always start with that topic in mind, if the majority of those in attendance want to talk about something else, then so be it!</p> <p>We do have plans to take advantage of our affiliation with the Agile Alliance to have some nationally renown thought leaders in the Agile community take part in meetings in the future. They provide funds for expenses for bringing in speakers that we can use.</p> <p><strong>Our Website (AgileNashville.com)</strong></p> <p>Our old website was a fairly active <a href="http://groups.google.com/group/agilenashville">Google forum</a> that eventually died out. We then moved to a <a href="http://nashvilleagileusergroup.ning.com/">site hosted on Ning.com</a> that offered a bit more features. The Agile Alliance is experimenting with their own social networking site for user groups to use and while we have a <a href="http://community.agilealliance.org/Groups/Nashville_Agile_User_Group">site up there now</a>, until that becomes official and supports all the features we need, we will still use our Ning site as our main website.</p> <p>I encourage everyone to participate in the forums and online polls on the site because that really helps us gauge interest and preferences of our members.</p> <p><strong>Another Agile Alliance Reception</strong></p> <p>We are looking into having another (albeit somewhat smaller reception) with the conference planning committee from the Agile Alliance later in April. They will only be here over the weekend and we hope to host something on a Monday near the airport so they can participate. Check for updates for this on the <a href="http://nashvilleagileusergroup.ning.com/events">website events page</a>.</p> <p><strong>We Need a New Logo</strong></p> <p>I am asking for helping creating a new logo for the user group. We would like to incorporate something about Nashville. I ham-fisted one out, but it really is only there until someone with better artistic capabilities and create us one. You can <a href="http://nashvilleagileusergroup.ning.com/forum/topics/we-need-a-new-logo">post those to the website</a> as well.</p> <p>All in all I think this is going to be a great year for the Nashville Agile community and we would love more people to get involved with the user group. Please sign up on the website and spread the word around!</p> Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-21327984.post-81043606815477097522010-04-11T22:11:00.001-05:002010-04-11T22:11:58.214-05:00“Don’t Read the Architecture Documentation, It is Not Up To Date Anymore.”<p>You can replace “Architecture Documentation” with any kind of artifact used to describe the design or implementation of your application. This can also apply to requirements, but for this article we’ll stick with technical documents. This happens quite a bit in shops that have a heavy waterfall or big design up front process. The architects work feverishly at the beginning of a development effort to think up an application architecture that will meet every expected need for the entire solution for the duration of the project. They will then painstakingly record this technical wonder in various forms of documentation including lots of UML diagrams because if it’s documented in UML, it has to be right. And much like the architect in the <a href="http://www.youtube.com/watch?v=uQSXNq7b8GQ&feature=related">second Matrix movie</a>, they believe that their design is “ a work of art, flawless, sublime.” </p> <p>And most often when you get into the trenches of actually developing the software, ideas that sounded good on paper often fall apart in implementation and have to be modified to varying degrees. And like good little developers we immediately run back to the now out of date documentation and correct it. Right? Of course, and we deliver the updated documentation to <a href="http://www.bigfootencounters.com/">Bigfoot</a> on magical <a href="http://i61.photobucket.com/albums/h65/BrendonBaby/my%20stuff/unicorn.jpg">unicorns</a>. </p> <p>So why does this happen?</p> <ul> <li><strong>Too Much Design Detail Up Front</strong> – Unless the application you are building is exactly like that of those you have built many times before with the exact same team, on the exact same infrastructure, with the exact same technology, and you have at your disposal the ability to manipulate the world to be the exact same as when you developed each of those previous applications, your lovely design will most likely have to be modified during implementation. Often we try to mitigate this fact by documenting even more as if the sheer onslaught of technical details will negate this age old truth. <li><strong>Concentrating on Building Frameworks and Not Features</strong> – As developers we love to solve the world’s problems whether it asked us to or not. The wasteland of shelfware is littered with the bodies of “flavor of the month” frameworks well intended developers created in hopes of alleviating all foreseeable issues in the future. This also tends to make the design more complex (although most who do it argue the opposite), and requires a certain level of documentation up front just so the developers who work on it can get their heads around how to implement and use it.<br><br>This can also result in bloated software that is hard for others to maintain. While a solid architecture often leverages industry proven frameworks like <a href="http://msdn.microsoft.com/en-us/library/aa697427(VS.80).aspx">Entity Framework</a>, <a href="http://sourceforge.net/projects/nhibernate/">nHibernate</a>, etc., it is important to weigh each framework you adopt (or write yourself) with the justification of the cost it will incur. We must also look at many of the non-technical implications that can have a large part in the decision like the level of expertise of the people implementing and supporting the application.</li></ul> <p>Here are some practices and principles I think help:</p> <ul> <li><strong>Emergent Design</strong> – Some think Agile prescribes no design and just slinging code from the start of a project. This is a common misconception. The practice of <a href="http://www.amazon.com/Emergent-Design-Evolutionary-Professional-Development/dp/0321509366">emergent design</a> is more about designing at a high level initially to clarify the big technical questions, but using tests and developing in iterations to validate design choices as you make them. It is a counter to the so called “ivory tower” architects who stop writing production code and work in more theoretical matters. There are times when this type of work is very much warranted but some detailed specs along with a reference application cannot be deemed as technical gospel until it is proven with production ready implementations. How much design you do up front and how much you allow to evolve along the way is a very contextual decision that should be evaluated for each project. <li><strong>Design as a Team</strong> – When you design the application as a team, then there is less need to document up front since everyone will be on the same page. It also tends to ensure developers stick to the architecture and design approaches, since they had a hand in crafting them. Another benefit is that junior developers are exposed to elements of the solution and the process for creating it that they might not have had a chance to experience if the application is designed only by the senior team members and then handed to them to implement later. <li><strong>The YAGNI Principle</strong> – This stands for <em><a href="http://www.xprogramming.com/Practices/PracNotNeed.html">“You Ain’t Gonna Need It”</a></em> (I’m southern so we use ain’t instead of aren’t) which is a mantra used by Agile programmers to resist the urge to gold plate software. The more bells and whistles we try to add, the more moving parts it adds and the more points of possible failure we add. I have definitely seen this taken way too literally but stopping and really thinking about whether some extra technical detail is truly needed to meet the business need is always a good practice. The more well known and less <a href="http://www.artima.com/weblogs/viewpost.jsp?thread=36529">controversial version of this is KISS (keep it simple stupid)</a>. <li><strong>Self Documenting Code</strong> – Agile does not mean you do not document. If someone tells you that, then you have my permission to punch them in the ear. Read the <a href="http://agilemanifesto.org/">Agile Manifesto</a> and you will see it says <em>comprehensive</em> documentation. So there is a certain level of up front design and documentation, but treat that documentation as perishable the second you implement it in code. Once the code is written then the <em>“Code is the truth.”</em> Writing the code in a way that its intent is obvious, even to those not extremely technical, is a great way to preserve the truth of the design. Aside form the code, there are many applications out there that can pull information out of the code into more formal documentation and diagrams so that the intent can be expressed outside of code such as <a href="http://ndoc.sourceforge.net/">nDoc</a>, Visual Studio 2010’s <a href="http://msdn.microsoft.com/en-us/library/dd409431(VS.100).aspx">Architecture Explorer</a> features, and many more. <ul> <li><strong>A Side Note on Code Comments</strong> – I have attended quite a few sessions/presentations over the years that say comments are evil. Well you can shut your cake holes because I like comments. I am not talking about silly, obvious comments like this:<br><br><font color="#008000">//Declare new Customer.<br></font><font color="#00ffff">Customer</font> newCustomer = <font color="#0000ff">new</font> <font color="#00ffff">Customer</font>();<br><br>I am talking about things like XML comments in C# for all public members of a class, and sparingly used comments that sometimes explain why something was implemented the way it was. I also follow the practice of using comments as the stubs for the code I am about to write (something I picked up years ago from <a href="http://www.cc2e.com/">Code Complete</a>), but I normally replace those comments with the actual code.<br><br>But do understand that when I say “self documenting code”, that does not refer to comments, but rather the formatting and naming of those code structures. If I have to read your comments to understand the intent of your code then I do take issue with that.</li></ul></li></ul> Unknownnoreply@blogger.com1