Pretty image
Daniel gets a jump on his January diet with an Agile approach.

Every once in a while I catch myself doing things just because it’s “that time of the year.” I put together a summer reading list in June, think about what my wife should plant in our garden in April, and in turn she prepares my New Year’s resolutions in time for the first of the year.

I reserve the time between Thanksgiving and New Year’s Day for indulging in unhealthy snacks eaten between overly large meals. This five weeks of unhealthy conditioning gets me in shape for the start of my yearly diet in January. It also helps set me up for certain failure.

That’s why I’m starting my diet now.

I know that’s just crazy. No one starts their diet now. You wait until New Year’s Day. No, wait a minute, I’ve got plans for New Year’s Day, I’ll start on the second. Then again, what day of the week is that. You can’t just start a diet any old day—you have to wait until Monday. If you’re going on a diet you need time to eat the foods you’re going to be giving up.

This is not that sort of diet. That sort of diet is a Waterfall diet. That’s the diet with big up-front planning and a delivery date. That’s the diet where you need to lose a certain number of pounds by your next class reunion, or by summer, or before your birthday. That’s the diet that tends to fail.

It’s funny. We know this from our experience with software projects by now and yet we haven’t really moved the things we’re trying to accomplish in our lives from Waterfall to Agile.

In an Agile diet, we have small, achievable goals. These are user stories that we can test to see whether or not we did them. They must be tasks we can totally control. In most diets you set goals based on how much weight you want to lose this week or month. You can’t directly affect that. That’s not a task you will set in our Agile diet. You’ll set a task such as “I will eat oatmeal for breakfast every day this week.” Success or failure with this task is completely within your grasp. You can measure how you did.

You still may be skeptical about starting a diet at this time of year. You don’t want to give up all of the holiday parties and feasts. Don’t worry. You won’t be. We’re going to start out slow. We’re going to take little steps, and when January first comes we’ll just keep going, tweaking little by little as we go.

Last month PragProWriMo was a great success. Many of you spent the month writing eighty pages of a non-fiction book. I used the Prag Life blog to provide daily tips and reminders. I didn’t nag. I’m not going to nag you every day about your diet, either. Each week I’ll introduce our goals for the week and invite you to comment on how things are going for you.

We’ll begin the Agile diet with the simplest but most important of goals: log what you eat. Write down everything you put in your mouth. This first week, I am not asking you to eat less or even to change what you are eating. Just write it down.

How’s that for a diet?

The second week we’ll start to ask “do I want to eat this” before we eat anything. If the answer is “yes,” then eat it.

Simple, small, measurable steps. Steps that you can take and practices you can continue forever. You’re not eating something unusual or giving up all of the foods you love. You won’t lose weight as quickly as you might on a more traditional diet, but you’re also more likely to stay on it.

I’m going to try to lose some weight on my diet but there are plenty of other kinds of diets. I’ve started diets where I’ve tried to eat “closer to the ground.” I won’t buy strawberries in December because they don’t grow near me in December. I try to support local farmers and think about where my food comes from. I’ve started diets where I notice just how much coffee and pop (depending on your part of the country you may call this “soda” or a “soft drink”) I’m drinking. Anything that Kimmy-the-wonderwife’s doctor told her not to drink during pregnancy is something we probably should drink less of.

In fact, let’s broaden diet a bit more to include physical activity. I could resolve to walk the dog twice a day or to work my way up to jogging two miles.

Whatever I decide to do, it must be something I can resolve to do for the next several years if not the rest of my life. I’m sure you could devise a diet based on eating nothing but yogurt and hot dogs, but you couldn’t stay on it for very long. Don’t start any diet you can’t foresee yourself staying on for at least half a year.

You can even wait until Monday to start, but I’d really like you to stop somewhere today and pick up a small notepad you can carry with you, and start writing down everything you eat. You don’t even need to wait until morning. You can start right now. Join us at praglife.com.

Daniel is the editor for the new series of Mac Developer titles for the Pragmatic Programmers. He writes feature articles for Apple’s ADC web site and is a regular contributor to Mac Devcenter. He has presented at Apple’s Worldwide Developer Conference, MacWorld, MacHack, and other Mac developer conferences. Daniel has produced podcasts for Apple featuring the work of developers and scientists working on the platform. He has coauthored books on Apple’s Bonjour technology as well as on Java Programming and using Extreme Programming in Software Engineering classes.