Using Agile Principles to Iterate on Your Life
I used to be one of those lucky people who could eat anything they wanted and not gain weight. Then I entered my 40s. As the next few years progressed, the number on my scale went up. Finally, I determined that I didn’t like what I was seeing in the mirror, and I decided to do something about it.
I knew that the changes I was making to my diet and exercise problem would need to be permanent ones, so I set out to make small changes and adjust those changes as I observed my results. For example, I noticed that I burned more fat through weightlifting than I did through cardio exercises. Since I also enjoyed weightlifting more, I was more motivated to improve. So I made a change from doing two days of weightlifting and three days of cardio to doing four days of weightlifting and one day of cardio.
As I was making these changes, along with making changes to my diet, it occurred to me: I was employing principles I had learned while working on an Agile software development team! I was effectively iterating on my life. From this experience, I saw that you can improve anything in your life by treating it as you would a software project.
I’m going to break down the process of software iteration while also showing how it’s connected to things in your life outside of your development career.
Determine Your Minimum Viable Product
Software projects usually begin with a minimum viable product (MVP): the state your project has reached when you feel comfortable releasing it to customers. You know you would like to have more features, but releasing the product to customers as soon as possible will enable you to get feedback faster and add more features that you know the customer wants.
Similarly, when you want to accomplish something in your life, you can set an MVP. In this case, your MVP is an attainable goal; one that you can accomplish in a few months and feel good about before deciding how to progress further. My MVP was to lose 10 pounds. Your goal might be to learn a new programming language or save $1,000. Without an MVP in software or in life, you run the risk of merely having wishes instead of having actionable goals.
Select Your Tools
Every good software development team uses tools such as Jira or Trello to keep track of their progress. It’s easy to see how your project is progressing when there is a chart that displays the status of each task.
Choosing tools to support your goals can help you stay organized and focused. After I decided to lose weight, I downloaded a calorie-tracking app and a weight-tracking app. If your goal is to save $1,000, you might want to download an app to track your spending.
Create Small Tasks
When an Agile team plans their sprint, they are careful not to take on too much. They break down their development tasks into smaller tasks if they are too large, and they think about how many tasks they can accomplish in the time allotted for the sprint.
Similarly, you should set some small tasks that will move you forward toward your goal without being overwhelmed. The first week of my weight-loss project, I focused solely on tracking my calories. I didn’t think about changing my eating patterns at all; I was gathering data for future sprints. If your goal is to cut your spending, you might begin simply by tracking your spending for a period of time.
Have a Retrospective and Plan Your Next Sprint
In a software development project, the team meets at the end of each sprint to evaluate how the sprint went and discuss process improvements. This is also a good practice for our own goals.
After I had tracked my calories for a week, I looked at my daily eating patterns and thought about what small change I could make. I realized that I could cut back on my daily calorie consumption by eating smaller amounts of bread and pasta, so I decided to implement this change for my next sprint.
If you tracked your spending for a week, you might discover that you were spending more than you expected at your local coffee shop, and you might decide to start getting a smaller coffee and skipping the purchase of a croissant.
Continue to Iterate With Each Sprint
With each sprint, a development team makes decisions about what they should work on next. They may find that it’s necessary to make adjustments to their original MVP because of beta customer feedback or because of technological factors they have discovered in previous sprints.
Similarly, I made adjustments to my eating plan as I went along. When my weight loss slowed a bit, I made some small changes to cut my fat consumption, which resulted in more weight loss. If you are trying to save money, you may discover that going to a bar every Friday night results in splurges, so you might choose to invite friends to your place instead.
Don’t Quit When You Have Setbacks
Can you imagine a software team saying to themselves, “Well, we didn’t meet our development goals for this sprint, so let’s just abandon the whole project”? That would be silly! Setbacks and failures are an opportunity for the team to learn and make changes to their process or plans.
It’s just as silly for you to give up when you hit a setback. There were times when I ate too much and gained a couple of pounds. I didn’t let this bother me; I simply started eating the right amount of healthy food again, and the pounds came back off.
If you splurge on a fancy suit or a pair of designer shoes, completely blowing your budget, you can either return your purchase, or find new ways to economize to make up for the expense.
You Are Never Done
When a software team releases their MVP, they don’t decide to close up shop; they listen to customer feedback and schedule changes and new features. Software projects are never done, because there are always ways that the project can be improved. Iteration literally means “repetition of a process.” Each time you iterate on software, you make it more useful than it was before. In the same way, the changes that you make in your life need to be iterative, because we should always be growing as human beings.
I have lost a total of 13 pounds since I started my weight-loss project. However, if I declared myself “done” and went back to my old eating habits, my weight would creep right back up to where it was when I started. So I know that I need to keep making good food choices and continue to adjust my diet as I go through life.
If you achieve your goal of saving $1,000, this does not mean you will never save again. You can set a new goal to save even more or to pay off debt.
One of my favorite quotes is by Jim Watkins: “A river cuts through rock, not because of its power, but because of its persistence.” You are already being persistent with your software projects through regular iteration. By making a decision to consistently iterate in other areas of your life, you can craft a fabulous life with a series of small changes, just as you’d do with any software development project.