Define the Program, Run the Program

I realized a simple way to explain how I think about completing tasks the other day.

Define the program, run the program.

When you’re writing software, the only way for something to “get done” is to write some code (a program) that can be run over and over.

Life, coincidentally, is no different.

If there’s some end result that you want—more money, get in better shape, etc.—you need to consider what the program is that will build up to that result. Remove magic or hope from the equation and really think: if I want to get to there what is the program I need to run now?

Want to get in shape? Define a program that allows you to consistently work out and eat right (for example, no matter what, you workout three times a week and eat X number of calories per day, except on Saturdays). Run the program until you get into shape.

Want to make more money? Define a program that allows you to put time into developing a product or service that you think people need and run the program until it exists (for example, every Tuesday night from 7-9pm you’re writing a book, writing songs, or coding some software). Define another program after it exists to market it. Run that program.

Just like writing code, some programs work great the first time, other’s don’t. You have to factor in time to improve or fix the program when and where it’s not working well.

The one factor that’s easy to miss in this is time.

A computer can run a program at an incredibly high speed. Humans are a bit slower. If you can adapt your expectations to say “I’m like a computer but not as fast” then you can start to understand that your program will run just like the computer’s, but at a slower speed.

Define your program, run your program, and be patient.

You’ll get exactly what your program is designed to give you.