Rigid processes and systems end up being roadblocks to innovation. Here lies a message to consider - All of us grow up with CMMI processes all around us, and by the time we start managing projects, we have KPAs running through our veins, and we end up being hardened process geeks.
Nothing wrong with that. These time tested processes that we religiously follow: from requirement gathering, through 'build' to implementation methods produce amazing results. They increase predictability, and maturity, while reducing risk. But sometimes, just sometimes, we get boxed in and find it difficult to think outside of the processes. That's when injecting a dose of "agile" into our system can make a difference. Especially when we are dealing with a world where paradigm shifts are common place. Let me explain this using a personal experience...
We walked into a program that was perennially troubled for over 2 years, with no deliverables to show. We started with incomplete requirements, a business team with no confidence in the program and stiff time-to-market and budget constraints. The client wanted the project to be delivered in 4 months. The process geeks in us took us straight to the scheduling system that told us that the client was kidding. We did pass on the advice to the client, but if we had stopped there we would have lost multi-million dollar revenues over the next 2 years. Instead, we created a tailor-made end-to-end development process for this client, taking our regular methodology and accelerating this by applying some agile principles.
The Tailor-made Suit
After analyzing the client's process, we started creating a development methodology that would work. A typical waterfall would not work, as we had to show some deliverable to the client early on to bring back confidence in the program. At the same time, given the size of the program, the diverse teams, and stake holders we couldn't do a pure agile. We, therefore, needed a strong and mature methodology, but with a dose of agile to accelerate the process and support stiff time-to-market needs.
We decided to go with an iterative development methodology, splitting the first project into iterations. We incorporated the agile principles such as iteration and feedback, efficient, optimized, strong customer involvement and continuous integration. We also spent time educating the client about problems with their process, the need for a strong management framework, and how their current timelines and plans are infeasible. After some initial resistance, the client started to realize that their timelines wouldn't work and started to have faith in our solution.
We successfully delivered the first 2 iterations, and that brought immense confidence into our solution, process and capabilities. We also went on to win all subsequent projects and soon became the trusted partner of the CIO.
Moral of the Story
Lets all continue to be the hardened process geeks we are. After all, that's what is expected out of us and that's what really put us on the map in the first place. Having said that, let's also input into this mixture an agile mindset that brings in flexibility and nimbleness to achieve what seems impossible at the onset. After all, even Rome wasn't built in a day!