The Marriage of Agile & DevOps - A Revolution in IT
Posted On July 28, 2016 by Shruthi S filed under Enterprise
Agile development methodology has created a true revolution in IT. It’s brought in more practical means for faster, adaptive, more reliable and cost effective product delivery, to satisfy business enablement and end user requirements.
However, despite the positive momentum Agile has created since inception, some organisations are experiencing shortfalls around solution development practices and/or final service delivery paths1.
These often unpleasant shortfall experiences have led a number of people to conclude that the original values and principles of Agile methodology, with the promise of faster, iterative deliveries, will gradually fade away.
More to this point, I’ve recently heard about a number of surprising outcomes with Agile adoption within organisations. Some unsuccessful projects have led people to believe that Agile has limited practicality outside of the development phase, with no real bandwidth to address an end-to-end IT service delivery view.
The core of this argument arises from a perception that Agile doesn’t have the ability to create the right momentum for a faster product release to the operational end points. Putting it in a nutshell, some people believe that Agile only creates more backlog for operation teams.
According to Agile manifesto2:
We (the practitioners) are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:
• Individuals and interactions over processes and tools
• Working software over comprehensive documentation
• Customer collaboration over contract negotiation
• Responding to change over following a plan
That is, while there is value in the items on the right, we value the items on the left more.
This Agile manifesto highlights twelve principles in support of its values. Although not all principles may be adopted for every IT project or be easily utilised within all types of organisations, failure to adhere to most of these principles will result in a diversion from an Agile path.
For organisations to implement its principles, Agile introduces specific methods and processes to follow e.g. extreme programming, behaviour driven development and robust scrum teamwork.
Agile complements its prescriptions with technical practices like stand-ups, backlog calibrations and continuous integration practices. To provide sharper edges, an Agile framework provides carefully tailored practical tools that arm practitioners with more efficient design, development and test arsenals.
Despite Agile being a highly regarded development framework, why are some organisations experiencing shortfalls in Agile practices?
In recent years, some leading-edge IT think-tanks have invested valuable research3 time and money re-evaluating the Agile framework. Some research papers directly or indirectly discuss areas in Agile where the answer to our question could be hidden. One aspect is its incomplete view on an end-to-end service delivery objective.
More specifically, the research points to known issues around the lack of more proactive engagement and collaboration within IT operations teams. It is important to acknowledge that IT operations have more specific needs beyond mere code and system deliveries; something Agile needs to incorporate more into its existing practices.
There are different views in the industry on how DevOps works4. Some see it as a shift in IT culture, revolutionising the way thoughts are organised into practical solutions. On the other hand, some IT professionals see it merely as a job title and in extreme cases they see DevOps as a worst case scenario for reinventing the IT development wheel.
Considering that the DevOps framework is still evolving, one needs to understand its basic principles, themes and recommendations.
DevOps has roots in Agile system administration and enterprise systems management (ESM) movements that originated in the mid-2000’s, with the idea of looking for better ways to do things. DevOps provides a common work bench for design architects, business analyst (BAs), developers, testers, systems engineers and administrators, release engineers, database administrators (DBAs), operations staff, network engineers and security professionals.
Taking a closer look at the DevOps framework, it highlights the same principles that are built into the existing Agile development framework. However, DevOps also targets IT development productivity, giving greater emphasis on healthier team collaborations and provides pragmatic responses to changes in terms of flexibility and adaptability.
The most important aspect of DevOps is its ability to empower IT teams to tune their engines for leaner development practices, with a sharper focus on final operational requirements.
DevOps projects a horizon where operations and development teams participate together during the entire lifecycle of service delivery, from design to progressive development, and into the production support phase.
This significant aspect of DevOps calls for the extension of Agile development to focus on more operational views, encouraging more development and operation synchronisation.
DevOps highlights that inadequate communication and synchronisation between IT development and operation teams can lead to failures in achieving desirable service delivery outcomes. DevOps aims to bridge the critical disconnects between the two teams.
DevOps demands a shift in thinking, in terms of not segregating the development and operations teams unnecessarily. It highlights that closely synchronised development and operation teams, supported by strong leadership from within a business, can do much more.
‘DevOps reminds us how IT practices have evolved from a Waterfall to Agile framework and it is now telling us that it’s time to evolve much further.’
Getting DevOps Right
Revolution IT has invaluable Agile and DevOps experience through working with industry-leading clients across Australia. A recent DevOps engagement with a NSW organisation that provides robust financial services capabilities demonstrated to me that, with careful analysis of the client’s IT & business service delivery model and quick adaptation to their requirements, a successful DevOps engagement is possible. In fact, many IT and business resources at client organisations are highly qualified and skilled practitioners with an impressive understanding of their end-to-end development and operational capabilities and requirements.
There are a number of positive outcomes organisations can experience through active participation in a DevOps model; and some of these include:
• Faster, more reliable engagement and on-boarding processes
• Sharper learning curves in shorter periods of time
• More clarity around the roles and responsibilities
• Timely transfer of vital knowledge and information
• Rapid activity synchronisation and communication
• More visible end-to-end dependencies and cross functional requirements
• A better sense of belonging by team members
• Assuming ownership of the entire product delivery
• A more reliable means to monitor and measure progress
• Faster, more reliable solution integration and final product delivery
• More conscious and intelligent project and programme management practices
Implementing DevOps in large enterprise organisations may not always be clear cut and the most significant challenge in implementing a DevOps framework is finding the right path to deal with fear and inherent human resistance to change.
In many organisations, IT development and operations teams are siloed yet manage to coexist to efficiently provide services.
However, both teams are entangled with spider-web like communication channels that stop them from having more direct and healthy engagements with each other.
Processes are therefore created to compensate for the lack of communication. The objective of these is to safeguard the channels that carry vital cross-department information, and ensure that the right information is communicated at the right time to the right parties.
Nevertheless, it is commonly acknowledged that more processes are needed as soon as something fails due to the lack information and timely communication. This means there is a constant battle to manufacture more time consuming processes, even at times, implementing new processes to monitor the previous processes. Organisations then wonder why some people avoid following the processes.
History shows us that with pioneering ideas and a willingness to change for the better, humankind has managed to survive till now. Of course, there’s the option of continuing with current ways of thinking around IT service delivery, or it can be acknowledged that there are simply better ways to accelerate application development, test delivery to production.
Senior leaders in organisations should consider leading an enterprise-wide movement towards more pragmatic service delivery and operational models that incorporate Agile and DevOps frameworks.
They should complement this by augmenting their existing staff with independent consultants who can provide vast knowledge, real-life experience and insight of working on successful Agile and DevOps projects.
It is these organisations that will avoid Agile and DevOps shortfalls and benefit from more quality applications that maximise productivity gains through accelerated application time-to-market.
1. Agile manifesto
2. Agile shortfalls
3. IEEE research on Agile (http://ieeexplore.ieee.org)
4. DevOps notion
Author Siavash Jandeh-Razmi working as Client Delivery Manager at Revolution IT. You can reach author from the following email-id. email@example.com