August 1, 2021

Lesson 5: Working With Engineers

Lesson 5: Working With Engineers

One day my daughter was watching one of her annoying kid shows. This time it was Octonauts. This ridiculous cartoon was about a greedy whale louse that lived inside a benevolent sea sponge. This particular episode poorly attempted to teach kids about the principle of commensalism…

…the other C word kids learn right after “cookie”.

Well, if you had more than a preschooler’s education, you’d know that commensalism is a relationship where one organism (in this case the selfish louse) benefits greatly while offering nothing in return. Upon watching this episode I exclaimed out loud, “I’m a f***ing whale louse.”

I then had to tell my daughter to do as I say, not as I do…

…which in this case meant not doing as I say.

…parenting ain’t easy either.

If we stretch this commensalism analogy like taffy and apply it to our work lives, then engineers are sea sponges in the open ocean of software development, lending their gift of social anxiety for the common benefit of everyone else.

You might ask yourself, why would anyone sign up for that? One thing is for sure, I’ve met a lot of engineers and I can tell you it’s not out of the goodness of their sea sponge heart.

“I get paid a lot to do very little,” most engineers will readily admit.

The reality is that like most of us, engineers didn’t know what they were getting into when they chose their career path. Most engineers got into the profession because they had visions of writing cool code that does cool things.

“I’m going to build something cool,” they told themselves while looking in the mirror at a very uncool reflection.

They’ve seen the rise of social empires, smartphones, space exploration and swipe right booty calls. And just like booty, this is their opportunity to reach out and grab it, right?…

…wrong.

Little did they know when they started their first job that most of the tech world is older than expected, riddled with unmanageable logic, full of nasty defects, and burdened with debt…

…just like their last booty call…

…the booty jokes may never end.

They are more likely to end up working on the defects of a value-added tax calculation than sending a man to Mars…

…although at least a miscalculation in a tax code won’t send a man hurling into the unknown of outer-space…

…probably should have QAd that stored procedure called “marsLandingEquation”.

Let’s face it. If the company has been around long enough to have customers, make money, and afford a fridge full of Redbulls, then its technology is already obsolete. And In order to get to a point of profitability, the company had to make hundreds of compromises in code quality just to meet deadlines and bring in cash.

“Just get this out the door quickly and then we’ll come back and fix it later,” is a phrase repeated millions of times every day across the software industry…

…No one ever comes back to it…

…ever…

…never.

Typically the engineer who wrote the codebase no longer works there and no one understands what the hell the code is supposed to do. Everyone admits it’s a miracle the program works at all. Modern code management software now tracks who changes files, so every currently employed engineer is afraid to touch the code in fear of having their name associated to such a mess. As an engineer, whoever last touched a file is the now doomed to own that code forever as the subject matter expert.

Much of an engineer’s career is spent trying to avoid becoming that person.

Because no one cares enough to actually figure it out and document it, sprint after sprint engineers just pile new code on top of bad while constantly complaining about needing to throw everything away and start over from scratch. This creates a perpetual environment of what is called spaghetti code…

…with big ol’ buggy meatballs.

Yep. 10% of an engineers job is coding. The other 90% is hating their life.

…it ain’t easy.

So just like that, every idealistic dream and good coding principle gets abandoned within the first few hours of an engineers’ career. That once hopeful nube is now jaded and cynical, beat down by the heavy hammer of software development. The average developer just comes to work in order to write some shitty code and collect a pay check…

…all with the goal of playing as much ping pong as possible.

Unfortunately for you and your ego, the law of commensalism tells us that you desperately need engineering resources to give a damn if you’re going to survive.

A little side note on the word “resources”. I once was told that I shouldn’t use the word “resources” to describe engineers. I was told this was dehumanizing and essentially the equivalent of torturing people at Guantanamo Bay. Of course, this insightful comment came from someone in HR…

…I mean, when Human Resources says we can’t call people resources, we are dealing with a level of hypocrisy and corruption not yet known to mankind.

Now back to working with engineers.

When it comes to working with engineers, what this all means is that you have to fake it. If you want to be a decent product manager, if you want to create innovative products, if you want to make sure developers don’t badmouth you around the coffee maker, you should pretend like you care about their intrinsic motivations and inspirations.

Where usually you would say something like this:

“Sit in your chair and complete this list of requirements I created without your input. You can have a 5 minute potty break if you have an acceptable burndown.”

Instead try something like this:

“Help me solve this problem. Afterwards we’ll grab some beers and play Rocket League.”

That wasn’t so hard now, was it?

So what’s the lesson:

The point of this lesson is that working with engineers isn’t actually that hard. You just have to realize that their hopes and dreams have been dashed and so you should treat them as real human beings instead of factory robots.

Do this and the law if commensalism will be working in your favor…

…you f***ing self-absorbed whale louse.