Setting Goals Like a Tree.
Goals are thought about linearly. You must achieve them step by step. Solving certain goals before you can start working on the next ones. However, linear goal setting leads to roadblocks. Roadblocks you have faced probably stem (pun) from setting goals like this:

Each dot represents a goal. Black dots are completed goals. Gray dots are goals that are in progress. White dots are set goals waiting to be crossed off the list. The arrow’s direction denotes which goals depend on which goals.
Goals with measurements such as dates and counts are solidifying, they leave no wiggle room for the unexpected. However, specific measurements are helpful. They limit our thinking to the quantitative and tangible. The issue arises when specific goals limit our possibilities to the point of gridlock.
We need specific goals to get anything tangible done, but we can’t use them because they limit us to the point of stoppage. How should we set goals then?

To set goals like a tree, set less-specific goals on the trunk, and branch off for more and more specific ones. Try and solve the highest-level goal, if you can’t, make a smaller and more specific one until you can. If you can solve a goal closer to the trunk, you don’t have to worry about the branches below. Let’s look at an example:
Let’s say you are building an app, your linear goals would be:
- Create a red button on the screen
- When a user clicks the button, make it download the error data
- If there are any errors make sure the user sees all of them
Even with this simple example, there will be countless problems on the journey to accomplishing these goals. You will struggle to pick the right color of red. There will be too much error data to fetch in a reasonable amount of time… so now we need a loading indicator. And the list will go on and on. For anyone who has built or created, you will certainly be familiar with the feeling of infinite complexity.
What does this look like if we set goals like a tree?

Now imagine we are working on our goals from the top down and we think we can knock out allowing the user to download the error data. However, we get stuck, unable to download terabytes of error logs. The user network is too slow. We have tried everything. It’s a roadblock.
A strapping young engineer figures out how to build the system so there are no errors. In doing so, they solve an upstream error which completes the branch.

We can then ignore downstream goals, as we have solved what is important. With linear goal setting, we wouldn’t be able to ignore the downstream goals because upstream goals might depend on them. However, with tree goal setting, what is important becomes clear. Setting goals like a tree illustrates the order of importance. In doing so, we focus more on what really matters.