I’m Not Leaving My Wingman

Top Gun (spurious beach volleyball scene notwithstanding) is an excellent film, and conforms admirably to the 80’s action genre template:

  • Troubled but gifted protagonist
  • Ill-advised love interest
  • Arch rival
  • Wise old mentor
  • Training montage
  • Risky special move / prototype weapon
  • Learning of important personal lesson
  • Moment of crisis overcome by belief in one of either: a) self, b) higher purpose, c) the western free world
  • Rousing rock anthem to close
Image for post
istockphoto/tstajduhar

Of these, it’s the learning of an important personal lesson that concerns us here, which in the case of Top Gun was Maverick’s “I’m not leaving my wingman” epiphany.

Having learned in a previous scene the dangers of breaking formation in order to pursue personal glory, Maverick sticks to his training during the final dog fight with multiple faceless Soviet pilots, and stays with his designated partner aircraft despite pleas from another pilot to help him with the bogeys on his tail.

“I’m not leaving my wingman,” insists Maverick, and as a result he’s able to provide cover for the other plane before going on to save the day to the tune of an awesome guitar solo. I’m not ashamed to admit the scene still gives me goose bumps, although given earlier events in the film, the term “goose bumps” is unfortunate.

As a result of watching this film during my formative years, I associate the phrase “I’m not leaving my wingman” with any occasion where someone sticks to their guns while under pressure as the result of lessons learnt from bitter past experience. Which brings me to software development.

In software development, we generally know what we ought to do, but are often under pressure — either from others or ourselves — to do otherwise. We’ve all checked in the quick fix rather than do the refactoring, telling ourselves we’ll correct things later, only to be bitten by it in the future. It’s hard in the face of delivery pressure to do the right thing, so I propose adopting “I’m not leaving my wingman” as a mantra in times of doubt.

“We can merge the branch and do the regression testing in the next release,” a teammate might say. “I’m not leaving my wingman,” we should respond. No time to set up a CI build? I’m not leaving my wingman. Surely no need for source control so early in the project? I’m not leaving my wingman. Do you really need to pair-program on that feature? I’m literally not leaving my wingman.

The benefits of this are twofold: for one, it helps keep us honest and true to our discipline. Secondly, it makes us appear slightly unhinged, discouraging further suggestions, or approaches of any kind, by anyone. (If this fails, try carrying round a set of dog tags which, when questioned, you can squeeze while closing you eyes and whispering, “Talk to me, Goose…”)

That was “Thought for the Day”, now here’s Cheap Trick with “Mighty Wings”…