Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Certainly it is a productivity killer when a developer is constantly interrupted by other workers, bosses, etc - but it is even worse when the developer is constantly interrupted by his or her own tools and equipment.

For example, if a developer must wait 10 minutes for each build he makes - so that he can iteratively test code he is working on, the effect on productivity is devastating. Or perhaps the build is fast, but copying the bits to a test VM takes 3 minutes. Once again, the developer is being vexed by a lack of "responsiveness" in the tools and procedures being followed.

I believe there is a name for an environmnent that is free of these problems, or perhaps a name that is plagued with these process and tool interruptions. I can't recall the name or industry "label" for this. Anyone recall?

share|improve this question
Impediment? Though technically (in Scrum) that's something that stops you completing a task on the backlog. – James Love Mar 1 '11 at 18:00
1  
I think the technical term is "clunky". – John Mar 1 '11 at 18:06
There is a name for this friction-free development environment. It's called Nirvana. en.wikipedia.org/wiki/Nirvana – Joel Etherton Mar 1 '11 at 18:42
So you're not looking for a solution - just the name? Why? – NickC Mar 1 '11 at 18:43
1  
Because of how much we awesome devs rock and roll when in the flow, I call it getting rock blocked. – Matthew Frederick Mar 1 '11 at 19:59
show 2 more comments

6 Answers

up vote 5 down vote accepted

In general when you talk about stuff like this the common term is: flow

the mental state of operation in which a person performing an activity is fully immersed in a feeling of energized focus, full involvement, and enjoyment in the process of the activity. In essence, flow is characterized by complete absorption in what one does...

...flow is completely focused motivation. It is a single-minded immersion and represents perhaps the ultimate experience in harnessing the emotions in the service of performing and learning. In flow, the emotions are not just contained and channeled, but positive, energized, and aligned with the task at hand. To be caught in the ennui of depression or the agitation of anxiety is to be barred from flow. The hallmark of flow is a feeling of spontaneous joy, even rapture, while performing a task although flow is also described... as a deep focus on nothing but the activity – not even oneself or one's emotions...

http://upload.wikimedia.org/wikipedia/commons/thumb/c/c8/Scout_Girl_in_Concentration.jpg/220px-Scout_Girl_in_Concentration.jpg

share|improve this answer
Fantastic!!! These "interruptions" disrupt the productivity of "Mihaly flow." Perfect! I wouldn't be surprised if another formal word exists that is custom tailored to this topic, but I'm sure this is as good as any would need. :) – Brent Arias Mar 3 '11 at 18:25

I think the name for the environment you're attempting to describe is "dreamland". As developers we are constantly working with computers. I've never met a computer I liked or did its job with any regularity. That being the case, we're constantly impeded by the simple fact that we work with computers.

This soft and furry land where developers are not constantly being interrupted waiting for stupid shit like "Intellisense" and just general, random lock-ups, where there's flowers and rainbows all the time and everyone is smiling...yeah, that place doesn't exist unless you've taken a LOT of LSD.

share|improve this answer
It exists if you choose your tools well. For example, using Ruby on Rails, you can write a unit test, add a database column in a migration, write the code that uses the new column, run the migration, and run the test in a minute or two. Or change code and refresh the browser. – kevin cline Mar 1 '11 at 19:19
@kevin: some tools we do not choose... they choose us... – code4life Mar 1 '11 at 19:28
Just because you can add a column to a database and application in 2 minutes doesn't mean you should. You could do that with Microsoft's Webmatrix and not write any code at all. – JeffO Mar 1 '11 at 22:15
You never met a Symbolics LISP Machine. (I speak from experience here.) – John R. Strohm May 4 at 16:00

I don't know beans about development methodologies (except maybe modified waterfall) but this sounded interesting.

It might be Interruption Driven Development as the problem, and the way to fix is the sacrifice one person strategy.

Makes sense, let one poor sod absorb all the interruptions so everyone else can work.

share|improve this answer
2  
of course that doesn't take care of the build time. For that you need to switch to Delphi. – Peter Turner Mar 1 '11 at 18:28

I believe the words you are looking for are Efficient and Inefficient.

You are describing the Code-Build(Compile)-Test cycle which becomes more efficient as you shorten the Build time. Basically, if the build time is too long, your developers get board and start reading the Onion or start working on StackExchange sites :-)

share|improve this answer

I think the problem you are trying to describe is "humans", and more particularly "programmers".

Indeed, no matter how fast our computers are (and they are a hell of a lot faster than say 20 or 30 years ago, when we were able to do pretty good stuff already with those tools - check out Phones vs Supercomputers for some inaccurate but interesting insight into our past and present) we tend to ask more and more of our computers until they choke. That's when we decide we have reached the limit of the acceptable and that's what we settle to work with. Sometimes happily, sometimes not, it's a matter of perspective.

What's the solution? Sometimes we need to review our expectations, our processes, clean up the junk we downloaded, build machine dedicated to one task (compiling, testing)...

share|improve this answer

my favorite reference for counter-productive distractions is: DON'T WAKE UP THE PROGRAMMER!

Imagine that there is EVERYTHING at stake and it all depends on results of your sleep. Everything - your life, the life and future of your children, your career and mortgage payments, literally everything. It is even more - there are lives of people flying in aircrafts, their money on banking accounts, their career and their personal little secrets in social networks. It is ALL depends on how good your sleep is going to be. Not just one sleep. EVERY ONE and EVERY NIGHT. Every night you are going to sleep knowing that it all depends on how good you are going to sleep today...
 
...How about I ask you what time it is sometime around three in a morning? Nothing biggie isn't it? Just asked a simple question. I just asked. You just answered and then you can keep sleeping.
Not a biggie. Just once in a while I'd ask you something not very difficult to answer. Something like - "Have you checked your E-mail recently?" There is nothing to worry about, just yes or no answer would be sufficient and then you can go get your sleep again...

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.