Friday, 12 September 2014

Five finger caps

There is a children's story about a man approaching a tailor with a meter of cloth to make a cap. He decides to push it a bit and asks whether the tailor can make two caps out of it. The tailor replies there is only so much cloth to just about do it. The man decides to push further for five caps and then ten caps. Each time he convinces the tailor to oblige.

What happens at delivery time is any body's guess; Five Finger caps!

Some projects are also pushed for delivery like this.
Three weeks?
May be.
Two weeks?
There goes my weekend.
One week?
Who are you kidding!

When releases are preferred in shorter and shorter time spans, especially in some rather dynamic project scenarios like the Web Development, how to oblige?

The key to this, I believe, lies in the twin principles of pre-emption and collaboration. Risks and pain points should be pre-empted (requirement changes, Quality Assurance, deployment) through collaborative practices (Workshops with customer, collecting feedback using models, Testing early and often, DevOps).

The activities could probably flow in the following sequence.
1. Collect, Discuss, Plan and Discuss again ...
Customer, product owner and some technical representatives from the project team can discuss the "wish list" for the weekly version, elaborate each item and qualify the behavior with a User Acceptance Scenario, do some batch sizing (S,M,L,XL) for each and plan the sprint backlog together.

2. Analysis and Modelling
This has two activities.
1) The user scenarios are modeled (using a Low Fi  prototype) and customer feedback is sought.
2) The development team has a workshop to discuss the data models and take Reuse decisions

3. Development
Coding and testing are done. If test is a separate functional team, it is recommended that they engage early and test together with developers to improve the quality before the formal hand-off point to test.

4. Deployment
Pre-empt failures using a Continuous Delivery system.

Project teams can consider using Shared Incentives instead of conventional Software Project Metrics. Some of these Shared Incentives can be Customer Feedback score, (lack of) post release defects, (lack of) delays etc.