Development

This Week in Programming: Reports of Agile’s Death Have Been Greatly Exaggerated

30 Aug 2019 12:00pm, by

Declaring programming languages, methodologies, philosophies, what have you, dead — we just love to do it, don’t we though? Go ahead, give “agile is dead” a quick Google. We’ll wait.

Yeah, there are just a few articles over the years declaring the agile methodology — first introduced with the Agile Manifesto back in 2001 — dead and gone, but this week, one of the first seventeen signers of that manifesto, Alistair Cockburn, took to the internet in defense of the much-maligned methodology.

Writing that agile is not dead, quite the opposite, Cockburn looked at some numbers and did what he called some “back-of-the-envelope calculations” to argue that there were three particular reasons behind the numerous articles decrying the death of agile, and offered a counter-argument: put simply, if you look at the numbers of “knowledge workers” and the numbers around agile, agile is just getting started, not coming to its end.

But first, back to the three reasons: “phony ads, misunderstanding ordinary movement of ideas through society, and looking at the wrong curves.” The first one is basically writing that declares agile dead in order to sell the next best thing, which helps explain the vast number of articles out there. (That, and clickbait.) Easy enough. The second reason, however, deals with Everett Rogers “diffusion of innovation” and Geoffrey Moore’s “sales gap between early adopters and the early majority.” Both look at the adoption and “movement of ideas through society” and Cockburn says there are two parts here that lead to the final reason — that we’re “looking at the wrong curves.”

The pundits you are reading typically are innovators and early adopters. They adopted agile 10-15 years ago. Quite naturally, they have moved on and are working on the 2nd or 3rd round of interesting things that have arrived since then.  […] They have been looking at lean startup, hypothesis testing, and agile product management, for example. All agile consequences, just a little more advanced. They have quite naturally (for them) forgotten the joy of discovering the agile approach for the first time. Everyone they know is already using it or has moved forward. To them it looks “passé”, “dead.”

So perhaps it’s just a vocal minority of innovators and early adopters? Cockburn continues, arguing that beyond this, we are just reading the graphs wrong. While it may seem that agile has reached the late stages of adoption, Cockburn instead says that “the entire distance we’ve come since 2001 doesn’t even fill the ‘innovators’ section of Rogers’ innovation diffusion curve!”

In essence, if we just look at the bigger picture — the true numbers and growth of “knowledge workers” in workforces across the globe, agile has just scratched the surface.

