An Exploration of Extreme Programming in Practice
Chapter 4: Exploration
To search into or travel in for the
purpose of discovery
We sat down with Lowell, our customer, and started to explore what he wanted the registration system to do. Over the next two days we wound up with several user stories. Though these user stories described the system nicely, the mechanism by which they were generated was not at all straightforward.
The Story of a Story
For example, our first user story slowly evolved into what is shown in User Story 4.1: Triggering the Login Mechanism.
The three phrases on this story were written at three different times by three different people. The first phrase was written by Lowell in response to our question: "When do you want users to have to log in?"
We couldn't figure out how to test this. What acceptance test would you write? We needed more information about which pages would trigger login and which wouldn't. But Lowell was not willing to be specific about this.
Eventually we decided that there would have to be a list somewhere in the system that told us which pages required a login. When those pages were requested by a user, the login mechanism would be triggered.
Some pages trigger the login mechanism and some don't.
The list of pages that do/don't is dynamic.
And the mechanism is triggered once per session.
User Story 4.1: Triggering the Login Mechanism.
We felt comfortable about testing this, because we could create lists and see if the mechanism was triggered. We also felt comfortable that the story was estimable. So, somebody scribbled the second phrase on the story card.
At some point much later in the discussion and after many other user stories had been discussed, somebody asked whether or not users would have to log in every time they requested one of the pages on the list. Lowell felt this would be awful. So, after some discussion, we decided to create the concept of a session that represented an interaction with our site and that would conclude after the user had been silent for x minutes. Users would not need to log in more than once per session. Someone wrote the last phrase on the card.
Much later, we estimated our stories and felt this one could be implemented in one ideal engineering day.