The intrinsic link between Agile & DevOps

Agile software development has been making its rounds in the software development industry for many years now. It has garnered attention by businesses large and small and is widely known as a best practice. With the advent of the DevOps movement, the philosophical links between Agile and DevOps are less explored but are more apparent in the current ecosystem than initially scoped. The links between agile and DevOps are indeed profound and worthy of closer examination. In this article we will attempt to examine these links and explore the profound similarities between the two.

The Agile Way of Thinking

The agile ideology originated in February of 2001 with the signing of the agile manifesto. The manifesto outlined a set of basic ideals pertaining to software development. These principles were unanimously agreed upon as the output of a group of seventeen software industry pundits who gathered in Snowbird UT to discuss the growing field and evolutions of what was then called lightweight development. The finished manifesto was then adorned with numerous signatures from well-known technology thought leaders including Martin Fowler, James Shore, and Kent Beck who attended the retreat.

After the inaugural debut of the agile manifesto, adoption of Agile within the software development industry spread like wildfire. Since its debut numerous incarnations of practical agile approaches have arisen – these include SCRUM, Kanban, ScrumFall, SrumBan, and more. The developments of these practical approaches have helped codify a path to becoming more agile for software development oriented business. The individual specific methods and micro-level implementations related to agile in the context of this article are less important than the philosophy agile purports. The important thing to remember is that each of the aforementioned approaches is a descendent of the published 2002 agile manifesto.

If we drill into the agile manifesto, and analyze its contents with a fresh perspective we can easily identify the core values and fundamental principles this manifesto was designed to encourage. We also can see that Agile in many ways is a lifestyle and a new way of thinking. This lifestyle is guided by a set of shared goals, common values and beliefs. This concept is symmetrical to religion dialects, which are organized around a shared vision of Christianity or Judaism. The principles of agile are organized around the principles, beliefs and doctrine described within the manifesto.

Interestingly enough in the current software landscape organizations commonly operate under the agile umbrella and yet seemingly stray from the core tenants of the agile manifesto [http://agilemanifesto.org/principles.html]. These core principles represent the cornerstone of the religion and are inseparable from its descendants. In an effort to clarify how a truly agile organization views software development, let’s take a look at a few of the core tenants:

Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.

The Introduction of DevOps

As Agile continues its quest to transform the way organizations view software development, a parallel and uniquely familiar idea began floating around at a technology and development conference hosted in Belgium in 2008. It argued for a culture change – shorter development cycles, and delivery to customers in an automated manner and with the highest quality possible. This term would be later identified as ‘DevOps’.

In addition to automation and improving quality, DevOps aims to reduce development batch sizes (release size) and automate the entire SDLC via build/delivery pipelines. This accomplished by creating and defining, build and release processes, collaborating with quality assurance + security, and implementing robust configuration management solutions. DevOps by nature encompasses the entire software delivery pipeline [Dev, QA, UAT, OPS, Business, Security]. As you may have noticed, the DevOps culture has an eerily similar goal as agile… in so much that they both aim to decrease a products time to market by encapsulating and shrinking the amount of work needed to develop, test and deliver software changes to customers. Indeed both DevOps and Agile principles focus on fundamentally altering the paradigm of traditional waterfall software development.

Take Away

DevOps in many ways fits uniquely well with Agile and the two seemingly unique agendas are for the most part synonymous except for prevue in scope. This convergence of development methodologies and delivery solutions has paved the way for numerous companies to reap huge financial and organizational benefits. When approaching an organization with a DevOps OR Agile agenda you may find allies in either group. If we can leverage the talent around us carefully, gain C-Level buy in for a DevOps + Agile culture implementations, our only limit will be our imagination.