productivity and effectiveness
So I started reading a sort of self help book entitled The 4 Hour Workweek. It describes a man’s strategy to shorten the amount of time he spent working without decreasing the amount of things he got done. He primarily used two different economic theories. The first is that 80% of income comes from 20% of the customers (this basic theory varies a lot in terms of numbers and examples), this is called the Pareto principle. The second is that the task’s complexity and effort is based more on the time allotted to do it than the actual task, this is called Parkinson’s Law. I feel like these two theories apply well to ways I can improve myself and how I do things.
The first, the Pareto principle, applies well to me already. I have always said that, for me, programming is all about ‘bursts’. I mean that I get most of my productivity done in a short, focused burst of effort. I can really put myself into a super focused mindset and really produce work, the difficulty of doing this is keeping focused, for various reasons. The main reason is hitting roadblocks, things like a coworker’s mistake stops me from progressing and I must stop and consult them to figure it out or someone runs into an issue with something I wrote and I need to help them resolve my mistake. This breaks up my ‘flow’ and all the effort I took to get that ball rolling is gone and must be re-applied. But also, the largest deterrent in doing this is keeping myself going from the end of one part to another. I may rewrite some code that does A, but once that is done, I do not know, immediately, what to move on to. So I am going to begin planning out my burst periods. I will then allot a set amount of time (for me I am saying 2 hours between the morning stand up and lunch) to accomplish this full set of tasks. (I then have a laundry list of tasks I can work on in the afternoon, but will do so out of a ‘burst’ mindset). The goal is to start accomplishing most of my work in a very efficient and effective period of time. Doing this will allow me to continue using this strategy with tasks at home, like planning out my goals on a train ride to/from work. This would mean less dicking around on the train and I would actually make progress on various projects.
The second, Parkinson’s law, is even more applicable. If someone gives me a single task to do and a whole week to do it, I feel little urgency to get it done sooner, so the tasks expands to fill the available time to do it. Whereas, if I limit the time to something smaller, it will be more urgent and also much simpler, in order for me to meet that deadline. Simple (and slightly relevant) example is planning a wedding. For most wedding plans, people have a year+ to plan the entire thing. So with a whole year, people end up nitpicking the colors of flowers, the seating arrangement of the reception, and all sorts of other small details. Versus, if you only have 4 months to plan a wedding, you end up quickly forgetting or diminishing the importance of such small details and just focus on the important and larger details. This idea can be applied to help simplify various goals that I have and allow for them to be easier accomplished. First, it requires that I start drawing up deadlines for projects, I fear that if I don’t, they will never have the urgency to get finished. Also, doing this along with the previous rule, I can force myself to maximize the use of that focused time. If I keep that 2 hour period as fact and pick out goals that are a generous focus for those 2 hours, I feel like I will end up amplifying that time usage rather than diminishing it (so it wouldn’t really be 80% work in 20% of the time).
So, starting today, I will be setting shortterm deadlines for various subparts of projects. My first (and experimental one) is getting this website open sourced. I have broken down the tasks I want to get done to consider it in a “1.0” state and have it be proper for an open source view. I am setting the goal at a month. I have picked time periods of (at most) a week per task and I will begin breaking those down into smaller, day sized, chunks. This allows me to get the feel if I am making good use of that time or not. Also, setting the time so short, it allows me to eliminate various other optimizations I had thought of, a common form of the perpetually moving target syndrome many projects get. We have this issue at work at lot, and I have begun to speak up about us ending up in it. It basically ends up where we are getting near the end, yet we keep wanting to improve things, eventually pushing back the release. The real need is to set in stone the goal to accomplish and set that as the goal for a decided upon release, then start making a list of improvements. These improvements then become the list of things for the next version, which gets set in stone at the end of the previous deadline and with a new deadline. Wash, Rinse, Repeat
The real hope here, is to eliminate distractions and improve my use of time. Allowing for me to feel more accomplished in the time that I do spend working on things, without lessening the time I spend doing other things. If I spend 8 hours traveling every week and most of it is dicking around because I have no sense of urgency or need, I am very likely to just waste the time neither doing something entirely enjoyable nor entirely productive, the time really becomes a wash. I would be better spending the 15-30 minutes of actual time used in one go and then spending the rest of the time reading, writing, or sleeping. Hopefully, I will be able to eliminate my chance of being distracted and increasing the amount I get done in the time I do work, giving myself more uninhibited free time, along with a greater sense of productivity.