KEEPING MOVING FORWARD WITH DEVOPS
Software development and deployment traditionally was the responsibility of the software developers and the software development team, while managing in place was through infrastructure and IT management teams. This is changing though, through the DevOps concept.
What is DevOps?
To quote from Amazon AWS:
“DevOps is the combination of cultural philosophies, practices, and tools that increases an organization’s ability to deliver applications and services at high velocity: evolving and improving products at a faster pace than organizations using traditional software development and infrastructure management processes. This speed enables organizations to better serve their customers and compete more effectively in the market.”
In essence, DevOps is trying to bring both development and operational teams together, merging them, and thus enabling them to work jointly and thus speed development, deployment and responsiveness.
What are the advantages of this?
Breaking down siloed barriers has been recognized for a long time as one of the most important things that a business needs to do in order to increase its efficiency and to improve information flow. While the silo may just only be formed by boxes on an organizational chart, that cultural and mental separation into different teams or units presents a barrier to the optimum working practices. The DevOps concept aims to work around this, merging the teams and improving:
- Communication. It’s not just a matter that it’s often easier to communicate with people in the same team; it’s that often traditional software development teams and operations management teams use different technical languages where they can end up talking past each other, with resultant misunderstandings. Improved communication also enables swifter responsiveness to any problems that do emerge (bugs etc), as these can be raised and managed immediately rather than through more delayed processes.
- Culture. Cultural change and working with differing (sub-)organizational cultures are whole topics in themselves, but by having both Development and Operational teams working together, jointly, there can be an increased understanding of the different working culture that they have. At a VERY simplified level, development teams want to move fast, develop, deploy, get onto the next project; operations teams want things to be proven, stable and resilient i.e. things that can take time. Both working cultures are equally valid for their roles but through DevOps having the teams merged, it is easier to find the appropriate balance.
- Commonality. We’ve mentioned communication issues, but there are other areas where different approaches can cause problems. What about the different tools that the teams use and the alternate manner in which they may be used? Different reporting and management processes? Different understanding of implementation environments and implementation concepts? All these potential areas for misunderstanding can be reduced through combinations under the DevOps concept.
- Improved accountability. One of the most frustrating aspects of any project is ensuring correct accountability – whether in tasking, determining where problems lie, or resolving them. Breaking down barriers helps avoid the ‘they did/they didn’t do’ problem, making lines of accountability clearer as well as increasing common understanding of these.
DevOps brings a different focus to developing a software product. Breaking down some of the formal or mental barriers of the software development process is one aspect of this. Another is the different ways that tools are used. In ‘traditional’ software development, software developers use one or a number of separate tools. Within DevOps, the concept of this is changed so that in developing a software product, use of made of ‘toolchains’ rather than a single tool. These toolchains can vary – an article here examined the steps to building an open-source toolchain – but the basic idea is that the various tools fit under one of a number of functional groups that support the various DevOps initiatives, namely: Plan, Create, Verify, Package, Release, Configure and Monitor.
Increase in DevOps
Many custom software development firms have been moving towards using the DevOps approach when undertaking bespoke software development but there is also an increase in large software and IT development and service companies using similar methodologies. Certainly, in 2019, there are no signs that there will be a slow down in the drive behind DevOps – and this is due to a couple of very clear, very understandable reasons. While DevOps is software development-focused, the supporting logic behind it is clearly based in wider business practices where reducing siloed barriers and improving communication, coordination and commonality between teams results in improved efficiency, greater responsiveness and enhanced customer service.