The term DevOps is derived from the words "Development" and "Operations". In essence, it describes a concept that unites the fields of software development and IT operations, which were previously separate, by means of a collaboration across teams and disciplines. Whereas developer teams and "Ops" experts used to work entirely autonomously of one another and pursued different objectives, DevOps is about mutual cooperation and communication.
DevOps is a general approach to process optimization and automation in the field of software development. It is an agile concept that aims to eliminate the divides and knowledge silos that traditionally exist between teams and enables improved collaboration between them by means of new organizational processes, greater transparency and mutually beneficial know-how exchange.
The DevOps concept arose out of the market's need for faster and, more importantly, more agile responses to its demands. Customer expectations have evolved: In order to remain competitive, IT services have to be individually customized and available fast. The DevOps concept evolved out of the desire to make the development of software more efficient, its delivery faster and its operation more stable. Its introduction also brought with it the promise of improved product quality and better adherence to delivery deadlines.
How does DevOps work?
DevOps is a holistic concept that launches a change of culture in a company and has a positive impact on teamwork. Within DevOps, IT processes are viewed in their entirety across the value chain. Its focus is not on individual task silos, but on the overall workflow, from the design of the concept to its implementation.
For this reason, DevOps aims to integrate all the stakeholders in a project from the word go: Alongside Dev and Ops, these also include Testing, Quality Assurance, Security and of course the customer. Throughout the entire product lifecycle and by sharing their know-how, everyone involved in the project works together towards a mutual goal – the finished application or functionality.
You can picture the DevOps process as an endless loop that leads from the software planning stage to development, on to testing and operation and then back to planning. That is why a strong collaboration and constant communication are essential throughout the whole lifecycle, enabling innovations to be pushed forward more quickly.
Benefits of DevOps
Successes begin to show as soon as DevOps has found its place in an enterprise and the staff have become accustomed to the changes. The benefits of DevOps can be of a technical, cultural and strategic nature.
- More streamlined project management
- Faster product lifecycles thanks to continuous delivery
- Faster deployment
- Faster problem solving
- Improved quality of the software product
- High reliability thanks to continuous monitoring
- More productive teams thanks to improved collaboration
- Uninterrupted interdisciplinary know-how transfer
- Professional further development of the staff members
- Happier/More motivated teams
- Furtherance of a culture of mutual trust
- Higher productivity thanks to shorter times to market
- More time for innovation and testing new functions
- A more error resistant and stable operating environment
- Greater customer focus
- Happier customers, higher income
- Competitive advantages
Dev & Ops in Love?! Challenges of the DevOps Culture
Change is never easy. Especially structures with firmly anchored ways of doing things can experience challenges, for instance with regard to established work processes. Sometimes, departments have to be restructured to some degree or responsibilities reallocated. There is a risk that some employees may not support the new concept. Even managerial staff who suddenly find themselves in flat hierarchies may have their problems with it.
New tools and platforms are needed in order to implement a DevOps structure in the best way possible. Establishing these and training staff to use them efficiently costs time and money. And teams have to be willing to learn what is required.
Automation processes are good. They lead to faster deployment. But automation can also prove to be prone to error and unstable.
There is nothing to say against establishing an open error culture, in order to learn from mistakes made. But the fail-fast approach can lead to a willingness to take more risk.
DevOps aims to promote a team culture in which all team members have a broad range of expertise and can take on a range of different responsibilities in a project. This can, however, lead to a blurring of competencies right where it makes sense to separate roles.