Monday, March 12, 2012

Want a great Continuous Integration system? Write great User Stories!

One day, I was working with a team lead to build out their Continuous Integration (CI) system.  He asked me to write down the requirements, so I did even better and wrote these user stories. Why was this "even better?" I find whenever I use the User Story Format, it makes me think differently about what I'm trying to do.  (Especially the VALUE part "So that:."  Then the Acceptance Criteria force me to put to paper the ideas of what is acceptable that I'm carrying around in my head but perhaps not communicating.

Every time I bother to use User Stories, I get higher quality documentation. Every time! The team lead I did this for agrees. The head of the PMO came by and said, "those user stories you wrote about CI are really clear" -- hey, this is a non-technical manager who understand the value of a technical implementation like CI because of User Stories!

As a: Team Lead
I want a: Continuous Build environment that compiles my code.
So that: the team can clearly see when we've checked in broken code

Acceptance Criteria:
  • The moment code is checked in, the CI environment builds it and displays on the dashboard that the code is building.
  • Check in uncompilable code and watch that the dashboard displays there is a problem.