Vijay Menon | Portfolio

I Don't Care About The Implementation Details

November 03, 2021

← Back

You don't care?

I've often heard the phrase, "I don't care about the implementation details" thrown around a lot in my programmer circles. This phrase would throw me off quite a lot because as someone who actually does implementation details for a living — how could those details not be important? Especially if you're someone I work with; like why would you not care about how the "code" was implemented? Isn't that really scary?

Yet, I feel as you go up the typical corporate ladder — you start to find that people care less and less. Why is that? Again isn't it scary to you that you don't know what the implementation details are? Your business really depends on it!

But why

As a business person myself, and someone who really likes to get technical — I care greatly about implementation details. If I don't fully understand something from top to bottom — I feel like I can't sell it or otherwise talk about it to other people.

However, I thought about this phrase more as I kept hearing it over and over, and lately it's been consuming my mind.

Here's what I think it means at the time of writing.

"I don't care about the implementation details for this piece of code or business solution, I just need you to figure it out because ___".

I think the last part of this sentence is really the CRUCIAL part that people fail to tell us when they say they "don't care"; maybe they expect us to intuitively get their perspective or frame of reference, but often because they don't care — that gets lost in translation as well.

For example, the ____ could be "I just don't have time".

"I don't care about the implementation details because I just don't have the time right now. I'm doing other things that are important. Just make it work".

To me, with this context, my takeaway is that really they have no time, and backwards compatibility is really crucial for them. I get that. Backwards compatibility is really cool. Saving someone's time is really cool too. Both valid points for not wanting to hear the details about whatever I'm working on, as long as it works for their workflow — we're cool. That's actually business too. We could make a deal right here for this person.

Let's add in even more context now

"Hey, can you figure this out and give me a generic idea of what it is you could do as well as a proof of concept"? "And by the way be ready for me to poke holes in your idea, whatever the heck it is". "I don't have the time right now to figure out the implementation details, but you do, and also just make sure it works with my workflow at the moment." A lot clearer right?

In a programming context, when programmers say the same thing, they are really asking for your piece of code to also fit to an "outline" in their mind. That's probably why interfaces are so popular; they are a great way in code to describe what should be done ideally without having to write tons of code. Aka, this "React Badge Component" should have the following "interface", e.g. it should show notification counts and allow for custom color. I don't care how you implemented it, but it should work with my other code that is coded towards this "interface" (aka idea)

interface iBadge {
  color: string;
  count: number;
}

// Some implementation - you decide, I don't care!

Code to an interface, not a concrete implementation

There's the term "code to an interface not a concrete implementation" (I think Kathy Sierra said it). Ideally, you just want the "app" or "program" you build to do X,Y,Z things.

You don't care about how those things are implemented, so long as they produce X,Y,Z. Maybe later, you do kind of care — since performance matters, but because the code is "outlined", you can remove an implementation that exists already and write or refactor a new one that outputs "Z" better.

That's business — sorta assessing things as they get developed, then making improvements, and moving forward. "Build towards an idea, not care deeply about concrete implementations" — is what I'd probably say for business people.

Full Circle

And from that we get back to full circle — "I don't care about the implementation details". The top management doesn't care because, they're building out an idea they have (and their workflow is the one that matters not yours). You're the one either saving or wasting their time.

Your React.js code or JQuery do this function doesn't matter in the grand scheme. The idea you are helping build is the thing that matters. Hence, don't get hung up on the implementation details yourself. Always first get context, aka your interface, then everything else can be built or rebuilt from that.

Final thoughts & TL:DR

"I don't care about the implementation details", could be scary to hear, but make sure to get context. Get context always, because it sets the whole flow for everything you are going to do for this other person thereafter. They may not care about implementation, but they DO CARE about you delivering on their "idea". It's not an easy task, but with time and iteration you will get better and develop more confidence when working with people who say "they don't care".

Hint, they DO CARE ABOUT SOMETHING.

Copyright © 2021, Vijay Menon