Saturday, March 29, 2008

Little Rock Tech Expo

Last Thursday I headed down to Little Rock, AR with John Kellar to speak at their Tech Expo 2008 conference. Terry and Larry who run the Little Rock .NET User Group did a good jump reviving the conference after a one year hiatus. Attendance was around 130 with 3 tracks in the morning and 2 tracks in the afternoon. The facility on the campus of University of Arkansas was great and the weather was perfect. I did two sessions, "Scrum in TFS" and "Zen and the Art of Customizing TFS". My Scrum in TFS presentation became more of a general session about adopting Scrum from the audience's questions. Other speakers included the fore mentioned John Kellar, Mike Neel, Wally McClure, Dave McKinstry, Todd Anglin, Randy Walker, Alan Stevens, and Raymond Lewallen. I had some good discussion with Dave around TFS/VSTS and Scrum that gave me some good ideas for some other more focused sessions. All in all it was a good time and I hope to speak again next year.

Saturday, March 22, 2008

TFS/Scrum Resource Links

In order to decrease the size and length of my TFS/Scrum presentations I am removing the slides that list links to online resources. I am posting those links here and simply referring to them from a slide in the presentations now.

Scrum/Agile Links

  • Scrum for Team System - One of the best TFS Project Templates for Scrum around. Created by Conchango in association with Ken Schwabber.

  • Control Chaos - A good website for all things Scrum. Lots of whitepapers, books, and other resources.

  • Scrum Alliance - Another good website for Scrum with a more community feel.

  • Agile Management Blog - Aimed more at project manager types (or Scrum Masters), but has some good practical blog entries from David Anderson. This link is to his post about TFS and Agile processes.

  • eScrum - Another TFS Project Template for Scrum.

Scrum/Agile Books

Team Foundation Server Resources/Tools

  • MSDN TFS Site - The official Microsoft site for Team Foundation Server.

  • TFS 2005 Power Tools - Tools for editing work item and process templates, check in policies, extended command line tools, build tasks. etc.

  • TFS 2008 Power Tools - Mostly the same tools for 2005 ported to 2008.

  • CodePlex - Tons of community created tools and guides for TFS including a migration tool, Subversion source control bridge, and more.

  • Personify Design - Creators of TeamLook which adds TFS extensions into Outlook and TeamSpec which is similar to Rational's RequisitePro tool for maintaining links from Word documents to work items in TFS.

  • TFS API MSDN Sample - Great sample project showing how to interact with the TFS API.

Team Foundation Server Blogs

  • Buck Hodges - Lots of good information on TFS, third party tools, etc.

  • Brian Harry - Some overlap with Buck Hodges' blog, but he also includes lots of statistics on their own implementation of TFS internally.

  • Naren Datha - Several blog posts on TFS customization.

Team Foundation Server Books

Tuesday, March 04, 2008

Conchango Scrum for Team System 2008 Plug In Beta 2

I recently posted that Conchango posted the beta for the second version of their scrum plug in for Team Foundation Server 2008. I have been using the new process template for my TFS/Scrum presentations and wanted to list a few of my favorite features:

  • Use of Iterations for designating Sprints: Previously you entered a sprint number into Product Backlog Items (PBI) and Sprint Backlog Items (SBI) to designate what sprint they corresponded to. There was no real validation and it was a tenuous link at best. Now the TFS Iterations are used and it provides a more solid approach.
  • User Stories in Product Backlog Items: The PBI template now supports the User Story motif with a specific field for the user story text and another for the acceptance criteria. Not that you could not have done this before, it is now just built in.
  • Much Improved Project Portal: The project portal is much cleaner than the previous version and I love the built in Wiki. It would be nice to have the ability to add a link directly to Wiki items, but you can do this with Hyperlink links if you really want to.
  • Bug Work Item: We created our own "Bug" work item in the previous version. Having a built in item for this makes reporting much easier out of the box.

