Why Programmers Work At Night
-
Espen Harlinn wrote:
but in my experience people tend to be both more productive and responsible when the work environment is flexible enough to adapt
Not all people; some of them will abuse any privilege given. There's what bites our manager, and it's a valid point too.
Espen Harlinn wrote:
I'd like to see a workplace that accepts more fexibility
Are you lacking flexibility, or are you trying to get away from a non-optimal work-environment? There's a lot you can do to kill distractions; turn of your IM, don't read mails the second they arrive, close the door. In general, one can easily explain that interrupting work will cause a delay.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]
First, I think many of us do as Catherine Bullard[^] does. Some things just can't be done productively, if at all, when you're getting interrupted on a regular basis; and since I like to chat, I might even interrupt myself just to do that - so it's not just other people interrupting my work.
Eddy Vluggen wrote:
some of them will abuse any privilege given
It's tempting to say: let them - that kind of people usually aren't productive no matter what kind of environment - and Q&A should be on to them soon enough.
Eddy Vluggen wrote:
are you trying to get away from a non-optimal work-environment?
Work environment is a common enough topic here in the lounge, and for good reasons.
Eddy Vluggen wrote:
Are you lacking flexibility
There are certainly things I can't do at work - you mentioned "flow", and when I'm really into it - getting interrupted feels like a heart attack. I usually don’t startle easily, but this really is the exception. The point I'm trying to get through to a number of people is that the "optimal" environment isn't a fixed thing.
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
-
First, I think many of us do as Catherine Bullard[^] does. Some things just can't be done productively, if at all, when you're getting interrupted on a regular basis; and since I like to chat, I might even interrupt myself just to do that - so it's not just other people interrupting my work.
Eddy Vluggen wrote:
some of them will abuse any privilege given
It's tempting to say: let them - that kind of people usually aren't productive no matter what kind of environment - and Q&A should be on to them soon enough.
Eddy Vluggen wrote:
are you trying to get away from a non-optimal work-environment?
Work environment is a common enough topic here in the lounge, and for good reasons.
Eddy Vluggen wrote:
Are you lacking flexibility
There are certainly things I can't do at work - you mentioned "flow", and when I'm really into it - getting interrupted feels like a heart attack. I usually don’t startle easily, but this really is the exception. The point I'm trying to get through to a number of people is that the "optimal" environment isn't a fixed thing.
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
Espen Harlinn wrote:
First, I think many of us do as Catherine Bullard[^] does.
Yup, the ideal work-week has four days and three nights.
Espen Harlinn wrote:
The point I'm trying to get through to a number of people is that the "optimal" environment isn't a fixed thing.
Nice thread :thumbsup: Always assumed it was tied to the profession, but as I read here, there are various levels of personal preferences.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]
-
Chris Losinger wrote:
do no other jobs require attention and concentration?
Helicopter pilot for example.
Every man can tell how many goats or sheep he possesses, but not how many friends. Shed Petition[^]
Funny you should mention that. In a lot of airlines they have a "sterile cockpit" policy that requires both pilots to only talk about the job at hand (getting the plane on the ground) once they go below some nominal altitude, often 10000ft. This is because landing a plane requires intense concentration by both pilots despite all the on-board computer wizardry that's supposed to make it easier. The last few seconds are especially crucial, and distractions in that phase of the flight constitute a real risk. They say there are only two kinds of pilots: those who have landed with the gear up, and those who are going to. Too many pilots have been distracted at the point of putting the gear down and forgotten to do it; staying out of both categories is really hard work requiring constant vigilance.
-
Espen Harlinn wrote:
From my perspective, crippling a programmers' productivity, is actualy way more expensive ...
I'll have to agree. See, not much of a discussion :) It's a decision, and one can easily list arguments and consequences.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]
Those place that group-working is a way of life obligates creative people to wait everybody goes away to start working.
-
Why Programmers Work At Night[^] a schedule for those of us who produce stuff. Working on large abstract systems involves fitting the whole thing into your mind – somebody once likened this to constructing a house out of expensive crystal glass and as soon as someone distracts you, it all comes barreling down and shatters into a thousand pieces. Is it only me, or did somebody actually manage to get it?
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
Because we are some kind of mad scientist that transmute caffeine into code, you don't want to do that at day, do you? :) Seriously, i think is more about working without interruptions, and as long as you can have a couple of hours to work non stop, it really doesn't matter if you work at day or night.
CEO at: - Rafaga Systems - Para Facturas - Modern Components for the moment...
-
Espen Harlinn wrote:
Agree, but then those moments without interruption isn't something you usually get during "working hours".
..there's usually a time-sheet, and most managers get the hint if it contains more items labelled "(internal) support" than "writing code".
Espen Harlinn wrote:
We're discussing this with some regularity at work
Most workplaces aren't a democracy, and most of the time a manager wants to be able to "walk in and talk". Combine that with a semi-helpdesk function where customers call at random moments, and your productivity drops rapidly. Easy solution; hire someone cheap to handle the calls, let the manager aggregate his things for the planned meeting. That's obviously more expensive than crippling a programmers' productivity, and hence, not an option.
Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^] They hate us for our freedom![^]
Eddy Vluggen wrote:
Most workplaces aren't a democracy, and most of the time a manager wants to be able to "walk in and talk".
So when the manager walks in to chat, say "Hold one sec," save your work and shut down the computer. Then chat with him. It should make the point.
-
I don't keep all that stuff in my head any more. I've found using UML gets the idea down into an easily retrievable form quickly and I've learned to let go of my ego when it comes to using other people's work. Using design patterns also goes a long way. I think a lot of having to keep abstract systems in your head comes from insufficient planning and an unwillingness to value the work of others, also known as "Not Invented Here": http://en.wikipedia.org/wiki/Not_invented_here[^]
jim lahey wrote:
I think a lot of having to keep abstract systems in your head comes from insufficient planning and an unwillingness to value the work of others, also known as "Not Invented Here":
I disagree. In my experience, having to keep the system in my head is required to assess the repercussions of changes I'm about to make. In a perfect world, changes in one part of the system are isolated and don't affect others. I've yet to see any code base retain that original design after a few years worth of added unforseen features and new engineers. My attitude is that if changes I make unexpectedly break stuff elsewhere, then I ruined the team's productivity because I didn't have a sufficiently extensive mental model to spot that repercussion.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
-
Eddy Vluggen wrote:
Most workplaces aren't a democracy, and most of the time a manager wants to be able to "walk in and talk".
So when the manager walks in to chat, say "Hold one sec," save your work and shut down the computer. Then chat with him. It should make the point.
-
Eddy Vluggen wrote:
a manager wants to be able to "walk in and talk".
I occasionally post a sign outside my cube:
UNLESS IT'S ON FIRE, I DON'T WANT TO HEAR ABOUT IT
That, plus the fact that I'm wearing my headphones, is usually sufficient to keep people from bothering me. If it isn't, the pike outside my cubicle can always use a fresh head as a warning to others.
Software Zen:
delete this;
About 6 months or so ago, as a test ("it might work") we gave everyone 3 (large) LEGO blocks. One green, one yellow, one red (you can guess where this is going) You stack those, and display them on your desk/monitor/whereever - point being, they should be plain in sight, even from across the office. If the red LEGO is on top : It's basically "UNLESS IT'S ON FIRE, I DON'T WANT TO HEAR ABOUT IT" :) If it's yellow : I *am* busy/working - But It's OK'ish to disturb if you really have to (ie. it won't mean I'll lose 30 minutes getting back into the groove) If it's green : I'm currently only engaged in doing misc tasks that have probably been procrastinated anyhow (and that I'd prob rather not be doing) I'm up for anything (Only ever had that one once for an hour or two...). AKA feel free to talk to me / ask questions - or tell about your weekend. This is an incredible simple thing to do at any office - and the amazing thing is (at our office) it bloody works! Even our most talkative/impulse marketing/sales guys/girls will respect it. I've seen them get up and move towards a coder, only to spot the red LEGO and turn around and sit back down again. I've even tried having one of them ignore my red LEGO and start talking to me - For me to simply "pointedly point" at the LEGO stack and they shut up (this has happened only once or twice - in the beginning). Depending on your office, and the people there, YMMV of course. For us, it works surprisingly well. And it's such a simple thing to set up as well (aka. it's worth giving it a shot even if you doubt it'll work - As I did initially...)
-
Why Programmers Work At Night[^] a schedule for those of us who produce stuff. Working on large abstract systems involves fitting the whole thing into your mind – somebody once likened this to constructing a house out of expensive crystal glass and as soon as someone distracts you, it all comes barreling down and shatters into a thousand pieces. Is it only me, or did somebody actually manage to get it?
Espen Harlinn Principal Architect, Software - Goodtech Projects & Services AS Projects promoting programming in "natural language" are intrinsically doomed to fail. Edsger W.Dijkstra
-
jim lahey wrote:
I think a lot of having to keep abstract systems in your head comes from insufficient planning and an unwillingness to value the work of others, also known as "Not Invented Here":
I disagree. In my experience, having to keep the system in my head is required to assess the repercussions of changes I'm about to make. In a perfect world, changes in one part of the system are isolated and don't affect others. I've yet to see any code base retain that original design after a few years worth of added unforseen features and new engineers. My attitude is that if changes I make unexpectedly break stuff elsewhere, then I ruined the team's productivity because I didn't have a sufficiently extensive mental model to spot that repercussion.
We can program with only 1's, but if all you've got are zeros, you've got nothing.
patbob wrote:
My attitude is that if changes I make unexpectedly break stuff elsewhere, then I ruined the team's productivity because I didn't have a sufficiently extensive mental model to spot that repercussion.
This is exactly my point though: I argue that through proper planning, the use of UML and design patterns you can guard against this kind of thing happening because you don't have to hold stuff in your head. It also makes context switching much easier.
-
patbob wrote:
My attitude is that if changes I make unexpectedly break stuff elsewhere, then I ruined the team's productivity because I didn't have a sufficiently extensive mental model to spot that repercussion.
This is exactly my point though: I argue that through proper planning, the use of UML and design patterns you can guard against this kind of thing happening because you don't have to hold stuff in your head. It also makes context switching much easier.