Tuesday, April 7, 2009

More Movies Quotes Applied to Software Development

I previously blogged on Classic Movies Quotes Applied to Software Development. That may have been my favorite blog post to write because it combined two things I really enjoy in combining software development and movies. That blog post was also unique in that it is the only one I am aware of to be referenced in the online CNN Entertainment section. More specifically, the JavaWorld-syndicated version of my blog post was referenced in the article You' talkin' to me? Film quotes stir passion.

To limit the previous posting to ten movie quotes, I had to exclude several favorite movies and quotes. In this posting, I outline ten additional movies quotes that can be applied to software development. As before, the only criteria is that the quotes come from movies I have seen and enjoy. The movies do not have to be technically themed and, in fact, my preference is for more general quotes that can be applied to software development.

1. I've just sucked one year of your life away.

The quote from 1987's The Princess Bride perfectly describes how one might feel after a year on a particular software development gig or project that just seems to drain the life away. On the wrong project, it can feel like this even if the actual time spent is less than one year.

I included a quote from The Princess Bride in my earlier post on movie quotes applied to software development. The popularity of this highly quotable movie is evidenced by its current #173 ranking in the IMDb Top 250 (one of my very favorite movies, 1994's The Shawshank Redemption, is #1 on that list). Anecdotally, it seems that this movie may even more popular than that among software developers.

2. The code is more what you'd call 'guidelines' than actual rules.

These words by Captain Hector Barbossa to Elizabeth Swann in the surprisingly entertaining 2003 movie Pirates of the Caribbean: The Curse of the Black Pearl refer to the pirate's code, but sometimes developers might be attempted to see requirements as guidelines rather than requirements. This is generally not a good idea, however, assuming that requirements have been accurately collected from customer input. Meeting the requirements generally means making the client happy. Although exceeding client expectations is often a good practice, implementing things they did not ask for at the expense of things they did ask for is usually anything but a good idea.

3. Takes a big man to admit when he's wrong. I am not a big man.

This quote from Chevy Chase's Fletch character (calling himself Elmer Fudd Gantry in the sequel Fletch Lives) reflects a feeling (and often action) that is familiar to anyone who has made a mistake in software development. It often does take a big person to admit when he or she is wrong. In fact, many of us often aren't big enough to do it. This is what makes blog postings like How and Why I Missed the Boat as a Developer and The * Stupidest Things I Have Done in My Programming Job both rare and refreshing.

4. It's not the years, honey, it's the mileage.

This response from Indiana Jones to Marion Ravenwood's statement "You're not the man I knew ten years ago" in 1981's Raiders of the Lost Ark is a reminder that it is often the type of experience that we have in software development that is more important than the years of experience. For example, a software developer who works with different problems and solutions and with different approaches for seven years is very likely to have better experience than the developer who works on the same problem with the same language repeatedly for the same seven years. It is what is done during that time, rather than the time served itself, that matters in terms of learning from experience.

Raiders of the Lost Ark is currently ranked #18 in IMDb's Top 250. I agree with the review comment of Dan Grant on this movie: "There will never be another film like Raiders."

5. I don't know, I'm making this up as I go.

