How to set goals and plan your project

How to set goals and plan your project

in 6 easy steps! (and 1 realistic)

Title picture by IA SB on Unsplash

Have you ever written an ideal plan for it to get smashed into pieces by reality? Oh, I imagine you did. Any "perfect plan", be it new year's funny resolutions or a step-by-step meticulous project outline, it always meets the final boss - Life. Reality doesn't care about the deadlines. Reality always wins, proving that the plan wasn't perfect to begin with. Perfection is unattainable, after all. Improvement, however...

How to make a Better plan?

These suggestions work for me. Maybe they'll work for you too!

volodymyr-hryshchenko-KZocXyI3kRo-unsplash.jpeg

Photo by Volodymyr Hryshchenko on Unsplash

  1. Take a look at the scope of your project. How much do you actually have to do in this designated period? Don't take anything extra on the way. Focusing on one thing usually is more human-brain friendly.

  2. Write a plan for ideal world, ideal you. Imagine you're a genius machine and everything will go smoothly. Put this on paper. Feel it out, "ah, what a go-getter I am, I did it!"

  3. Tear you perfect plan to pieces. Assess the risks - try to paint the pessimistic picture. What if something goes wrong? (Spoiler alert - it definitely will). Don't go over the top though, try to stay close to reality. It's very unlikely that a meteor will strike unexpectedly. Remembering what went down previous time is usually a good idea.

  4. Make it as actionable as possible. Now with the potential casualties in mind, break the perfect plan's steps into smaller ones. Sometimes trying to estimate how much time each tiny step would take can make you note early that you're not being specific with your expectations.

  5. Make buffer room for the unexpected. Multiplying the estimated time by two is a great go-to strategy.

  6. Write the "real" plan. Reassess the steps. If at this point your ideal-world-plan and readjusted one are identical, something is off, so take a closer look! If there's not enough time to do everything before the deadline, maybe turn down a task or two.

But how do you follow up on the plan?

You may ask: alright, what now? I just follow my plan and succeed, that easy?

Yes and no. In this game there are 3 main demons on your way to deliver:

  • Unrealistic expectations
  • Uneven workload
  • Unexpected obstacles

We have now a sketch on how to tackle them, but it doesn't mean that we've defeated them. The plan is most effective about the first two - that's what we did, we made our expectations more realistic and workload more even by breaking it down. It's way easier to work your to-do list after you turned the vertical goal (1. Build the airplane.) into horizontal tasks (1. Get the supplies for the draft. 2. Draft left wing. ...).

The third demon though is a tough one. Unexpected obstacles are inevitable. And the buffer room I mentioned in step 5 can still be not enough.

What I learnt during the first half of my internship.

It's borderline impossible to plan for something completely new. I have never done this job before so how well could I estimate the amount of time necessary to complete the project? I did my best - a very optimistic, in hindsight - timeline. One of the first tasks was to familiarise with the existing API, I thought "pf, it's easy, I've already done the first contribution when I applied for the project, I'm basically done with this task". So I designated one day for it. And added one more, just to be safe.

Little did I know how much suffering awaits me with setting up my dev environment. I skipped some failing tests when I made the said first contribution. And now this problems needed to be solved, because I had to deal with the part of code that was failing. It took me around one week, and it seemed to be a Sisyphus's work - I fixed one module, the other one failed, and it continued and continued...

Of course I had to modify my timeline. My plan failed in this particular point, because I never had experience setting up an environment. Furthermore my packages behaved in strange ways because of my OS - some components simply work better on other system software.

So I've come to a conclusion that there's only one way to make it work.

Reassess the plan regularly and adjust.

ken-suarez-4IxPVkFGJGI-unsplash.jpeg Photo by Ken Suarez on Unsplash

Sorry, it's not as self-help easy answer style of advice. But iteration and flexibility prove to be the best way. Stay reasonable about adjusting of course, you shouldn't kill your ambition into a piece-of-cake goal! As wise people of the internet say, " 70% done is better than nothing".

Disclaimer: this isn't one size fits all solution. It would work best when you manage your own project and can change it on the way. In the situation when you got a sturdy deadline from a boss the initial planning is very important, and it should be even more pessimistic.

Cheers