IT industry has gone through a major revolution within last decade. The project execution model has changed a lot.
Waterfall Model – In this model – there were almost constant requirements and was like a fixed bid project to be delivered
at agreed upon timelines. IT managers used to plan around people, process and technologies and communicated to customers.
Typically in this model – there were six major phases in this cycle:-
Requirement Gathering -> Design -> Coding & Unit Testing -> System & Integration Testing -> Production Deployment -> Post Production Support
Agile Model – Waterfall model had its own advantages but it had major drawback. Requirements used to get reviewed and finalized at the beginning of software development lifecycle – so it turned out to be cat when dog was expected. It led to client dissatisfaction. Agile solved this problem by introducing shorter release cycles in form of program increments and sprints. It had requirement gathering, design, coding & unit testing and system testing in each sprint. Sprint demo to customer also solved the dog turning cat in the end. However, Integation and Production deployment in the end led to many conflicts between development & Operations team and also issues in production release.
DevOps Model – DevOps resolved issues by having developers, testers and operations team sitting together. DevOps can be understood as – extension of Agile by maturing the deliverables ready to be deployed in production after every PI or sprint. All infrastructural planning and issues are completed during the execution only. Infrastructure configuration overheads add a great pain during the production deployment.
DevOps have brought different skill-sets people together and ensured that each sprint has some deliverable to be deployed in Production after specific interval. Its like a pipeline that can deliver the functionality after every day, every hour or even every minute.