The IT department is now the primary driver for how fast a business can respond to the market and drive new competitive advantages. IT professionals started to change the way they are managing the projects in their own industry, and managing methods are now constantly changing and improving. The leaders in the Information Technology industry were forced to invent and offer different and more powerful ways in the IT project management. DevOps, agility and continuous delivery are the buzz words of the new software development and testing landscape. They describe some of the core principles and processes that characterize an efficient, modern workflow.
The DevOps landscape is not black and white. The journey of DevOps is one with several steps and stages. It is not a simple decision that organizational executives make, nor can it be implemented all at once. It is often described as simply breaking down of the typical silos in an organization by streamlining of the way an organization works. This is done by removing the friction and unnecessary bureaucracy between departments, so as to enable them to work together more effectively.
This blog post deals with the DevOps journey and identifies the phases that the typical organization crosses, as it adopts DevOps practices and few reasons why it may still fall short of complete transformation. The various degrees of agility are highlighted and barriers needed to overcome by the organization are also discussed in this blog post.
THE 4 STAGES OF AGILE
The modern software delivery chains involve so many tools and processes, organizations progress slowly from one phase to the next. While overnight leaps are not entirely viable, it is still possible for 4 main stages of agility within the DevOps.
Waterfall: Enterprises that are following the waterfall delivery process are existing in the former times of software development. Waterfall operated on manual processes, including manual testing. The code is written, tested and delivered according to a sequential staccato rhythm. All the integral teams, including developers, operations and QA, operate in silos and rarely work collaboratively.
The Beginning of Agile: Organizations that have implemented a certain degree of agility are in the fast waterfall stage. With limited opportunity to move with agility, de-scope, re-scope or fix any bugs, the final product will most likely result in a number of unresolved defects and incomplete features. These organizations take advantage of tools, such as GitHub, that introduce a certain degree of automation and scalability to their workflow. They also do some amount of automated testing, but constraints remain; for example, they may not take advantage of parallel testing, which adds a magnitude of efficiency to automated testing.
Continuous Integration: This stage of the DevOps journey is hallmarked by the use of continuous integration platforms, such as Jenkins, CircleCI, and TeamCity. These tools do much to automate the process of building software. Issues are identified and appropriately escalated to development or operations with just-in-time, in-context knowledge for rapid diagnosis, while also capturing experience to quickly solve ongoing issues without pulling valuable resources off of new assignments.
Continuous Delivery: This is the final phase of the DevOps journey. Organizations that have achieved continuous delivery have adopted a fully automated development process, including automated testing at high frequencies. In addition, their development, Ops and QA teams function as a single group, constantly in sync with one another. Align business requirements, IT projects, development teams, and IT operations personnel to enable continuous delivery of new application releases.
INCREASING TESTING AGILITY
The organizations that have embarked on the DevOps journey by adopting tools related to development, delivery and production are likely to find their agility constrained by a lack of automated testing. For these organizations, improving testing efficiency is an obvious and easy way to grow more agile.