User Avatar

Tim Urian

Learning

4y ago

Writing about programming and learning.

While watching programming videos behind the dumpster during my lunch break at Trader Joe's I realized I had a problem:

Finishing projects is hard and time consuming.

When I was skilling up to become a software engineer I mainly used the Udacity platform. The best part of these courses was open ended projects with feedback.

However, I quickly learned that self-paced projects can balloon, both in time and complexity.

I find there are two strategies that are integral to taking these projects to completion:

Be willing to cut scope at any moment

"When you're 90% done you're 50% of the way there" is true for many projects.

The questions you have to ask yourself constantly are:

  • Is this enough?

  • Will I learn significantly more by doing more?

"Enough" is contextual, and depends on your goals, but I have often found myself going above and beyond for no extra reward when I had already gotten the experience I needed from the project.

The fastest way to finish is to ship what you've already got.

The right kind of to-do list is a project plan

I squeezed in much of my project work on the bus and on the weekend. I didn't have the time 'get in the groove.'

To make the most of your time you need a plan that gets you from start to finish. It must have bite-sized tasks, and capture where you left off.

A task has the right size if you can complete it in 30 minutes or less. It is motivating and efficient to move forward in smaller increments.

Your project plan should be constantly updated so that you know exactly what to do when you pick up this work again, taking needless decision-making out of the equation.