Software development at the speed of ‘devops’
Over the past few decades businesses have been looking to technology to improve time-to-market, to deliver more value for the dollar, and to act as their differentiator in the market.
To this end we have been either building custom made solutions or implementing package solutions that follow the initiation, design, build, test, implement and run process, with the aim to deliver a high quality outcome. But more often than not this leads to a mismatch between supply and demand, a late go-to-market launch, additional costs and production issues. With the tools to automate our development processes now available it’s now time to move at the speed of commerce by integrating the development and operations functions of the business.
DevOps involves integrating and automating the work of software developers and IT operations professionals to improve the speed and quality of both development and support. By facilitating the interactions between these functions, businesses will also be able to reduce the cost of software development, its ongoing enhancement and support.
The business approach
This coordinated approach, when combined with an agility that aligns to business demand, will mean the CIO has a clearer view of how best to balance the low cost standardised options with new technology solutions for the portfolio, to make a difference in the market. This economic view of technology investments is already endemic in business conversations, but now decisions that may well have been hidden from the business and yet would have impacted the end result, will now be brought forward. This new setting is the best return on investment of all the IT simplification initiatives of recent years and means that both the creative part of agility is available to the business, along with the discipline and rigour of strong leadership and seamless supply chain management.
But it ain’t easy…
To realise this new setting we shouldn’t underestimate the cultural and skills change efforts needed. Traditionally, IT organisations ran their development and operations functions separately, largely because the two groups had different missions with opposing behaviours. ‘App Dev’ for example, would try keep delivery cycles short and support an “experiment and learn” mentality, while ‘Ops’ would institute controls and more tightly govern change. In DevOps environments, software developers can test their code before releasing it to operations, because their software development environment is linked to the production and QA environments. Consequently, developers can discover and remediate defects early in the software development cycle. They can also confirm their code will work properly once in production, and many of their activities will be automated like scripting, configuration management, testing and defect tracking.
By combining Dev and Ops, businesses can supercharge software development and gain a market edge with a much higher level of customer satisfaction.
When implementing DevOps:
Establish the need
Identify delays and waste in your organisation’s software development process – how much time does the development team spend on manual document capture, build management, verification, release planning, and test script development? Those activities can be streamlined.
Lay down the bases
Once you understand your organisation’s pain points, begin automating individual components. For example, a continuous integration and build server lets developers automatically integrate their work throughout the day, scanning it for integration errors.
Connect the dots
Once you’ve automated components of the software development lifecycle, look for ways to link them into a single stream that can shorten the cycle.
Build new skills
Dev and Ops staff will certainly need core skills, like the ability to configure various software development tools and write different scripts in a DevOps environment. But for DevOps to firmly take hold inside an organisation, staff should be able to collaborate with each other, the business, and program and project managers.
Employ “services thinking”
To apply DevOps to legacy ERP and large-scale custom solutions, it helps to break down complex systems into components and modular services.
Look beyond cost and speed
Embrace the lower costs and greater speed that come with real-time DevOps, but recognise that more substantial benefits are also possible.
Too many companies dabble in DevOps—acquiring tools and adopting some of the terminology, but without making hard changes to their operating and delivery models. If there is a case for real-time DevOps in your organisation, don’t fall for superficial, one-off investments.
Real-time DevOps is a process shift that changes the tempo of how much software development can be done, in what timeframe, and how it can best be supported. Early adopters have the opportunity to profoundly improve their IT shops—accelerate IT delivery, improve quality, and better align with the business.
This article was first published in Australian Banking & Finance.