We are nearing the end of the first sprint of my first "real" SCRUM -project (we have used some agile practices in previous projects but this one is the first one run "by the book") It's really fascinating to see how all the small "tricks" and practices used in SCRUM really can help to increase understanding, highlight problems within the team etc.

I'd like to share some of the lessons we learned so far.

Lesson 1: Don't assume that everyone understands the scope of user stories

During our first sprint planning the team was estimating user stories but we had a hard time reaching consensus about the size of the stories (we were estimating using planning poker). As it turned out the stories where poorly described (just a name) and our product owner had a hard time explaining the stories to the team. Fortunately one of the SCRUM "tricks" saved us, namely the:

 "each story should contain a description on how it will be demonstrated at the sprint demo"-trick.

It was amazing to realize how much that describing how a story should be demonstrated helped in clarifying to the team what it was all about. Just to give you an example think of the following story:

As an administrator I want to add users so that people can get access to the system

Reading the story you might envision some shiny UI to add users, verifying user information etc. Does your vision change if I add:

Steps to demo: Run SQL-script to add user "John Doe" with password "12345", make sure that the new user can log in using the specified credentials.

Ok, that's what I thought!

So make sure that you specify "how to demo" for your user stories!

Lesson 2: Done means DONE!

Now that we are nearing the end of the first sprint the practice of shoving a demo of the system for our customer really makes sure the stories to be demonstrated are really done! Traditionally the devs would report a feature as done and we would move on to new features. This would lead a increasing amount of hidden bugs that would accumulate during the project and surface during acceptance testing. Forcing us to demo new features continuously combined with the rule that all stories should be signed of by a "tester" before considered done will hopefully help us to find bugs early , improve quality and save us from nasty surprises during acceptance testing.

Well, SCRUM looks promising so far!

My colleague Åsa has also written some thoughts about the same project over at her blog (in Swedish)