Its vertical, not horizontal
Very often, the way that requirements - usually described as stories or features - are broken into tasks is along a horizontal paradigm. But in an agile context, this is the wrong way to promote flexibility, efficiency and teamwork - in short, agility.by horizontal, I mean in the sense of layers of an application, an architecture that works in separating the presentation, business logic and data handling parts of applications. But should you create a breakdown of a story into tasks along these layers?
For example, a story "as a customer, I want to register on the website to gain access to personalized services" registration data might include name, address, phone numbers, email address, passwords, marketing preferences, etc. Breaking the story horizontally would get the following:
- write page HTML
- write JavaScript form validation
- write business level logic
- write database queries
- Write test cases
- execute tests
This is a situation that can often happen, because it "seems natural" to do it, and is what developers and testers can easily identify with. However, this is a trap.
Instead, stories should be broken down vertically!
A vertical breakdown is where tasks include all necessary layers of the application to complete a tiny peice of functionality, including testing (and any other phase).These tiny pieces are worked on and delivered by several members of the team at once - i.e. when the designer is building the html, the developer can also code the business logic, and the tester can write test cases. So a vertical breakdown might look like this:- register name
- lookup address
- validate email address and password
- save marketing data
here are the advantages:
- The team can really start working together, rather than just working on bits of the same thing - no more silos
- The team can now start on the first tasks together - designer, coder, tester.
- These tasks are small, short-lived so they can soon be into the test phase, shortening the build-test cycle.
- if delays in the sprint happen (i.e. due to underestimation, sickness, priorities) work can stop on the story after any of these tasks and the work done until now is still deliverable.
No comments:
Post a Comment