Problems with traditional development practices:
- Traditional ways of developing software have proven slow, inefficient and fail to deliver the software on time.
- It also fails to support teams quickly delivering stable and high quality applications.
- There are so many challenges in the traditional software development lifecycle.
- For e.g. Challenges of Waterfall development, monolithic applications, manual processes, and siloed team structures cause bottlenecks and delay.
Waterfall development projects are slow, not iterative, resistant to change, and have long release cycles. Some reasons for this include:
- Requirements are rigidly set at start date and not likely to change.
- Poor model for long and ongoing projects.
- Stages in Software development lifecycle are code/build, Test, Deploy, monitor. We have to wait at every stage in the Waterfall development.
- This model is not good for complex and object-oriented projects.
- Poor model for long and ongoing projects.
Monolithic applications are hard to deploy and update because they:
- As small changes are made, then the entire application must be deployed because they are developed and deployed as a unit.
- Applications are implemented using a single development stack, so it is very difficult and hard to change the technology.
- Having tightly coupled functionality, so if the application is large enough, then it is very difficult to understand the code of the entire application.
- Complex and Slower development speed.
- Issues with scalability, reliability and availability.
Why DevOps?
Proven success, according to Accelerate State of DevOps 2019 report, the organization who owns devOps see shorter delivery cycles, decreased change failure rates, and improved performance.
- 106x faster to commit deploy
- 208x more frequent deployments
- 7x lower change failure rate.
- 2604x faster time to recover