I have also enjoyed several of the improvements to TFS 2008 including:

  • Easier Build Type Creation: A new wizard makes creating a build type much easier. Things you used to have to man handle the XML build script to accomplish are now simple options in the creation wizard.
  • Queued Builds: I hated getting the pop up telling me another build was already in progress and having to sit and wait for it to finish.
  • Out of the box Continuous Integration (CI) support: What used to be several steps that included touching event subscriptions, filters, and web services is now a few options on the build creation wizard.
  • Links in Web Access: There has never been a very good way to see the link relationships between work items, but now the views in the Web Access portal show a nice little plus icon so that you can drill down to related items. Very nice.
I am still in the honeymoon phase with these products and have not yet upgraded them in production, so I am sure there may be new issues lurking under the surface. So far I am pleased with the new features and upgrades.

Saturday, March 01, 2008

The Idea Backlog

While talking to some co-workers about Scrum, we discussed the initial part of the process: Preparation. This part of the process is one of the less detailed overall, most likely because of the various ways companies have to initiate and validate a project. Most of us had come from more structured development shops where the project initiation process was fairly laborious and usually did not include anyone outside of management until the project was already a go and timelines/details basically written in stone. So the question was how could some of the Scrum/Agile philosophies be implemented to make this a "better" process (Better is always a relative term).

Thinking about it later, I thought of how people have kept up what they call an "Idea Backlog" of things they think up but cannot immediately put the time into them to see them to fruition. I thought using TFS, Sharepoint, or some similar technology so that a company could create an Idea Backlog much like a Product Backlog to facilitate the submission, discussion, and initiation of project ideas.

My thought was that ANYONE would be able to post an item to this Idea Backlog from the highest member of management to the most junior developer. These backlog items would have a little bit of structure to make sure initial submissions were at least minimally fleshed out, but then people would post comments in response to the submitted idea.

So Employee A submits an idea that equipping the engineers that regularly inspect Company XYZ's Widgets in the field with a Tablet PC application would increase data accuracy and decrease time spent per inspection. Other employees would post comments, questions, etc. to help flesh out the idea such as: "What about a Tablet PC application would provide better accuracy and less entry time than a laptop or handheld?", "Does anyone know a formula for calculating the average cost per minute for an inspection currently and the average inspection time?"

Now the discussion is open and available to everyone instead of siloed to management. Input from any source could provide great value and address areas of the idea that may have not been covered if it had been decided by only a few select people.

Most companies want a bit more structured analysis when deciding to move forward with a project and they usually have some basic criteria and metrics they apply to a business case to judge how valuable it would be to an organization. For instance, the pencil pushers usually want to know what the Return On Investment (ROI) or Total Cost of Ownership (TCO) would be. On previous projects I have seen companies spend a good bit of time trying to calculate this up front and just like trying to capture all the requirements up front and predict strict timelines: it is rarely very accurate. But it is something to be addressed, so each Idea Backlog item can have an ROI (or TCO, etc.) metric applied to it by any employee. It could be as simple as a 1 to 5 rating: 1 being little ROI and 5 being substantial. Risks Analysis is another big thing I have seen companies dedicating effort to and this could be yet another metric to apply to an item in the Idea Backlog. There could be many more metrics, both standard ones for all ideas and then custom ones that are more specific to a particular idea.

These metrics would follow a convention of the lowest rating being the least valuable and the highest rating being the most valuable to the company. A report could easily show what the employees of the company think about the value of the items in the backlog. Items could then be sorted by the metrics and you start to get a prioritized list of ideas much like a Product Backlog. A go decision for a project is still most likely going to be up to a select few, but now the evaluation of the idea is much more open and collaborative. When the go decision is made, postings and comments to the Idea Backlog item would also most likely give birth to Product Backlog items to get the project started in its first Sprint.

I'd be interested to hear comments on this idea as I myself start to think more about it. As a big proponent of Team Foundation Server, I am going to try and implement something like what I have described above as a collection of custom work items and links. I will post more as I start to work on this.