Saturday, February 14, 2009
Classic Movie Quotes Applied to Software Development
UPDATE (9 March 2009): This posting has been referenced and quoted in the CNN Entertainment article You Talkin' to Me? Film Quotes Stir Passion.
In this blog posting, I look at some classic movie quotes that can apply to software development. In several cases, I have actually heard them used in software development situations. In general, these movie quotes are from movies I like (or at least have seen) and can be applied to software development. It is not all that surprising that the movie quotes that we all seem to be able to relate to also relate specifically to software development.
1. "What we've got here is failure to communicate."
This quote from 1967's Cool Hand Luke (#11 in AFI's Top 100 Quotes) summarizes one of the most common problems facing software developers. Problems with communication can plague all stages of software development from learning customer requirements to development to testing to product delivery. In fact, a large percentage of the most significant problems I have seen in large software development projects can be traced back in some degree to a break-down in communications. These include things like redundant work being done, interfaces and contracts not being met, misunderstandings about requirements and expected functionality, etc.
2. "You're gonna need a bigger boat."
This quote (#35 in the AFI Top 100 Quotes) from the 1975 movie Jaws was the perfect quote for representing this movie. Jaws is a fantastic suspense movie with an understated, Hitchcock-like building of suspense throughout the movie mingled with briefly intense scenes and highlighted with John Williams' famous and famous two-note music. This quote seems understated at first glance, but really does sum up the plight of the main characters and their dangerous situation with this greatest of Great Whites. It also serves as a great transition from the extraordinary fear built up through imagination of what the shark must look like to new scenes where the shark is visible.
We often run into our own situations like this in software development. We often find ourselves needing more memory, more disk space, more bandwidth, or more of other types of resources to do our jobs and to maintain customers' experiences. There are numerous well-known and real-life examples of this including the inability to purchase Colorado Rockies World Series tickets and the initial server overload for JavaFX 1.0 downloads.
3. "Show me the money!"
This quote from the 1996 movie Jerry Maguire (#25 in AFI's Top 100 Quotes) is one most of us can easily relate to. With current economic times like they are, this may mean more than ever to us. The fact that money is at the root of so much that is motivating is also a reason that it is likely that the "free speech" part of open source will remain as important or more important than the "free beer" part of open source in the future. While there are many great open source products that are used without charge, many significant open source projects are run by organizations that (not undeservedly) expect to earn some revenues from their association with these products and related services. Examples include SpringSource, Sun, and many others.
This quote almost makes up for the other well-known quote in that movie: "You had me at 'hello'" (#52 in AFI Top 100 Quotes).
4. "A person is smart. People are dumb, panicky dangerous animals and you know it."
The 1997 movie Men in Black is full of great quotes including this one. Edwards (soon to be Jay) is asking Kay why the secret Men in Black don't tell the ordinary people of Earth about the aliens living among them. This quote is Kay's explanation and it often applies in software development as well.
It is easy in our rush to stay current and relevant to make poor choices that we would not do individually when given the opportunity to think rationally about the situation. The rush to apply EJB 1.x/2.x where it wasn't needed is one example of this.
Terms such as mob mentality, herd behavior, and peer pressure largely have negative connotations because they often imply allowing poor judgment based on group thinking to override potentially clearer and superior individual judgment. I have written in a previous blog posting about The Lemming Effect and The Emperor's New Clothes Effect in software development. Both of these dysfunctional software development motivations are related to negative group think.
5. "Houston, we have a problem."
This is a momentous quote (#50 in AFI's Top 100 Quotes) in a terrific movie (1995's Apollo 13) based on real events (the actual Jim Lovell quote was "Houston, We've had a problem."). It is now used all the time to indicate a (usually) less serious problem than when it was originally used. For example, see this completely unrelated example. Because software and hardware surprises us all the time and then we throw our own human-caused errors into the mix, we seem to get many opportunities to apply this quote. The calm coolness portrayed by Tom Hanks in the movie and the power of many dedicated engineers in Houston working on the problem are a reminder of how best to solve problems and are an inspiration. Lovell has called that Apollo 13 mission "a successful failure."
6. "I had to keep digging ... without a shovel."
This quote comes from the 1985 movie Fletch. It sometimes feels like we in the software development community find ourselves in situations in which we are tying to identify and resolve a nasty bug without the appropriate tools. This can be especially likely in cases such as runtime logic errors, in multi-threaded environments, and when using languages that are too new (or too old) to have good debug tool support.
7. "My Precious"
With the exception of a few things that really bothered me (most notably the mistreatment of Faramir's character as having seemingly less integrity than in the books), I generally enjoyed the 2001-2003 adaptation of J.R.R. Tolkein's The Lord of the Rings trilogy. I thought that the character Gollum was particularly well done. The movie version of Gollum wanted The One Ring as badly as the book version did in my imagination.
In software development, it is good to take ownership of things, have pride in what we do, and instill craftsmanship into our work. However, we can take it too far to where we refuse to admit anything is wrong with what we've done or insist ours is the only way to go. If I work long and hard on piece of code and later find out that it is either being replaced by an alternative or not being used altogether, it is easy to start acting greedily and with distrust like Gollum. It is not easy being told your brainchild is ugly, but sometimes it just might be. This quote earned #85 in AFI's Top 100 Quotes.
8. "You fell victim to one of the classic blunders."
The complete quote (not listed in the header due to its length) from the 1987 movie The Princess Bride is: "You fell victim to one of the classic blunders. The most famous is: 'Never get involved in a land war in Asia.' But, only slightly less well known is this: 'Never go in against a Sicilian, when death is on the line!'"
It is difficult to think of a movie with more quote-worthy lines than this one. I chose this particular quote from this movie because we are all aware of some of the classic software development blunders such as copying and pasting identical code in multiple places, hard-coding values, swallowing exceptions rather than handling them, etc., but there continues to be enough people committing these blunders to lead to numerous blog postings, articles, and discussions on the blunders. Steve McConnell has collected three dozen higher-level classic blunders in his Classic Mistakes Enumerated.
9. "I think all you need is a small taste of success, and you will find it suits you."
I have blogged before about the importance of confidence in software development. In this quote from the 1985 movie Better Off Dead, Monique is explaining to the rather pathetic Lane the importance of having a little success to gain confidence and a real desire to work to achieve more of the same success. This seems like good advice for all of us, but I think it is especially useful for new software developers. It can be overwhelming to start working with much more experienced software developers, but a small taste of success early on can be very helpful and lead to a long career full of successes. This is also a reminder to more experienced and senior developers that we can help those who are new to development to get a taste of success.
This is another quote-filled movie with "I want my two dollars" not the least among them.
10. "Frankly, my dear, I don't give a damn."
This quote, which earned the top spot in AFI's Top 100 Quotes occurs at a point in the 1939 epic Gone with the Wind when it is very easy to understand this sentiment coming from the Rhett Butler character. It is equally easy to sometimes find ourselves feeling the same way. In fact, it is sometimes good to give up worrying about the littlest of things and let some things go. In particular, I have seen situations in which someone with no formal power but high degrees of expert power continually fight against those with formal power (such as managers and clients). These are almost always losing causes.
While valid discussions and even technical disagreements are useful in coming to the best solutions, there are times when the fight is not worth the cost. This is especially true in situations where multiple recommendations are sufficient and it is only a matter of which one is slightly preferable to the others. I have witnessed numerous situations in which the debate and delay in beginning implementation of a solution has taken ten times longer than the difference of development time between two competing options.
I have observed that effective software developers do care deeply about their work and the product they create. That being said, the most effective of these effective software developers also know when to pick their battles and when to just let it go because it's not worth it.
Another Gone with the Wind quote that fits well is Scarlett's words, "After all, tomorrow is another day!" (#31 on AFI Top 100 Quotes). This is good advice because bad things often aren't as bad the next day as they are the day they happen.
In this blog posting, I have looked at the quotes from ten different movies that apply to software development even though none of the movies listed were specifically focused on computers or software development. In fact, while I enjoy many of the computer-oriented movies such as War Games (1983), it is also true that many of these are completely unrealistic and the computer is often the bad guy. If nothing else, I hope to use this blog posting to prove to others that watching movies is not a waste of time. I'm going with the story that watching movies actually makes me a better software developer. It's time now to go watch Star Wars. May the force be with me (#8).