Have you ever been inspired to write a plan for your life, and then months have gone by and nothing has got done? We often focus on what's right in front of us, and our long term goals get left behind. Setting a goal is only part of the process, you must also review the goal and take action.

One problem you may face when setting big goals is that they are difficult to get a grip on when planning. Setting yourself a large target, such as becoming a millionaire, is easy enough, but planning all the steps necessary to achieve it is much, much harder.

Extreme Programming

As a software developer, I'm used to breaking large tasks into smaller chunks, and it seemed like some of the methods used in software development could be used in the field of personal development and goal achievement.

Software can be big and complex, and creating it can be very expensive and risky. There are plenty of methodologies that can be used to create it, but one that has recently caught my attention is eXtreme Programming. Although the name makes it sound like programming whilst leaping out of a plane, it's more about making developers more productive by distilling all of the various tasks into smaller units.

The rules of XP are broken into 4 sections: Planning, Designing, Coding and Testing. Not all of these fit into goal achievement, so I've revised them into more appropriate categories. They are: Defining, Planning, Taking Action and Measuring.

Of all the categories, Taking Action is the most important. Without Action, nothing else will happen. You can plan a goal forever and a day, but unless you actually do something, it'll never happen.


The first stage of any goal is to define the ideal outcome that you want. Without a clear picture of what you want to achieve, you'll struggle to get anywhere at all.

Define the Outcome

This is the process of deciding on the "what". The "how" comes at the planning stage, so concentrate on what is to be achieved and don't worry too much about how it will be achieved.

Goal setting can be a very difficult, but also a very rewarding process. It takes time and patience to understand the best way to set your goals, and there's no "one size fits all" solution. It's best to experiment with different methods to find which style suits you the best. I wrote some tips for goal setting in "goal setting for beginners", which might help at this stage.

Create Visualisations

Once the goal is defined, use the power of visualisations to imagine the goal as already completed. You can use vision boards or picture goal books to help.


There's no escaping the fact that any sufficiently large goal will require a degree of planning in order to achieve it. Planning should follow these rules:

Break Into Iterations

Instead of trying to achieve the goal in one fell swoop, break it into smaller chunks, or "iterations". The advantage of using this approach is that you can quickly react to changes in your circumstances.

You can think of using iterations like creating a sculpture of a person. The first iteration is the rough outline, creating large blocks such as limbs and the head. More detail is then added with each successive iteration, until eventually it is complete. You don't start by carving out the fine detail.

Only Plan One Iteration at a Time

It can be extremely tempting to plan several stages ahead, but you must resist this urge at all costs. You should only plan the current iteration, as planning too far ahead removes the advantages of using the iterative approach.

Have Frequent Releases

Don't squirrel away on a project for years until things are "just right". Get something done and get it out there, and then refine it as time goes on. Taking the "ready, fire, aim" can help to beat procrastination, and will also help you gain valuable feedback as you go. It might turn out that your goal isn't having the desired effect on your life, but by breaking it into small chunks you'll find out much sooner.

You should aim for every chunk to have at least one deliverable. For example, writing a book might have a rough outline as a deliverable, or a single chapter or 10 designs for the layout.

Adopt a "Just In Time" Mindset

Don't add anything before it is required. It can be tempting to spend days working on "laying the foundations", but that time will be wasted if you find out you didn't actually need any of it. For example, if you're starting a new business, don't buy hundreds of business cards or a purchase a monster web server until you actually need them.

Refactor Often and Mercilessly

In software, refactoring is the process of changing your code to make it more readable or better structured without changing the behaviour the same. For goal setting, improve your visualisations and goals as often as you need to. Instead of ripping them down and starting again, build on the foundations.

Be open to change, and don't become attached to how things are. Your goals have got you this far, when they've had their time be prepared to let them go. A good analogy for this from the XP website:

A caterpillar is perfectly designed to eat vast amounts of foliage but he can't find a mate, so he must refactor himself into a butterfly before he is designed to search the sky for others of his own kind.

Taking Action

The most important phase is taking action. Only you can move yourself closer to the completion of your goals, so take action to get there!

Don't Work Alone

Don't feel as if you have to do it all on your own, because you don't. Find a mentor or use a focusing partner to help you reach your goals faster. A focusing partner will help you with your goals by giving encouragement and objective observations, and will also give a sense of accountability.

Review Frequently

A forgotten goal will never be achieved, so review it as frequently as you need too. Ask your mentor or focusing partner to help, so that your goal is cemented into your mind. Put up reminders around your house and office, and use visualisations and affirmations to help you keep the goal in the present.

Don't Optimise Too Soon

This comes from taking the "ready, fire, aim" approach. Don't optimise until the groundwork is laid and you have some form of measurement that you can use to improve your situation. Don't worry about getting everything perfect the first time round. NOTHING is created perfect, and more often than not you'll find new ways to improve things once you've started taking action.

Don't Work Overtime

If a task is taking a lot longer than expected, don't give in to the temptation of putting in more hours to sort it out. Instead, use your next planning session to modify the project accordingly. Working overtime will suck out your motivation and make you miserable, and although it sounds logical that working longer will help you get more done, it can (and does) have the opposite effect.

As the saying goes, "work smarter, not harder". Burning yourself out will achieve nothing.


Keeping some form of measurement is a simple way of increasing your productivity. When you measure your progress, you can see areas for improvement and work on them accordingly.

All Goals Have Tests

You should be able to know at any point in time if a goal has been achieved or not. Be specific when setting your goals, and don't leave them open to interpretation.

Measure Your Success

How you do this is up to you. You might want to use a progress log, or something else. Journal often, and look for areas where you can refactor or optimise. This is really down to individual preference, and you may wish to track different things for different goals.

Measuring anything will help you improve it, and when you have frequent planning sessions you're able to put these new things into effect quickly.

Be Flexible

The most important part of "agile achievement" is to be flexible. It's a fact of life that circumstances will change, and this will cause rigid goals to break. Be flexible and open to change, and don't get attached to any particular way of doing things.