Even though it appeared a decade ago, #DevOps is becoming an increasingly popular approach to product and service development. And a holistic methodology to transform organization into more innovative. But it will work in practice only if you stick to these basic rules.
DevOps (Development and Operations) is a methodology in markets with a strong focus on the IT industry, especially in the US, Scandinavia and the UK. Gartner’s data show that 25% of Fortune 500 companies admit they’re using DevOps. This is confirmed by the latest edition of the “State of DevOps Report” of Allied Market Research for 2017. More and more companies are turning into agile methodologies like DevOps and the value of DevOps solutions market was estimated at $2.9 billion already in 2016. Over the next 5 years, this figure is expected to rise to $9.4 billion.
Not surprisingly as the effectiveness of this approach is proven by comparative studies – confrontingthe effectiveness of agile methodologies with traditional approach to product management. The DevOps approach allows you to considerably shorten the process of implementing digital solutions hence vastly improving time-to-market. If the “waterfall” approach takes a few weeks, then the DevOps approach takes a few days. No wonder that it is used by organizations with plenty of very complex processes and projects.
Some of the organizations are more or less successful, yet all keep looking for a way to shorten their processes and boost profitability. Like smaller, more agile companies that quickly respond to the changing market needs. For example, ING improved its software time to market from 13 weeks to less than one week with DevOps. This is achieved by: choosing microservices architecture, applying continuous delivery / continuous integration pipeline and managing relying on DevOps model of short sprints and receiving continuous feedback. On top of that it contributes to more reliable applications with much more resilience.
DevOps is more of a culture than just a set of tooling and principles
“By-the-book” approach to DevOps and the implementation of guidelines are not enough to achieve success. In fact, one should take a holistic approach to changing the culture of the company rather than just blindly focusing on tooling and IT practices. As in the case of strategic management decisions, the implementation of DevOps is a journey which require persistence and patience as there are many steps to be taken. When bringing DevOps approach, you have to stick to these basic rules:
- Bring new philosophy to management and not only change the mechanics
DevOps is only a part – but very special, sensitive and important – of the continuous development of the whole organization: people, processes and technology. DevOps is the tip of the iceberg in the entire change process. It is an agile way of working that requires the right organizational culture of trust and confidence. If the environment of the given company is not “agile” – meaning you do not follow the rules of agile software development – DevOps does not make sense. It will remain nothing but a claptrap. Thus: first you need the framework – scrum methodology – to build IT practices based on DevOps.
- Create culture of teamwork
DevOps is a new way of thinking about the organization and a new way of working and communication. It requires time and therefore patience from the managers. You don’t stand the slightest chance to succeed unless you convince your employees to get engaged in the process and lead by giving example. Lack of business success is often due to the fact that managers are not able to efficiently pass on information or support their employees. The low level of internal communication translates into a failed implementation, lack of trust and misunderstanding. This is the source of many failed attempts at creating an innovative enterprise since complex projects can only be managed by a team that understands each other, give frequent feedback and focus on value creation.
- Apply servant leadership
Building an organizational culture that is ready for transformation to DevOps and responsive to the requirements of the new methodology needs involving the company’s leader in a new approach. Senior leaders no longer should be treated as gurus and apply command-and-control approach but rather turn into humble servants. Focus on such leadership team should be allowing people to grow and removing impediments for the engineers to succeed. Special attention should be paid to improving communications and ensuring that big picture strategy and value for customer is constantly explained, measured and proved. No product or service development solution will prove 100% fault-proof unless the leader convinces his people that this is the right way to go.
- Fail fast
Agile methodology is based on empirical management and as such focuses not on models, framework or theories but more on down-to-earth practices. One of the most important aspects is to experiment, build smaller version of products with only rudimentary features – so-called MVP (minimum viable product). Then: collect feedback for customer, check if the product meets expectations and additional time and materials should be invested in its enhancements. This continuous feedback loop involves circles of developments – so called sprints – that could be as short as week or two. That in turn allows to fail fast in case the chosen approach is not right. True leaders should rather encourage engineers to set hypotheses, build MVP to prove them and allow them to fail after a sprint or two. That brings more openness to innovation and minimize associated risks.
- Have correct technology
It’s only the last step to support the DevOps implementation, but a crucial one. Rapid buildup of software and progressive planning of sprints require more adaptive technologies. The framework of continuous development / continuous integration (CD/CI) means that software is managed by versions and the entire software development lifecycle is fully automated from coding into compiling then testing and deployment onto production. There are many packages available on the market, but best results can often be achieved by using open source and community versions so a smart starting point could be GitHub where engineers mingle, share code and brainstorm on common issues.