The Big Question: Are You Better Than Yesterday?


Big goals? Learn to think small. (Photo: H. Koppdelaney)

The following is a guest post from Chad Fowler, CTO of InfoEther, Inc.

He spends much of his time solving hard problems for customers in the Ruby computer language. He is also co-organizer of RubyConf and RailsConf, where I first met him in person.

Our second meeting was in Boulder, where he was kind enough to use his musical background and natural language experience (Hindi, among others) to teach a knuckle-dragger (me) the primitive basics of Ruby… It was a wonderful experience, and I read his book, The Passionate Programmer, on the plane ride back to San Francisco.

I found it to be full of actionable advice for non-programmers, just as I did The Pragmatic Programmer. I am most certainly not a programmer, but the structured problem-solving skills of programmers is impressive and worth emulating. I hope you enjoy the following excerpt as much as I did.

Better Than Yesterday?

Fixing a bug is (usually) easy. Something is broken. You know it’s broken, because someone reported it. If you can reproduce the bug, then fixing the bug means correcting whatever malfunction caused it and verifying that it is no longer reproducible. If only all problems were this simple!

Not every problem or challenge is quite so discrete, though. Most important challenges in life manifest themselves as large, insurmountable amorphous blobs of potential failure. This is true of software development, career management, and even lifestyle and health.

A complex and bug-riddled system needs to be overhauled. Your career is stagnating by the minute. You are steadily letting your sedentary computer-programming desk-bound lifestyle turn your body into mush.

All of these problems are much bigger and harder to just fix than a bug. They’re all complex, hard to measure, and comprised of many different small solutions–some of which will fail to work!

Because of this complexity, we easily become demotivated by the bigger issues and turn our attention instead to things that are easier to measure and easier to quickly fix. This is why we procrastinate. And the procrastination generates guilt, which makes us feel bad and therefore procrastinate some more.

I’ve struggled with getting and staying in shape for as long as I can remember. Indeed, when you’re miserably out of shape, “just get in shape” isn’t a concept you can even grasp much less do something concrete about. And to make it harder, if you do something toward improving it, you can’t tell immediately or even after a week that anything has changed. In fact, you could spend all day working on getting in shape, and a week later you might have nothing at all to show for it.

This is the kind of demotivator that can jump right up and beat you into submission before you even get started.

I’ve recently been working on this very problem in earnest. Going to the gym almost daily, eating better–the works. But even when I’m getting with the program in a serious way, it’s hard to see the results. As I was wallowing in my demotivation one recent evening, my friend Erik Kastner posted a message to Twitter with the following text:

Help me get my $%!^ in shape…ask me once a day: “Was today better than yesterday?” (nutrition / exercise) – today: YES!

When I read this I realized that it was the ticket to getting in shape. I recognized it from the big problems I have successfully solved in my life. The secret is to focus on making whatever it is you’re trying to improve and make better today than it was yesterday. That’s it. It’s easy. And, as Erik was, it’s possible to be enthusiastic about taking real, tangible steps toward a distant goal.

I’ve also recently been working on one of the most complex, ugliest Ruby on Rails applications I’ve ever seen. My company inherited it from another developer as a consulting project. There were a few key features that needed to be implemented and a slew of bugs and performance issues to correct. When we opened the hood to make these changes, we discovered an enormous mess. The company employing us was time- and cash-constrained, so we didn’t have the luxury to start from scratch, even though this is the kind of code you throw away.

So, we trudged along making small fix after small fix, taking much longer to get each one finished than expected. When we started, it seemed like the monstrosity of the code base would never dissipate. Working on the application was tiring and joyless. But over time, the fixes have come faster, and the once-unacceptable performance of the
application has improved. This is because we made the decision to make the code base better each day than it was the day before. That sometimes meant refactoring a long method into several smaller, well-named methods. Sometimes it meant removing inheritance hierarchies that never belonged in the object model. Sometimes it just meant fixing a long-broken unit test.

But since we’ve made these changes incrementally, they’ve come for “free.” Refactoring one method is something you can do in the time you would normally spend getting another cup of coffee or chatting with a co-worker about the latest news. And making one small improvement is motivating. You can clearly see the difference in that one thing you’ve fixed as soon as the change is made.

You might not be able to see a noticeable difference in the whole with each incremental change, though. When you’re trying to become more respected in your workplace or be healthier, the individual improvements you make each day often won’t lead directly to tangible results. This is, as we saw before, the reason big goals like these become so demotivating. So, for most of the big, difficult goals you’re striving for, it’s important to think not about getting closer each day to the goal, but rather, to think about doing better in your
efforts toward that goal than yesterday.

I can’t, for example, guarantee that I’ll be less fat today than yesterday, but I can control whether I do more today to lose weight. And if I do, I have a right to feel good about what I’ve done. This consistent, measurable improvement in my actions frees me from the cycle of guilt and procrastination that most of us are ultimately defeated by when we try to do Big Important Things.

