It is generally accepted that developers will not code 8 hours a day. They can however become distracted in an inappropriate manner:
- by ICQ
- surfing the 'net
- playing computer games
This distraction is often related to a lack of motivation for the developer in question. Once motivated they will tend to restrict their activities to those that are "appropriate" (and are related to the work they must do on a daily basis).
I disagree that distraction is often related to a lack of motivation for the developer
. This strikes me as TheoryXx
thinking. Obviously, developers must be motivated properly (usually in some form of profit sharing) in order to do their best work, but it is wrong to assume that distractions
are antithetical to doing good work. In fact, some of my best work comes from not
thinking about a problem for a while and returning to it after being appropriately distracted
My point was that inappropriate distractions are often caused by a lack of motivation. As mentioned, most developers will not code for 8 hours straight and I too work well when I can "get away" from a problem and think about something else. Inappropriate distractions could probably be more clearly defined as distractions which detract somehow from the effectiveness of the team. An example would be a developer who, while pairing, is constantly receiving and replying to ICQ instant messages. This is frustrating for the partner who has to watch the "distracted" member WastingPeople. -- IainLowe
Before there was ICQ, there were telephones and housewives. And I'm not ashamed to admit that I visit Wiki at work, though I'm not exactly about to advertise that to my supervisors. There is a limit to how much I can rationalize, so it's not like I can justify playing PacMan at work. But the way I see it, at least when I'm on the Wiki, I'm learning about programming as a thinking process. Of course, since it is programming-related, that may mean it's not distracting
enough, and I won't get the fresh perspective I need for those crucial AhHa moments until I start playing PacMan at work. And it's certainly less distracting than the guy who comes out of his office and has a big WaterCooler? chat with us in the cubicles for an hour every day.
I absolutely agree. The original context for the discussion was that someone mentioned that they had had a problem with ICQ'ers and I said that I had a similar problem with some people at work who did sort of the same thing. The main issue is the propriety of the distraction (and, I guess, the frequency). I wiki at work; I also read a mailing list or two. These are part of my responsibility as a developer to stay up to date and to learn new things. I don't do this all day and there are days when I don't do it all. When a distraction becomes something that no longer adds to the development process but instead detracts from it, it becomes a concern.
Several times a day I (and others) go and smoke a cigarette. I do this away from my desk and it gives me some time to get away from the actual thing that I am doing. Non-smokers don't have this "mandatory" time away from their work and therefore need to "escape" in other ways. This is understandable. I have no problem with somebody taking time off from coding (we had one guy who would go for a coffee outside the office instead of drinking our coffee - both because our coffee is bad and because he needed some space). I do however have a problem with somebody "abusing" this time off. Whether it be by playing Quake or PacMan
when somebody else wants to pair. If it is done too often or too much it becomes a problem.
I think that the real point is "how much of this can you rationalize?" If you find that you cannot adequately explain what you are doing then you probably shouldn't be doing it. I also like to think of it in terms of "would I mind if somebody else were doing the same thing I am doing?" If the answer is "no" then I should stop what I am doing. All of this assumes that we are discussing peers. I don't tell my supervisor how to do his job. DistractedDevelopers
has less to do with accountability and more to do with "how can we make sure that everyone is working as part of a team
?" -- IainLowe (P.S. I quit smoking so I don't waste time doing that anymore :) )
In my opinion, InappropriateDistractions?
are not a question of lacking motivation. For me the following items are the main causes for DistractedDevelopers
- People wandering around and peeping over the programmers shoulder
- People talking too loud (e.g. in adjacent cubicles)
- Bad tools, like a screen with 1024*768 resolution or less
- Bad coffee
Please feel free to add to the list.
Maybe an InappropriateDistraction?
is a distraction against the developers will? It either keeps the developer from entering the MentalStateCalledFlow
or it pulls her out of it and creates a DumpShock
. -- LorenzBeyeler
Interesting comment in Chapter 2 of XP examined -- http://www.cs.ualberta.ca/~hoover/cmput401/XP-Notes/xp-conf/papersList.html
Take a look at the last two paragraph.
When XP pops, team members may begin to feel stressed by the speed of development. In pairing especially, there is little opportunity to spend time surfing, listening to private music, or talking with loved ones on the phone. Goof off time
disappears. Work at this pace is exciting but draining, so the Coach must be careful to watch for and alleviate signs of fatigue. This is why working a 40 hour week is an XP practice.