Raiders of the Lost Ark is so good (see last quote) that I'm going to break my own rule (don't tell the Transporter) and use two quotes from that movie in this same blog posting. When Sallah questions how Indiana Jones is going to get the Ark of the Covenant off of the truck headed for Cairo, Dr. Jones makes this funny (but seemingly correct) statement. In the fourth movie of the Indiana Jones franchise (2008's Indiana Jones and the Kingdom of the Crystal Skull), Marion Ravenwood reiterates this quality in Dr. Jones to their son Mutt when Mutt asks "What's he [Indiana Jones] gonna do now? " and Marion responds, "I don't think he plans that far ahead."

In software development, we like to have a good idea of what we're designing and developing. However, I think most of us must admit that there are times when we don't realize that we didn't think of something or had not considered something until we run into the issue. This is one of the reasons it can be advantageous to begin implementing ideas early. While this approach always seems to work for Indiana Jones, we have to be more careful to mix it with appropriate planning. The agile principle agile designs are emergent seems to fit this quote to some degree.

6. If you're good at something never do it for free.

This statement from Heath Ledger's The Joker in 2008's The Dark Knight can often apply to the best software developers. This is one of the reasons that I do not begrudge open source contributors from making money through selling of documentation, selling of services, selling of consulting, selling of books, or other methods of earning some monetary compensation for their contributions.

Incidentally, The Dark Knight is another example of how "winning" can be measured in multiple ways. Although The Dark Knight was not even nominated for the Academy Award (Oscar) Best Picture in 2008 (and thus could not win the prize), it won in a different (and to many people much more important) way, dominating the box office for the year. It went further than that by earning the #6 ranking in IMDb's Top 250 (all time) and grossing the second most box office receipts in the United States (fourth worldwide). Although we all like to make quality software and feel like we're making a difference, it is also nice to be compensated for our effort, creativity, and time.

7. Rule #1. Never change the deal.

In 2002's The Transporter, Frank Martin is successful because he follows strict rules religiously. The whole plot of the movie essentially develops when Frank breaks his own rule.

There are many times that we wish Frank's first rule ("never change the deal") could be enforced. However, it seems like the opposite is almost always true: the rules or requirements change frequently. One of the explanations for the rise in popularity of the agile method of development is its focus on ideas such as responding to change over following a plan and customer collaboration over contract negotiation. These are realizations that deals do get changed and requirements do change rather we like that or not. Still, it sure sounds nice if we could follow Rule #1 more strictly sometimes.

8. Remember you told me to tell you when you were acting rudely and insensitively? Remember that? You're doing it right now.

It is perhaps not coincidence that the character this quotation applies to (Malvin) in 1983's War Games is a computer programmer. What is surprising is that Malvin even knew he had a problem acting "rudely and insensitively" and cared enough to ask Jim to tell him when he was acting like that. My experience, fortunately, has been that most software developers are easy to work with, but there is a small number of developers that act "rudely and insensitively." They either aren't aware of how rude they can be or, if they are aware, don't really care.

9. I'm trying to free your mind, Neo. But I can only show you the door. You're the one that has to walk through it.

It is important for more experienced developers to help less experienced developers through roles as mentors. I have written before about software craftsmanship and about the artisan teaching the apprentice. These are vitally important, but in the end it is the effort of the apprentice that matters most. No matter how much the master craftsman tries to help, the apprentice must make the effort to learn lessons and gain knowledge for the relationship to work.

This quotation comes from the 1999 movie The Matrix, which is wildly popular among software developers, but is also popular in general as evidenced by its 29th ranking in the IMDb Top 250.

10. You've got to ask yourself one question: Do I feel lucky? Well, do ya, punk?

This is a classic quote in a classic moment said by a classic actor (Clint Eastwood) in a movie classic (1971's Dirty Harry). There are many times in software development when we may well ask ourselves this question, "Do we feel lucky?"

There are many times when we think of something that we think will work well, but we may not always be certain of its outcome. The answer to this question determines if we are willing to pursue the action with uncertain consequences or stick to a safer and more predictable route with less potential. Even the Google search engine has a button "I'm Feeling Lucky" that will automatically forward the person requesting a search to the first web page on Google's returned list of matching web sites.

The observation that potentially greater return comes from taking greater risks has been discussed in financial context, in social contexts, and even emotional contexts. Because greater risk can mean greater failure instead of greater success, it can be a difficult decision when trying to answer the question, "Do I feel lucky?"


As evidenced by the CNN article referencing my first blog posting on movie quotes applied to software development, quoting of movie quotes is a widely popular cultural phenomenon. In software development, we use design patterns, acronyms, and fancy words to communicate wider ideas and movie quotes are often used the same way.

I also want to thank acquaintances (and especially Bill Jackson) for providing input on this second set of movie quotes that can be applied to software development.


GKB said...

Dustin, I didn't know you were mentioned in a CNN article. Congrats! That seems like a big deal to me.

Mazhar Hussain Shah said...

Thanks for sharing these nice links,
I think it is a very good source of entertainment.
We can never ignore your nice performance in blogging. Web Design Quote.