I agree that when emergencies happen, we should rise to the occasion. But I think it's a business mistake to let emergencies become the new normal. I have seen a number of shops that rely on last-minute rushes and big drama. Indeed, I've made some spectacular money from pulling their nuts out of the fire. But the main reason that they had to do something dramatic was the accumulated weight of all their poor decisions.
It's as if their technical debt was held by a loan shark, showing up smacking them around just for fun. It isn't the best product that always wins. But shipping a shitty product also doesn't guarantee winning either. All else equal, wasteful organizations lose out over time. That doesn't mean I'll never step away from the optimum path, but it does mean I'll only leave it when I think there's a strong business case for doing so.
Usually, the first product to market wins, or the programmer who kicks out the most features as long as the features works 1 The first product to market often doesn't win. In fact I'm hard pushed to think of many examples of that being true ;- 2 Even taking that as true - I'm not sure I follow the argument. Working longer hours! If you are working past the point of optimal productivity then, in anything but the very short term, you are slowing yourself down.
I've seen multiple teams ship faster by working fewer hours.
I know others have too. I find it freakishly bizarre that folk don't measure their productivity and optimise for going faster rather than working longer. Yes, sometimes there are emergencies where working long hours isn necessary, and if you're well rested before, you can still be productive, if not optimally so.
But these are rare exceptions. If they occur regularly, it's a sign of shitty management and a shitty company you need to get out of ASAP. Get a better customer. Probaby because of bad code written by someone working late. Nobody else can do their job? You probably won't win it with code that breaks all the time. If by code quality you mean living up to every aesthetic whim and being fiddly over inconsequential details, then no, it doesn't matter.
- Mapping Your Dimensional CV: Creating a CV with a Difference?
- Operator #5 #13 April 1935;
- Red Sox Triviology: Fascinating Facts from the Bleacher Seats?
- Post navigation.
- Re:sound #239 The Stupid Pet Tricks Show!
- I soldi devono restare in famiglia (Tascabili. Best Seller Vol. 596) (Italian Edition).
- Stupid Cancer Happy Hour: Chicago, IL.
On the other hand, for any code base that lives through a few pivots the conceptual integrity of the architecture starts to break down. At every juncture you can just power through with a quick hack to ship the feature, but over time you are weaving yourself a rat's nest of unmaintainable code. If you have to do this to win the customer, so be it, but at some point this does catch up to you, and you will fail oh so very hard.
As I said in a previous comment, I average a 6 hour workday with a third of it being administrative stuff like email and working wih QA.
This is he norm for me. That doesn't mean I don't do crunch time. If my team needs someone to work the weekend to ship in an emergency, I will do it. But, that blows away the next week of productivity. It's fine to do this once in a while and I don't complain about doing it. But, if this the norm, you don't have priorities right. Not everything is really an emergency. All great points. As for shipping first, see Netscape and Dos. For heroic hours being the norm, see Facebook and Google. As for shitty management and someone getting sick and breakage before a big demo, not necessarily.
I've been a part of small teams most of my professional career. So many times the only way to get big fish to bite be was to both overpromise and over-achieve, and with small teams this usually meant grinding through tough situations like those above. You don't always know with enough time to spare when you have a chance to demo new functionality for a really big fish.
With sickness, it is the redundancy of skills and codebase knowledge that have led me to take one on the chin. The worst part about the self-inflicted "stupid hour" is that your decision-making faculties are already working poorly by the time you decide whether to keep going or not.
It reminds me of the tragic comedy of trying to overcome a bad habit. The stress from abstaining from the vice causes a strong impulse to seek solace in the very vice you're trying to quit. Plan ahead for moments of weakness. I actually have a "stop-hacking" alarm on my computer If you had left off just one item sooner the day or week before, you'd already have a known starting point. I can't find a cite for this right now, but I've heard this phrased as "park facing downhill.
This sets me up for success at the beginning of the next day -- I work right into a state of flow while tying together the loose ends from the day before. I did this Monday. I had meetings all morning so I spent three hours hogging the team whiteboard before I left for the day. It really works. I went and worked on some hobby writing I do and my brain worked on the problem in the background. The next day I had a new approach to try when I woke up. I love it. I've read before that Hemingway used to leave his writing for the day in mid sentence, so when he sat down the next morning, he had somewhere concrete to start.
I'm not sure how true the legend is, but it's a technique I use often with good results.
- Trump Claims He Could Fix ‘Stupid Democrat Inspired Immigration Laws’ in Less Than an Hour;
- Urban Dictionary: Stupid Hour.
- Diet Mistakes That Make You Fat - Simple Hacks to Help You Lose Weight, Burn Fat and Live Healthy.
I have this pattern. It's one of the many reasons I love TDD.
Leave terminal with a failing test case. Come back the next day and I've got something obvious and trivial to code next. Straight back into that intermittent reward driven flow. I have to make a point of doing this with my fiction, such a leaving sentences half-finished, and I found that it does wonders for maintaining productivity. It keeps my mind from "closing the loop" and treating a project as "finished" prematurely. Hemingway said that you should stop writing for the day when you know what the next thing is.
Evbn on Nov 24, With this approach, you never have time to stop and clear your mind and look at the big picture, you are always stuck in the rut of what you were doing yesterday, which is what you were doing the day before, and on and on. If I had the luxury of coding all day, I could see this as an issue. More often than not, however, I end up with meetings and whatnot peppered here and there throughout my day, so finding time to think about the larger picture isn't hard. What is hard for me is to kick-start myself in the morning, and a little help from my yesterday-self goes a long way.
That's simple to get around - you just schedule in a regular cadence for stepping back. For example we do a little regroup after lunch, and have a weekly short 20m retrospective on Friday afternoons before stopping for the weekend. I never understood why people treated working through sleep deprivation as a badge of honor. Glad to see that others agree! These articles pop up all the time, as if people hadn't had the foresight to realize their brain function decreases when they don't sleep. Sleep deprivation is a tool which allows you to sacrifice some degree of brain functioning different for each person to gain in other areas like meeting hard deadlines, or taking advantage of your programmer flow state, or the positive feeling you get knowing you grinded away at a task non-stop until completion.
Yes, it's a tool but if you're constantly reaching for it, you have a problem. This tool robs future productivity at a 2 for 1 ratio. The only thing it's good for is getting a small task done sooner at the expense of getting other stuff done later. The last bit about the "subconscious processing" is spot on. Basically you just have to delegate to your stupid hour self the lousy slog work. What happens to anyone in this thread when they try that?
NathanKP on Nov 25, I do the same thing.
- Mad Scientist Party Hour: - The Stupid Bowl on Apple Podcasts.
- The Zero Hour.
- The Dave Ramsey Show.
- 50 Healthy Raw Deserts Volume Two (50 Healthy Raw Desserts Book 2).
Whether or not it works depends on the time of day. If it is just a in the afternoon lull in attention span a short walk or if I have a deadline an espresso at the desk will usually get me back on track.
Trump Claims He Could Fix 'Stupid Democrat Inspired Immigration Laws' in Less Than an Hour
If it is late in the evening though I can only delay the inevitable need for sleep so much. I think that inevitable tired point where you aren't going to get anything more out of yourself effectively, no matter what you do, is what this article is about. I will normally feel better and more awake after doing something like this.
That, of course, may well have no effect on how productive I am. Optimising for 'feeling good while working longer hours' should not be the aim. Optimising for 'producing the most useful stuff in time period X' should be what we're after. Earlier in my life I could happily sit in front of the keyboard for fifty hours a week and feel fine. However, when I started measuring what I produced I found that I was more productive if I spent about 30 hours in front the keyboard.
If I had a time machine that's what I'd tell my 20 year old self. You can do more by spending less time in front the keyboard, which has the happy side effect of giving you more time to do more away from the keyboard. Just realized that I'm in "stupid hour" right now. Going to bed. Yoni1 on Nov 25, Good night :. I think a large problem is in our psychology of not wanting to scrap our previous labor even if it was substandard. At this point I hope most coders are checking in code regularly enough that they could identify a point close to where quality declined and could throw everything after it out.
Personally, I usually start a day with a review of the previous changes but I rarely back out low quality changes. They throw up a smokescreen of busy-ness as an excuse for missing their deadlines and deflecting assignments. Then there are the people--and there are many of them--who lie to themselves about how much they're actually working whilst at work.
How Stupid of Cupid
Today's open plan offices increase the amount of socializing, chit-chat, and agenda-less meetings, activities that resemble "work" but are actually a form of leisure. I strongly suspect that many people who spend long hours at the office often spend only a small fraction of the time doing actual work Indeed, as anyone who's tried it knows, by working at home you can get twice as much done in half the amount of time.
People assume that if you work longer hours, you'll get more done. In other words, everything else being similar, if you work 40 hours, you'll get twice as much done than if you work 20 hours. And indeed that is the case However, multiple studies, like this one from Stanford University , have shown that once you reach somewhere between 40 and 49 hours, additional hours produces diminishing returns.
And after 49 hours or so, the more you work, the less effective you become. Indeed, once you reach about 53 hours of work in a week, you end up getting half as much done in twice the amount of time. I suspect that one of the reasons that so many startups fail is because the people working in them become too weary to differentiate between what's important and what's trivial.
They make dumb mistakes that a better-rested person might easily avoid. I've seen this with programmers who, after working long hours, start creating code that's full of errors or, if they're debugging a program, easily create more problems than they're fixing. A similar case is the high-tech CEO who explodes at meetings or otherwise acts out. Such people eventually end up spending more time doing damage control than making their companies successful.