A little over a year ago, I weighed about 80 pounds more than I do today. Today, I am healthy, strong, energetic, happy, and more confident. Losing the weight took a lot of work, but that wasn’t really the goal, and it’s certainly not the end, either. The real motivation was to live healthier and be happier, and the real goal was (and is) always changing. To do this, I had to put lots of small choices into context: will this make me happier and healthier? Lots of small choices and small steps got me closer to my next, small goal. This, I realized, is a lot like how we approach “Big Projects” or “Big Goals” at Highgroove.
I didn’t realize at the time that I was making progress towards these “Big Goals” through many smaller, incremental choices. I’ve made plenty of big goals that, true to form, failed miserably: New Years Resolutions and major epiphanies for life change often fell flat, crushing my will and dashing my confidence.
Making big changes all at one time is dangerous: there’s plenty of opportunity to rush, screw up, and jeopardize the entire process with carelessness or lack of foresight – or just get too overwhelmed with enormousness of the end result. The more complicated or larger a task, the harder it is to be confident that what you’re doing is the right step and will be executed correctly.
Here are some tips I’ve found (with an emphasis on software development) for making Big Goals manageable and attainable:
break up a big problem into many smaller problems: each with a tangible goal and a positive impact
address problem points first: fix unstable, untested, critical, or problematic functionality and features first
measure the effects of each change
constantly reevaluate your progress and prioritize the next important step
Our agile development process often produces non-permanent code. Requirements and specs are constantly churning based on business needs, and soon enough growth can begin to require changes to logic or infrastructure. We have to always pay attention to the direction we should be heading to ensure a successful product, and sometimes that requires going backwards a little bit: but only when it’s healthy and beneficial in the long-term.
Being agile through big changes involves ensuring we have sufficiently tested each piece of the large whole. This may mean things like, testing the live site in a staging environment to get outside users (project managers, primarily) using and ultimately accepting stories.
In work, or in life, we always have to focus on small problems: bite off too much and you’ll choke.
After just one year, my life has changed drastically. Losing the weight wasn’t the ultimate goal, and I never would’ve gotten here if it was. The “goal” was to always be better, one step at a time. It was easy when the goals were always within sight and tangible.
Image License: Attribution, Noncommercial, No Derivative Works, by anthony_goto