Poll: how many productive hours do you have in a day?
Definition of productive hours for this poll: time spent on researching, designing, debugging, testing, coding, supporting, refactoring or any other technical task directly related to these which makes you get in "the zone" or totally focused on a problem.
Exclude: time spent on meetings (no matter the subject, as they can be productive for the team but not for you), managing people (only indirectly related to technical stuff), lunch time, coffee breaks and browsing the web (decompressing) and other minutes not spent on solving problems with computers.
Consider: a somewhat long time span, not just the current week or month.
...and have a happy monday :-)
PS: related poll on how people feel about their working hours at https://news.ycombinator.com/item?id=6810289
83 comments
[ 2.5 ms ] story [ 151 ms ] threadI've been working 7am - 3pm at my day job, 4pm - 11pm at my side projects. Dropping the day job.
It's not a way to live forever, but for people who can work like that, for a few years it can suit them really well.
The con of the startup racket is that so many people think they're buying their freedom with the 16+ hour days (and have been misled into believing that) when, in fact, the proportion who actually become billionaires or major venture capitalists is pretty terrible.
I'm productive about 8hours in the day, but I put in 10-12 daily.
Overtime I'll start feeling like my managerial duties are productive uses of time. They are, but as a hardcore technologist, it's tough to shake the if !programming then wasting time.
Definitely truth. IMHO the real problem of our productivity is The Internet.
"No one should ever work more than 40 hours a week!"
"Productivity beyond 4 hours a day is impossible!"
Why must I shackle myself to these seemingly arbitrary limitations that other people have? If I'm having fun coding something for 8-10 hours a day, 5 days a week, and I feel I can sustain this output, why do I have to limit myself?
Maybe I (or someone who's able to do this) can just work harder than you (or someone who can't do this). What's the big deal?
I used to work to the point of exhaustion. Now I work to a clock I've come up with empirically. This means that instead of having bursts of super productivity followed by weeks/months of tiredness or simple "Meh, that's not interesting" I can trod along, putting one foot in front of the next, with a consistent pace. Day in, day out. You might outsprint me today, but I will be there when you're tired, and I will be walking at the same pace I am now.
I am an orc. I do not stop. I do not tire. I just go. Forever. At a constant pace. I will outplod you.
Persistence is humanity greatest natural asset next to intelligence. Use it. We are very bad sprinters.
It's definitely my way of thinking, since today has worked well, and I'm glad that someone applies it harder than me.
The most time consuming and frustrating problems usually have some element of psychological aversion. Like involving a language, tool or subject matter that I either dislike or don't feel confident in solving. Break down the reasons for the aversion and jump right in!
Just last week I had an issue that I realized could be solved with some judicious GDB. I spent 3 hours just learning the tool, solved my problem and checked off a mental handicap.
Don't require "successful outcomes" all the time, slowly and methodically enjoy the journey and keep on eye on forward progress but don't demand it.
Which is exactly where most of these "I can code all day, I can code all day"[1] programmers fail. As soon as an obstacle comes, they crash and burn because they are too used to riding a wave of endorphins.
[1] reference to FPSDoug, in case anyone remembers him.
Also, some people in 2 hours can obtain the same results of me doing 8 hours of work - that's about quality, so the "woking-harder" it's not a valid argument: the real problem is "working focused"
The point stands. Maybe I (or someone) just works harder/more focused, for longer, than you (or someone else). Why should that person hold themselves to your standards and not theirs?
In fact, it would be more useful if you can tell us more about how you it.
Is it just an innate ability you've got or something you learnt to do? Do you have any hacks/system like the pomodoro technique?
Do you have off days?
How often do you get 'into the zone' a day? Because, if you can only last a couple of hours in the zone (like me), then to get 8 hours of productive work would take me 12-13 hours to accomodate breaks, food etc. Do you have the luxury of not having to check your mail too often?
If you work with other people, do you notice them working less/more than you?
The things that people say "don't work" or "can't be sustained" do work for me and can be sustained for me. To wit, things people say "do work" and "can be sustained" just don't work well for me.
For example, I'm able to jump back into "flow" quickly when someone knocks me out with a question or need, and I find it hard to put something down once I start working on it, until I've reached a satisfactory end point. I find taking intentional and small, frequent, breaks during the day is disruptive and hurts my productivity (though it's probably healthy for my back and eyes, I suppose).
It's just plain silly to walk around saying "40 hours" is the magic number, or "8 hours" is the maximum anyone can work productively. Averages may be around those values, but for individuals, any point along the line is possible.
can do more but the 4 are the most productive hours. an extra 2h are half productive (which i do anyway due to work req), an extra 4h even less so
There are times when I have pushed 6-8 productive hours per day for 2-3 weeks but what usually follows is 2-3 weeks of "unproductivity". Over the long run this is unsustainable and has caused me to switch jobs in the past.
I have a week where I get massive work done, then 2-4 come, where I can't get up to do anything at all.
Anyway, not trying to armchair psych, just saying: I hear ya.
Now, that I don't work anymore, I feel much better.
I sleep till I wake up, bike into the city, code for ~4h a day stuff in a café and drive home when I have enough.
But when I got a 40h/week job, the 1 week work and 3 week slack-off pattern was more common :\
Well, now that I feel better, I try to figure out how I can make money with work, that don't requires me to get paid per hour, hehe.
I mean, what is my potential, really? What is that word actually referring to? Is it a real feature of the world? Does it simply refer to whatever the outcome is of me trying as hard as possible to develop my capabilities in some domain? And if so, is that intrinsically good, or is it just instrumental to some other thing?
Of course, when we die there are no bonus points for how many code commits we made or projects we built or companies we started. So I wonder: should I feel guilty for doing nothing? If I was able to not feel guilty about doing nothing, would that be okay too?
I'm trying to just handle it by not worrying as much and accepting that I just work in spurts.
But I will. If "can't get up to do anything at all" includes loss of appetite, inability to find enjoyment in things you usually enjoy, excessive sleep, and generally depressed mood, I'd suggest you ask your doctor about possible a possible bi-polar II diagnosis. Especially if the "productive" week also coincides with significant challenges to your ability to socialize.
(I am not a medical expert, but have spent signficant time with someone with bipolar - treatment can help, a lot)
Now I get 3-4h work done 4-5 days a week.
A week of heavy mental activity that completes the design is a lot of fun! Followed by a few weeks of implementation/bug fix/document is not so much fun, and explains my pattern quite well. Trying to find mentally challenging pieces within the slog, and creating challenges for tasks in the slog helps a lot in the quiet weeks.
That's normal and I consider myself very productive. But here's the real question, how do you present this info to clients/bosses/entrepreneurs without them throwing a big hissy fit?
This is a big problem when working with people who are heavily and directly invested in the business you're helping because they feel like they're productive 12+ hours a day and feel that you should be too. Most of the time they're just fooling themselves, or their idea of productivity is so different from an engineer's that it's nearly impossible to compare.
Furthermore, so far everyone I've said "Dude, you're not even half as productive as you think" to directly got grossly offended by my suggestion.
I've been trying to get to the bottom of these for a year and a half now (writing a book about this stuff) and I can't say I'm much closer to a solution.
PS: the worst part of this equation is that you're often asked to look productive for 8 or 9 hours a day because that puts people at ease. That makes them feel they're paying you fairly, even though you could easily do the same amount of actual focused work in 7 hours and spend the rest of that time doing other things.
If they spend 20 minutes writing an e-mail, is that 20 minutes of productive time? I bet it's really only 5 minutes of what is considered 'productive', because they didn't write the e-mail for 20 minutes, they edited for 15, checked other e-mail, etc.etc. When they go to a meeting and it starts out with niceties, and talking about progress updates, etc. etc. Is that 'productive'? Necessary, yes, but productive? No.
We need to look at programming the same way. When I'm setting up my environment, I'm not being productive. When I'm researching a bug I'm fixing, I'm not being productive. When I try a fix and it doesn't work, I'm not being productive. When I'm looking up the most efficient way to write a method, I'm not being productive.
When I'm completely focused on coding, I'm at my most productive. I use a pomodoro timer, and if I really pay attention, I'm hopefully productive for 20 of the 25 minutes. If I get a few of those a day, I'm happy. That's the productivity of our job.
The sad trap I fall into is that if I've been productive for 4 hours in a day, I normally stop being productive, rather than continuing to push through, which I know I should do.
Concise emails really ease the workload by reducing inefficiencies.
All the activities you mentioned are part of what you're being paid for as a developer, so you should consider yourself to be productive while doing them. If your employer thought that setting up your environment wasn't an essential part of your job, they'd be paying someone else to do it for you. And if they don't want you to write crap code, then finding an efficient way to write a method is also an essential part of your job, and thus productive. And how can you possibly fix a bug without first researching it to figure out the exact conditions that cause it to occur? Even meetings are productive, provided that they allow people to come to an agreement on how to solve a problem (rather just being for status reporting that could be done better with an automated tracking system).
"When I'm completely focused on coding, I'm at my most productive."
What if that code turned out to be the solution to a problem that didn't actually exist? Would you still think you were productive just because you were completely focused on coding at the time?
Now, look at the other side: Let's say that during a meeting, you figured out that some piece of code that your company wanted you to write was completely unnecessary, and it saved them hundreds of hours and thousands of dollars. Wouldn't that be productive?
And if you refactor 1000 lines of code to do everything it did before with just 100 lines of code, is your productivity negative because you threw lines of code away?
As developers, we're paid to solve business problems, not just to generate lines of code.
I'm not suggesting we count lines of code, but I'm only actually producing when the code I write makes it into a final product. If I spend 5 hours writing code, and then throw it all away, I'm not productive. When I re-write a bit of code, was I productive the first time and not the second? Was I productive both times? Does it matter what has changed between the time I wrote them both, or why I'm making the change?
Using your example of refactoring 1000 lines of code, if the 1000 lines ends up doing the same as the 100 lines, how have I added value to the business? I may not have, and therefore, that time was unproductive, or I may have added value, and therefore the time was productive.
Interestingly, it seems the definition of productive may be up for debate itself.
It's like throwing away the scaffolding that was supporting a building during construction but is now redundant. It's like removing the stone from the sculpture that isn't part of the figure you're trying to create.
Writing throw-away prototype code can be very productive, since it's a way to learn about your domain and the problem you're trying to solve. It can certainly contribute toward making a better final product. If we're trying to solve hard problems, we can't expect to be able to come up with a perfect solution on the first try with no backtracking.
As Thomas Edison said about his numerous unsuccessful attempts to make a light bulb, "I have not failed. I've just found 10,000 ways that won't work." Each unsuccessful attempt got him a bit closer to being able to make a working light bulb.
"Using your example of refactoring 1000 lines of code, if the 1000 lines ends up doing the same as the 100 lines, how have I added value to the business?"
Speaking from first-hand experience, sometimes the code base you inherit is so bad that you can't add anything to it without breaking it. By refactoring, you've made it possible to add the new functionality to the code which your customers desperately need. You've also probably made the code more reliable, since there's less stuff in there to break in the future.
On the other hand, if you had code that worked perfectly and didn't require any new features, and you refactored it merely because it offended your sense of esthetics, then you were probably not being productive.
Wikipedia on the merger between Edison and Swan - "The lamp bulbs manufactured by the company were almost entirely to Swan's design."
At most of my day jobs, most of the time, I probably averaged less than an hour a day of productive time, with most days being zero.
The rest of the time, I'm producing 6-8, but the remainder don't feel productive.
A lot of people don't understand the distinction of being productive and appearing busy.
As I am a student... The hours can be very weird. I can walk around my room aimlessly, repeatedly, not capable of doing a single thing for entire hours. But then I sit down at my desk and churn out a few hundred lines of code and write up a report that uses the results of that code. "In-the-zone" can be anything from 3 hours to 6 consecutively, and what triggers it I do not know.
Some of my compatriots feel the need to fool themselves into working 12+ hours a day on their assorted homework/code-work... I try not to do this, and generally I'm very low-stress, because I know when I need to be I crank out pages upon pages of (hopefully high quality) empirical work (assuming I have the data). It's much less frazzling than "omg I can't see my friends or chill for even an hour for coffee... Because I have an exam on Monday". An hour never killed anyone :D
Just my 0.02
It's neat to track my productive hours per week over time - I can see clear cycles based on projects, number of meetings, and my general motivation level. Some weeks I'll average just 2-3 hours of productive time a day, others I can get close to 6. 5-6 hours seems to be a ceiling on how long I can spend coding in one day.
https://www.rescuetime.com/
Last month I was 71% productive as defined by those tasks which are directly leading to output. An average of 5h 36m per working day. My best day was Monday, 14th April. I'm more productive in the afternoon than the morning.
My largest non-productive time block is on this site called news.ycombinator.com.
https://wakatime.com
After those hours, if I take a long enough break to clear my head, I can keep doing stuff.
I'd be ecstatic to average one "creative productive" hour a day, averaged over a year. 99% of my actual "new" productivity comes in these tiny little sprints of brilliance, the rest is just coasting, waiting for inspiration.
I'd guess I get about 2 1/2 - 3 productive hours in a good week. The rest is just doing things like research, diagnostics, administrative work, email, meetings, post-mortem reports, etc...
Thankfully, I have a job (network engineering), where a lot of the work also involves auto-pilot tasks, like configuring network equipment, doing simple triage/diagnostics, delivering/ordering equipment, helping people, teaching people, etc...
From the outside it appears to be "productive" - but in reality it's the sort of thing you can do in entirely reactive manner without having to engage any ueber-higher order brain functions - I could probably do it for 10 hours a day without having to exercise those brain functions.
OTOH, there's plenty more "straightforward" tasks which, if not interrupted, I'll be productive for the entire time with.