How I Plan to Master My Life (One Pesky Goal at a Time)

Image courtesy of margolove on Flickr

It’s time for me to change how I attack my goals.

Why, you may ask? I have definitely been successful with my primary goal — losing weight. But there are still some pesky lifestyle goals that I cannot seem to get solid footing on:

  • Not eating out during lunch (but everyone is going, and it’s Greg’s birthday, and the boss will be there)
  • Stop buying $4 coffee (but it’s so damn good, and I’m so sleepy, and the barista is sooo hot)
  • Go to bed at a reasonable time (but I’m in the middle of a raid, and I need to catch up on blogs, and Caprica is on the DVR)

I know how to achieve these goals, but I can seem to make it happen. I always seem to lose focus due to the daily grind. And I’m tired of it.

It’s time to make a change how I attack my goals!

I have been ranting on and on about how Agile Software development methodologies have benefited my overall health and fitness mindset. The premise is very simple: focus on action toward your goals rather than over-planning, and set small, incremental goals intended to add up to your long term goal. This is what I have been doing, and still no luck. But I just realized I haven’t tried to incorporate one of my favorite aspects of Agile Development into my new healthy lifestyle — the focus on information radiators.

I first read about information radiators in the book Agile Software Development: The Cooperative Game. An information radiator is a clear and easy to access display of critical information that is used to track progress towards an end goal. The genius of the information radiator is that it provides a clear visualization of how you are doing against your goals. It should be the first thing you see in the morning and the last thing you see at night. Now, I don’t know nuthin ’bout no fancy psychology, but having that constant visualization of progress helps provide immediate focus to what needs to get done.

Aha! An information radiator is what I’ve been missing!

So I decided to try an experiment, and build my own information radiator. I call it my Geek Into Shape Goal Board.

I thought I would take you on the journey with me – building the board, setting goals, and tracking my progress. Hopefully this will give me the clarity and the focus each day to overcome the little unhealthy devil sitting on my shoulder. If it works for me, maybe it will also be what you are looking for. So here we go…

Step 1: Choose your information radiator

I thought about a few ways to do this. I wanted to go cheap, so buying a giant white board like I use at my job was out of the question. I initially planned on just painting an empty wall I had in my bedroom, but the Mrs. just laughed at my face when I brought that idea up to her. So, I decided to go with a nice, simple cork board. I used a standard black frame cork board that I got from Target (here it is on Amazon)

Step 2: Choose your methodology

Since my goals are so focused on day-to-day activities (and since my board was only 22″ wide), I decided to set up daily goals, based around a week-long tracking period. I plan on setting four goals each week. As I achieve each daily goal, I will “mark” that goal as completed by advancing the goal (like a progress bar). At the end of each week, I will assess my progress, possibly modify my goals and/or add new ones, and start fresh for the next week.

Step 3: Design your goal board

Now that you have your information radiator and you have set your methodology, it’s time to get creative and have some fun designing you board. Here is what I did:

Initial Goal Boards Design

With this setup, I gave myself a cool header, and my main progress chart is sort-of like a weekly calendar. I left some space in the middle for (what I consider) the most important piece of the board – my motivation.

Geek into Shape Goal Board With My Motivation

Step 4: Set your goals

The next step to finalizing the Geek Into Shape Goal Board was to set my goals for the week. When I designed my board, I left enough space for 1.5″x2″ post-it notes to track my goals.

Writing down goals for the Geek Into Shape Goal Board

Since I could fit four goals on my board each week, I took the list I mentioned at the top of this post (I promise to go to bed early tonight. I promise to go to bed early tonight. I promise to go to bed early tonight.) and added a fourth goal of working out for 45 minutes or more for 6 out of 7 days during the week. Here is what my final board looks like:

Final Geek Into Shape Goal Board with Goals

Step 5: Place your information radiator

I decided to not place this on the free wall next to my bed, like initially planned. I realized that I normally haven’t even come into consciousness when I mosey past that wall. So, since I am trying really hard to meet these goals this week, I decided to put it somewhere more visible to me:

