When talking about Development Operations (DevOps) we mean the development, configuration management, integrated testing, deployment, change management, continuous integration and finally Operations. But the key for an effective DevOps strategy is the need for active involvement of stakeholders from each of these areas.
The need for continuous engagement from all concerned is paramount. None of these can work in silos and consider their job done when items move out of their court. For example:
Cannot work in isolation on the specs given to them.
- They need to engage with the testing team to fix any issues in integrated testing efficiently.
- Need to be in touch with the configuration management team to give them inputs and also incorporate any changes that can make the job of configurators easy or error free so to say.
- Need to understand the real operational issues, which can range from complex business flows to performance related issues in the delivered product.
The operations team
- Needs to be in touch with testers to ensure the critical scenarios are tested.
- Needs to understand the complexities of the change management process so that they are aware of what efforts (time/money) are involved in any suggested changes.
Active engagement comes from visibility or transparency at each level. Having realized that all of them are working for the common goal of delivering a solution to the customer, it is important that everyone knows how the solution is being architected, developed, configured, tested, released and last but not the least how the solution will finally be used.
Equally important is tracking progress and raising any flags that can derail the delivery timelines or compromise the quality of the final deliverables.
There are set methods of doing this like progress reports and regular review meetings. As an organization that is focused on product development we face all of these challenges. I, being involved in a lot of these areas in various capacities, from Jr. Developer to Product Architect to Operations in-charge, have found my ways of ensuring visibility and traceability of issues.
Agile has been a path breaker and has helped organizations come up with smart and efficient way of managing their life cycles. Off late we have moved to daily standup meetings, which I think are very effective in smaller teams. But the biggest draw back of these meetings is that these are people dependent and also demands for structured documentation. If any one of the above fails , you can be assured of things falling through the cracks. And many a times the realization of any potential bottlenecks is too late to be corrected efficiently.
One thing that has worked most or should I say has been working best is Collaboration. There are quite a few options/tools for managing DevOps, but from my experience they work the best in conjunction with a collaboration platform.
What a collaboration platform does is
- Bring in the DevOps process on to a common platform where all the stakeholders have equal visibility.
- Any one can contribute or value-add to the process at any level.
- Any corrective action can be discussed and implemented at the point of failure itself.
- Because the key stakeholders have visibility all the time, decision-making is fast and assuring.
- All the suggestions and discussions are documented which can be referred to at any point if there is a need.
- All these discussions are contributing to the knowledge base, which can be of immense value to the organization.
If moderated properly, all of the above can result in exponential benefits from the DevOps strategy, which is the way forward.