"We cannot solve our problems with the same thinking that created them" – Albert Einstein
This is Why→What→How, as well as Why←What←How.
A way you move forward, and the way you take a step back.
You will see.
An evil Jinn
Once upon a time I've used a concept of an Evil Jinn, which turns your wishes against you:
- 😎: (why) have no idea why, but...
- 😎: (what) I want to be rich!
- 🧞♂️: (how) There are many different ways to make your wish come true. I'll pick the most painful one.
- 🧞♂️: so, here you go. You are rich as Scrooge McDuck. Because you are Scrooge McDuck. Well, exactly as you commanded, master. Have a good day, quack. Quack 🤣, gosh, another looser.
- 😎: 😟, hey! wait! I didn*x$ssshhh 💨. Quack!
This is what happens when your goal is what
and you are not thinking about how
. You gave too much power to the 🧞♂️, haven't explained constraints and the detailed requirements.
👉 Take a step back. Try to find why
you want to be rich.
There is a whole film about this - Bedazzled
Frameworks
There are many other widely known frameworks developed to help you avoid painful consequences of unwise decisions.
- OKR
- SMART
- and SBI. All have a purpose to help you structure something from "end to end" and "understand better".
For example - understand what you truly desire and what is truly required. And separate one from another.
OKR
Objectives and key results is a goal-setting framework for defining and tracking objectives and their outcomes. Used to run many businesses and make planning.
OKRs comprise an objective, clearly defined goal and 3–5 key-result specific measures used to track the achievement of that goal. The goal of OKR is to define how to achieve objectives through concrete, specific and measurable actions. The key benefits of OKRs are focus, alignment and engagement.
The biggest difference OKR and his best friend KPI (often used together) is the last point - focus, alignment and engagement.
Key Performance Indicator
alone is a subject for Goodhart's law, which is derived from the Heisenberg's Uncertainty principle
- Any observed statistical regularity will tend to collapse once pressure is placed upon it for control purposes.
In other words - key results
without an objective
is a road to Hell.
OKR can be read as:
- WHAT you want to achieve. "I want to be rich!" 😎
- WHY you want it. "It will let me buy a new car!!"
- HOW to do it. Not able to give you an advice, but here is multiple steps,
key results
, which will lead you to the goal.
and that's a very poorly designed OKR 😉
It's very important to distinguish the goal
and the result
. True Goal should be a direction
, not something that you can achieve.
👉 If you can achieve it - it is a key result. Just a step on the way to the goal.
Life is a journey not a destination:
- Key Results are the journey
- Objective is the destination
SMART
S.M.A.R.T. - is very alike Fallout SPECIAL, but for project management. A mnemonic acronym, and a very role-playing in both cases.
SMART is a way you can describe your objective
. The definition should be:
- Specific – target a specific area for improvement.
- Measurable – quantify or at least suggest an indicator of progress.
- Assignable – specify who will do it.
- Realistic – state what results can realistically be achieved, given available resources.
- Time-related – specify when the result(s) can be achieved.
So your objective should not be just "I want to be rich!", it should be a little SMARTer. At least more Realistic, and Time-related - you probably want to be rich today, not 70-y years later.
🧞♀️ is waiting for your mistake, looking for every missed detail in your WHAT
he could use against you.
Another important moment about SMART, as it pointed by authors a few times:
It is the combination of the
objective
and itsaction
plan that is really important. Therefore serious management should focus on these twins and not just the objective. Thank you Wikipedia.
Which is again - an objective
without key results
is not something good.
There are more mnemonic acronym based approaches
SMARTer or SMARTAA
A smarter SMART with more features
- Trackable and Agreed
CLEAR
Collaborative, Limited, Emotional, Appreciable, Refinable
SIMple goal framework
- Specific
- Important
- Measurable
RISK
- Requirements
- Information
- Suppositions
- Knowledge
Requirements: what is the expected result of this project
Information: is all the information clear about what I need to do and all it’s parts
Suppositions: are my assumptions true? Is there any flawed assumptions?
Knowledge: do I have the required knowledge to understand and solve the problem? Do I need to learn something new?
SPEAKING
Setting and Scene, Participants, Ends, Acts sequence, Key, Instrumentalities, Norms, & Genre
SBI
The Situation-Behavior-Impact Model (SBI) was created to provide a better feedback - make it structured, reduce the anxiety of delivering feedback and also reduce the defensiveness of the recipient.
The SBI feedback model is simple and direct:
- you capture and clarify the
Situation
- describe the specific
Behaviors
observed - and explain the
Impact
that the person’s behavior had on you.
Like:
-
today
,after reading this article
,I liked it
. -
yesterday during the meeting
,your internet connection was unstable
,we lost you
-
last year
,we had a lunch together
,you will owe me
Sounds too simple and almost obvious but this is the goal - provide you with a framework to make so. You don't have to think much about the SBI - just follow the pattern.
The hack is: Situation/Behavior/Impact is the same thing as Arrange/Act/Assert!
AAA: First you set up all the data you need for your example (Arrange), then you call the method under test (Act), then you verify the output was up to your standard (Assert).
First explain all the circumstances (Situation/Arrange), then you explain what the individual did (Behavior/Act), then you explain how it ended (Impact/Assert).
And yes, this means that the “system under test” is the individual.
SBI(as well as tests) can be viewed differently if flip it:
- I want to cause an
Impact
- Which
behaviour
I should use - In which
situations
it will work
Then you can work towards creating such situation. You know what you have to do.
🤔 Not much difference from OKR - moving towards some goal.
And here we go. Let's try to derive a new system from the existing ones.
WHY/WHAT/HOW
I did not invent WWH. It was in use by therapists, especially Psychotherapy for ages. As well as detectives, marketologs, analysts and so on used it.
To be honest I never had any therapy, but from many different films I know that their job is to explain WHY you are you. WHY you are doing that, not this. Their job is to find root of your behaviour and explain it to you. Hello Sigmund Freud my old friend.
But we are not here for the therapy. Right?
My grandfather knew what he needs, and usually was asking his grandsons to help him.
- every time he asked us to do something, my brother was doing exactly WHAT he was told to do.
- and I was asking WHY.
- And it was way faster to do that something, than to explain me why it’s needed.
It's ok, and sometimes you need to do what you were told to do. But it's better to think what you are doing, how you are doing it, and why.
- Why was the change made this way?
- How does it help?
- Is it working as we want?
Let's imagine you are looking at the code. You can see only how
it was written. Then you understand what
was made, and then you can think about why
it was made.
You are real detective 🕵️♀️!
Why
Every time I ask my kids to clean the house - am not expecting questions like
- "WHY". To keep it clear, dummy!
- "WHAT". What?! Clean the house!
- “HOW”? "How" is ok, as long as there are many ways to keep it clean, and, ok, you can skip mopping today.
Jokes apart - why should always come first. After you have a reason, a target to reach - "I like the house to be tidy",- you might find a way to fulfil it, probably home chores are the solution; and then find an exact way to do it (vacuum, mopping, and so on).
Recently our kids at last got the point - we didn't ask them to do home chores (which are how
). We wanted their rooms to be clean (which is what
). They did not yet understand why
we need it, but already can act more thoughtfully, keeping everything constantly tidy and not spending too much time on chores.
WHY
is like - you want the iPhone 12. But... why? Do you really need it?
So you will be told why you need it, and why you can't live without it any longer.
Go To the Apple Store! Now!
This ishow
you can get ~that~what
thing, and click thing button to watch ourwhy
presentation one more time 😉
There is the same point, from a different perspective - from a Start With Why. Like this is “why” you are buying an iPhone every year - you believe in Apple's stories.
What
What is a problem? I mean - what
is a problem. What
is what people tend to start from.
- we want that no matter why
- Let's do it! I have no idea why
- I WANT TO BE RICH!
But why
? Is there any reason? You might want to buy a new house? Why? Might be you need more space? Why?
👉 Every time you what
- make a step back and find your why
. Only then make a step forward to how
.
That’s a standard trick, especially in movies - when someone is going to do something - as them why
.
And then the bad guy will start a long monolog explaining his devil plans and the reasons to nuke the city. Got enough popcorn?
What is always the least valuable thing. It is in between of WHY and HOW.
How
And how
is always different. How is the end and the beginning (remember - this is Why→What→How, as well as Why←What←How).
- TypeScript is "how". It's not going to fix anything without a fixable subject.
- GraphQL is "how". This is how you talk to server, but not "why"
- Expensive Nikon Camera is "how". You can picture the same "what" using your phone. So
why
? - Almost any other technological solution is a senseless "how" without an
Objective
andReason
.
Refer back to the other models and try to understand that it is all One Question. A holistic point of view.
Note the difference:
- How are you doing
- What you are doing
- Why you are doing
How can this help you?
It can help you code
Coding is how
. Keep in mind what
while you are doing it (and it
is what
as well).
Don't think much "what you are writing", think "what you are doing". That will protect you from refactoring for the sake of refactoring, hooks for hooks, speed for speed.
This is something OKR is about - to keep the right direction
"It is the __combination_ of the
objective
and itsaction
plan that is really important"_.
Planning is what
. What
is something to do, something you are doing, or done. An objective
.
But how to decide what to do? Find the most and least important, and even define the way to calculate the importance?
Why
is usually a missing part. Start from it, and end on it.
React, Angular, Vue - they are different how
, different why
, but the same what
.
What
is something user might experience, and it does not matter how
it is made.
However - make a step back - why you should pick one framework, but not another? It's not only about customer experience, but developer experience, and (sometime the main) business needs and requirements.
A single what
might driven by different why
. One why
can create any what
. There is an infinite number of how
you can actually implement it.
There is another mental concept here - blind men and an elephant - which is about a single thing(an elephant), can be described in many ways.
- You can have a problem to solve - it's
why
. Take a step forward and findwhat
you can do to solve it. - You can have an idea - it is
what
. Take a step back to double-check does it worth it, and then step forward to find a way to make it real. - You can just want to apply something, try a new language or framework, play around... solve something in a better way? It's
how
, and it needwhat
andwhy
> except you just enjoy doing it.
Too many people are just doing. Using Redux because they were told to. Not understanding CSS or CAS theorem. Focused only on the code.
Too many people are just doing a thing. No matter how, and it ends as a technical debt nightmare. But we are building a cool this? Sure?
Too many people are after "why". They might truly believe that it's a good reason... to start a war for example. This is not how
you should resolve problems and not what
you have to do.
This all working only holistically.
Technical and non-functional requirement
Broadly, functional requirements define what a system is supposed to do
and non-functional requirements define how a system is supposed to be
.
Functional requirements are usually in the form of "system shall do ", an individual action or part of the system, perhaps explicitly in the sense of a mathematical function, a black box description input, output, process and control functional model or IPO Model.
In contrast, non-functional requirements are in the form of "system shall be ", an overall property of the system as a whole or of a particular aspect and not a specific function. The system's overall properties commonly mark the difference between whether the development project has succeeded or failed.
- functional requirements is
what
- non-functional requirements is
how
- 👉 both are not
why
Conclusion
Let me be short - this is a stock photo about "talking therapy".
On the left is your spaghetti code, and on the right is Why/What/How
It's really that simple.
PS: Read the Duck Tales for more mental models you can apply as a software engineer.
PPS: And “Start With Why” talk - https://www.ted.com/talks/simon_sinek_how_great_leaders_inspire_action - the same idea, different order.
🤔
why
did I write this post? I knowwhat
I wrote, andhow
I wrote it, butwhy
.........
Top comments (0)