May book review: Agile Retrospectives

This month, we continue the theme of team self-reflection and retrospectives started last year with my review of "Project Retrospectives" by Norman Kerth.

Esther Derby, Diana Larsen
Agile Retrospectives. Making Good Teams Great.

This book is an excellent addition to Norman Kerth's guide to project retrospectives. Esther and Diana focus on iteration and release retrospectives which are short and frequent. As such, they provide feedback faster and allow the team to find and fix issues before it is too late for the project. Iteration retrospectives are repetitive, seemingly easier to organize and facilitate, and may not even require a formal facilitator.

However, like any other routine executed over and over again, they could sometimes get tiring and even boring. What steps could we take to keep the discussion flow fresh and the team engaged? How could we help the team members apply their creative and unconventional thinking?

Esther and Diana outlined a five-step approach to leading retrospectives. For each step, they offered practical advice and a set of activities and techniques to make retrospectives insightful and fun:

1. Set the Stage

2. Gather Data

3. Generate Insights

4. Decide What to Do

5. Close Retrospective

  • Checkin
  • Focus On / Focus Off
  • Explorer / Shopper / Vacationer / Prisoner
  • Working Agreements
  • Temperature Reading
  • Satisfaction Histogram
  • Timeline
  • Triple Nickels
  • Color Code Dots
  • Mad Sad Glad
  • Locate Strengths
  • Satisfaction Histogram
  • Team Radar
  • Like to Like
  • Brainstorming / Filtering
  • Force Field Analysis
  • Five Whys
  • Fishbone
  • Patterns and Shifts
  • Prioritize with Dots
  • Report Out and Synthesis
  • Identify Themes
  • Learning Matrix
  • Planning Game
  • SMART Goals
  • Circle of Questions
  • Short Subjects
  • Triple Nickels
  • Force Field Analysis
  • +/Delta
  • Appreciations
  • Temperature Reading
  • Helped, Hindered, Hypothesis
  • Return on Time Invested
  • Satisfaction Histogram
  • Team Radar
  • Learning Matrix
  • Short Subjects

Retrospectives equipped with these activities will become a powerful iterative improvement tool for your team.

Note that I think of iteration, release, and project retrospectives as iterative rather than continuous improvement tools. They will help your team reflect, learn, adapt, and get better together, eventually reaching the performing stage of  Bruce Tuckman's Team Development Model. Performing teams are recommended to implement a continuous improvement tool, such as A3.

Esther's and Diana's book is easy to read, concise, and well organized. If you are doing iterative development, it is likely to serve you as a reference guide for many iterations to come.

To take a closer look at this and other Esther Derby's books, click here. Happy reading!

NUnit 2.5 GUI cannot locate iBatis.NET sqlMap.config

NUnit 2.5 was released last month introducing a large set of new functionality into the NUnit framework. If you are using an earlier version of NUnit today, take a look at the following new features released in 2.5:

  • Parameterized, data-driven tests
  • New constraints
  • New asserts
  • Theories
  • Distributed parallel tests
As in previous versions, NUnit 2.5 allows running tests from multiple assemblies by using NUnit test project files. We find a lot of value in using these files on local development workstations. However, our automated build and continuous integration server, TeamCity 4.5.1, does not support NUnit project files and requires all test libraries to be listed manually. As a result, TeamCity executes tests with the value of AppDomain.BaseDirectory set to the location of the executing assembly. While we used to be able to configure the same behavior in previous versions of NUnit, NUnit GUI 2.5 no longer updates AppDomain.BaseDirectory at the assembly level and is likely to fail your unit or integration tests when they rely on the AppDomain.BaseDirectory value.

We came across this issue while upgrading our persistence tests. When iBatis.NET Data Mapper was used, tests succeeded on the build server but failed locally (could not find sqlMap.config or properties.config). I looked into the iBatis.NET 1.6.1 source code and noticed that the framework uses AppDomain.BaseDirectory to load its configuration files. To fix the problem, update AppDomain.BaseDirectory to the location of the executing assembly before creating the iBatis.NET Sql Mapper:

var  assembly =  Assembly.GetExecutingAssembly();
var  applicationBase = assembly.CodeBase.Substring(0, assembly.CodeBase.Length - assembly.ManifestModule.Name.Length);
AppDomain.CurrentDomain.SetData("APPBASE", applicationBase);

Contact us if you are interested in upgrading your applications to NUnit 2.5 or configuring them for TeamCity. Happy coding!

David Hussman speaks at OTUG on Tue, May 26, 2009

David Hussman will be speaking at OTUG on Tuesday, May 26, 2009. Do not miss it!

Who: David Hussman
What: The Black Swans of Big A Agile
When: Tuesday, May 26, 2009, 6-8pm
Where: 3M Auditorium Owens Science Hall - University of St. Thomas, St. Paul, MN
Cost: Free

No RSVP is need. See you there!

.NET User Group event on Thu, Jun 4: Code Contracts, Pex, and CHESS

Twin Cities .Net User Group is hosting a presentation on Code Contracts, Pex, and CHESS.

What: Maintaining Resilient Code: Using Tools From Microsoft's DevLabs and Research
Who: Jason Bock
When: Thursday, June 4, 5:00pm-7:00pm.
Where: Microsoft Corporation, 8300 Norman Center Drive, Suite 950, Bloomington MN 55437
Cost: Free

