## DEV Community

swyx

Posted on • Updated on • Originally published at swyx.io

# Fibonacci Goals

I've realized that the problem with my old New Year's Resolutions is not that I give up halfway. It is that I overly fixate on 1 year outcomes, without holding myself accountable to a system that gets me there. While the reasons to favor Systems over Goals are well explored, I am still unwilling to abandon goals altogether. Goals are wonderfully motivating, especially if they are Big, Hairy, and Audacious.

I think the solution is to make a system of goals for yourself.

I've dubbed my system Fibonacci Goals. They work like this:

• On Day 1, I make a 1 day goal.
• If I achieve that goal, I can make a 2 day goal.
• If I achieve that goal, I am allowed to make a 3 day goal.

And so on, with goal commitment ramping up by the Fibonacci sequence: `1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...`.

Note: Technically, the Fibonacci sequence starts at 0, but I've opted to start at the second 1. Move your start point left or right as you wish.

If I fail a goal, I slide back toward the previous step. If I miss my 21 day goal, I must complete another 13 day goal before re-attempting the 21 day goal. This gives me a win before I attempt another milestone.

You can start a Fibonacci goal game at any time of the year, and take breaks between goals. If you start on Jan 1, an unbroken chain of successful goal completion from 1-day up to the 89-day goal takes 232 days (August 20). Taking into account breaks and backslides, there's enough for a full year of wins.

I suspect I will achieve more with this system than if I go for a 365-day goal on my first attempt.

In Hegelian terms, if Goals are the thesis, and Systems are the antithesis, then Fibonacci Goals are the synthesis. A system made up of progressively increasing mini-goals.

My first goal in 2021 is to write this post. I will set my next tomorrow. I hope this gives you some ideas for your personal goals and systems too. No matter what you use, I would love to hear about them and to support you in your progress!

ICYMI: Randall and I chatted about Systems vs Goals for the New Year's Eve episode of our podcast!

You may also like: Dump your Inner Drill Sergeant on the Happiness Lab podcast. Being too harsh on yourself doesn't work!

## Problems Solved

Comparing Resolutions to Fibonacci Goals:

• We set 1 year goals without any evidence that we are able to achieve even half of that
• We don't know how to estimate what we can achieve in a year
• We get discouraged when we slip up mid year and then our whole year's motivation is shot with no way to "get back on the horse"
• We don't build momentum with progressive wins, it is all or nothing
• There is no system allowing for natural breaks
• We don't feel able to start a Resolution on a random date, say, October 3rd, and instead put off our hopes for Jan 1st.

Kyle MacLean Smith

Fibonacci and Hegel?! Now that's a power couple. Good on you.

If Fibonacci proves too fast (or too slow), there are many other Fibonacci-like sequences to help you fine tune.

My preferred Fibonacci-like sequences are listed at github.com/bestape#oeis-contributions (Fibonacci is #05) and explained in context here: community.wolfram.com/groups/-/m/t...

Starting points are, given enough iterations, arbitrary to scale.

Wishing you a fruitful New Year.

swyx

oh wow, nice, i have never really read further into alternative sequences. this is a nice list! i think i picked Fibonacci because it has high familiarity to others while still having a constant ratio. any others that fit that bar?

Kyle MacLean Smith • Edited

Thanks!

Yeah, Fibonacci is likely the only sequence of this type with high familiarity.

Part of the issue is the metallic constant ratios, other than Gold, aren't familiar either: en.wikipedia.org/wiki/Metallic_mean

Silver is likely the second most familiar. It's used in a lot of Japanese architecture, for instance. However, I don't think the sequence for Silver is familiar, just the ratio. Plus, Silver can be seen as Geometric via a metallic conveyor.

That said, I hope an algebraic perspective on Fibonacci becomes highly familiar, sooner than later. It's very useful, especially exploring recursion and exponentiation. I personally believe it's a great heuristic for automation literacy education.

Some detail:

1. To keep convergent (within the field of view), translate growth as decay via 1/growth, e.g. 1/1.618... = 0.618....
2. Pick a preferred decay, e.g. 5/6 decay (6/5 growth).
3. Find its associated {a, b, c} right triangle, e.g. the {60, 11, 61} triple associates with 5/6 decay.
4. Plug the variables/options into the Fibonacci-like "recursive dialectic" formula; on WolframAlpha it's RecurrenceTable[{ f[ n ] == ( 2b/a ) * f[ n - 1 ] + f[ n - 2 ], f[ 0 ] == x, f[ 1 ] == y }, f, { n, 0, 60 }].

f(0) and f(1) can be any value. E.g. 0.618... decay associates with the { 2, 1, 5^(1/2) } right triangle:

• 2b/a = 2*1/2 = 1.
• { f(0) = 0, f(1) = 1 } or { f(0) = 1, f(1) = 1 } make the Fibonacci numbers.
• { f(0) = 2, f(1) = 1 } makes the Lucas numbers.
• { f(0) = 97, f(1) = 7 } makes nameless Fibonacci-like numbers including f(59)/f(60) = 64051866980550/103638097817417 ~ 0.618....

Say you're making more progress than you expected and decide to pivot from Gold to Silver, from 0.618.... to 0.414.... If you did this after f(15), then the pivot would start at { 2b/a = 2*2/2 = 2, f(0) = 610, f(1) = 987 }. This pivot, a part of your personal journey, would have a nameless fibonacci-like f(14)/f(15) of 100143044/241766695 ~ 0.414....

When a != 1 the sequence has a denominator, which might not work for you. Starting at f(0) and f(1) with values that are multiples of powers of the 2b/a denominator will delay when the denominator shows up in the f(n) sequence.

E.g. for { 2b/a = 2*11/60 = 22/60 = 11/30, f(0) = 1*30^30, f(1) = 1*30^30 }, f(30)/f(31) = 44066516280464542497279255915263071939861665630/52879646064209853316025665905867547137160170631 ~ 0.833... ~ (5/6).

More than enough detail for your use case! I hope you found this of general interest. It helped me think through some stuff so thank you.

Here are visualizations of different decay rates, remembering that 1/5 decay is also x5 growth, 5/6 decay is also x6/5 growth (but within the field of view): instagram.com/p/CDhzeMGDE71/

swyx

I'm gonna be honest that is waaaayy overkill for me π but I appreciate how passionate you are about the topic!!

Kyle MacLean Smith

Lol. Yeah, sorry about that! I think my passion has turned into procrastination at this point but thanks for the complement anyhow.

Ben Holmes

Really like this idea! I think progressive ladder like this could solve a major problem I have myself: I'm not motivated to find a system to meet my lofty goals. So, if I slowly build up the length of my goals the more I succeed, the "system" should follow naturally.

Making a pretty big assumption there. I guess it rests on the idea that each goal should be a progression from the previous one (rather than a climbing tower of unrelated goals). I'll definitely try this idea out for a project of my own! I've had an idea that's been bugging me for months, but has felt too daunting to start.

swyx

all the best! what's the project?

Ben Holmes • Edited

Thanks! So... it's a lot to explain. But to put it succinctly: it's a static site generator that runs on templates like Jekyll, with the option to use dynamic tools like MDX or static Vue on any page you want. It'll compromise on some values that Jekyll et al. hold themselves to (this tool will use client-side routing, for example), but it's meant to bring all the countless worlds of static site generation closer together.

Absolutely no clue whether this will work in a developer-friendly way. For instance, I know you were trying to bring Svelte templates into 11ty with varying degrees of success. But with the waves of native ES modules and dynamic imports emerging... someone's gotta try π

swyx

cool cool. i gave up on making my own SSG a while ago π all the best with it! I def agree that the native ESM wave is a huge opportunity to make better tooling without legacy assumptions.

Kaleb M

I too like the idea of using systems and goals when accomplishing something in my life. Cool idea and hope it works for you!

I like to come up with big hairy goals, then use systems and habits to accomplish them over time. Once they are achieved (or given up on lol...it happens :D), then I either move on to a new goal or iterate to phase 2 of that goal. I see this as similar to breaking it down to milestones like it sounds like you prefer !

Keep us posted on how it turns out!

swyx

thank you!

Pedro Arantes

Interesting strategy swyx. For curiosity, why did you choose the Fibonacci sequence instead of another sequence, like arithmetic or geometric progression?

swyx

those are valid too! i just instinctively went for something with proportional scaling. Arithmetic scales too slowly. boring. Geometric is too dependent on starting factor. Fibonacci consistently scales ~1.618 (golden ratio) regardless of where you start.

Pedro Arantes

Nice point of view, make a lot of sense the "consistently scales" argument.

You've influenced me a lot with your Learning in Public texts, thank you so much. I started writing and asking more in public because of it. Now, you encourage me to adopt the Fibonacci Goals too. I think these two become a great combination.

Please, share with us your goals and how they're going over the days.

swyx

i'll update this post as i go! lets see what happens. thank you for the kind words :) and happy new year

Barry

Really interesting post - I struggle with longer-term goals and today was like what could I do this year but it felt too big and undefined so I went with goals for January. Then I figured I can re-check where I am at and recalibrate etc. Will have to listen to that episode.

Maxi Contieri

Nice Strategy!

Matt Zuckermann

Definitely going to be using this as I plan to start a tech blog this year! Thanks for the insight!

Sahan

I never thought of it like that! Very interesting read

swyx • Edited

I used excalidraw to make the diagram, feel free to improve/modify: excalidraw.com/#json=5904671973572...