Placing the Geek Into Shape Goal Board

Step 6: Track your progress

To be continued…

I am so excited to try this new method. It puts these goals that I have set for myself right out in the open. Each morning, my goals and motivation for achieving these goals will be staring me in the face, refocusing my mind, and beating down any urges I might have to sabotage progress.

I’d love to hear what you think. Would a constant visualization of your goals, your progress, and your motivation help you stay focused? Do you like my board (I do)? Please leave a comment with your thoughts!

Fitness Mind Hacks Part 2: How Programming Helped Me Lose Weight and Become Healthy

Code Monkey want a better body. Code Monkey way too fat.

As I mentioned last week, it only took a few key changes to drastically change the way I approached and, more importantly, conquered my fitness goals.  These changes had nothing to do with learning about the the latest fitness and diet trends — I already knew all of those. The changes had nothing to do with joining a gym or buying fancy equipment — I had tried both. No, my problem was all mental, and mostly due to a lack of confidence and a lack of hope. I didn’t believe that I could tackle the monstrous project called “health” because I didn’t have the skills or experience.

Image courtesy of juco on Flickr

Well, all of that changed when I took a new approach to how I thought about fitness and diet and health. Small mental changes, little fitness mind hacks, that helped me relate my fitness journey to other aspects of my life that I was successful at. I would have to say the biggest of these mind-hacks was when I realized that I could treat my fitness related goals like I treat my software development projects.

It amazed me how closely aligned the processes I use every day when I write code or plan my software development project were to the process for losing weight and setting goals. I’ll admit it wasn’t a huge leap to make this correlation, it seems obvious in hindsight, but it was this minor mental mapping — software development to fitness — that kick started my weight loss and kept me delivering on my fitness goals.

Here is exactly how programming and software development helped me lose weight and meet my goals:

1. You need a good development environment

Image courtesy of John Wiseman on Flickr

As every programmer knows, you need a good development environment to get things done. Without the proper environment, you’ll often find yourself limited in your capability to move forward or spinning your wheels trying to get started because of too many options.

Finding the perfect environment is a can be a little bit of a task in itself.  Take the time to look at your options. The environment you choose should easily mold with your personal style, taste,  and experience.  Like choosing a software development environment, you don’t want limit yourself to the status-quo or what the “pros” say you should use when choosing your fitness development environment.

Explore, experiment, and like Goldilocks, find one that is “just right”.

Here is my mini guide for fitness development environments:

  • The minimalist environment (This is the style for all of you vi and gcc’ers): You don’t need a fancy gym membership or exercise equipment to get you where you need to go. You understand that you only need two things in this world to get into shape: you and gravity – and those things are always available.
  • The DIY environment (This is for the “best tool for the job” coders): You realize that there are some great tools that exist to help you meet your goals, so you buy a few weights and some resistance bands and you maybe even splurge on an exercise bike. But with this method, you are not limited or constrained on what you do. You build your own environment based around only the things you need.
  • The virtual environment (This is for you… virtual environmentalists?): Like the DIY environment, you have a hodge-podge of tools at your disposal, but you have an specific environment you are aiming for as a part of your end goals, so you really try to set up your training environment to match.   If you want to be a fighter, you enroll in a martial arts class where you learn critical skills you need or buy a punching bag to hang up in your garage. If you want to be a rock climber, you build find or a training wall.
  • The fully integrated environment (This is for you Eclipse and Visual Studio users): With this method, you commit to a place that offers the kitchen sink when it comes to fitness. I’m talking about a good, ol’ fashion, all-purpose gym.  You need weights – you got ‘em. You want aerobic classes – they offer those too.  You want tanning beds – most of them surprisingly have those as well. Even though you may have to pay a premium for it, you have just about everything you need in one nice, consolidated package.

For me, it was a combination of the all of these environments that got me where I needed to be. The fully integrated environment helped me figure out what was available and mold my training path. The DIY environment helped me supplement the areas that the fully integrated environment lacked. And the DIY environment allowed me to workout wherever I happened to be sitting or standing at the moment.  One, none, or all of these environments might work for you. Take time to try them all and see which gives you the best results.

