ceci n’est pas “engineering” — July 15, 2021

ceci n’est pas “engineering”

what makes someone a good engineer? how do you “level up” your engineering?

hot take. consider: communication.

the problems of software engineering are fundamentally problems of communication — how do you make different services talk to each other? how do you send information, surface it, transform it, and store it in ways that protect its integrity and function reliably? how do you write code that is self-explanatory? how do you build tools that are flexible, extendible, and can be understood by other engineers? these are all technical communication problems, and yet! there’s a terrible “toastmasters”-esque connotation that clings to the idea of communication when surfaced in engineering spaces.

one of my favorite quotes is from the playwright george bernard shaw: “the single biggest problem in communication is the illusion that it has taken place.”

hm. have you ever misunderstood what a reviewer was trying to communicate in a comment on your PR, or vice versa? have you ever sat in a design review and listened as multiple engineers seemed to be participating in entirely different conversations on the same topic at the same time?

effective communication can ameliorate the pains of a struggling project, clarify legacy code, and increase engineering trust (internally and with other teams). lack of effective communication, conversely, can tank the best teams — if a project’s chief architect cannot achieve buy-in or effectively delegate work, it doesn’t much matter how good their design is. as much as most of us got into engineering to not be in meetings and not be talking all day, it turns out that engineering is still a team sport, and an incredibly technically demanding one at that.

finally, circling back to the first question: what makes someone a good engineer?

well, good feedback helps. “situation, behavior, impact” is a useful organizational framework for delivering useful, actionable, kind feedback. if you struggle with effective communication as an engineering manager, your engineers will struggle too.

effective technical communication is not a “soft skill,” and it’s not “below us” as engineers. in fact, since we are responsible for building the structures whereby everyone communicates, it behooves us to excel in communication in order to excel as engineers.