New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The "Zone" #186

Closed
groundwater opened this Issue May 2, 2012 · 5 comments

Comments

Projects
None yet
3 participants
@groundwater

groundwater commented May 2, 2012

How would you reply to Uncle Bob's comments in "The Clean Coder" that the zone is dangerous to and be avoided. In short, the zone is a place where you think you're doing good work, but you're actually more likely to produce code that gets discarded.

@holman

This comment has been minimized.

Owner

holman commented May 2, 2012

I haven't read it, but I'd disagree. Working in the zone makes me happy. That's the important part. I'm more productive, I write better code, it makes me a happy coder.

@holman holman closed this May 2, 2012

@groundwater

This comment has been minimized.

groundwater commented May 2, 2012

Here are two fair-use excerpts:

The problem is that you lose some of the big picture while you are in the Zone, so you will likely make decisions that you will later have to go back and reverse. Code written in the Zone may come out faster, but you’ll be going back to visit it more.

also

One of the big benefits of pair programming is that it is virtually impossible for a pair to enter the Zone. The Zone is an uncommunicative state, while pairing requires intense and constant communication.

Personally, I often zone program, and if I'm not there I will do something to bring myself back there, but I can't help think his words ring a degree of truth/wisdom.

@holman

This comment has been minimized.

Owner

holman commented May 2, 2012

The first is definitely true. It can be easy to fall into a rabbit hole and then an hour or two later realize it all wasn't worth it. That tends to happen to me on difficult problems, though, which I feel to be a different scenario than when I'm properly "In The Zone". The key is identifying when you could be in the rut in the first place.

Secondly, I don't pair, so that doesn't bother me.

@groundwater

This comment has been minimized.

groundwater commented May 3, 2012

I really like the asynchronous workflow idea, particularly asynchronous group chat. I think his beef with the zone is that it doesn't fit into meeting-oriented cultures. I know I get downright pissed when I am called away from deep focus into a meeting. The fallout from that is I tend to seclude myself away when zoning so I can avoid a work culture that doesn't mesh with a developer-like culture:

The Zone is an uncommunicative state

I think this is the real demon, not keeping lines of communication open. I think I will try the pull-request style for my next team project.

Thanks

@graffic

This comment has been minimized.

graffic commented Aug 8, 2012

I guess Bob's definition differs sightly from Joel or Harald Armin Massa: http://lanyrd.com/2012/europython/srzkx/

What Bob calls the zone, is not an state of maximum productivity, focus and good feelings. But an state of over-engineering, anxiety, and being happy just with the volume of sh## you dumped.

Over engineering because you've lost the picture and you code like crazy. You end up with features and functionality that you don't need right now, and usually you will never need. You break KISS, and you get lost in your own ideas.

In this state you feel anxiety because you run to finish the initial task, you know that you're doing something "extra", so you run for it, and any time you loose is another delay. Therefore, you isolate yourself to run faster. You feel the pressure of finish and anxiety keeps you there alone.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment