Software product development has undergone a quantum leap over the last few years. Today, software development is all about speed, agility, and collaboration. The walls dividing the business and product development teams are vanishing. It is increasingly becoming apparent that all the stakeholders need to work closely together throughout the software development lifecycle to deliver high quality and relevant software products. Creating a stronger partnership between development, business, and operations teams is DevOps, the latest “must do” of the software development industry. DevOps ensures a stronger collaboration between development and operations teams throughout the product development lifecycle and demands greater participation from all the invested stakeholders in the process.
DevOps started off as a grassroots movement in some forward thinking companies and has now matured to become a standard method of product development. Most companies today believe in the Darwinian philosophy of “ it’s not the strongest or the most intelligent who survive – it is the one who is most adaptable to change”. Given today’s dynamic and immensely competitive business environment it is imperative that we constantly come up with product features, and even business models driven by software innovation to create new value streams.
The software industry has been instrumental in embracing and driving disruption. Take Amazon for example. It completely changed the face of retail and ushered in the age of eCommerce. The retail industry just had to respond by providing an online retail solution to meet consumer expectations and provide great online retail experiences. The music industry faced a similar challenge from Apple. Software has touched and changed almost all industries. These examples show us that to stay ahead of the curve, organizations have no other option but to be invested in software innovation and to release products and updates at a much faster pace than ever before.
Given the seamless coming together of the digital dimension with the physical, today, organizations must shift their focus beyond efficiency and stability and more towards agility and innovation. Cloud was a direct response to the need for agility and it enabled the IT department to focus more on areas that could add business value. This also led to the evolution of the service economy as the IT infrastructure became more pliable. The rise of the Software-as-Service model necessitates a different approach…one that puts flexibility and operability in one bracket and ensures that operations move at the same speed and flexibility as development.
While I don’t usually quote stats, just this one let’s just dip into The State of DevOps report 2016 for some numerical validation of just how widespread this movement now is. This report reveals that DevOps-adopter companies deployed code 200 times faster, had 2,555 times faster lead times, had 24 times faster mean time to recover, and had a 3 times lower change failure rate. That seems to be pretty unequivocal!
Traditional development methodologies where software development is divided into phases of design, development, testing, and release, tend to put testing in the last phase. Defect detection only happens when a release is complete, making defect resolution a much longer process…one that is not only time consuming but also quite expensive. However, by adopting DevOps the dependence on mass inspection to achieve a quality product is reduced since the need for quality is embedded deep into the development methodology itself. By adopting the DevOps practice which focuses on continuous delivery and continuous integration, development teams can spare themselves the deployment pain and ensure lower failure rates.
DevOps also places automation and testing into the heart of product development – two things which are essential to roll out high-quality products and updates faster. Like most in this game, I have witnessed the high cost of architectural flaws. These are not only much harder to fix once the development process is complete but the tragedy is they could have been altogether avoided had the testing teams and developers worked in unison. To achieve better results and release downtime, testing, and test automation has to be tightly integrated into everyday activities of development, QA and operations teams. It seems to make sense that high performing teams would then spend considerably less time remediating security issues when compared to their counterparts.
By increasing operational involvement in the development process, organizations can effectively flesh out critical non-functional requirements as well. This contributes greatly to team productivity. The operations teams are also able to support the development and testing teams to manage releases and in providing ongoing software support. Methodologies such as Continuous Delivery and Continuous Integration rely heavily on operations. By increasing collaboration between the two teams, organizations can improve velocity, provide stronger support capabilities, and allow comprehensive ownership of product sustainability. Most importantly, with greater collaboration, development teams can achieve better requirement gathering capabilities which ultimately leads to an iterative development of a better product.
As cloud environments are becoming an integral part of the IT landscape, the need for DevOps is only going to increase. To leverage the cloud successfully, organizations must adopt the DevOps approach. By eliminating the divide between development and operations, organizations can achieve increased agility and greater velocity.
Considering that in today’s economy, success can only be achieved by radically aligning goals, language, cadence, and viewpoints, DevOps is clearly on its way to becoming the default mode of software development…at least until the business landscape demands further disruption of the development process. That’s my opinion – what do you think of the inevitable coming of DevOps?
Published by :Ashish Shah (Founder and CEO Forgeahead solutions pvt. ltd.)
URL : https://www.linkedin.com/pulse/devops-now-default-mode-software-development-ashish-shah