You also need to be happy with small amounts of “better.” Writing one more test than you did yesterday is enough to get you closer to the goal of “being better about unit testing.” If you’re starting at zero, one additional test per day is a sustainable rate, and by the time you can no longer do better than yesterday, you’ll find that you’re now “better about unit testing” and you don’t need to keep making the same improvements. If, on the other hand, you decided to go from zero to fifty tests on the first day of your improvement plan, the first day would be hard, and the second day probably wouldn’t happen. So, make your improvements small and incremental but daily.

Small improvements also decrease the cost of failure. If you miss a day, you have a new baseline for tomorrow.

One of the great things about this simple maxim is that it can apply to very tactical goals, such as finishing a project or cleaning up a piece of software, or it can apply to the very highest level goals you might have. How have you taken better action today for improving your career than you did yesterday? Make one more contact, submit a patch to an open source project, write a thoughtful post and publish it on your weblog. Help one more person on a technical forum in your area of expertise than you did yesterday. If you every day you do a little better than yesterday toward improving yourself, you’ll find that the otherwise ocean-sized proposition of building a remarkable career becomes more tractable.

Give it a try:

Make a list of the difficult, complex personal or professional improvements you’d like to make. It’s OK if you have a fairly long list. Now, for each item in the list, think about what you could do today to make yourself or that item better than yesterday. Tomorrow, look at the list again.

Was yesterday better than the day before? How can you make today better? Do it again the next day. Put it on your calendar. Spend two minutes thinking about this each morning.

Related and Suggested Posts:
Tim Ferriss on Stoicism as Productivity System

Posted on: July 28, 2009.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Comment Rules: Remember what Fonzie was like? Cool. That’s how we’re gonna be — cool. Critical is fine, but if you’re rude, we’ll delete your stuff. Please do not put your URL in the comment text and please use your PERSONAL name or initials and not your business name, as the latter comes off like spam. Have fun and thanks for adding to the conversation! (Thanks to Brian Oberkirch for the inspiration)

