DevOps – as the name suggests it is the integration of Development and Operations. Typically in modern day Product Development adopting the Agile methodology is considered to be most prudent. There are several reasons for the same like – coming up with some working prototype very early, planning for some most relevant features in each of the sprint cycle and checking its benefit with respect to the End Customer or changing the originally planned features based on the change in the market scenario with minimum possible rework. This will result in minimum disruption to the overall Cost and Schedule and yet will ensure that the most relevant features are incorporated in the Product at the time of Release. DevOps philosophy actually augments the Agile Methodology very well as it connects the Operation team, Business team, QA and the Core Development team seamlessly.
DevOps calls for more coordination and cooperation among all the Teams which come together to release the Product. It facilitates a quicker feedback cycle which results in Continuous Innovation and improvement. It addresses the people, process, and tools, along with the technology dimensions needed to secure this collaboration and sync up the different stakeholders to move functionality to production faster.
DevOps works the best in a collocated team and where the different team members can wear multiple Hats at different times based on the requirement. This helps them to understand and appreciate the work and challenges faced by each other. Also there should be much organizational level barrier for a developer to play the role of an Ops team member or QA and vice versa. This is the true essence of DevOps which together calls for
Continuous Business Planning
Continuous Release and Deployment
In this context all different team also for a part of the Sprint Planning to regular Scrum Meetings. So when the developer discuss the complexity of the code and the time required may be the Ops team member can also give his input on the same parameters to get that Deployed. The QA Team also will voice their opinion to test the piece of Code including the integration Testing. So it will be quick and easy to arrive at the bigger picture in the same meeting which will reduce the Time to Market considerably. The team can also agree upon the sequencing of the features to be implemented based on their ease in Testability and Deployability.The Non Functional Requirements can also be finalized in the same meeting.
Finally there should be some relevant Metrics which should be used to Track the Progress as well the benefits of using . One can be the Velocity, other are defects found per Sprint/Feature Developed, Time taken for Deploy and also to what extent the NFRs are met.
We have seen how actually helps implement the Agile Methodology better by bring in the concept of a single team across functions. It goes without saying that DevOps will ensure better Time to Market of the New Products which use Agile Methodology for development.