From Agile to Extreme: Programming Methodology Madness Bracket
From Agile to Extreme: Programming Methodology Madness Bracket
March Madness isn't just about basketball, or at least it doesn't have to be. Take a look at this nail-biting commentary from New Relic about the most exciting matchup yet.
Join the DZone community and get the full member experience.Join For Free
Every March, the world of college basketball descends into madness as 68 teams battle it out for the NCAA championship. And as millions of fans fill out their tournament brackets, thousands of pundits offer their advice and rationale—sometimes serious, sometimes less so—for why riding a particular team will lead to success in the office pool.
As the tournament has grown in interest, it has spawned a cottage industry of "bracketology." The bracket format is now used to call winners and losers in a wide variety of areas, some vaguely basketball related, others focused on pop culture. In fact, you can find brackets for everything from burritos to condiments, Hollywood actors to Star Wars characters.
Conspicuously absent, though, are brackets on software and programming. We can't let that stand, so New Relic created our own tournament of eight top programming methodologies—and we're going to determine the 2018 Programming Methodology Madness champion. (Note that we didn't include new approaches like DevOps and Site Reliability Engineering in this bracket because they didn't quite fit bracket's (admittedly arbitrary) criteria as a programming methodology.)
The Quarter Finals:
(1) Agile vs. (4) Waterfall
This is a top-seed/bottom-seed matchup, and it plays exactly to form. Being Agile is the alluring standard every startup and enterprise aspires to, promising faster innovation, higher quality products, and greater efficiency. Waterfall, meanwhile, relies on careful, sequential, well-documented development procedures. But it's simply too slow to keep up with the modern game. This one will be over by halftime, folks.
(2) Scrum vs. (3) Kanban
Scrum and Kanban are both forms of Agile development, with their own unique systems, sort of like modern variations on the old "Princeton offense" or four-corners delaying strategy. Scrum, derived from Rugby, is all about maintaining a "living backlog" of work to be done, and addressing it in short, high-intensity sprints, with prioritizations and focus facilitated by a scrum master.
Kanban, meanwhile, relies on a board, often covered in Post-Its, representing the status of new and existing tasks. The idea is to make it easy for everyone to see the progress on all the relevant projects.
Though different, Scrum and Kanban are equally matched, and pundits had this contest going down to the wire. In the end, though, Scrum prevails in overtime because "scrum master" is a cool title, and those whiteboards covered in stickies are unsightly and a pain to update.
(1) Extreme Programming (XP) vs. (4) Lean Development (LD)
Both of these contenders focus on change, but they do so in different ways. Lean software development is all about eliminating waste, amplifying learning, empowering teams, and delivering a viable—not necessarily perfect-product as fast as possible. That's a powerful combination that should have been enough to get LD into the next round, but Extreme Programming directly addresses the issues of chaos in terms of lowering the cost of dealing with rapidly changing customer requirements. Among other things, it highlights the importance of testing and fine-scale feedback to keep the product aligned with requirements.
Plus, it's, you know, extreme! That gets XP to the final four.
(2) Pair Programming vs. (3) Mob Programming
Most casual fans think of programming as a solitary pursuit, but insiders know that's no longer the case; today's most productive software teams often work in pairs or larger groups. As it turns out, modern analytics has revealed that in programming, just like in basketball, the most efficient results do not come out of isolation sets.
Given that premise, though, how do we choose between relatively well-established pair programming and the upstart mob programming, which some still see as the equivalent of bombing 3-pointers from half court? Well, if pairs are powerful, it stands to reason that mobs can be even more disruptive. After all, we once described mob programming as pair programming on steroids (oops, poor analogy in this context). Just as important, is there a cooler name out there than "mob programming?" In a significant upset, Mob programming earns Cinderella status as it moves on to the next round.
The Final Four:
(1) Agile vs. (2) Scrum
In this round, overall favorite Agile takes on Scrum, which is sort of like a college coach taking on a rival helmed by one of his former players. Scrum is based on Agile principles, and adds its own wrinkles designed to take it to the next level. But Agile is the top overall seed for a reason. Agile programming is versatile enough to work in a wide variety of settings, while Scrum is still evolving past its small-team roots. Once again, it's not close—Agile eases into the finals with authority.
(1) Extreme Programming (XP) vs. (3) Mob Programming
This matchup may be the most fun in the entire bracket, featuring two modern methodologies well suited for today's software development challenges. XP comes in as the clear favorite, having proved its worth over a couple of decades successfully focusing on teamwork and customer satisfaction. But mob programming achieves another upset with its radical, almost counterintuitive approach. Many pundits and practitioners didn't believe mob programming could make it this far, but by delivering a unique mix of speed and quality, the Cinderella story continues. For now.
(1) Agile vs. (3) Mob Programming
This is not the finals matchup everyone saw coming. While Agile's presence in the championship was widely expected, few other than mob programmers themselves thought the mob would make it out of the first round. Mob programming's innovation and team focus proved the naysayers wrong and that it belonged on the big stage—but faced with Agile's proven results and transformational power, mob programming's Cinderella run ends here.
In retrospect, Agile was a mortal lock to prevail in this tournament. As much a philosophical approach to programming as a mere methodology, Agile development revolutionized the way organizations large and small develop software, making progress faster and more flexible than ever before. Just as important, Agile was in many ways responsible for most of the other contenders, so it should be no surprise it's taking home the (imaginary) trophy.
Which methodology were you rooting for? Did your favorite end up on the bubble and didn't make our field? Take us to task on Twitter @NewRelic. Who knows, your choice might be a dark horse in next year's tournament!
This blog post originally appeared on New Relic.
Published at DZone with permission of Fredric Paul , DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.