Pragmatic Agile Weblog

Agile software development in real life

As a … I want …

One of the key aspect of agile development is expressing requirements in user stories. It is one of the things that I like more, because it encourages developers to think always like a user.

However, in our switch to agile I’ve seen US using the most disparate roles between “As a” and “I want”. The most common mistake is when a technical task is expressed as a US using expressions like “As a developer I want to merge the tag into the trunk” or “As a product owner I want to know the size of a the MEA feature”.

For this reason I decided to identify which roles we use and introduce them to the team at the last demo meeting. Using a role not in the set below should be a big smell that there is something wrong.

The first role we use is the user:

The user role

The user role

The user is who is using the user interface of our software. This is primarily client oriented, but not in all cases.

As some of you is wondering, yes, the command line is a user interface as well. But it is a particular one, used mainly not from the final users, but most likely by system administrators. The system administrator is one the roles we selected from our us:

The system administrator role

The system administrator role

With our software there are also users whose duty is to help other users. These person are the portal administrators, who administers the portal users and other portal functionality. The portal administrator is therefore one of our selected roles:

The portal administrator role

The portal administrator role

Finally, an important aspect of our software is that it provides APIs and SDKs other developers can use to build application on top of our framework. These are definitely a special case of users, for which we want to build features. The developer is therefore the last one of the roles we use in our backlog.

The developer role

The developer role

Note that “this” developer is not the development team, which therefore has visibility to all Funambol code. This is a developer that wants to access a limited set of the source code, or maybe not even the source code, but libraries or APIs delivered in binary form. It is who uses our software to build something else, not who develops the software itself.

Many thanks to Francesco Mapelli, the author of the nice “omini” that represent our user stories roles.


September 13, 2009 - Posted by | Agile, Funambol, Software engineering

No comments yet.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: