I have a full week worth of work planned this coming week. I just had a busy week last week. Right now I'm sitting at the breakfast table with my wife and we're surfing and sharing interesting things we find.
If they can work through the weekend, more power to them. As for me, I find I work better if I take 1-2 days off a week - my thinking is so much clearer. Clarity makes a big difference for the kind of work I'm doing at the moment (I've even tried taking Wednesday off, to get a second boost of clarity, but I can't quite talk myself into it). However, I think there are some kinds of work that don't benefit much from clarity; and sometimes, if you get into the zone, it's much more efficient to keep that loaded in memory, that taking a break, and having to load it in and out. Some people work really well on 34hour days (and a few days off).
I'm in Israel with my family after finishing spring semester. Sunday is a workday here and thus I completely forgot it was Sunday. For better and worse, I feel better about my laziness now.
A simple hack that has worked wonders for me: On any given day my to do list has exactly one item. This enables me to focus better on the most important thing. I try to make it about one day's work, but who knows...
Today's item: Get buffering working on complex lookups.
Personal revelation: things really start to move when you measure your progress on a project in terms of business value. It's incredibly easy to get caught up in near-field stuff and just do whatever is at the top of the to do list. I found that when I started asking "what do I do today to add maximum value to my business?" I spent a lot less time in my IDE and a lot more time in Gmail.
It's not just selling - when you stop measuring your personal productivity in lines of code, it's amazing how much you discover can be outsourced or bought in. Efficiency vs effectiveness and all that.
Trying out new AdWords campaigns for the first time in ~8 months. Got one A/B test live and another coded. (That is the Mother of All A/B Tests for me, since it completely removes one product from my site.)
I also nailed a freelance proposal, got it accepted, and did half a day of well-compensated work that should make the client happy.
Progress on Appointment Reminder, on the other hand, was not so great this week, aside from paper prototyping and a few more pages added to the development notebook.
[Edit: Pace Paras, none of this was actually done on Sunday. I quit working weekends when I went full time, aside from de minimis customer support.]
He spent something like 5 hours a week on his "flagship" product; if he put 3x effort into the new product, he'd still be working the equivalent of US half-time.
Thomas must have cracked my RescueTime account because those numbers are scary accurate.
Seriously though: BCC is largely in maintenance mode, and the types of things I need to do are not very intensive in wall-clock time. Appointment Reminder is not and won't be for a while, but that jives very well with BCC, since while I'm waiting for AdWords results to get back I can go code.
Client work I slot in when I have slack time or when I'm unable to make creative progress on my own projects. Thomas had a great line about this: on those days when you just keep banging your head against the wall, "it is great to know that you can just got 'be billable'."
I create drupal and wordpress sites currently but not apps, customers are so chincy and difficult to work with because they don't understand the tech at all. I want to get deeper because I need to create something that will stabilize my life and finances. This IT world is so vast and there a billion people flocking to whatever the latest IT trend is.
It takes so much money, time, and knowledge to focus on a venture and on any given day the distractions and discouragement are intense, preventing the focus and the space I need to gain that focus. Also great ideas only come out when I am focused. I have taken on a government job, that is interesting, but I fear it will take me further away from being my own boss. It seems that the only way to separate yourself from the herd is to make an original and "hard to emulate" product that won't be easily re-created or copied by the "big boys". I'm working to save up money, then I'll drop off the radar and go for my dreams. Wish me luck!
I have been surfing the past few years instead of getting to work myself. Thanks for making me feel even worse! :P
I left full time work 2 years ago to bootstrap my own company. I've hit many periods of "reduced productivity" along the way, but I'm now about a week away from a public beta that I feel great about.
Allow yourself to be less productive sometimes. That downtime gives you a chance to reflect.
I'll second this. If I attempt to be productive for more than an hour and fail, do something else. Exercise I find to be one of the better options.
If I can't snap into it after forcing myself to work for an hour, it's just not meant to be. And if I pretend to be productive for a day and don't get anything done, I usually feel like crap.
This reminded me of a woman I went to university with. During the study break before final exams when you're meant to be studying she was known to resort to activities like scrubbing her car's wheels with a toothbrush and using scissors to remove all the weeds between the paving outside her house to avoid studying. She always did well enough in her exams and her house was VERY clean.
I'm experimenting with price and freemium variations for my web app, which have turned out very well so far (more on that in another post). I'm currently adding support to my timeline app so the color palette includes previously used colors, which has been a highly requested feature. Two year wedding anniversary is also this weekend--trying to balance it all is always fun.
I have to add a comment/suggestion.
Have you thought of allowing tweets to register as events on the timeline? This is a problem that plagues TV NEWS anchors. Every time they blowup twitter.com to show viewer responses or reactions to a certain event, there's no way for them to manage the tweet other than to have multiple browser tabs open and switch between them.
Terrible experience for the audience and the the anchor as user.
Letting them to save tweets in a fashion that annotates on your timeline seems to be the ideal solution. Keep it up!
Hey thanks for the kudos. Twitter integration (and in general third party integration) has been on the todo list for a while now, but it's a pretty big undertaking and I've put it aside in favor of working on the easier kills first. It's definitely something I'd like to integrate one day though. Appreciate the feedback!
-explore possibilities that challenge my sense of the problem space (closely allied with reading stuff on the internet, that leads to HN, etc.)
-try out various different ideas
-come up with a pretty cool idea (using a two-dimensional array for double dispatch -- b/c you can create a nice text table of which functions are being invoked...)
-that cool idea encourages me to really solve this problem well
-i realize that at this point i really don't need to do something that extensive
-i solve it simply using closer to the bare minimum of what was needed
-i solve other simple things that i've had queued up
and repeat. in other words, there are two types of productivities that i think we as developers go through. exploratory, expansive stages. and synthetic, work stages. this probably isn't news to anyone. but they really are two different things, and you really have to balance both to be efficient. too much 'getting it done' and you'll lose interest and miss large steps figured out by others or by yourself. not to mention you'll lose the expansive 'energy' that comes from solving things abstractly and in a new way. on the other hand, too much of an 'exploratory' attitude and you not only won't get stuff done, but you'll lose the confidence you had about how well you can solve things in small steps, that build up, etc.
anyway, that's just my sense. there may be more than just two 'phases'. and the phase change is more a calibration of emphasis than an all-or-nothing switch. when i'm going through the exploratory phase i'm much more sociable, taking breaks, etc. and then i pwn in the work phase. or something. i also download and watch a fair amount of tv.
but i think part of what makes one developer more experienced than another is that they have larger phases. they've had the confidence from experience to not need to get to that work phase quite so quickly. of course, you can make mistakes, and not be ready for quite so large an explore/work phase balance -- and have to reel it back a bit, but generally speaking, one's threshold sort of increases (the more features are delivered on time, the more projects are delivered, etc.). anyway.... more important than anything is probably being honest with yourself (if you are the type who naturally tries to self-improve). anyway, this is all a bit off topic...
Right now I'm trying to get a wall posters/art print site off the ground. Just a normal shopping cart. My dad happened into a deal where he gets really good wholesale prices from a few vendors, so we're trying to get that going. It's not going too well so far but hopefully we can figure it out how to get traffic and turn that traffic into purchases soon. The key is really SEO I guess, which just gets built over time so hopefully that will all work out OK soon.
My to-do list for today is to spend more time with my girlfriend and family. All the startup success in the world would not make-up for the love and support of family and friends, if I were to let those relationships slip.
Alright, back to work. Good luck with your 5 items ;-)
I am done with trying to be super productive. I have changed my working style quite significantly lately. I used to work out plans and to-do lists and have everything organized and feel in control. I reckoned that if I really love programming I can do it for long hours everyday. Unfortunately, this kind of trip fails time and again and starts to feel like a chore. I realized I cant play video games, golf, read for long hours on a regular basis even though I love doing these things. So why should programming be any different. I will only code when I feel like it. I think its less productive then the traditional style but the code feels better.
Two methods that I have read, that writers use to great effect.
Create a big calendar, above your workspace, or somewhere you see all the time. Every day you do work, put a cross on it. Try to get as many crosses in a row as you can. Hemmingway used this method apparently.
The other that actually works great, the first task you do in the morning should be the one you least likely want to do. The one that is easiest to put off. Surprising how good this makes you feel.
I haven't heard of Hemmingway using the calendar method but I believe Jerry Seinfeld used/uses it to help motivate him to sit down and do some writing every day.
I got a lot of traffic to http://bikechatter.com by providing some live tweeting of the Giro d'Italia stage. Ok, maybe not anything great, but I love watching bike racing, and I would have watched it anyway:-)
Awesome stage up Monte Zoncolan, one of, if not the hardest climbs in Europe. Went to see the stage finish in Asolo in person yesterday.
This might be possible since I'm the one making the requests to mechanical turk. I'll look into their terms to see if there's anything preventing this.
All you need to do is make a http post to my api with the details of the work you want completed* with a url for me to post back the answer to. I take care of dealing with the mturk api and qualifying answers.
* Title, price, and a form partial which provides instructions and the form inputs to be answered.
I usually love Sundays for working, because they are so uninterrupted that I can really knock things out. today I was traveling so... not so much.
Woke up at 7:30 to go into office, respond to some emails, printed out boarding pass, grabbed nicest laptop, went home and packed, went to airport, flew to Madrid (watched Dr. Who enroute for break), drank sangria with friends over tapas, took bus outside of Madrid, mingled with conference attendees, came back to hotel room and obsessed about my app stats with AppViz, read my tech blogs, responded to this, now perhaps sleep.
I use the pomodoro method (http://www.pomodorotechnique.com) when I'm in the fugue where I want to be productive but am somehow not managing to.
Sunday: I have 5000 new registered users and no way to efficiently send newsletters. I'm finishing the code to handle this today. Note to sendgrid or critsend: you guys really need list management tools/APIs!! I know, I know, your working on it...
Here's how my startup is growing (I think this applies to many):
1 - user finds my site and signs up. >> Transactional email <<
2 - repeat step 1 enough times.
3 - send out newsletter. This will now start happening every 2 weeks. >> Newsletter email <<
Why should I be paying/configing/templating/testing/managing 2 mail services (mailchimp && sendgrid/critsend)? I don't have sophisticated newsletter tracking needs. I just need to be able to manage a list and use the same/similar API I use for transaction emails, but instead of plugging in an email address in the "to" field, I reference the name of a list stored on the sendgrid server. Doing this, I only have to sync my lists. I don't have to write code to handle sending 5000 emails, taking into account limits on how many addresses will fit into the "to" field on each API call.
Both sendgrid and critsend are working on these features. Its just not there yet.
Well, I just started MS, four years after my undergraduate. Last semester, I just took one course and didn't do good because it was really hard for me to find nice work-study balance. Anyway, lessons learned and am right now thinking what courses should I take?
On a side note, I just finished reading "High Performance JavaScript" that I bought during Oreilly's $9 sale and it was money well spent. And I'm also thinking what Oreilly title should I buy next?
Today I am also procrastinating -- working on marketing material and brochureware. Ughh. Sometimes I give myself a break by working on an interesting programming problem or just walking around outside. My rule-of-thumb though is to make sure a couple hours of each day involve something (anything) you are really looking forward to.
I've added the courses from a couple of new universities to OCW Search (not yet live), and now building a social media "dashboard" to help me keep track of what people are saying about it. The latter got me upset at reddit as it doesn't support JSONP, just plain JSON.
No idea, as I don't play Go very much myself. I learned the basic rules and have the odd fun game with a good friend. I'm currently working on making a pass-and-play game that supports a wide variety of rule variations as well as the standard game.
As of this moment, you can actually play standard Go with a friend or play a variation called "One Eye Go" where you cannot play into an intersection without liberties unless it extends one of your own groups that has other liberties.
I'll be adding other variations soon, next up are the games that have standard rules for capturing stones but where the objectives differ from taking territory. For example, to connect two sides, to create a line of seven stones, to make the first capture, and so forth.
I just want to be able to take out an iPad and use it as a Go board that remembers plays for analysis.
I have just two really simple bug fixes to be completed, and there is no more work assigned to me yet.
But I just can't bring myself to complete it. I have been very lazy for the past 2-3 days :(
Working on dumping 2 days of design work into some ruby code and tests. Then working on Braintree integration. Yea it's sunday, but I can't sit still with all this code in my head.
I'm actually recovering a cubic #@%!-ton of money, which always seems to be the way it goes with me: 2 years of slowly building panic, a painful but manageable remittance to the IRS, and then a ludicrous windfall of refund money. (This is a bad thing, in the long run).
for me, if there is a commitment to a partner or a real customer, whether or not money is necessarily attached to meeting every commitment, I work very hard and get things done.
but without other people and their feedback, I eventually lose steam.
We need other people. We evolved that way. As with sex and many other things, you can do them on your own, but they aren't nearly as compelling and rewarding.
why not do something interesting that's not on the list? something that'll make it better in the long run maybe; get those tests running faster, script up something you do manually, try a different IDE or something?