2. Just get Started

Phot courtesy of ColtahMang on Flickr

The most important thing I have learned in software development is that, sometimes, you just have to get started. You can spend hours researching the “perfect” ab workout or developing a detailed 48-month fitness plan, and never move a muscle. The unfortunate thing is that there is no perfect plan. Like in software development, you can spend all your time trying to figure out the perfect framework, or the best libraries for the job, but sometimes the best way to figure it out is by diving straight in.

Start moving. Do anything. Run. Walk. Pop, lock it, drop it. It doesn’t matter – just do it.  If you need to refine you workout routine later, as you read about optimal methods for your specific goals, you can. But just get moving today.

3. Always be agile

Photo courtesy of Garrettc on Flickr

A while back, I wrote about how to Agile development practices applied to health and fitness. The concept of Agile Development comes with a host of methodologies that keep your development paths clean, quick, and versatile. Here are a few of those methods that I used to drop pounds.

  • Use short iterations for your goals: Of course you have a long term goal (40 pounds, run a marathon, etc.), but the best way to meet your long term goals is to set many short term goals that build up to your long term goal. The time frames should be short and and the goals attainable. For example: If you want to lose 50 pounds in 6 months, set a goal of 8-10 pounds a month and then forget about the big goal. Each month, put all of your focus on the short term goal. Sprint towards that goal as fast as you can.
  • Do daily scrumsEach morning, ask yourself the following questions: What have you done since yesterday? What are you planning to do today? Do you have any problems preventing you from accomplishing your goal?
  • Allow time for reflection: At the end of each sprint, take some time to reflect on the previous month. Did you meet your goal? If you didn’t, why not? Reassess your next month’s goals. Maybe something has changed – a new long term goal or a new long term deadline – that might change your short term goals.

There are so many support groups that have this model built in already. Use them. My favorite is the 28 day challenge on the Nerd Fitness message boards. Each month, you set 3 goals that you are pushed to meet within 28 days. Each day (or week, or never, your choice), you post your progress — what you did the day before, what you plan on doing the following day, how you feel, etc.  At the end of each challenge, you have a week to share and celebrate your results. If you didn’t meet your goal, there is a whole community of people ready to help you work through what you need to change and motivate you for the next challenge.

4. Use Design Patterns

Photo courtesy of Grant MacDonald

As in any field, there are problems common to all software development projects. For these problems, people have built general, reusable design patterns that can be adapted to your specific goals. Keeping a good working knowledge of some of the most common design patterns can save you time during your development. Instead of focusing on a secondary problem, you can just focus on the core business logic.

The same is true for fitness. If you have a specific goal in mind, chances are, someone has had that goal to and met it. If you are lucky, they wrote the method they used down and put it out into the public domain so you can just adapt their plan to you. You might know these as training plans. Here are a few of the fitness design patterns that I have used:

These patterns can give you a big head start towards meeting your goals, but don’t feel you have to follow these plans word for word. Remember we are all different. Use them as a guide, but you will know when it is time to start building your own custom pattern. Remember to write it down and maybe you will have your own pattern that will act as a guide for others.

A few more quick mind hacks

There are a dozen more little hacks I use, most of which are too small to give a deep discussion on, but I thought I would quicklymention a few of them.

  • Always refactor your code - You should frequently reassess your workout routines and try to remove inefficiencies and isolate the things that are working. We are all busy people, if you can get your workouts down to the most efficient components, then you will save time and get more results for your effort.
  • You’ll always benefit from better debug logging – Always keep a record of what you do. When you get to the end of your sprints, you might need to look back to remember what you have done. You need to write down all of your core stats (weight, mileage, pounds lifted, etc.) each day as well as your emotional and physical state. Did you lift more during the week you got more sleep?
  • Set up good regression tests – As you meet goals and set new goals, do forget you go back and test your overall fitness levels. If you successfully ran a 10k and set a then new goal to be a backup dancer for Usher, make sure you don’t lose your ability to run a 10k. At the end of every fitness sprint, you should pick a few things that will test your overall fitness ability. Use your old goals as your regression tests.

