🎯 My Framework to Build New Habits and Get Things Done

Using 2-week challenges, I finally began succeeding with habits and long-term goals. Copy my spreadsheet to do it yourself!

👋 Welcome to Gray Matters 🧠, a newsletter where we share interesting reflections about Tech, Software, and Productivity.

If you enjoy this and are not yet subscribed, please consider signing up. It will sincerely make our day.

This week we will try something slightly different, what follows is an of mine which has also just been published in Better Humans and thought you would enjoy. Next week we’ll be back with some interesting links. Without further ado, here’s the article. Have a great week ahead!

I have been trying to find the best ways to build lasting habits into my routine for years. I’ve tried setting yearly personal OKRs, habit tracking apps, and other techniques with limited success. Then I finally hit upon a system that works.

In retrospect, I made some classic mistakes: I got excited and signed up for too many new habits at once, I overestimated my free time and energy, and I entered into a negative feedback loop where my willpower and excitement decreased every time I looked at the results.

Determined to learn from my failures, I spent some time at the beginning of this year to evaluate what worked for me, and what didn’t:

  • Time frame: My experiment with yearly OKRs was very useful to me — in that I realized that a year was too long of a timeframe to commit to for goals. Not only did priorities often change within a year, but it was hard for me to keep up the excitement for that timeframe. If a system is to work for me, it needs to have a much shorter timeframe.

  • Simplicity: The system should be dead simple — I don’t want to spend time having to deal with tending something complex.

  • Visualization: I found having some kind of progress dashboard was very important to keep myself engaged.

  • Flexibility: Again, things change and unexpected things come up all the time, so being able to change course within a reasonable timeframe was something I would like the new system to have.

Next, I let this stew in the back of my mind for a while — ever heard of Productive Procrastination? — while I went on with my life, hoping that some inspiration would come my way.


Inspiration did indeed come. I first revisited Matt Cutt’s 30-day challenges. While I love the idea, I felt like 30 days was a bit too long and wouldn’t give me the flexibility I was looking for.

Another source of inspiration was systems thinking, which is all about not having a specific goal, but consistently doing the actions that eventually will lead you to achieve what you really wanted in a sustainable way, instead of achieving your goal and later slowly falling back to where you were before. In other words, systems thinking is about creating good habits that lead to the lifestyle you want, and to the kind of person you want to be.

Around the same time, CGP Grey released a great video about New Year Propositions. His advice is to again avoid setting specific goals for yourself and, instead, to set a “theme” for a period of time and try to guide your decisions according to that broad theme.

☝️Credit to CGP Grey

That strategy struck me as having many advantages, but mainly: Broad themes give you the latitude to change and adapt on the go, they make you value the trend over meeting a specific, arbitrary goal, and they are a very simple heuristic you can use any time you have some free time or you are trying to take one of the many decisions we take every day to inch you closer to your theme.

A Bi-Weekly Challenges Framework

Drawing on the inspiration sources above, I decided to try something very simple: instead of 30-day challenges, why not two-week challenges? I liked how simple the framework looked and the flexibility and agility it promised. After two weeks of doing something, you can simply continue doing it the next cycle if you are not sure that the habit is locked in, or you can swap it with a new challenge.

Connecting to CGP Grey’s idea of themes, I reasoned that the challenges could come from a broader theme: the theme might be “make things”, which can challengify into “write 30 minutes every day” or “take a picture every day”.

My favorite part of this framework is its flexibility. The challenges themselves can be anything. You don’t need to limit yourself to habit-building. You can also use the framework as a forcing function to make progress on those long-running projects you struggle to find motivation for, like rebuilding your personal website or writing that long-form article you’ve been meaning to for the last six months.

Personally, when I started leveraging this realization, the framework gradually became ingrained into my daily life as a sort of operating system to getting things done.

☝️As simple as it gets.

Scalability is another one of The Framework’s strengths. If you can’t nail down a habit in only one two-week cycle, that’s not a problem: just repeat the challenge on the following cycle. On a related note, when I attempted the challenge unsuccessfully for more than a couple of cycles, I tried to “refine” it — which most of the time meant some kind of downscaling to more realistic levels — to make it more likely that I would succeed on the next iteration.

Lastly, the framework also follows a loose form of systems thinking. Even if at first sight it seems that you are setting “goals” for yourself, those are actually very short-term trials designed to bootstrap your habits. “Read 25 minutes every day” is much more concrete, actionable, and easy to get started with than “read 20 books a year,” which is just a statement of intention, but leaves all the actual hard work of figuring out how you will get to that goal undefined.

After figuring the details of the system out, as a highly-functional perfectionist, I felt very tempted to come up with a grand and overblown design for a new web app to track my progress. I am glad I didn’t, as I would still be stuck in a bad case of design paralysis thinking on what is the best and trendiest programming language to build the app in (believe me, I started my “new” personal website in Clojure three years ago, and it’s still unfinished).

