Tuesday, November 23, 2010

Splitting CRUD stories

Two of my colleagues came across a CRUD (Create / Read / Update / Delete) story, and asked me for advice on how to convince people on splitting stories.

I typically prefer to have smaller stories. In this case, instead of having one CRUD story, I would have one for Read, another for Create/Update and a story for Delete.

Here is an example.

As a online store owner, I want to Create / Read / Update / Delete products so that I can offer my customers the top rated products

Instead of having this CRUD story, I split it like this (I will add a few sample tasks for making it more illustrative):

As a online store owner, I want to Read (view) my products so that I can review what is current available on my site

Sample tasks:

  • Create DB table
  • Populate table with a few sample data
  • Create select DB script
  • Create for viewing my products
  • Create automated functional tests for viewing functionality

As a online store owner, I want to Create / Update a product so that I can offer my customers the top rated products

Sample tasks:

  • Create insert / update DB script
  • Create UI for create / update a product
  • Create automated functional tests for adding product functionality
  • Create automated functional tests for updating product functionality

As a online store owner, I want to Delete a product so that I can offer my customers the top rated products

Sample tasks:

Create DB table for deleted products

  • Create delete DB operation
  • Create UI for deleting a product
  • Create automated functional tests for the delete functionality

This sample is very specific for CRUD stories. There are other ways for splitting stories.

Mike Cohn's book, User Stories Applied is a must read on this subject.

Splitting (or deciding the size of a story) is controversial. Mike Cohn have popularized the INVEST acronym: Independent. Negotiable. Valuable. Estimatable. Sized appropriately. Testable

agree with the S in the acronym listed above: Sized appropriately.

But when I first read the INVEST acronym, the S was for small. I know Sized appropriately is not very specific, but it is more realistic. It is not about being small; it is about being sized appropriately. For this consider several reasoning on splitting your stories. The links below have more on this subject:

http://lassekoskela.com/thoughts/7/ways-to-split-user-stories/

http://agilecoach.typepad.com/agile-coaching/2010/09/ideas-for-slicing-user-stories.html

http://xp123.com/xplor/xp0512/index.shtml

Agile Vale 2010

Last week I presented and participated at Agile Vale 2010, the first Agile event on ITA, Sao Jose dos Campos.

The event gathered 300 people including organizers, speakers and attendees (folks from local universities, industry, and near-by cities)


My presentation on story board and visualizing SW development workflow was great. It was a one hour presentation with many Agile concepts depicted as story board’ cards movements.

I also participated on a round table on Agile SW developemnt. Eduardo Guerra (ITA) was the facilitator; the participants were: Felipe Rodrigues (Lambda3), Rodrigo Yoshima (Aspercom), Fabiano Milani (AdaptIdeas), Paulo Caroli (ThoughtWorks Brasil), Juan Esteban Bernabó (Teamware).

Overall it was a great event. The attendees, organizers, and the speakers were all very excited at the end of the event.

It was nice to participate on a great Agile event in such a prestigious college—ITA.

Tuesday, November 9, 2010

Don't shoot the messenger

In ancient times, it was not uncommon to kill the bearer of bad news. It was a matter of principle. "Don’t bring me bad news. And by the way, don’t fail with your efforts." Luckily, in these days, the worst that could happen to you is to be fired – not much better in the current economy but, hey, who complains. However, still too many projects or companies are run in exactly that very way.
How does this fit together with Scrum? Not at all! Scrum is built on three legs. Transparency, Inspection and Adaption. It is the Transparency part which is in conflict by not being able to tell the truth, the naked truth. All software projects will encounter problems and are predictable only within a short planning horizon. Most non-trivial software projects belong to the complex category according to the Cynefin framework. Complex projects cannot be managed by a defined approach but require an empirical process. It is the empirical approach that is based on Transparency, Inspection and Adaption. Empiricism wants feedback; this is why Scrum has Sprints, Daily Scrum, Review and Retrospective. They are the empirical process controls. They provide feedback about the product under development, the progress and the process. All of them are subject to change when appropriate. Inspect and Adapt!
Now, imagine a company which is run top down military style. You get your orders, don’t dare to even question them and then report back. Your reports are checked against the minutiae defined plan, often a Gantt chart. You cross your fingers that you will not be the first one to bring down the plan. You know what happens to the bearer of bad news! This is a very toxic environment for any kind of agile change effort. The moment you discover or run into some serious situations people tend to loose their ability to speak up. The situation becomes a problem and looses its opportunity for improvement. Forget all about Adaption and improvement. In short, the whole effort is futile.
A successful Scrum introduction needs an open management. A management that can let go of being in control and is able to change from
Command and Control to Leadership and Collaboration
This is the most challenging part for management. Essentially they need to make themselves obsolete and become servant leaders to their teams [1]. Until this happens, it is my job as external Scrum Coach and Change Agent to shield the teams I am working with. At the beginning of a Scrum introduction, it is much easier for the teams and the management if I - as the Coach - am the one stepping up, telling how things really are and even taking the fall out. It is not always fun but it is very rewarding as it builds up the trust between the Scrum Team and myself. The individuals on the client might risk their careers; but myself, in the worst case, I only get shown the door. I am a paid sacrificial lamb.
I am a European who has worked in Germany, France, England, USA and now Switzerland all along my career and based on my experience, I am sorry to admit that there is something about the term ‘Old Europe’. In continental Europe, there seems to be a lot of rigid top down hierarchies, still. Maybe this is the reason why the agile adoption takes longer to get going over here. However, I am happy to see dramatic changes this very past year.
Give me a call if I could be of help to you or your company.
[1] Dan Pink, Drive, Kindle Location 1275, […] Autonomy over task has long been critical to their ability to create. And good leaders (as opposed to competent ‘managers’) understand this in their bones. […]

Monday, November 1, 2010

Thoughtworks Brazil at the Agile Tour

I am really proud that Thoughtworks Brazil participated on 3 great Agile Tour events held in Brazil this year: ­­Carlos Vilela presented at Agile Tour Sao Paulo, Paulo Caroli at Recife, and Pedro Pimentel at Rio de Janeiro.

And it all happened before celebrating Thoughtworks Brazil first year anniversary (coming soon in December)!

I am looking forward for Agile Tour 2011. In fact, not only Agile Tour, but all the events encouraging communication, collaboration, and sharing experiences.