"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.
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
There are many other widely known frameworks developed to help you avoid painful consequences of unwise decisions.
- 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.
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
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
actionplan that is really important. Therefore serious management should focus on these twins and not just the objective. Thank you Wikipedia.
Which is again - an
key results is not something good.
There are more mnemonic acronym based approaches
A smarter SMART with more features
- Trackable and Agreed
Collaborative, Limited, Emotional, Appreciable, Refinable
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?
Setting and Scene, Participants, Ends, Acts sequence, Key, Instrumentalities, Norms, & Genre
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
- describe the specific
- and explain the
Impactthat the person’s behavior had on you.
after reading this article,
I liked it.
yesterday during the meeting,
your internet connection was unstable,
we lost you
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
behaviourI should use
- In which
situationsit 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.
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 🕵️♀️!
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!
howyou can get ~that~
whatthing, and click thing button to watch our
whypresentation 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 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!
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
That’s a standard trick, especially in movies - when someone is going to do something - as them
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 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
- Almost any other technological solution is a senseless "how" without an
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. Keep in mind
what while you are doing it (and
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
actionplan that is really important"_.
What is something to do, something you are doing, or done. An
But how to decide what to do? Find the most and least important, and even define the way to calculate the importance?
React, Angular, Vue - they are different
why, but the same
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.
what might driven by different
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 find
whatyou 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 need
why> 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.
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
- non-functional requirements is
- 👉 both are not
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.
whydid I write this post? I know
whatI wrote, and
howI wrote it, but