See for more information. I plan on attending. See you there!

Looking back at Microsoft TechEd 2009

I just came back from Microsoft TechEd 2009 conference in Los Angeles. This year's conference was smaller than usual registering only about 7,000 attendees. If you did not get a chance to attend, take a look at the highlights below.


Windows Azure is a run-time environment in the cloud that provides an ability to host, seamlessly scale, and manage web applications and services. I was amazed by how many sessions this year were dedicated to Windows Azure as well as Azure Services Platform which includes .NET Services, SQL Data Services, and Live Services. Although the detailed pricing and service-level agreements have not been announced, it is clear that Microsoft is seriously investing into their cloud infrastructure with the intention to offer .NET developers a choice to host web applications on-premise, externally, or in the cloud.


Microsoft Silverlight is a web browser plug-in for delivering Rich Internet Applications (RIA). I attended a day-long seminar on Silverlight led by Jeff Prosise. Jeff took a deep dive into capabilities of Silverlight 2 and 3 and explained the logic and philosophy behind many Silverlight design decisions. This was one of my favourite TechEd sessions this year.

Over the last couple of years, Silverlight has matured into a very powerful product. We have observed significant decreases in project cycle times when building RIA applications using Silverlight 2 as opposed to AJAX and JavaScript toolkits. Silverlight 3 introduces many new long-awaited features, such as back-button navigation, deep linking, dynamic styling, style inheritance, element-to-element binding, writable bitmaps, offline support, etc.

Note that according to as of May 19, 2009, Silverlight 2/3 is installed only on 27% of client computers. While not a concern for an Intranet application, it presents a challenge when you have no control over your client environments.


Surprisingly, ASP.NET core classes have not changed much, which is an excellent news for your existing web infrastructure. Our security, logging, exception management, content management, branding, internationalization, and other infrastructural libraries are likely to integrate seamlessly with the new version of ASP.NET.

The features that make me excited about the upcoming release of ASP.NET 4.0 are integration of ASP.NET with jQuery and availability of client-side templates and data binding. Take a look at ASP.NET AJAX 4.0 Preview 4 on to get a better idea on what is coming out.


Microsoft Hyper-V is a virtualization platform that ships with Windows Server 2008 for x64. It allows you to optimize your server hardware by consolidating multiple servers into a single physical machine running multiple virtual machines. Virtualization was a very hot topic at the conference.

Windows Server 2008 R2 and Windows 7

Quite a few sessions as well as the key note were dedicated to the upcoming releases of Windows Server 2008 R2 and Windows 7. Both products are on schedule to be released at the end of this year.


A few additional sessions are well worth mentioning:

  1. "The Scaling Habits of ASP.NET Applications", an excellent talk on scalability of ASP.NET by Kent Alstad, CTO of StrangeLoop Networks.
  2. "Cracking Open Kerberos: How Active Directory Knows Who You Are" by Mark Minasi, Chief Scientist at MR&D. Mark's presentation helped me better understand how Kerberos tickets work as well as when and why Kerberos switches to NTLM.
  3. "Busy Microsoft .NET Developer's Guide to F#" by Ted Neward. I am contemplating using F# for one of our financial calculators.

Standish Group CHAOS report for 2009

The Standish Group has released its CHAOS Summary 2009 report. Let the data speak for itself: only 32% of all projects were successful, 44% were challenged, and the rest 24% failed. See more detail in this press release.

April book review: Collaboration Explained

When I started this column in January 2008, I wanted to share my book recommendations with a wider audience and solicit feedback from our blog readers. Let me first say that I am very happy and grateful for all your insightful questions and suggestions. Thank you for subscribing to our blog and reading books featured in our monthly column!

Based on your comments, the books that are going to be discussed over the next several months are closely related to the books already reviewed in 2008 and 2009. This month, we will continue the theme of collaboration culture and facilitative leadership started in February: "Facilitate with Ease!" by Ingrid Bens.

Jean Tabaka
Collaboration Explained. Facilitation Skills for Software Project Leaders.

In this book, Jean Tabaka describes the benefits of a consensus-based leadership approach and participatory decision-making. She explains how we can usefully share ideas, information, and decisions among project team members and demonstrates organizing tools and techniques for many project events. Jean offers guidelines and practical advice to project leaders and agile practitioners on how to manage complex team dynamics and foster and maintain collaboration in their teams.

What makes this book different from Ingrid Berns' Facilitate with Ease! is the context of agile software development projects. Jean provides detailed advice and even includes sample agendas for many relevant project meetings:

Generic Project

  • Status Meeting
  • Strategic Action Planning
  • Process Change Workshop
  • Project Start-up Meeting
  • Project Retrospective


  • Scrum Planning
  • Daily Scrum
  • Sprint Demo and Review


  • Project Chartering
  • Release Planning
  • Iteration Planning
  • Daily Stand-up
  • Iteration Demo and Review
  • Release Retrospective

Crystal Clear

  • Methodology Shaping
  • Blitz Planning
  • Reflection Workshop

Having read this book cover to cover, I often find myself referring to Jean's sample agendas when preparing for a meeting. I believe you will find this book valuable as well.

Happy reading!

Welcome to ModelBlog

Thank you for visiting ModelBlog. We hope the time you spend with us will be both entertaining and worth your while. Have fun!