Too many meetings
I've been frustrated at work lately because it seems like I'm in meetings all day long and I don't have any time to write code.
They're not always "meetings". Sometimes they're interviews, or debriefings, or planning sessions, or brainstorming sessions, or I'm giving presentations, or moderating discussions, or answering people's questions, etc. etc. etc.
And it's not literally "all day"; I have chunks of time in between these things. But a half-hour chunk of time isn't very useful for writing code; it takes me that almost long just to get back into the groove, read the code, remember what I'm doing, etc. If someone then comes along and starts a conversation with me about design stuff, I lose my place and I have to get back into it.
It all means that I spend more of my work time talking to people about ideas than I do writing code. Talking to people about ideas is fun, and it's necessary to what we do, and it's productive, but that code still needs to get written somehow.
I used to solve this problem by working late. After 5:30pm or so I am usually left alone to write code, so I got some of my best work done in the evenings. But I'm married now, and I need to be home for dinner each night, so I can't just work as late as I want.
It's frustrating. I'm actually writing code at home this weekend, because there's code I need done by Tuesday which I didn't have time to write during the week. How did work become a place where I don't have time to work? That seems so wrong.
Is my job to generate ideas, with software as a by-product? Or is my job to generate usable software products, with ideas as a by-product?
As anybody who works in a creative field can tell you, ideas are cheap. We've all got way more ideas than we could possibly have time to work on in our lives. An idea helps nobody unless someone puts in that 99% perspiration to turn it into something usable.
The Five Demons Of Procrastination
I procrastinate a lot. I want to procrastinate less.
Even when there's something I really want to do, like on weekends when I plan to get a comic page done, or write blog posts or hack on a programming project (cough Toybox cough) I often find myself mindlessly reading web pages for hours at a time. And I wonder, "Why the heck did I just waste my day reading stuff I don't care about?"
Various people have told me that a certain amount of down-time per week is inevitable, and I shouldn't begrudge myself the chance to rest my mind by doing something mindless. I don't think that theory's true, though. There are some days and weeks when I've procrastinated vastly more than other times, so there must be something at work besides just a need for mindless downtime. (Besides, shouldn't my mind be resting while I'm asleep?)
I used to think that procrastination was just a sign of weak will power and I needed to overcome it by pushing myself harder. But that theory's not helpful either; trying to push myself harder by mentally berating myself never works. It just makes me feel crummy, and when I feel crummy I procrastinate more.
But here's something that has actually helped: Breaking down and understanding the reason for the procrastination. I've realized that different bouts of procrastination happen for different reasons. And the key to defeating it is to recognize which kind of procrastination I'm falling prey to.
There are five kinds that I've figured out so far.
1. There's something else I really want to do which is distracting me. For example, maybe I really want to play Starcraft, so I'm thinking about it constantly until I can play it. Or replace "play Starcraft" with doing whatever I want to be doing instead of working.
So thinking about Starcraft is distracting me from working. But I'm telling myself that I can't actually play Starcraft because I have this work I need to get done instead. But I can't focus on the work. So my brain, able neither to work nor to play Starcraft, gets stuck. And when my brain gets stuck it tends to collapse into the lowest possible energy state - default to doing the most mindless thing possible. This usually means aimless websurfing while pretending to work. I tell myself that at least I'm not giving in to Starcraft... but I'm not doing anything useful, either.
Solution: Carve out a chunk of time to play Starcraft. Pick a start time and work until then, then play Starcraft (or whatever) even if my work isn't done.
Having a known stop time to my work session really helps me get work done because it makes the work feel limited, and gives me something to look forward to. If I say "I'm gonna play Starcraft after this is done" then my brain goes "Ugh, I'm going to be working all day, blah, it doesn't matter if I take it slow; let's go check our email again."
But if I set myself a stop time -- "I'm gonna work until 6 and then play Starcraft" -- then my brain goes "Cool, let's see how much I can get done by 6" and working becomes easy.
2. There's too many different things that I feel like I should be doing. I get overwhelmed choosing between them. I need to do X, but oh yeah before I can do X I need to do Y, but maybe it's more important to do Z first? My head starts spinning and I fall into the lowest energy state (aimless websurfing) to avoid making a decision.
Solution: First, realize what's happening. Then, list all the tasks out to make sure I'm not forgetting any and, more importantly, to offload them all from my brain so I can have a clear mind. Take a deep breath. Then tell myself it doesn't matter which one I do first as long as I do one; pick the one with the soonest due-date, or even pick one randomly if there's nothing else to go by.
Once I've picked a task, if I can pretend that's the only thing I need to do, then getting it done is usually pretty easy.
3. The task that I'm trying to do is not defined. I'm telling myself "I gotta X the Y, I gotta X the Y"... and I end up procrastinating not because I'm lacking willpower (though it often feels like I'm lacking willpower) but because I don't really know what X the Y means; it's actually something really vague, or something I don't know how to get started. If I examined the task clearly, I would realize this immediately, but my brain has a way of not examining the task clearly. Instead it's like "Oh you need to have more willpower" (not helpful) or it's like "Let's do some research by reading web pages about X or Y" and before I know it my brain has tricked me into aimless websurfing again.
A good example is if I'm trying to write something, but I haven't actually decided what I'm going to cover, who the target audience is, or what my goal is in writing the thing at all.
Solution: Break the problem down into really small steps. In the process of doing this I'll either produce a list of tasks which are individually so small and easy that it's actually fun to cross them off the list; OR I will discover that I didn't really understand the main task in the first place.
If it turns out I don't understand the task, then the solution is to find somebody to talk to about it; either go talk to the person I'm supposed to be doing the work for, or to someone who has done something similar, admit I'm stuck, and ask for advice and/or clarification. Often by doing this I will find out that my original understanding of the problem was all wrong and I've been banging my head against the wall for nothing; what I should do is often something totally different and much easier than I thought.
The longer I've been procrastinating about something the harder it is to admit I'm stuck and ask for help, but the worse the consequences get for not doing so. I've learned to recognize this situation early and ask for help as soon as I notice that I'm not making any progress.
4. I'm making a mountain out of a molehill. The actual task is something trivial, but I've mythologized it into something big and scary which is making me want to avoid doing it. In the meantime, I feel like this task is top priority so I'd better not do anything else until it's done!... which means I end up doing nothing (i.e. aimless websurfing).
This happens a lot to me with writing important letters or making important phone calls to people I don't know at all or who I barely know. I worry about saying just the right thing, and I often blow it way out of proportion in my mind until just sitting down and writing the thing seems totally terrifying.
Solution: One thing that seems to help is setting myself a time limit appropriate to how long the task should actually take, i.e. 5 or 10 minutes. After 5 or 10 mintues is up, I move on! Either it's done, or I have a better understanding of why the task is not actually simple. (Or I didn't do anything in those 10 minutes... which means I try again later. At least I'm not spending all day on it.)
For the letter writing thing, it also helps if I can write out just the facts first and then worry about the best way to phrase them. This is a lot like breaking down a complex problem into simpler tasks: Once I've broken down what I want to say, deciding how to say it is easy.
5. It's something that I truly don't want to do. In which case, why am I even trying to do it? Did I fool myself into thinking I wanted to do it, or did I agree to it because I thought somebody else wanted me to do it?
Solution: The trick here is to distinguish between stuff that's actually important and stuff that's pointless or meanial. Realistically, what are the consequences of not doing it? Can I just back out of doing it, apologize, and move on? Can I find somebody else to delegate it to?
If I decide to do it after all, then I can focus on the benefits of having it done, or at least look forward to the feeling of relief that I'll get when it's over.
So yeah. That's it. There's no one-size-fits-all solution for procrastination, and doing things that take a lot of work still requires doing a lot of work no matter how you slice it. But I feel like now (at the age of 30) I've finally got a handle on the tricks my brain plays on me to avoid working, and I have some idea how to defeat each one. (Wish I had figured this out back in college!)
Learning to say "No"
Between the Sao Paulo Campus Party, college recruiting at Brown, Champaign/Urbana, and MIT, User Research Friday, the CHI conference last April, the Mozilla summit in July, the Hackers conference in November, I've been spending a lot of time flying places to give talks over the last year.
It's very flattering that so many people are interested in listening to me give talks, but it's exhausting. It takes away from my precious Sushu-snuggling time as well as my code-writing, comic-drawing, music-making, and role-playing time.
Add to that summer travel abroad with Sushu, Anime Central to see my college friends, and trips back to Illinois for Christmas, Halloween, Thanksgiving, Mom's birthday, Aleksa's birthday... it averages out to a couple of trips a month. I'm getting really, really sick of the insides of airports and airplanes.
I feel continuously behind at work; I'm not getting stuff done on Test Pilot nearly fast enough because of all the interruptions and distractions to my work, which are largely because I have been accepting so many additional responsibilities on top of Test Pilot. But Test Pilot now has 2 million users and only one developer (me). So it's not fair to those users for that one developer to be splitting his work time with other things.
My problem is that every time somebody offers me an opportunity to go somewhere cool and do something, my reaction is "Sure! That sounds neat! Why not?" But that's because I'm considering it in isolation from everything else I have to do. In isolation, it's a great idea, but in aggregate it's taking away from the more important things in my life.
This month was the last straw. Sure I want to go to Brazil! Sure I want to go to MIT! But I didn't realize how much it was going to suck to do them less than a week apart. I seriously overcomitted myself this month and I feel ragged. I just want to go home.
So I hereby resolve to say "no" to taking on any additional work responsibilities, especially ones that require travel, at least until I'm completely caught up on all my core activities.
Motivation and de-motivation
Pep talk from the CEO about how great we're doing and how we're all such lovely hardworking smart people and our product is amazing and everybody loves us and we will definitely succeed beyond our wildest dreams: Totally demotivating. It just sounds phony; it makes me wonder what bad news he's hiding, and why he's wasting our time talking without saying anything. Makes me want to check my email and then take a nap.
Talk from the lead UI designer about all the things that Firefox does wrong, all the things about it that suck, oh my god we've known for years that our download manager interface sucks why haven't we fixed it yet: Totally motivating! Makes me want to roll up my sleeves (metaphorically speaking, like all the programmers here I wear t-shirts) and fix stuff. Makes me want to try harder. Reminds me why I'm here. After all, if Firefox was perfect we could all go home, right?
Mozilla has this weird split-personality thing sometimes:
There's the global open-source volunteer community who want to do what they believe is right for the web, whether it's popular or not. They joined Mozilla because it's open-source and that means a lot to them. They care deeply about privacy, free speech, and arcane points of copyright law. They stay up nights worrying about bad SSL certificates and whether every last corner of the CSS 3 standard is implemented correctly. Supporting a patent-encumbered video codec is like a moral offense to these guys. Call this side the hackers: they can be zealous and grognardy but I love them.
On the other hand, there's the silicon valley people. We've been importing a lot of them over the last couple of years, sometimes hiring them directly into upper management positions. The silicon valley people are the ones who worry about our market share, our revenue, about competing with Chrome, about whether leading newspaper tech-column writers gave Firefox 4 a thumbs-up, about having a presence on smart phones, about Twitter and Facebook integration, and about having a slick and attractive interface.
Now I give silicon valley types a hard time on this blog (especially when I make fun of their buzzwords) but Mozilla needs them. It's no good being so idealistic that you sabotage the practical needs of an organization. If we had the perfect browser from a free-software-purity standpoint but only a thousand people used it, then we would have zero impact on the direction of the Web and our mission would be a failure. Besides, in order to pay people to work full-time on Firefox we need to get money somehow.
So it's not like the silicon valley people are bad. We need them just as much as we need the open-source hackers. And I'm making them sound mutually exclusive but really there are many people who can play both sides depending on the time of day, so it's more accurate to contrast the open-source hacker attitude with the silicon valley attitude.
...but, all that said, the reason I'm writing this post is that I have noticed that my personal motivation level goes up the more I swim in the open-source hacker attitude, and it goes down the more time I swim in the silicon valley attitude.
The silicon valley attitude is most prevalent in the Mountain View office, unsurprisingly, so partly this means my motivation goes way up when I get to hang around the Mozillians who don't work in Mountain View; they bring a refreshingly different perspective, one where the world doesn't revolve around the latest stuff Google and Facebook are doing.
Treading water: summary of a typical frustrating week
Monday: get up, regret leaving my bike at work on Friday so I have to take the bus. Get in just in time for my first meeting of the day, have meetings non-stop one after another until 4 or 5 pm. Too exhausted and irritated to get any coding done after that. Regret not having done more coding last week.
Meet Sushu for dinner, eat out because there's no time to go home before my accordion lesson. Drive to accordion lesson. Regret not having practiced accordion more last week. Apologize, make excuses.
Tuesday: put clothes on, notice "University of Chicago Aikido Club" t-shirt in closet, regret dropping out of Aikido in 2008 and never finding the time to go back to it.
Try to catch up on my never-ending flood of email, or at least flag the most critical ones to respond to and delete the rest. Regret not responding to old e-mails or instituting some better kind of e-mail sorting system. Think about all the people who offered to work with me on cool ideas, regret never having had the time to write back to them.
Read about the Japan tsunami, regret never finding the time to keep in touch with the people in Kamaishi.
Go to the game store on Tuesday night to make my toy soldiers fight other people's toy soldiers. Regret all the time I spent painting them instead of doing something more useful.
Wednesday: deal all day with interviews, write-ups, debriefs, random people asking me questions on IRC, random people stopping by my desk to interrupt me with questions, random people with test pilot data requests. Regret not having written more code on Tuesday. By the afternoon I've almost caught up to where I was when I left work the previous Friday. Right when I'm on the verge of starting to be productive, it's time to go.
Go to Chinese family dinner, regret not having studied Chinese at all during the last week and not being able to follow the conversation any better than I could a week ago. Apologize, make excuses.
Thursday: look at the newly filed Test Pilot bugs, try to remove the duplicates, close ones that need closing, test and accept patches where they've been uploaded, requrest code review where something I wrote needs code review, and correctly sort the rest. Regret not having a better unit test suite. Regret not having written more code on Wednesday. Feel like the bug list never gets any shorter.
Come home, think about what to do on my one night of the week with nothing scheduled, think about all the creative projects I've started, regret not finishing any of them.
Friday: It's a nice day out. Look at the mountains in the distance and regret not spending more time outside enjoying nature.
Look at emails about upcoming all-hands Mozilla meeting, regret not having had the time to pay attention and plan a session for it.
Leave work just when I'm starting to be productive, once again. Time to go to my Smallville role-playing session. Role-playing is supposed to be fun, so why does this feel like an obligation? Have to take the car since it's too far to bike and not near public tranist. While driving, notice expanding waistline, regret not biking more, regret eating out at restaurants so much and not cooking at home with Sushu more.
Smallville role-playing session is mediocre because I'm not putting in the time and effort to make it good. Regret not having read the rulebook during the last week. Regret not having made characters who gel better together.
Saturday: go to taiko. Upon leaving taiko think of how little I know any of the other members and regret not spending time to get to know other them better. Rush to roleplaying sessiona fterwards (Mouse Guard this time); regret not having finished reading Mouse Guard book and not having prepared better. Eat out again.
Sunday: think of all the creative projects I've started, wonder which one to work on today. Play Wizards online with Aleksa, regret not being able to see my family more than a handful of times a year. Do laundry for the week and regret never having time to fix all my pants with holes in them. Buy groceries and regret not eating healthier or cooking more often. Write a blog post, think about all the other things I meant to write about, regret not blogging in the last week. Whoops, the day and then the evening slipped by without any work done on any of my other projects.
Where does the time go? How can I always be rushing from one activity to another and never feel prepared for anything or feel like I'm geting anything done?
Even at work, it seems like I never have time to get any work done, because I always have a full plate of all this... I don't even know what to call it... these trivial tasks that never stop multiplying, and somehow each one is too important to skip, but they never add up to anything either.
It's like I never do anything properly because I'm always too busy with all the other things, that I'm also not doing properly?
How is it that I've trapped myself in obligatory activities six out of seven days of the week, and although they're all things I chose to do, none of them is what I really want to be doing? Have I sliced my time up into chunks too small to be useful?
It seems every few weeks I'm getting on an airplane to somewhere, and when I get back I'm even farther behind on everything. That's not helping.
I keep telling myself "I'm really busy right now, but I just gotta get through this busy chunk and then I'll have time to do all the things I wanna do". But I've been saying that for years now. I think it's a lie. It feels true, but that's just because the future always seems free. Problem is, the wide-open future keeps turning into the cluttered present.
Ultimately if I want to do more of some things I'm just going to have to do less of other things.
The worst part is all the creative projects I've started and can't finish.
Sushu asked me recently, "Have you ever... finished a project?"
I was quiet for a long time. I can name some small projects I've finished (making a costume, learning a song, making a present for someone, making a comic page), and some projects for work, but I've never finished a big, personal project. I just kind of work on them until I get distracted by a newer, shinier idea. I'm always starting and not finishing so the list of projects just gets longer.
Another day, Sushu got very frustrated that I haven't followed through with any of the projects I said I would do with her. Jiang Hu and learning Chinese, especially. I'm always busy either with work stuff or with self-imposed obligatory social activities and when I'm not doing one of those things, I'm getting absorbed in yet another solo project I've invented for myself to do. It's like, when I do finally get some free time, I want to use it on something that doesn't take a lot of mental energy, and that usually means a solo activity.
Now, Sushu is talking about wanting to "form babby" (or, as people who have not had their language corrupted by internet memes call it, "have a baby") sometime within the next few years. This thought kind of terrifies me because if I am feeling the time crunch now, imagine the time crunch when I am one half of the team responsible for foiling a human larva's attempts to kill itself 24/7. I keep thinking about how my mom said she didn't get one solid night's sleep for the first six or seven years of Aleksa's life. It sounds like a safe bet that work and family duties will be all I get to do.
So basically any idea for a creative project I have, I either need to get it done in the next let's say two years; or I will have to postpone it until like 2025 when the baby is old enough to ignore for a few hours. (Longer, if there is more than one baby)...
Damn. Two years. It's like finding out I have two years left to live. I need to seriously rethink my priorities. I need to start saying "no" to a whole bunch of things and just eliminating them from my schedule entirely.
It's not carpal tunnel
Went to the doctor today and found out it's tendonitis, not carpal tunnel syndrome. Her recommendation was basically just to stretch, take breaks, and fix the ergonomics of my working area. So keep doing what I was doing anyway. That's why I'm now typing this on an ergonomic keyboard with my laptop screen raised to eye level, instead of hunching over the laptop like I used to.
Finding your guiding principle
I saw an amazing talk yesterday by my favorite computer-idea-guy, Bret Victor. (The same Bret Victor` who wrote "Kill Math".)
This time, he's talking to an audience of engineering students about the possibilities available to them in their careers. The talk is called Inventing on Principle. The video is almost an hour long but worth watching all the way to the end.
There's two parts. First he talks about the principle that guides his inventions, which is that creative people need tools that give them a direct connection to their work. Ideas are precious and fragile, and there are all sorts of ideas that you'll never even think of if your tools are keeping you disconnected from your work.
He has some jaw-dropping demos of what programming, circuit design, and animation might be like if we had tools that truly connected our hands to the essence of what we're doing. If we didn't have to spend most of our brainpower guessing how the computer is going to interpret our instructions. "This is what it might be like to design an algorithm without a blindfold on.", he says. Bret's a very humble person. He doesn't say things like that lightly. He really means it; after catching a glimpse of how things could be in a better world, coming back to the tools we have now feels so primitive.
The second half of the talk is about other people who invented things according to their own guiding principles, like Larry Tenser who went on a personal crusade against modes in software. Bret suggests this path to the students as an alternative to the career paths that are usually offered to engineers (e.g. "define yourself by the skill that you're good at"). He points out it's more like being a social activist except that you try to change things by inventing instead of changing things by organizing people. He talks about how you might try to find a principle of your own, if you choose this path.
This is inspiring, and it comes at just the right time for me since over the last year I've gotten increasingly disillusioned with the software industry. I spent 2008-2012 trying to make things according to Mozilla's principles, not my own. Before that, I spent 2005-2008 trying to make things according to Aza's principles, or more accurately according to Aza's dad's principles. Working on other people's dreams isn't enough to motivate me anymore. I want to do my own thing. This might involve leaving the software industry or it might involve starting my own company. Either way, examining my guiding principle(s) will have to be part of it.
1. Time getting home: In a job like mine, quitting time is highly variable. After my last meeting of the day it's up to me how much longer to stay, although late afternoon/evening time is often some of the most productive for programming so I usually want to stay later. The time I get home further depends on whether I bike or take a train, which depends on whether it's raining, etc. Left ot my own devices I might get home anywhere between 5:30 and 8pm. When I lived alone, I didn't even think about this. But it inconveniences Sushu when she doesn't know what time I get home. She can't plan around it, she doesn't know if she should eat dinner without me, or what.
Easy solution: any day that we don't have something prearragned I email her to let her know what time I'm coming home. We figured this one out in the first year and it hasn't been much of a problem since.
2. The wait cycle: Say we were planning to take a walk together after dinner. But then I start reading something, and while Sushu is waiting for me to finish reading, she starts sketching a comic. Then I finish reading, but she's sketching a comic, so while I wait for her to be done with that I start doing some accordion practice. Then she finishes sketching but has to wait for me to be done practicing so... We could cycle like this for hours and never leave the house.
Now when Sushu's doing something waiting for me, she'll say out loud "I'm wait cycling". And vice versa. This usually ends the cycle rapidly. (Sometimes just naming a problem gets you most of the way to fixing it.) We just figured this one out this year.
3. Social event warning: I'm an introvert. I have energy for only a limited amount of socialization per day. The last thing I want to do, after getting home, is have to talk to somebody I don't know. There were some times in the first year when I would get home and then find out that somebody was coming to visit or that we were going to somebody's house. It stressed me out.
Now Sushu gives me a couple days' advance warning of any potential encounter with strange humans (and usually offers me an exit strategy).
4. Time horizon for trip planning: Sushu likes to plan trips a few months ahead of time, reserving plane tickets and hotel rooms way in advance so she can relax until it's time to go. I have trouble even thinking about anything two months in the future -- two weeks is about my time horizon at which future events start to feel concrete; anything beyond that feels like "someday". It used to be that Sushu would start making reservations and ask me questions like "Do you want to stay in Trujillo or Chiclayo on Wednesday night?" and I'd be like "Where the hell is Trujillo? How should I know?". She'd end up planning the whole trip herself and be frustrated that I wasn't participating, and then later when the trip entered my mental time horizon I would realize I had missed my chance to give input.
We're still working out a solution to this. For our latest trip planning (we're going to Peru next month) I told her I needed some time to clear out space in my head. We scheduled a weekend to do the planning. I bought a guidebook, a Spanish phrasebook, and a paper planning calendar (the only one they had at Office Depot was a "kitchen calendar for moms" with purple flowers all over it; talk about pointlessly gendering products. Whatever, I like purple.) I've been reading up on Peru and writing trip details on the calendar; it helps make things more concrete, and this time I feel like I'm having more input.
5. Bedtimes: Sushu needs to get up earlier than I do. So she needs to sleep by 11. But sometimes I want to stay up later than that. But it turns out she has trouble falling asleep until I come to bed. So if I stay up late, it limits how much sleep she can get.
Just this week I resolved to go to sleep the same time as her every night. I'll ask what time she needs to wake up, and aim to sleep 8 hours before then. If this gets me on an earlier and more regular schedule, great! Bonus.
None of these are, like, huge romantic sacrifices or hardships or any of that. They're just minor things that we're gradually figuring out to make living together more functional. I think mutual willingness to keep doing small adjustments is important to make relationships work in the long run.
Thanks a lot to all the people who have reached out to offer their love, support, and advice. It means a lot. I am very lucky to have you guys.
Being around a lot of creative people at Alternative Press Expo helped somewhat. It got me re-inspired to make things!
But I'm still having some wild mood swings. Sometimes I go to sleep feeling fine but then at 2am my brain goes "Hey! Time to wake up now so you can feel sad and freaked out about something! No sleep for you until 5!"
My current work (on the Chinese learning game) is very lonely. I miss having coworkers! I miss having a place I go to every day where there are people who care about the progress I'm making on my work. I didn't realize how much I emotionally depend on that kind of social support until I tried to do without it.
Sushu cares about my progress, of course; she's doing all the user testing and we're collaborating closely on the product design. Which is great! But I wish I had somebody I could bounce technical ideas off of, and I wish I had somebody who knew more about business strategy for starting a software company.
So I'm thinking once again that I need to find some kind of business cofounder and/or some kind of professional community. Other people I can learn from about what I'm trying to do, so I'm not doing it alone in a vacuum so much of the time. Maybe even just a hacker coworking space would help.
Palo Alto must have some kind of community like this that I could tap into, right? I just don't know where to start looking for it.
If I was smart, maybe I would have lined up something before quitting my old job. But I'm not, so I'll just have to learn from my mistakes as I go.
Behold, my "standing desk"
Oh yeahhh, so legit. Not janky at all.
Working while standing up is all the rage among computer geeks these days, thanks to a bunch of (possibly dubious) research that say sitting down all day takes years off your life.
Dunno about that, but standing up to work does make me feel a little more energized and focused, compared to what I used to do which was shlump down in that beanbag over there and balance my laptop on my knees. In the beanbag I feel too relaxed, which makes it easy to waste hours websurfing. Standing up makes me feel like "I'm working now, let's get shit DONE." That's important when there's nobody but myself keeping me on task.
At first I had the laptop at elbow height for easy typing, but that led to my neck getting sore since I was tilting my head down to look at the screen for hours at a time. So now I'm trying it with the laptop at eye level and an external keyboard/mouse at elbow level. We'll see how that goes.
This is a follow-up to a post I wrote a few years ago called The Five Demons of Procrastination.
(Somebody named "John Smith" found that post and has added on a series of comments which is now much longer than the original post! John, I'm glad what I wrote was helpful to you, and you're of course welcome to keep commenting here, but I really think you should start your own blog -- more people will read that than read my comments section!)
Anyway, this is sort of a follow-on post to that. I've been trying out a new time-management tactic and it's working out great so far.
Especially important since I'm working on my own for the time being. There's nobody to impose structure on my day except myself. Self-imposed discipline is the difference between a productive week of adding features to Studio Xia, Lovebird, etc and a week of laying on a beanbag surfing the internet and feeling terrible about myself.
So what I do now is keep a giant text file called timelog.txt. Here's the entry for yesterday:
7:30 - 9 studioxia bug #78
9 - 9:45 waste time on internet, bike to philz
9:45 - 10:45 studioxia bug #78
10:45 - 11 bike home from philz
11 -12 studioxia bug #78
12 - 2 lunch, accordion, assemble Iron Fang Pikemen
2 - 4 studioxia bug #78
4 - 4:30 assemble Beast09
4:30 - 6:20 studioxia bug #78
6:25 - 7:25 dinner at TOFU HOUSE
7:30 - 11 Studioxia bug #78
11- 12:15 Accordion, snuggles with Sushu, assemble Beast09
12:15 - 1:45 Studioxia bug #78
Here's the important parts of timelogging:
- First I break a task into managable sized pieces. E.g. I'm currently trying to get the Studio Xia Chinese game ready for Sushu to show off at a teacher confefrence next week. But "Get the Chinese game ready to show off" is too big, so I broke it into individual bugs/ feature request tickets in GitHub.
- I estmate how long each piece is going to take, and write it down. My time estimates are noted for each bug in GitHub. From this I can see just how terrible I am at estimating: I predicted Bug #78 would take 3 hours, but I worked on it for more than 12 hours yesterday alone (and I'm still working on it today).
- During the day, I block out a chunk of time dedicated to a sub-task (2 hours is a convenient length) and record it ahead of time in timelog.txt. Like at 2 I might write down "2-4 studioxia bug #78". If I don't end up working that long I'll correct timelog.txt later. But I find that pre-recording my planned stopping time is really helpful for planning ahead.
- When my planned work block ends, I force myself to break away from work, even if I'm on a roll, or even if I haven't gotten anything done. Ending when I'm on a roll makes actually look forward to getting back to work.
- Ending when I haven't gotten anything done limits the damage that my procrastination can do. I've had procrastination about a particularly unpleasant task consume whole days before. Much better to give up after only wasting 2 hours, and go do something else, than keep unfruitfully trying to force myself to do it until I've burned up the whole day. Also, stepping away and doing something else lets me examine the reasons why I'm procrastinating (for instance: maybe I actually haven't defined the task as well as I thought I had). Next time I schedule a block for that task, I'll be more aware of what didn't work.
- When the work block ends, write down what I actually did. If I ended up looking at porn on the internet for an hour instead of working on bug #78, I write that down in timelog.txt. It feels really bad to write "9-10pm procrastinated by reading random tumblrs" in timelog.txt. That encourages me to get something done during the time block so I don't have to write down that I wasted it.
- When the work block's done, take a break! Just like I pre-record the work block, I pre-record a length of time for goofing off in timelog.txt. (After the break, adjust the file to what I actually did.)
- During breaks, do something fun that I really want to be doing, guilt-free. Preferrably something AWAY FROM THE COMPUTER. Lately I've been wanting to get my Warmachine minis fully painted, and I want to learn to play "Zankoku na Tenshi no Thesis" on the accordion, so during breaks I'm usually either assembling/painting minis or practicing accordion. Also, I try to get out of the house and take a bike ride during at least one of these breaks each day. If I don't have anywhere else to go, I'll ride to Philz, a nearby coffee shop with free wi-fi.
Important point here: One of the ways I waste time on the internet is by reading gaming forums, which is generally one of the lowest value ways to be spending time. If I think about why I'm reading those forums, it's not only to avoid working on something boring; it's also a substitute for the gaming/painting I really want to be doing.
By actually doing some gaming-related stuff during the break, I satisfy that desire in a much more productive way, which kills the urge to read forums as a substitute.
By alternating between e.g. working on Studio Xia bugs with working on minis, I actually get *more* done on Studio Xia than I would have if I tried to force myself to work on it all day; AND I get minis painted. And it works because it drastically reduces the amount of time I waste on the internet, replacing it with productive activity of one kind or another.
The negative approach, telling myself "don't websurf", has never worked too well. The positive approach, of structuring work so I'm not tempted to websurf, seems to work a lot better.
The only way I'm going to get to do even half of the things I want to do in life is to make myself into a dramatically more productive individual! I hope if I keep up this timelogging long enough it will become an ingrained habit and I'll be able to shift myself to a more productive equilibrium.