A few weekends ago I was invited to give a talk to the Boston University Global Apps Initiative, a student run group that works to publish apps that benefit nonprofits. These BU students, numbering in the hundreds over the years, learn to work in teams and build collaboratively. It’s an awesome organization and a great mission, and they’ve published six apps since starting in 2012.
The GAI folks asked me to do a talk for the LEAP (Leadership and Education Acceleration Program) Conference on Agile Development. “Sure”, I said. And then thought to myself “how do you make agile software development interesting for college students”? Software process is not normally the most electric of topics, so for inspiration I turned to the world’s greatest (and most frequently maligned) football team, the New England Patriots, and the greatest coach on Earth (pause for the trumpet fanfare), mighty Bill Belichick. What resulted was a talk titled “How to Run Agile like the New England Patriots”. (OK – full disclosure – when I gave the talk it was just called “Agile Software Development,” but I’m all about revisionist history.)
I’ve had a small brush with the Pats before. Way back in 2007, when I was at Quattro Wireless, I was part of the team that built the mobile websites for the NFL and the Patriots. As part of that work, we traveled to Patriots Place to meet with their digital team and witnessed some of the prep the Patriots organization does in the midst of a football season. As we walked through Patriots Place, an open door revealed a daily planning meeting with representatives of all aspects of the organization: security, vending, parking, media, etc., each running through a fast update on their area of focus. Talk about a cross functional team running an efficient standup!
The Goal is to Win
Perhaps the best way to start the analogy is to compare the goals of the two organizations: the New England Patriots (or whatever your worse local team may be – just so you don’t feel excluded) and your Agile Software Team. The Pats’ goals are simple: put their team in the best position to win, week after week, in a variety of circumstances and against a variety of opponents for the entirety of a season. Sure, there are other goals along the way, like representing the team well to the media, keeping players healthy, game planning successfully – but the primary goal is to win. Every week. For 19 weeks.
Now look at the Agile Software Team. Reading the Agile Manifesto and the underlying Agile Principles, the goals are equally simple: deliver working software that meets customer needs, week after week, in a variety of circumstances for the entirety of a software project. This is the Agile Software Team’s notion of winning.
Agile is a Team Sport
Being agile is all about teamwork. It’s about cross functional teams who must work together daily to be successful. The highest priority is to satisfy the customer through continuous delivery of software that meets their needs. And when changes in requirements come, they’re welcomed, just like how the Patriots welcome a changing opponent each and every week. It’s about communication and collaboration and trust that your teammates are going to fulfill their commitments. “Do your job,” Belichick commands, and if everyone on the software team does their job, the team becomes incredibly productive, powerful, and can maintain that productive pace consistently over the course of a software season, and beyond. Agile is a team sport, built around motivated individuals.
Agile is Preparation
It’s instructive to look at how the Patriots prepare week after week, for games that usually take place on Sundays, but also Thursdays and Mondays. Likewise, the Agile Software Team must be as flexible and deliver when the customer needs it, not when it’s convenient. Your bye week is Christmas. Get back to work.
So how do the Pats prepare? You might think a typical week starts the moment the previous game ends, but it actually starts well before that as the coaches look at opponents in the coming weeks. Likewise, you need a great product manager to be looking well beyond the current week’s build to help prepare for what’s ahead.
Then the week begins. Sunday is wrapup and media. Monday is weights, team meetings, unit meetings (e.g., special teams or linebackers), followed by a practice and walk-through. There’s a lot of film work, reviewing issues from the last game, pointing out problems to fix, all while healing and recovering from the previous game. To me, this seems like our team’s Sprint Retrospective to a T. We review what worked, what went wrong, and plan ahead for the week.
Tuesday is typically a player off-day while the coaches get the game plan in place. You might call this Sprint Planning. That game plan is delivered on Wednesday, when the players review more film, walk through the formations and play, and really being to practice. The sprint is in full swing! And the heavy lifting happens Thursday and Friday: weights, therapy, film, practice, and the ever-present media sessions. Here’s a thought: those media sessions are analogous to marketing, which every Agile team should be fully aware of and eager to support, whether for the external market or for your direct customer.
Saturday may be a travel day, or if it’s a home game, a day with a light schedule and team dinners. We’re prepping for the build! And then it’s game day on Sunday!
Be Agile Like the Pats
The Agile Software Team organizes their week’s work in a really similar way. Monday is release day (just in case there’s a little more left to do over the weekend), and then the routine starts again. They follow up a release with a sprint retrospective, ideally on the same day but sometimes on Tuesday, which also has a sprint planning session. The sprint kicks off and team does their thing: grooming sessions continually, writing lots of code, code reviews on checkins, daily standups for status, weekly status meetings with the clients, and of course – don’t forget the media sessions (aka, marketing). By Friday they have a great feeling for what’s going to make it into the release. Not everything always does, but the Agile Software Team strives to communicate frequently with the clients to adjust based on their feedback.
Belichick’s own description of the process is neatly captured here, and it’s a fascinating read. His job starts with game day and works backward so that his team is always properly prepared to play, be it a Thursday night game or on Sunday. Belichick stresses the need for routine and the need to know where in the weekly preparation schedule you are. It’s a great analogy for app developers: if you live and breath Agile, you’ll know where you are relative to release day, and your team should be geared up to run a very routine routine. Monday is release day. Work backwards and make it happen.
So there you have – Agile inspiration from your New England Patriots. Find us @RocketFarm
By the way I’m not by far the first person to use the sports teams metaphor for startups and technology. Go read @eshares amazing post on how to run a company like a sports team – it makes that point brilliantly. But in my talk I focused specifically on the agile software development process. And the Patriots. Go Pats!