Instead, this time I listened to my inner voice saying “done is better than perfect” and decided that the best way to get started was by building the simplest system possible: listing challenges on a simple Google spreadsheet and wiring up a Google form which I would fill out every night with the daily data. You can find (and make your own copy of) a template of my simple Google sheet for tracking my challenges here — I explain in more detail every column in the addendum at the bottom of this article. It’s far from perfect, but it gets the job done for me.

☝️My under-engineered and austere Google sheet

What I Learned From Three Months of Doing Bi-weekly Challenges

I‘ve now been using the framework for almost three months. In that time, I’ve attempted to complete 15 challenges (~3 every two weeks), and my success rate has been 60% (counting challenges with upwards of 90% achievement as successful). I think that’s pretty good: On one hand, you want to be mindful not to take too much on, but on the other, you need to set challenging goals; otherwise, they wouldn’t be challenges.

An interesting thing I realized is that, even after successfully acquiring a habit through the framework — meditating regularly is one example — I found myself almost automatically meditating with barely any effort, even after the challenge was finished.

I’ve had similar experiences with the other habits I picked up using the framework. I might miss a day here in there but, for the most part, the habit becomes part of my routine.

Use It for Your Projects, Too

Again, I found bi-weekly challenges to work really well as extra motivation for long-running projects. This very article is proof that it works: I used a challenge to write at least 25 minutes per day. In a week, the article was almost finished.

Not only that, but the Parkinson’s Law — “work expands so as to fill the time available for its completion” — is a very real thing (at least for me), so challenging myself to try to finish something within two weeks by means of this framework added another boost to my motivation by giving myself a deadline.

Other examples of projects on which I used the framework are learning VIM and building a side project.

Don’t Take On Too Much

As I started using the framework in the middle of the pandemic lockdown with not many plans to attend to, I started strong by committing to three challenges per two-week cycle. While I was able to keep it up for a couple of months, I found myself exhausted and without much time for anything else. Last week I decided to scale it down to two challenges per cycle and, so far, it feels much more relaxed, so I think I will stick to it for now. It obviously depends on the nature and kind of challenges, so your mileage may vary.

Another thing I realized recently is that I don’t have to commit to challenges every two weeks. I can take breaks too! It might sound silly, but it was very liberating to realize that I was the one setting the rules, so I could relax them in order to make the process more sustainable in the long term and avoid burnout. Going forward, I will probably take a week off every month but, again, that’s up to your preference.

Prioritize Your Slots

The last insight I gathered after three months of pushing myself with the challenges might sound a bit controversial, but hear me out.

While most of the productivity geeks generally highlight how much free time we have every day — “There are 24 hours in a day! What are you doing the eight hours where you are not working or sleeping?” — I realized that those eight infamous hours are, more often than not, not enough — especially if you keep piling habits onto your schedule.

To begin with, life happens within those “free” hours: groceries, fixing stuff, cooking, personal relationships, exercise, cleaning… you get the idea. So, realistically, the actual time available for you to build new habits and work on projects is much more restricted. So restricted, in fact, that it’s very easy to fill it all after successfully building some daily habits.

This is why I would advise you to be mindful of how many habits and projects you already have before overloading your daily schedule even more. Don’t think of this framework as an addition to your already hectic routine, but integrate it into it to help you get things done. Turn that important project into a bi-weekly challenge instead of using that “slot” to building a new habit for the next two weeks, which might wear you out and leave you without time to finish the project.

Again, there are only 24 hours in a day, so be mindful of that and prioritize what is the best use of your “challenge slots” for your given situation. In my case, for example, I am confident that every two weeks I have a couple of slots of up to 45 minutes per day that I can reliably use for whatever I need, habit-building, or otherwise.

I would love to know your thoughts and experiences if you decide to try the framework or a version of it. I hope you find it useful.

Addendum: Details About the Google Tracking Sheet

The Google Tracking Sheet has the following fields:

  • Current challenges: A graphical visualization of active challenges. The olive green bars indicate where you should be given the date, while the solid green lines are the actual progress. I try to check this visualization every day for motivation.

  • Frequency: How often do I want to do this? I’ve been gravitating to “every weekday,” or 10 out of the 14 days, as it gives structure to my week and also provides me with a buffer to complete a challenge during the weekend if I can’t hit all the weekdays.

  • Start date: Self-explanatory.

  • Deadline: Hardcoded to StartDate + 14.

  • Habit?: Is this a habit I am trying to build?

  • Status: For now I’ve only used NEW for new challenges and REPEAT when I failed at a challenge during the previous cycle and it "overflows" into the current one.

  • Target: The number of times I intend to complete the challenge, or metric I am holding myself accountable to (like the total number of times I perform a habit, number of hours, lines written, etc.).

  • Ideal: This column automatically calculates what the “actual” value should be given the date and the days left to complete the challenge.

  • Actual: The actual value of the metric.