Not Obvious
![Cover Image Not Obvious](https://blog.avalonian.dev/images/captain-obvious.png)
“Obviously…” “…so obviously…”
These (and other variations) are phrases that I hear pretty often at work. They seem pretty innocuous at first glance but they have a bit of an exclusionary undertone to them if you’re not in the know or if your brain just hasn’t reached the same conclusion as the speaker.
By saying something is “obvious” we’re saying that it should be objectively clear to everyone listening what we mean which is very possibly not the case. Let’s talk about a couple of examples of what I mean here.
Examples⌗
Different roles⌗
Not every person is performing the same job so they’re not going to be thinking of the same things when presented with information. For example, if you had a meeting with with an engineer, an engineering manager, and a product manager to talk about some new feature that is being built they’re probably going to be thinking about things like so:
- The engineer is going to care about the specific implementation details, edge cases, and conflicts with other features
- The engineering manager is going to care about the number of engineers required, timelines, and risks
- The product manager is going to care about timelines, the user stories, and stakeholder buy-in
There is some overlap but in general everyone wants something different out of the meeting and they’re potentially going to miss anything that doesn’t match their goals. And this is a good thing! If everyone is looking for different things hopefully you’ll have near complete coverage of all problems and can identify gaps. But it also means that there’s going to be more effort to make sure everyone is speaking the same language and knows what other’s points of view are.
If the engineer says something like “Obviously adding this specific feature is going to be hard” but omits that the reason it’s hard is because of a specific technical choice that was made previously during development. So the engineer understands all the context around that issue but the product manager probably doesn’t have that context and the engineering manager may not as well. The engineer is making the assumption that everyone has the same context and awareness that they do.
Different start point⌗
Not everyone has the same educational background as everyone else. Some people in the software industry did indeed go to school and get a bachelor’s in Software Engineering or Computer Science but that’s not the path that everyone has taken.
People from all walks of life can end up in the software development space and while we should be able to assume some level of knowledge depending on the level the engineer is at (junior/senior/etc) we shouldn’t assume that everyone who writes software has complete knowledge of all the trivia that you learn in a CompSci program (let’s be real for a moment, the vast majority of people don’t need to know how to implement a red/black tree).
Different viewpoints⌗
Similarly to how people from different roles are looking for different things when talking about work, engineers/developers are also coming at a discussion with different focus areas.
A simple example of this is when you have a frontend and a backend engineer talking with each other. They both need to work together to make sure that all the data that is required by either side is presented in a way that makes sense for their respective part of the system and how that looks is going to be very different. The frontend is going to want to make as few calls as possible to make things snappy and responsive which often means denormalizing the data (think GraphQL as an example) while the backend is going to have to deal with the challenges of their specific data store and how it performs under different loads.
I remember hearing a story about a backend dev that had to jump in unexpectedly on some frontend work and when they asked why it felt like the API they were given by the backend felt so awkward when used on the frontend the response they were given was something along the lines of “Well this is always how the backend works, they give us an API that works for them and thinks there’s something wrong with the frontend that the API is challenging to work with”.
Different processes⌗
Everyone thinks differently. That sounds like it should be “obvious” but again it’s often overlooked. The way people process what they experience is going to be different from how others process things and because of this they may arrive at different conclusions.
It’s kind of like when you have a math equation that has some ambiguity in the order of operations.
Say you have 2x / 3y - 1
where x = 9
and y = 2
. Is the answer
11
or is it 2
? Depending on how you think the inferred parenthesis
should be added you’re going to get a different answer even though
math is supposed to be objective.
People are the same, how we take input and run it through our internal calculations is going to be different and that means we’re going to get different answers. We all need to accept that.
Why does it matter?⌗
Why does it matter? It’s just a word! People are getting too soft! Right?
The problem that I have with people saying “obviously” as often as I feel like I hear it is that it can feel alienating to people. Particularly for people that are new to the team/group.
Let me give a few more reasons though on why we should care.
Diversity is a good thing⌗
Many of the examples I gave about why people won’t think something as obvious as claimed centered around people having different experiences. We want to make sure we have people of different backgrounds around us. That’s going to help you avoid group think, encourage new ideas and approaches that you may not have thought of, remove biases, and challenge you to grow and learn.
Imagine we had a cloning machine and we could clone just one person over and over again to make a team. That team is probably not going to be terribly effective long term. Sure they might get along but they’re going to have blind areas. You need diversity in a team to be successful.
We don’t want to make people feel bad⌗
When we say something is obvious and it isn’t to some portion of the group we’re alienating that part of the group. We’re making them feel as if they’re not as smart, like they don’t belong.
This isn’t healthy for the team or for the people in it. Everyone should be made to feel like they belong. When everyone feels safe in their environment they’re going to be more innovative, more willing to do their best work, and they’re going to be willing to try new things. It’s also just the right thing to do morally.
Saying something is obvious makes it sound definitive⌗
Finally, when we say something is obvious we make it sound like it’s the answer. The reason. Anything else would be wrong. We all have biases and blind spots. We might think we have the answer but be completely missing something. It’s important we be aware of that and do our best to be open to other possibilities.
Conclusion⌗
This has gone on a bit longer than I meant for it to so I’ll wrap things up with some simple advice.
Stop saying things are obvious and keep in mind how other’s perceive what you’re saying.