Scrum Presentation posted on dnrTV

My interview with Carl Franklin about the Scrum Process Template and Visual Studio 2010 is now posted on dnrTV.

Listen in as I discuss and demonstrate some of the aspects covered in the Professional Scrum Developer Training available from Scrum.org, such as managing a software project with TFS 2010, Test Driven Development, and review Urban Turtle’s excellent task and planning boards in TFS.

There’s even a not-too-bad picture of me as part of the article; usually I am much more photogenically challenged.

Enjoy!

Slides from my Code Mastery Talk on Scrum

Earlier this month I gave a talk on Scrum and Visual Studio 2010 at Magenic’s Code Mastery event in Minneapolis. I have uploaded the slides to slideshare.net, and you can view the presentation on slideshare or view it below.

Carl Franklin of .NET Rocks was also in town and interviewed me for an upcoming episode of dnrTV! So stay tuned for that.

The Wisdom of Teams

In the book The Checklist Manifesto, Atul Gawande recounts how the building industry has adapted to successfully manage complex projects.

The Wisdom of the Group

Traditionally, a master builder was in charge of overseeing all aspects of the successful completion of a building. But this began to change in the early to mid 20th Century, when the tools and capabilities of buildings increased their complexity beyond a point where one individual was able to manage all of the intricate details of the project.

IMGP2730

The solution to managing this explosion in complexity was to shift away from empowering one expert (the master builder) to a system where a group of experts are empowered to resolve and troubleshoot problems. When presented with uncertainty, the team of builders established a communication process that allowed everyone to communicate about and ultimately sign off on the resolution to an issue when the issue crept up.

“They didn’t believe in the wisdom of the individual…. They believed in the wisdom of the group.” And the most important technological advance for the construction industry has been the perfection of tracking and communication.

Software Development Teams

The analogies of these concepts to software development are intriguing. In The Mythical Man Month, the software development world also has an analogy to the master builder; the chief programmer (interestingly, the chief programmer concept derives from the world of surgery, which Gawande discusses as problematic in The Checklist Manifesto.) This chief programmer team composition as I learned about it in school, however, is generally understood to be impractical, due to difficulties in finding qualified candidates for the chief programmer role and due to team scale limitations. At least that’s what the textbook says; I would imagine another major reason the chief programmer team structure fails is similar to the reasons Gawande discusses; the explosion of complexity and the inability of one individual to master all of the nuances required for the entire software project.

Gawande also discusses how building inspectors will trust the team to perform their work, realizing that some details of the inner workings of the building are too complex for one individual inspector to approve in a black box fashion. Instead, the constructors of the building sign off on the legality of their work, thereby being held personally liable for the work performed. In software teams and for software developers, I equate this to the responsibility developers should hold in writing the best quality code to achieve the intended business objectives, and to support that code with developer written (unit) tests. Other quality measures should be adhered to in a team, including quality assurance tests and frequent customer reviews to ensure the results are meeting the intended objectives and that the customers are satisfied with the overall results.

My take on this is that a project will be more successful when individuals are proactive and empowered, take responsibility for their actions, and when they communicate and collaborate frequently among themselves and with their customers. While there are many ways that a software team can be successful if they follow these basic principles, I believe that the Agile software methodology and the Scrum framework provide especially useful and practical processes to ensure this communication and collaboration happens. Highly effective teams understand that trusting the wisdom of the entire team will lead to improved chances for overall success.

Team Productivity Metrics and Agile

What is the most effective way to measure a software development team’s productivity? On an Agile software team, where we are ultimately delivering value in the form of functional software, how can this be accurately measured?

This was the area of discussion the other night at the MN Scrum Experiences user group. It was quickly noted how any metrics can be gamed to skew the measurement results. While this remains true, many folks implementing Agile still get asked the question of how to measure whether an Agile or Scrum implementation is effective.

Some of the common measurement metrics for a Scrum team include:

  1. The number of story points completed versus those started
  2. Team velocity (the number of story points completed plotted over time)
  3. The number of defects (e.g., opened versus closed in the Sprint)

Other team metrics that were discussed that teams use included the amount of unit test coverage and the percentage of test cases run that pass.

All of these metrics can provide just as much value as they can do harm. A team metric should be used as an evaluation of the team, with the understanding that disruptions in the team will affect the metrics. And what do these measurements do about determining if a customer is satisfied with the process of software development?

One takeaway that I had is that it is important to develop a good measurement for customer satisfaction. Fred Reichheld describes this concept (customer delight) in his book The Ultimate Question (I’m adding that one to the reading list).

Ultimately, if a Product Backlog is prioritized by business value, and if the Agile team continues to deliver successfully from the backlog as it is prioritized, the velocity and number of defects resolved provide a pretty good measurement. So long as in the end the customer is also delighted, and that the metrics are not used out of the context of measuring team productivity.

Speaking at Twin Cities Code Camp 9

I am excited to be speaking for the first time at a Code Camp at Twin Cities Code Camp 9 on Sunday October 10th. TCCC9 is a two day event, and there are now in the neighborhood of 400+ registered attendees (and growing).

There are some excellent topics scheduled over the two days, with a smattering of high level and deep dive technical sessions, covering mobile device development, languages, tips and tricks, process and other goodies for anyone passionate about software development. Many folks in the local tech industry will be speaking, including some of my Magenic and TechMasters Twin Cities colleagues. There should be some excellent discussions and interactions on the software engineering craft; good times.

I am thrilled that I get the chance to talk about Scrum and the new Scrum process template in TFS 2010. The presentation will be a smattering of Scrum methodology in addition to showing off the features of what Visual Studio can provide you for managing a Scrum project, and some code demonstrations – this is software process stuff, but is intended for developers, which on a Scrum team means anyone involved in creating shippable content.

I will be presenting a small subset of what I learned at my Professional Scrum Developer Trainer Training this summer, and adding in some of my own experiences with recent consulting engagements using the new Scrum 1.0 template over the past few months at a few client sites.

So if your not busy, come on down! It’s not too late to register for this event. Hope to see you there.