DevOps is a way of working in software development that combines Development team and Operations team to make things faster and Smoother.
To explain and understand better, Lets discuss before and after DevOps. Lets understand how a Software development and deployment is done.
Lets discuss how Software development happened before DevOps
Client talks to the Business Analyst about the requirements of the software.
With that information Business Analyst prepare a FBL document(Functional Baseline). Then this document will be given to the Development team(Coders).
Development team develops the application and send the application to testing team for testing. And once the application is tested with zero errors, its send to the Operations team for deployment. Deployment team deploys the application of a physical or cloud environment and the software is ready to use.
This method of software development is called waterfall model.
To understand the drawbacks of this method, lets take an example of a software with 100 features.
Development team works on 100 features and only when all the features are developed its given to the testing team. So consider we take 6 months time to develop 100 features.
Testing team finds few bugs and errors and returned it back to development team. This cycle continues until we have zero bugs in features. Now its moved to the Operations team.
And this is when Operations team come with another issue, the features we developed are not compatible with our environment. So all the efforts took till now is wasted. This is when people started thinking about a better method for software development to improve the quality and deployment time. We need a method where Development team , Testing team and Operations Team work as single team and not as independent teams. and that's called DevOps.
lets see the DevOps method of software development and deployment.
Client talks to the product owner. Product owner will be responsible for the delivery of the application in agreed time. Product owner creates a feature list and prioritize the feature list.
Now this feature list is shared with Business Analyst . Business analyst creates a detailed user stories for all the features. It will be in a format
" As a user, I should be _________ So that________"
Now, Business Analyst, Development team and Testing team combines to form a 3 Amigos.
During the 3 Amigos meeting they define the acceptance criteria for each user stories.
Now comes the refinement phase, where the outcome of the 3 Amigo meeting is discussed with the whole team and refined.
Finally , planning phase where we decide which all user stories can be completed in the next Sprint. (Sprint is a short time period between 1 or 4 weeks) This method is called Agile methodology.
Now we know what all features to be developed in next sprint. lets see how DevOps works.
Developers write the code and its stored on a storage. Storage can either be local or cloud. Then its compiled for syntax errors.
After compilation, it will be given for Unit testing and integration testing(mostly done by Automated test suits). If the testing part is successful its given to the Operations team for deployment. After deployment its given for User acceptance testing(UAT).
Any issues found during UAT , it will be given back to developers for correction.
Unlike Waterfall model, we don't wait for the completion of 100 features. We deploy feature by feature. Continuous integration and continuous deployment(CI/CD) is happening to make sure development and deployment is faster and smoother.
Comments