The process of splitting up development work, usually into distinct phases is known as a software development methodology. Throughout the history of software development, a number of methodologies have been described to improve and ease the process of software development and operations. Each methodology splits the work into phases, each with a distinct set of activities.
- Issue with many methodologies is a focus on the development process as some things separate from operations work. This leads to conflicting goals between the development or operations team.
- Forcing other teams to follow particular methodologies can cause resentment and frustration if the work does not fit their processes and goals
Understanding how these different methodologies work and what benefits each might bring can help increase understanding and reduce this friction as stated above. DevOps is not so rigidly defined as to prohibit any particular methodology, therefore, DevOps fits in well with Software Development methodologies. While DevOps arose from practitioners who were advocating for agile system administration and cooperation between development and operation teams, the details of its practice are the unique per environment. The key part of DevOps is being able to assess and evaluate different tools and processes to find the most effective ones for YOUR environment.
DevOps shares many characteristics with the Agile/Lean movement, especially with the focus on individuals, interactions and collaboration. You might wonder if DevOps us just “rebranded” Agile/Lean. While DevOps has certainly grown out around agile/Lean methodology, it is a separate cultural movement steeped in the history of the computing industry with a broad reach that includes more than just developers. DevOps adopts and extends Agile principles and applies them to the entire organization, not only the development process.