First of all, I am quite sorry about not posting anything for the past few weeks. I was occupied by school and left for San Fransisco for my spring break. Fortunately, because of that trip, I had a great topic to write about today. When I was on the plane back home, I kept thinking about all the stuff I have to in the coming few days: finishing 3 school deadlines, signing a new contract with my employer, following up on other side projects, and writing this very blog no less!
Now it’s Sunday about noon, and I feel surprising good about handling these tasks, and same for the coming week. So I want to talk about how I manages this mess in the past 4 days, and hopefully you can learn something from it.
This is, in my opinion, what makes the most difference between success and failure. When under a lot of stress from many sides in life, we are prone to want to start away, clearing that pile of work as soon as possible. Despite out best wishes, this would actually make things slower.
My feeling is, when you are just “going in”, usually it is with little thought about how long the task will take, what problems could occur and where you can potentially find answers, and sometimes even the fact that you can even start that task because someone else might be blocking you.
You may say: Man that’s a lot of thinking instead of doing. That’s true, but I am positive one would happy that they did all of this before starting the task. Think of it this way. You have to drive to a location, possibly in a hurry. You could just grab your keys and rush to the car and traffic, but I would check the traffic and see which way is fastest, if there’s enough gas in the car, and if not where can I get some. Think about how long this takes, compared to the time you will spend if your car runs out of gas in the middle of the way.
In my example, I spent basically an entire morning mapping out all my tasks, breaking them down to small stages, and writing them down and sticking them to my monitor.
There is something in planning that you have to pay extra effort to: Breaking things down. As a software engineer, I am sure you know the power of modularisation. Taking care of small problems and combining them later is always better than trying to take a huge problem head on. For example, when I am breaking down a task, I would do some research and think about what the little pieces are, how they combined later to work the entire thing, and write those pieces down below the task and do them one by one.
My list for the past few days. (The right one is mashed out due to client privacy)
Last but not least, always remember to leave some space in your plan, since you are very likely to have to re-plan it later.
Quite a fancy phase, but the idea is quite simple: only focus on one thing at a time. In the past, I had been constantly thrown off when I looked at my TODOs and saw dozens of things to clear. Honestly this is quite natural, I was under a lot of stress, but especially in that situation you want to focus on one thing more, because you have no time for mess up, even for just one little task.
Personally I believe a balance has to be reached between quality and quantity, but I lean slightly towards quality. I would sacrifice some quality of my code so that I can ship on time, but never so much that I wouldn’t want me name on that code.
These are just a few things that work for me, but I hope you can draw something from them and be more productive in work, and in term, happier in life.
As always, if you have something to differ, or you want to say a bit more about the topic, I would appreciate your comment. Have a nice week, and I will see you next week.