Friday, November 23, 2012

All Productivity Systems Are The Same

I've been reading here and there about productivity both on the web and on paper. A lot of info out there tend to either:
  • list very specific things to increase productivity (e.g. don't check your email every 10 seconds)
  • list less specific things to increase productivity (e.g. find a time you can focus and work during that time)

Maybe I haven't looked around enough, but that's kind of the pattern I noticed.

The way I see it, at the end, it all boils down to 4 things:
  1. increase available time
  2. do what's important
  3. do it efficiently
  4. do it sustainably
It's up to you to know how to achieve these 4 things in your specific circumstance, and the tips you find online or in books can serve very well as brainstorming tools.

Several months ago, I mentioned what agile was. Now I'm going to take a step back and look at the more generic view of productivity and how several development techniques, as well as day-to-day examples, fall into this framework.

(1) Increasing Time

A person given 2 hours will be able to watch more episodes of Family Guy than a person given 20 minutes. The example is contrived but I hope you wouldn't argue that more time means a higher probability of getting more work done.

The main things people do to increase available time is automating or delegating tasks and reducing "waste".
  • Automated testing saves hours of manual testing.
  • Delegating tasks to developers frees up time for the lead developer to work on important issues.
  • Having an assistant reduces time needed to keep track of things and context switching.
  • Disconnecting cable TV saves many hours a day.

(2) Doing what's important

There's not much point in working on something that gives little or no value.

The main things people do is prioritizing. Now prioritizing isn't the easiest thing to do. Priorities shift a lot and sometimes only somebody else can answer what is important. But there are general fixes. Priority shifts can be fixed by frequent reflection. In the software world, we call this tight feedback loops. As for unknown priorities, you just ask who knows.

Examples of prioritizing:
  • Asking clients what's the most important feature they want when they can't have all.
  • Finishing presentation slide contents before making them look beautiful.
  • Fixing bugs found in unit tests instead of waiting for it to reach production.
  • Have daily meetings and re-prioritize issues if something comes up.

(3) Doing it efficiently

Once you know what to do, you learn how to do it efficiently.

The main things people do here is improving skills, leveraging tools, and being healthy.
  • Use IDEs for code editing.
  • Learn to factor code well.
  • Learn to set your favorite channel instead of switching channels one by one.
  • Learn how to use email templates.
  • Have enough sleep and eat good breakfast. Vitamins also stimulate the brain.

(4) Doing it sustainably

All of the above can be accomplished but for how long? You need to keep yourself motivated.

This has more science to it than I originally thought. It turns out that our brains are programmed to work in a certain way. There's the emotion part and the logical part. The emotion part favors immediate and positive results. It doesn't care for long term goals. And most importantly in the long run, the emotion part almost always wins. That's why we hit snooze when we know we should wake up and work. And that's why we can force ourselves to wake up early but not for too long.

If you are a human, your brain works this way. No exception (unless you're not a human). So take advantage of how your brain works.

An effective way of keeping yourself motivated is to keep enticing yourself with small wins. They are easy to achieve, and you feel good about it right away. A lot of small wins snowball into big wins and that keeps you motivated further.

Examples of motivation techniques:
  • Daily to-do lists instead of monthly ones.
  • Working on small and easy tasks when stuck on a more complex one.
  • Start working out 5 minutes a day instead of an hour a week.

How I got started

I'm not a productivity expert. This is just information I deduced from reading and experience. But so far, what has worked for me is asking myself these questions everyday and tweak my process based on what works well and what doesn't.

The most important thing was I started small. I listed something that I could finish in 10 minutes and I got it done. The next day, I would add a little more. I accomplished something small and let it snowball.

It all started from there. And now I've been able to manage much more than before. A LOT more than before.

Maybe it will work for you too.

No comments:

Post a Comment