Agile process is normally just treated as a “process”. Well it is but more important is that it is a strategy. One cannot just take it in isolation and decide some roles and some steps, purchase a SPRINT planning software and expect it to yield results. Last few years I have applied and developed this strategy from grounds up. So what have I learnt:
1. What is Agile – lets start with the basics, the whole life is agile. Every day, every moment we take decisions, review them and adjust decisions. We don’t say that and Jan 14, 2001 I’ll get married and then on Feb 18, 2008 I’ll have my first kid. Life is unpredictable, well so is product development. In simple terms being agile is about breaking down big goals into small steps, monitoring those and doing course correction.
2. What is the strategy for? – This is the most important question, rather in perfect world people would be thinking of a problem and Agile (or any other process) would come as a solution to it. But there is value in looking at a solution first and then deciding if it helps solve any of the problems better. So back to the main point, every problem requires it’s own solution. Agile works well if you have a big but flexible goal. Take an example, if we take a fixed budget and fixed scope project – a commitment to a client delivered in a nice proposal with specific level of profitability tied to it, it ‘s difficult (not impossible) to apply an agile process effectively. Your goal in this case gets to meet your commitment/client expectation. But if you take the ownership of the results from the initiative instead of just delivering then you would find the agile is much better.
3. Prepare your team – This equally important. We are developing a software and the developer had worked on solving a particular problem which after some time had to be scrapped. That guy was upset and rightfully so. Agility comes with a price, we as humans always go for stability and agility wants us to be prepared for a change, actually several of them. So it’s important to spend time with the team and emphasize on what is being done, why it’s being done (previous point) and how to deal with this change.
4. Be Agile with agile – We started with formal process of having a proper roles, using user stories and giving it a points etc.. but not everyone naturally works that way. One thing we focus a lot on is to play by strengths. if someone is process oriented then have a good process for this person, but if someone is unstructured then plan for regular discussions, don’t just expect the person to follow the process. No strategy can remain static, it should change based on the environment.
5. Involve customers – transparency is you biggest friend, share what you are doing, how you are doing, and most importantly what you believe in. If you can establish that , then you have much greater leverage with your customers. This is not with the idea to take advantage of them but with the idea that if you make mistakes they’ll be more understanding. It allows you to take those small steps even before your solution is perfected and test it out with a goal to make a solution really great for your customer.