Do you remember your early days of software development in a team setting? If you do, and you’re anything like me, you’ll have awkward memories of trying too hard. Eager to show that you were ready for a seat at the big kids’ table, you’d dive into new assignments with the sort of over-eager attitude that made the grizzled veterans around you roll their eyes knowingly and, perhaps, smile faintly indulgent smiles.
It was time for you to shine. Adding a new radio button option to an existing series of options was the perfect chance for you to show that you knew what the Composite Pattern was. And, why use any of the collection types in the standard library when you could roll your own and use a method header comment to prove, mathematically, that it sorted itself in O(n log n)? Any unimaginative clod could write code that did what the users needed it to do, but it took a visionary, like you or me from days past, to write code that mostly did what users needed it to do while showcasing lessons from all 4 years of your undergraduate programs. Each feature that you delivered was a chance to add to your own personal portfolio at the company.
Eventually, that stops. As more responsibility comes along, you simply don’t have time, but even beyond that, you see the value in simplicity. You realize the inherent problem with creating scaffolding for a 7-tier architecture for something that could be accomplished in 1 line of shell script — you’re wasting time and creating needless risk of getting things wrong. And then, sooner or later, you generalize those lessons to understand that code is a tool for communicating software’s behaviors to those that come later. Over-complicating things for vanity becomes developer narcissism and perhaps the ultimate sin for a clean coder. Elegant solutions are effective, clear, efficient, and concise as they minimize or eliminate non-essential complexity. Grandstanding is not to be tolerated.
As rigorously as we apply this lesson to software, we seem to forget about it and fall into similar traps in other areas of our professional lives. One obvious example is in how we express ourselves in academic and business settings, to name a couple of prominent ones. I’ve written in the past about instances of using jargon-intensive language (in this case, in a waterfall requirements documents) as a tool to confuse and trick others, but I don’t think that’s the normal approach when we’re in meetings, writing papers, or giving presentations. So what gives? Why do we adopt, often in quite ham-fisted fashion, “business casual” and “formal” dialects of the English language in certain settings? Why do we try to talk like what we perceive to be slightly superior versions of ourselves?
To clarify what I mean, consider this snarky tweet I made, juxtaposing “business-ese” with a fairly crass statement that would be more common in a bar (which led to an interesting conversation, by the way):
Proposed rule: if you say “utilize” to try to sound more business-like, you have to use it ALWAYS. “Excuse me, I need to utilize the john.”
— Erik Dietrich (@daedtech) April 6, 2015
This didn’t just randomly pop into my brain; my fiancee had shown me some prose written for a presentation or something that raised linguistic over-reach to an art form. I don’t recall the exact text, but someone had certainly done a find and replace with “use” and “utilize,” respectively. A bourgeois sentence like, “we need to utilize a synergistic paradigm to augment the popularity of our modern media communiques” might easily have replaced its proletarian cousin: “we should cross-post tweets to Facebook.” Sure, the second sentence might have been clear and easily understood, but come on, where’s the pizzazz?!
We humans seem to have a collective flair for the dramatic, perhaps reinforced by dressing up for special occasions and sprinkling various traditions and cargo cult activities throughout our months and years. But saying a special prayer for a holiday or wearing a certain kind of outfit to a wedding is fit for purpose — the primary goal of doing these things is to make the occasion special. To put it another way, we don’t put on suits and dresses at weddings because they help the ceremony move along more efficiently or because they lead to a reduced likelihood of divorce. The suits are ornamental because the occasion calls for ornamentation.
But when we’re giving a presentation on what our team’s strategy should be for Q4, it’s not an occasion for ornamentation. We don’t show up in tuxedos and gowns, we don’t ask the meeting attendees to join us in any prayers or toasts, and we probably don’t get drunk. So why do we ham it up for the moment with some business-ese? Our purpose should, for the benefit of the organization, be crystal clarity, and yet, we feel a pull to do quick, mental find-and-replaces in the moment, dressing up casual words like “use” with their dressier cousins like “utilize.” We’re taking situations that do not call for ornamentation and offering it up anyway, because we’re taking these situations and turning them into our own personal showcases… much like we did with over-complicated, flowery code as junior developers out to prove ourselves. Let’s not do that.
Do you know who Ernest Hemingway was? Oh, nobody, just The Most Interesting Man in the World. He was also a world renowned author who was known for a style that was starkly beautiful and haunting with its unadorned, approachable prose. Contemporary William Faulkner once quipped about Hemingway, “he has never been known to use a word that might send a reader to the dictionary.” Hemmingway’s reply was snarky and brilliant, but also strikingly parallel to what a clean coder might say to a newbie eager to prove himself:
Poor Faulkner. Does he really think big emotions come from big words? He thinks I don’t know the ten-dollar words. I know them all right. But there are older and simpler and better words, and those are the ones I use.
Nobody is ever going to look back on a presentation you gave and say, “that was very persuasive and clear but she never once said ‘move the needle’ or ‘think outside the box’ at any point!” But if you stand up there and dump buzzwords like a slot machine that just hit on 3 Gantt Charts, people may tune out or miss your point. If Hemingway were alive today, employed as a tech professional, and doing Dos Equis commercials, he might well say, “I don’t always make corporate power points, but when I do, I talk like myself.” You could do worse than following suit and offering no apologies for your clarity, just like the grizzled veteran that ships clean code quickly.