Conclusion

Applying good software development practices to my fitness life really helped me feel like I had control over my destiny. I knew all of these processes worked. They have taken me from a white screen to a complex application many times before. Thinking about my fitness goals as just another software project gave me the confidence in myself to complete it. I hope this will help some of you too.

I’m interested in what my fellow software developers think.

  • What processes in your daily life as a code monkey have you applied to your fitness life?
  • What processes can you apply?

Let me know!

Agile Health and Fitness: Part 1 – The Manifesto

Image curtesy of Dashu Pagla

Image courtesy of Dashu Pagla

I was reading a post by Leo Babauta over at Zen Habits about sticking to a meal plan, and I immediately recognized the same patterns and thought processes that I follow at work everyday doing agile software development.  When I was first introduced to the agile frame of mind, it seemed to fit with the way I imagined software was supposed to be developed.  But this article helped me realize how easily agile practices can be applied to our everyday health and fitness.  Instead of building software to meet requirements, we are executing a plan to meet our health and fitness goals.  I thought I would start a series of posts related to this topic, with the first post starting with the basics: the values in the Manifesto for Agile Software Development itself.

1. Individuals and interactions over processes and tools

Since the text above is primarily referring to a team of people and a customer of some sort, I will narrow the scope of the statement to be “Individual and Self-Interaction.”  What this means, is that is is much more important to be honest with yourself when it comes to your own well being.  It the world of health, you are your main customer (wife is a close second).  You have to acknowledge the fact that you are responsible for your destiny, and the more often you interact with yourself (that’s called thinking) about your requirements, goals, and progress, the better chance you will have at meeting your expectations.  This does not mean processes (workout plans and diets) and tools (exercise equipment and nutrition trackers) are not important, but they will only take you as far as you allow them to take you.  So next time your office-mate waves a box of Thin Mints in your face, make sure to do a little self-interaction and say NO!

2. Working software over comprehensive documentation

Well of course we aren’t talking software here, so I will relate working software to your intermediate and end goals and I will relate comprehensive documentation to your exercise and nutrition logs you keep along the way.  I know I have preached the importance of tracking your fitness results in past articles, and I still do; however, the more important thing is making significant progress against your health goals.  If you want to lose 10 pounds, it is much more important to meet that end goal that to track every step along the way.  That being said, I believe that the end goal can be met faster by constant progress updates, which can be obtained by keeping those metrics along the way.

3. Customer collaboration over contract negotiation &
4. Responding to change over following a plan

When applying these rules to health and fitness, it is easier to take the last two statements together.  Earlier, I mentioned that you are your main customer for your own health.  It is critical you are constantly reiterating to yourself what your goals are, what your health requirements are.  You may try to set a goal up front, a contract for your future health.  You may develop a plan to meet those goals, and that is great.  But the more important thing is to allow yourself room to modify your goals and your plan as things change.  In the world of health and fitness, the requirements (goals) don’t change as much as new requirements come in and take priority (baby, work, 6 seasons of Lost).  Always reassess what is important to you and be flexible in your plans to adjust to any changes in goals you might impose on yourself or changes in the environment you are in trying to meet those goals.  On a deeper-dive into the day-to day planning, response to change is a key to meeting the individual milestones to meet you goals.  If you are training for a 5k and mother nature decides to dump two weeks of rain on you, don’t just push off your schedule and miss your “deadlines.”  Go to the gym and hop on a treadmill, go buy some water resistant clothes and water-proof ear-buds and go running in the rain, or just change the workout to something new altogether.  Just be agile.

Final scratches

I know all of this is obvious.  But it is sometimes easy to forget the priorities to meet our goals.  Remember, the priority is to meet the goal, not to do it perfectly to a plan and have every calorie and mile mapped out. Just get out there and do it.

I plan on going into more detail on some of the 12 Principles of agile software in a future post, so stay tuned.