Agile Development in the real world

    Joseph Russo  January 21 2008 11:08:11 AM
    I want to take this opportunity of having your eyes to talk about agile development. Some of you may know intimately, the details of agile development, or have heard of it, or have no idea what in the world it is. So, those of you in the know, bear with me for a minute...

    Agile development is simply stated, a software development practice to go from idea, to design, to working code, to user, to user feedback and iteration on the design based on that use and feedback, in as small a cycle as possible. And to do it with a very small set of focused people, to minimize communication overhead, and to keep focus on only the absolutely most important features. Oh, if you don’t like my definition, that’s cool, it’s mostly a free world, at least if you have a credit card, and you can find many other variations on this, feel free to choose a definition to your liking.

    Now, I’ve recently read a couple of books, that surprisingly, have absolutely nothing to do with software development, and aren’t in theory about agile development...and yet, when I read them, I was struck how the pattern of agile development was the basic thread throughout. So I thought I’d share them with you. And hopefully I’ll do them justice and communicate the ideas I found there.

    First, I read the book, Rebel without a Crew, by Robert Rodriguez. Robert was, at the time of writing the book, a film student. The book chronicles the making of his first feature length film, which he financed himself, somewhere in the ballpark of $5,000. Which is probably the coffee budget for one day of shooting a Hollywood film. Anyway, he used real film, made it in Mexico, spoken in Spanish, and available for English subtitles...in fact, you can find this gem in many places, the film is called, “El Mariachi”. And, before we dive into why I am telling you about this, if you’ve heard of “Desperado”, starring Antonio Banderas...that’s the “sequel” to the film, and, oh yeah, Robert Rodriguez is the director. So his little film was a success.

    But, to the point. He had a few actors, himself and a friend, no money and had to make a real film. Let’s consider some of the interesting dilemma’s he faced. He didn’t have money for a fancy, schmancy sound system, so, he used a simple cassette recorder, (like a crappy $40.00 deal) and used that for recording sound. One of the problems he ran into with the sound was it would very easily get out of synch with the film, so that the actors lips and the actual sound, would not track exactly. In Hollywood, they shoot the scenes, and re-shoot them and use expensive high tech equipment to make all this work...and use a team of sound editors to fix it all up too. Just this part of a film can cost millions. Robert had no money, so, he was forced to come up with a creative solution. He would shoot some extra film, of the surrounding scene, or the other actors, not the one talking. Then, later, when he was editing together the film, and could not get the sound to synch, he would edit in these cuts, so you could still hear the actor speaking, but, you wouldn’t notice, since you can see that guy.

    Also, this film was an action type film, but, again, he didn’t have stunt men, explosions, etc...so, in order to give the film the feel of action he did two simple tricks. He would shoot some scenes with a higher rate of film speed, then, he could play it back in slow motion. This trick can make a simple walk look menacing, and create a sense of action. Also, he would shoot lots of extra stuff, mostly to deal with the sound issue above, but, it allowed him to use lots of cuts, cutting back and forth between different shots, during the course of a scene. This also creates the illusion of action, even when the stuff in the scene isn’t moving. And, when he made the film, he had the general script, and action planned, but, when he was actually shooting, he would have to grab props or set up a shot impromptu, quickly and often had to make due with what was available. And in this, he had incredible flexibility, which led to many interesting points in the film...if you see it, you’ll notice the occasional appearance of a large turtle here and there, he happened to wander into a shot, and rather than trash the shot, Robert kept him around as a kind of “cameo” role actor in the film...

    There are loads more examples of this kind of creative problem solving in the book, but, these ones I’ve outlined here demonstrate the point. With no money, no people, no resources, you have to rely on creative problem solving...and this is a plus. It takes you to a place where, had you just thrown money at the problem, you would never have found. This, I believe is a basic tenet of agile development...Don’t throw money at a problem, take money and resources away and use creative thinking.

    Now, I recently read another book, which struck a similar chord with me. It’s called Moneyball, and it’s by Michael Lewis. It is an account of the inner workings of the Oakland A’s baseball team. Now, this is a team that has had a consistent track record of being at the top of their division, making it into the post season, while having one of the smallest budgets in baseball. First, before we dive in, let me give you a little background. In Major League Baseball, each team has their own budget, completely made up of revenue they generate from ticket sales, local media coverage (tv and radio) and a few bucks shared with the league for national television coverage. As a result, there are teams in large markets, like the New York Yankees that have a payroll in the $200 million category...and they are profitable at that. Meanwhile, there are other teams, in the same league, competing, who’s payroll is a mere crumb from that large pie, like, $20-40 million dollars....teams like, the Oakland A’s. So how to explain the A’s success? That’s the point of the book. In baseball, every team and a group of men who live out in the world, watching high school, minor league, etc baseball games, looking for talent, talent they can sign to the ball clubs. These guys are the scouts and every team in baseball has them. And they are made up of old players...players who have lived in the world of baseball for their entire life. And they are immersed in it’s lore. So, these guys know that things like home runs, runs batted in (RBI’s) stolen bases, fielding percentage, etc are the way to measure guys.

    The A’s, couldn’t afford to use this approach...for two reasons. Everyone in baseball uses them, and since that is the case, the players rated most highly with this kind of measure would naturally go to the teams with the most money. And since the A’s have one tenth the amount of money to spend (the other reason), they would never be able to get these players. So, they decided to do something a little different. They hired some management graduates from Harvard Business School, guys who knew nothing about baseball. And asked them to look at baseball statistics to see if they could come up with a way to measure guys who would be successful in making a winning team and would not be found in the traditional way. They knew this would produce players they could afford. So the management guys proceeded to analyze what it is that makes a team win, and then they rolled that back to find how each player contributes to this winning. What they found was a few surprising items (which I am doing no justice to at all here, read the book for the real story);

    1. Defense, other than pitching, didn’t matter at all, since the difference between the best defensive baseball player and the worst was not that big, especially when compared to...

    2. On base percentage...this is a measure of how many times a player ends up on base when he goes up to bat. Not how many hits he gets or triples or home runs or any of that, but just how many times he gets on base...

    3. The single most important asset to protect in the course of a game, is outs. A team has 27 outs/game and they need to do whatever they can to reduce how quickly they get them (which is perfect for the guys with high on base percentage, they make less outs).

    And that’s basically it...so these guys used this model and were able to find players who did well with on base percentage, and they also found the ones that were rated low by the other means, and then they signed them. It worked, they were able to build a successful team (and still do) with these simple methods of finding the undiscovered gold. They did this by;

    1. Avoiding the known way things work

    2. Finding a model that predicts success - using real data, from real situations and then measured there model to see if it worked, fixing it when it did not.

    3. And looking for those players who fit their model well, while not surfacing in the “known” ways, thereby making them much lower cost.

    Now, since they could not throw money at their problem, they had to resort to creative thinking to find a method that worked...sound familiar? In this case, they added another key component of agile development. Measurement of real data, feeding that back in to iterate on the model (or design for the case of software) to make the model (design) better...and they had to trust the information, throw out ideas that didn’t work, no matter how well known they may be, and also entertain new ideas, no matter how wacky, so long as it made the model (design) better.

    I hope you enjoyed me on my soapbox today, and I highly recommend these two books, they are well written, entertaining and have some very interesting lessons on the idea of agile development.  


    Hosted by


    psclistens.com