137 comments on “The Big Question: Are You Better Than Yesterday?

  1. I’ve been working on a “program” for a while now. Where I have a set number of tasks that I MUST complete everyday in order to improve myself. So far, take time to eat right, exercise, stretch, create something (writing, art, photos) and be social. What else do you think I should add to the list?


  2. Thanks, Tim! I’ve taken my first step to doing something better by commenting on this blog instead of lurking… :) But seriously, the most important message for me was the journey, rather than the destination. Am I losing weight every day? maybe not. Am I trying every day to lose weight? Well, I will now!
    Will I actually get my own blog up, and cover my own journey into fitness? Well tomorrow, i’ll make a change, write a post, or do something that will bring that one step closer to reality, and therefore make it better than it is today (i.e. it’ll be a bot more ready for publication). Thanks for the inspiration.


  3. @Matt Why not add time for laughter, gratitude, thankfulness, dreaming (as in visualizing/dreaming about you in your ideal future). Every day I do at least 30 seconds of intense laughing by myself. I am not looking at something funny or even thinking of something funny. I just decide to laugh at 100% for like 30 seconds every day. I’ve found that this “practice time” for laughing makes me much more likely to laugh and smile throughout my day. It looks ridiculous which is why I do it by myself ;)


  4. I’ve found this approach particularly useful when I have a goal that other people don’t understand, don’t believe in or don’t know how to be supportive of. It takes the internal pressure off – eliminating the feeling that I have to prove the merit or viability of the big picture goal to anyone else.


  5. Matt, I’d second what Aaron says. I especially like the idea of “gratitude”. You have “be social”, which is a great goal but not very actionable. Gratitude, “help someone”, etc. are more specific and actionable and would probably do what you want and more. Now you have me thinking about my list.


  6. This is good advice. The key for me is to make those individual changes permanent ones. Today you may be motivated. Tomorrow perhaps not.

    My programming made a huge leap when I started using cron jobs to forever automate tasks. The same applies to life. It usually takes more effort initially, but if you make a rule to never perform the same work twice, in the long run, you’ll have much less work to do.


  7. There’s a management term called “Kaizen” which represents small and consistent improvements over time. Using this concept, we can reflect each day on a list of items that we would want to see improvements in. Glad that the author (Chad) made it clear that “Small improvements also decrease the cost of failure”, hence making this improvement thing not too intimidating a task for us. Now… where would I like to see changes in myself in? :)


  8. Hey TIm,

    This post was right on time for me… I’ve been caught inbetween the back-and-forth of “extreme over-commitment” and “eternal procrastination”.

    It’s such a great feeling once I start a diet and workout routine. The motivation and drive usually lasts about 2-4 weeks followed by excuses and self-deception. The worst feeling is that time right before I recommit… that time where I’m coming face to face with reality and feeling the pain of regret. Like Tony Horton says, “You can choose the joy of discipline or the pain of regret”.

    Your “better than yesterday” idea makes sticking to something like a diet or workout routine a lot easier… at least a little less daunting. I think we can get so worked up over the huge task at hand (i.e. lose 20 lbs, run 5 miles, etc.) that we push the day-to-day improvements aside. By focusing on today, and not worrying about the future, it can make achieving those goals a lot easier.

    Thanks for the post,

    Chris Dunn


  9. I think this advice is awesome not only for improving ourselves by building incrementally on previous wins, but also very useful in destroying patterns and things that is no longer useful and energy sapping. We can try and improve and build better each day, or we can also work on destroying the walls and limitations that stand in your way to achieve satisfaction. This is normally easier said than done as we tend to have invested a lot of energy and time into building and maintaining our limitations.

    An example of a big “project” for me would be my use of language to create more authenticity in my life. I grew up in a system that promoted “people pleasing”, so being confrontational does not come naturally to me, a big problem when you are a project manager!. Yet, by confronting people more effectively every day I became better at it. On the flip side, I grew up in a very polite society and I became aware of the fact that I always seem to be “excusing” myself. Even when I bump into somebody in a supermarket aisle I’ll say something like “sorry” or “excuse me”. So I worked hard at eliminating “apologetic” language more and more. Now I rarely apologizes, without needing to be rude. The process of “stopping” to apologize was much harder than “starting” to be more confrontational!


  10. That’s a great post – there’s a lot I admire about the Pragmatic Programmers approach to life, the universe & everything. I do think though that it’s worth your while learning Ruby because there’s a lot it can do to make boring repetitive jobs easy & quick, and solving a problem with a program can often be a lot more interesting & fun than doing it manually. It’s the ultimate outsourcing really – replace the stuff that takes 80% of your time with the proverbial very small script! :-)


  11. Hi Tim,

    with your interest in metrics, I wanted to know what you measure while learning a new language? It seems so subjective “I can say more than I could 3 months ago” ect. Do you measure mistakes made? Record yourself?

    Also, do you read fiction in other languages for relaxation?

    I’d appreciate your thoughts;)


  12. Not sure I agree with this article. I can’t always see an appreciable difference in the span of one day. I like the underlying thought of “baby steps” (thank you What About Bob?). But why arbitrarily choose one rotation of our planet on its access as the time frame in which to find emotional gratification due to perceived improvement? Often times its Worse today than yesterday, but in a longer time frame, I’m still progressing …………..I need a better way to motivate and reward myself than one day turnaround.



  13. i love it think i will print this out and and it up to remind me yep Matt@ Aaron has a good idea to by doing that it just seems like your project is more bright than before.


  14. Hi Huey

    one of the things i do is watch hulu Japanese anime like naurto i know that there some shows on there and they are in Japanese but down at the bottom there is English. So after watching about 50 of them you seem to pick up on it and i think Tim did mention something about that.

    i hope that helps


  15. Great post, Tim. I competed in the decathlon at the University of Tennessee. In my training journal, on the top of the page, I’d write “Did you get better today?” Even if it was a crap workout, there was always something to learn. When people get in a sustainable habit of improving a little bit each day, they can change the world. Thanks for all you do.


  16. well..

    i would have to say that answering the question ‘Are you better than yesterday?’ might lead to an subjective answer based upon temporary mental/emotional state.

    whats the difference between THINKING one is improving and actually improving? how does one really know…


  17. Funny thing. I am currently working on a load of unit tests as well. :)

    First structure your problem. Then apply »divide et imperare«. Very algorithmic approach! :)

    I am using GTD for… anything. The approach there is basically the same. Break down a project and proceed with small, tangible steps.


  18. Hey Tim:

    Thanks for sharing Chad’s insightful excerpt. I’m continually amazed at the power of basic logic and reason – small, persistent steps towards a goal. How simple. Yet, I am reminded quite frequently just how uncommon such commonsense can be – be it with corporate business mandates, political shenanigans, societal reform (e.g. health care), and more. How do you describe or explain such behavior by the masses? Fear? Sloth? Selfishness? I figured I’d ask you since my brain shall surely hemorrhage if I give it much more concentrated thought.

    Being a health/body fanatic such as yourself, I believe this rational model is essential to designing a healthier lifestyle. Measure what’s important, loose the nonsense (easily 80%), and make each day better (be it with nutrition, training, rest/regeneration, etc.). What do you judge to be the first or most important logical step in advising/inspiring someone to design a healthier lifestyle?

    Thanks for another great post, as always!



  19. Nice post, I would imagine it goes well with the idea of doing at least a few ACTIONABLE things on some level of consistency, in which case will add up to some positive results over time.