This Week in Programming

  • Separating FaaS From Serverless: Techcrunch brings us a story on a new open source project that wants to expand the serverless vision beyond functions. The project, called CloudState, is meant to “augment” function-driven programming, not replace it, by taking advantage of existing technologies such as KNative, gRPC, and Akka Cluster and GraalVM on Kubernetes. In essence, Lightbend CTO Jonas Bonér makes a familiar argument that FaaS and serverless are often used interchangeably, when FaaS is merely a part of serverless, and tells TechCrunch that “I think that’s actually cutting the technology short. What serverless really brings to the table is this completely new developer experience and operations experience by trying to automate as much as possible.” Techcrunch summarizes the project as aiming to “bring to fruition this broader vision of what serverless means where developers can just write code without having to worry about the underlying infrastructure where the program will run.” Sounds great, doesn’t it?
  • Containers and VMs, Living in Harmony? While early on, containers and virtual machines were always regarded in an either-or sort of light, these days they’re working together more and more. This week at its annual VMWorld conference, VMware, the company that really brought VMs to ubiquity, introduced Project Pacific, what Chief Technology Officer Kit Colbert called “the biggest evolution of vSphere in easily the last decade.” So why is this so revolutionary? Well, VMware is “re-architecting vSphere to deeply integrate and embed Kubernetes,” which will serve as the basis for VMware Tanzu, “a portfolio of products and services that transform how the enterprise builds software on Kubernetes.” If you can’t beat ’em, join ’em, right? Project Pacific will offer a native Kubernetes experience, embedding the Kubernetes control plane into vSphere and giving vSphere users the ability to “see and manage Kubernetes objects (e.g. pods) from the vSphere Client.” Rather than dealing with VMs and containers individually, the project also provides application-level management “for applying policies, quota and role-based access to developers,” as well as unified access to compute, storage and networking resources. For further details, also check out our coverage of the news.
  • On Rust Replacing C for Systems Programming: A talk at the recent Open Source Technology Summit raised some eyebrows, as Intel Principal Engineer Josh Triplett took to the stage to discuss the Future of Systems Programming — or as PaktPub paraphrases in its article, “Rust is the future of systems programming, C is the new Assembly.” The talk provides an overview of “the history of systems programming, how C became the ‘default’ systems programming language, what features of Rust gives it an edge over C, and much more,” writes PaktPub. As for why Rust looks poised to take C’s place, they offer this reasoning from Triplett: “Rust addresses the memory management problem in C. It offers automatic memory management so that developers do not have to manually call free on every object. What sets it apart from other modern languages is that it does not have a garbage collector or runtime system of any kind. Rust instead has the concepts of ownership, borrowing, references, and lifetimes. […] Not having a runtime is also a plus for Rust. Triplett believes that languages that have a runtime are difficult to use as a system programming language.”

  • Amazon Transcribe Adds Mandarin & Russian: Linguiphiles listen up — Amazon Transcribe now supports Mandarin and Russian, bringing the total number of supported languages to 16. The company first launched Amazon Transcribe, its automatic speech recognition service, at AWS re:Invent 2017, and is continuing to add languages to its arsenal, which are available to use through a single API call. Essentially, the service can analyze audio files and provide a text file of transcribed speech, or it can even translate in real-time.
  • I Pledge Allegiance to Python 3… With the end-of-life for Python 2.7 quickly on its way, the time is now for projects to switch over to Python 3, and a number of them have, as SDTimes relates in its story about a pledge to Python 3 being signed by numerous big-name projects. Those projects include TensorFlow, Apache Spark, Apache MXNet, Tornado, pandas, scikit-learn, and SciPy, among others. Already, Python 2 support was extended an extra five years, but that time is up come January 1, 2020, and all of the signers of the pledge have vowed to “drop support for Python 2.7 no later than 2020, coinciding with the Python development team’s timeline for dropping support for Python 2.7.” The site offers the why and how for dropping Python 2 and moving to 3, even examining the practicalities for doing so.
  • GitLab Discusses Its Use of a Single Codebase: Serving as part how-to and part why-should, GitLab has written a series of blog posts tracking its move to a single Rails codebase, and now the company offers an update on why they’re using a single codebase for GitLab Community and Enterprise editions. The reason, they write, is pretty simple: “For years, CE and EE used two different repositories for the Rails application. By using separate repositories we could separate proprietary code from code that is free software. On the surface, this seems like a good idea for different reasons (e.g., licensing), but over the years the drawbacks began to outweigh the benefits.” One of the biggest problems, they write, is how to keep this separation of proprietary and open source code while merging into a single code base. “Ruby provides us with a solution to this problem. In Ruby, you can create a module and inject it into another module or class. Once injected, the functionality of the module becomes available to the target module or class.” Thus, GitLab has created the gitlab-foss repository, which will essentially be a dependency of the enterprise edition. GitLab says it expects to have a single codebase the first week of September, with GitLab 12.3 to be the first to employ a single codebase.
  • TypeScript 3.6 Arrives: Finally this week, there’s the arrival of TypeScript 3.6, which PaktPub again offers a summary of, citing stricter generators, new functions in TypeScript playground, better Unicode support for identifiers among its key new features. In addition, they write that 3.6 ” contains many new features in Language and Compiler such as stricter generators, more accurate array spread, improved UX around Promises, better Unicode support for identifiers, and more. TypeScript 3.6 also explores a new TypeScript playground, new Editor features, and many breaking changes.”

GitLab is a sponsor of The New Stack.

Feature image: “The Death of Socrates,” Jacques Louis David French, 1787, public domain, courtesy of the New York Metropolitan Museum of Art.

A newsletter digest of the week’s most important stories & analyses.

View / Add Comments

Please stay on topic and be respectful of others. Review our Terms of Use.