Software development genetics, part 1: DevOps, lean, agile

Like genetics are changing life as we know it, new software development techniques will change how apps are created and the economics that drive the software industries

Software development genetics, part 1: DevOps, lean, agile
Thinkstock

In a recent blog post, Recombinant communications: The new 'genetics' of enterprise communications, I drew parallels between the impacts of genetic engineering and how the application programming interface (API) economy and as-a-service industries are changing the enterprise communications market. A set of techniques that are gaining increasing numbers of adherents among software developers in other industries is similarly providing new “genetic” material that also promises revolutionary changes. The innovation framework DevOps, microservices and containers are the tools and constituents of this new “genetic” engineering in the software world.  

As I started to conceive this post I imagined a single article. As the writing unfolded, it became clear that because of the breadth of these converging trends it would be better to break my argument in two. Here is part one.

Defining DevOps

Since many of us don’t code for a living and may not be familiar, I’ll start building my case with a few paragraphs with definitions and a bit of history. Gartner defines DevOps as “a change in IT culture, focusing on rapid IT service delivery through the adoption of agile, lean practices in the context of a system-oriented approach.”

Agile and lean are concepts related to one another; the meanings of each are often intermingled.

Lean software development

Lean development typically refers to a conviction among those in production environments described by what intelligent manufacturing professor Ileana Costea calls “a systematic method for the elimination of waste within a manufacturing system.” As a character in an animation that professor Costea uses with her classes says, lean is “a system for providing the customer a defect-free product or service, when they need it and in the quantity they need.”

Lean philosophies have been applied to software development, as practitioners employ them as an efficient means of producing products that are free of bugs, have an optimal user interface (UI), are easy to deploy and have other positive attributes.

Agile software development

Agile software development is the related concept that traces back to a single meeting in 2001 of, in the words of the Agile Alliance, “seventeen independent-minded software practitioners.” These practitioners were concerned with “ways of developing software by doing it and helping others do it.”

The group created the Manifesto for Agile Software Development. The Manifesto expresses four core values and is supported by 12 principals. The number one principal expresses the harmony that exists between lean and agile when it says, “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.”

Tying the three concepts of DevOps, lean and agile together is one example of a modern mashup between straight-laced corporate culture as expressed in lean methodologies and the hacker ethic as expressed in the Agile Manifesto. Today you have increasing numbers of enterprise organizations embracing the lean and agile ethos as part of their DevOps processes. As a group of expert opinions consolidated by Kathryn Cave in her recent article in CIO points out, “Agile and DevOps are inextricably linked and will continue to develop together.”

New age software development philosophies

Formal adoption of agile methodologies include new-age terms such as the Scrum methodology. Facilitated by the scrum master and involving software "ninjas," the practices are gaining increasing numbers of adherents. These terms infer an enlightened hybrid philosophy that is gathering followers and driving innovation and increased quality. These methodologies are also changing the environment in which software is developed.

As more businesses are virtualizing and lifting applications to the cloud, so too the functions of software development are moving from a shop floor mentality of physically present resources to that of geographically distributed talent. As Ashley Speagle points out in CIO, “Collaboration-centric strategies are now at the heart of modern IT departments, breaking down formerly rigidly defined siloes and creating responsive, communicative teams.”

Here is where I’ll leave off before jumping into part two. In part two, I’ll bring in the related concepts of microservices and containers. Thanks for sticking with me.

This article is published as part of the IDG Contributor Network. Want to Join?

Download the 2018 Best Places to Work in IT special report
  
Shop Tech Products at Amazon