Most of the organizations have a myth that if they have shorter
release cycles they are agile. And at most times they don’t even follow
basic agile principles. There is a general misunderstanding among
organizations that they are agile if :-
Most of us are aware of the agile manifesto which talks about :-
According to me a successful agile project should achieve following 3 goals:-
- They have shorter release cycles
- They don’t document
- They don’t plan upfront
- Their requirements change frequently
- They do daily stand ups
Most of us are aware of the agile manifesto which talks about :-
- Individuals and interactions over Processes and tools
- Working software over Comprehensive documentation
- Customer collaboration over Contract negotiation
- Responding to change over Following a plan
Individuals and Interactions over Processes and tools:-
- Instead of requirement gathering sessions that lasts for around two months, do shorter project inceptions for a week or two.
- Rather than Tech Lead estimating on behalf of everyone, involve the entire team in estimation.
- Practice pairing instead of tech leads and managers reviewing code.
- Conduct retrospectives rather than doing individual performance reviews.
Working software over Comprehensive documentation:-
- Document requirements in smaller chunks as user stories vs heavy requirement specifications.
- Do regular Dev Huddles rather than documenting technical designs.
- Have a good automated test coverage instead of documenting test scenarios with detailed steps.
- Make QAs do testing on a developer box to get early feedback rather than publishing release notes to them
- Have user friendly and responsive design instead of heavily documented user manuals.
Customer collaboration over Contract negotiation:-
- Rather than asking customer to review heavy requirement specs get their feedback and sign off on user stories
- Instead of waiting till the end for a complete product demo keep doing story showcase and keep getting regular customer feedback
- If there is a bad news like technical complexities, unknown discovered or any other blockers share it with customers as soon as possible rather than giving last minute surprises.
Responding to change over Following a plan:-
- Instead of having a dedicated design phase and having a complete design upfront let your design evolve along with the product.
- Rather than having a full fledged product/project plan, plan in smaller chunks for an iteration or a sprint.
- Instead of manager deciding who does what and assigning tasks to the team let the team do a daily sign up and decide what they want to work on.
- Implement product feedback regularly rather than creating product backlogs.
According to me a successful agile project should achieve following 3 goals:-
I. Get early feedback and fail fast:-
- Customer involvement:- Involve customer and get their feedback on every stage - inception, story sign off, story showcase, super showcase.
- Continuous testing feedback:- Get testing feedback and defects identification at unit and integration tests level, dev box testing, build, smoke, regression. Earlier the failure easier the fix.
II. Easily adopt to new requirements and give your clients agility:-
- Early feedback and Adaptability:- Getting feedback from clients at every stage helps clients to be flexible. Changes can be easily incorporated as they are requested at the start of the cycle.
- Product Vision:- Clients can see the product evolve and hence can come up with better ideas for the short and the long term vision.
III. Improve quality of the product and yet deliver faster:-
- Improve Quality:- With so many checks and safety nets at every stage, the product becomes stable and of a high quality.
- Faster delivery:- Practices like continuous integration, test automation, etc. helps in reducing the cycle time.
No comments:
Post a Comment