While DevOps is basically the amalgamation of software development and operations, the merging of these two parts of the business alone is not enough. If you want to reap the full benefits of switching to a DevOps way of working, including reducing testing and development times (by as much as 80 per cent), significantly cutting overall costs (by as much as a third for one part of the project alone) and improving the overall quality of the software and time-to-market, then you need to combine more than just the Dev and the Ops. Brickendon DevOps Specialists Tim Smolcic and Bala Ethirajalu take a closer look.
DevOps brings together development and operations in an agile way, removing walls, gates and transitions to increase accountability for the full end-to-end software development process. It requires cooperation and collaboration from across the whole business and in turn brings a raft of benefits, including:
- removing the potential for human error by increasing automation;
- producing results quickly and clearly;
- saving significant amounts of time and money; and
- avoiding potential reputational damage from delays and errors.
Traditionally development and operations were two very different things carried out in isolation with an imaginary wall between them. Development was done on one side, and once complete, the developers effectively threw the delivery over the wall to the operations team who deployed the software programme into production. This extreme segregation stemmed from fears of cross-contamination between the different phases and expertise levels of the software development life cycle, and in particular, concerns over regulatory restrictions and issues with some individuals having access to systems they should not. In the past, it had been known for software to be released into production unchecked and content to be updated by individuals without the necessary expertise, which combined caused serious errors and lead to trading losses.
As a result of the ensuing isolated working methods, no one was accountable for the full end-to-end process, from requirement, through development and testing, into production. Failure to combine these activities lead to an extended time-to-market, higher costs and increased likelihood of issues and defects being found once the programme was in production. By contrast, DevOps integrates the two processes of development and operations into a single entity with the aim of producing the best software system as quickly and efficiently as possible.
To put it simply, the key is ownership and accountability, and in particular ensuring that one team, comprising developers, project managers, business analysts and testers, takes end-to-end control of the whole process. Teams need to move away from the traditional waterfall software development cycles and employ agile and lean methodologies. This enables work to be prioritised as appropriate, thereby reducing the time taken to complete tasks and encouraging the discovery of problems earlier in the lifecycle, making them simpler, cheaper and less time-consuming to fix.
The introduction of automation, in particular in relation to generating different testing environments, can significantly speed up the development process and help remove some of the risks associated with human intervention. In addition, encouraging the adoption of agile methodologies such as Kanban or Scrum can speed up the cycle further. These frameworks allow workflow to be monitored and prioritised, taking into account both planned and unplanned activities. Unrelated tasks can be carried out alongside each other, reducing the waiting time and propelling the project forward.
Encouraging alignment to a shift-left way of working, which means testing is carried out as early as possible in the development process, reducing the risk for costly and time-consuming fixes late in the cycle, is also important.
By adopting the DevOps approach, banks and other institutions can save themselves considerable amounts of time and money and rest assured that the software development is of a highly superior quality because the whole team is fully aware of what is happening at each stage of the process.
Other advantages of implementing the DevOps methodology, include:
- an increase in confidence in delivery as less defects are introduced into production;
- integrated teams requiring less man-power;
- lower costs to rectify bugs as they are identified earlier in the lifecycle;
- more time for project resources to focus on delivery; and
- faster releases thanks to standardised and reusable automated tests;
- the ability to divide releases into modules, giving less opportunity for error.
In short, while the act of combining development and operations is relatively straightforward, the DevOps methodology cannot be properly integrated within a business, and therefore reap the appropriate benefits, without a change in mindset and the promotion of accountability across the whole organisation. To put it simply: you build it; you break it; you fix it. With DevOps there is no place for passing the buck, represented in this case, by the software development life cycle.
As DevOps champions we have a great deal of experience in this area. Nominated as finalists in two categories of the inaugural DevOps awards in 2017, we have successfully saved clients millions of pounds. See our DevOps paper and case study to find out more.