Subscribe / Unsubscribe Enewsletters | Login | Register

Pencil Banner

Has agile software development gone mainstream?

Matthew Heusser | Aug. 13, 2013
Today's software development industry views object-oriented programming as 'just another tool.' Is agile development headed the same way?

That "brand" of OOP, the so-called "official" brand, has rules such as single responsibility and dependency inversion. These rules lead to extremely tight functions (think seven lines of code or less) and cyclomatic complexity of less than three (which means code is highly testable and therefore easy to fix).

Most people I interview are unaware that these rules exist. Instead, they write what's essentially procedural code plus inheritance and encapsulation, using an object oriented language.

Flip that around and look at today's "agile" teams. I see the same things: Cards flowing across a wall, "product owners," "sprints," daily standups and demo day. All are characteristics of agile. Still, in most cases, work is assigned by a manager, done by individuals and documented according to a company standard that can't be changed in a retrospective.

In the VersionOne survey-likely replied to by those most likely to embrace agile methods-only 43 percent of teams practice test-driven development and only 30 percent do pair programming.

We've come a long way with agile development, but the big risk is the same risk for OOP-that we'll have some of the form but lack the substance.

Move From Technical Agile Practices to Cultural Ones
Jon Kern, another agile coach, describes this risk as "human nature." It's something author Jerry Weinberg calls The Law of Strawberry Jam: The wider you spread something, the thinner it gets.

It's more than just spread thin, though. Practices such as project management, with stories, sprints and more frequent releases, have achieved better adoption than technical practices such as test-driven development and continuous integration. The technical practices have more adoption than cultural ones such as team ownership of process, multi-disciplinary, self-organized teams and constant pairing. All three of those categories are "agile," but you might call the cultural practices the "heartbeat" of agile.

The majority of market-driven companies today seem to be embracing the project management aspects of agile software. For everything else, there's room for improvement-which means room for competitive advantage.

That sounds, to me, like a good thing.


Previous Page  1  2  3 

Sign up for CIO Asia eNewsletters.