The Quiet Bullpen
There is something innately wrong when the room is quiet and everyone is engaged in solo work. It's okay for email, or chat, or writing reports (I suppose) but it doesn't seem like software work to me. I suppose that's because software development is a more passionate, collaborative effort. I expect to hear a lot of conversation, arguments, laughter, frustrated groans or exclamations. I expect to hear one person telling the other that they've just forgotten a semicolon or spelled a variable name wrong, or at least that there is quicker way to make some modification.
Software development should be like a jam session, where all the musicians are trying trading between leads and accompaniment and finding spaces to fill in and learning to join in the song without getting in its way. It's noisy in these intellectual software jam sessions, and much gets done. Even those on the sidelines hear the process of software and are able to join in or sit out as their needs and. skills dictate. It is an event of controlled chaos, a feast of intellect and technique.
But no. In the quiet bullpen there are a number of people "minding their own business". There are no offers of corrections, no arguments, no exchange of ideas or techniques. It's dead calm. It gives me the sense that there is something happening but that something is not software design. It's too sterile.
Oh, yeah, there are lines of code being written, but I fear that too many lines are being written relative to the amount of work being done, since nobody is sitting over the typist's shoulder reminding him that it could be done in fewer words, in fewer keystrokes, in fewer clicks. I fear that the same procedure is being performed multiple different ways and nobody realizes it. I fear that the same problems are being corrected in multiple bodies of code. Quiet isolation breeds waste.
I fear that nobody is doing "corrective steering." I fear that any work that comes out of the quiet bullpen will make a quick round-trip through the testing department (if there is one, and woe unto the solo programmer if there is not) back to the programmer. I fear even more that the same programmer will work on it the second time. Silent isolation is a breeding ground for mistakes.
I fear that there are great ideas being generated, but that these ideas are falling into code that is "owned" by one programmer, and her coworkers may never see it. In the silence, nobody can hear your epiphany.
I fear that local optimizations are compromising the larger application and nobody knows it.
I fear that someone thinks his work is done because he forgot about some aspect, some task that should have been considered (and may have been discussed already) but nobody is riding shotgun on his memory.
In the worst case, I fear that people working solo can say or believe anything that they want about their work, and nobody is there to keep them honest. Isolation breeds arrogance, and hides dishonesty.
I trust that people are able to think better in groups. I trust that people are natural problem solvers and that they can pool their natural genius and individual perspective. I think that having many advisors increases success. I think that we're all smarter together than any of us alone.
But in the quiet bullpen, they choose (intentionally or accidentally) not to harness the power of other people. Instead, we get the best effort of isolated individuals with their varying levels of skill, taste, and experience. The quiet bullpen is where mistakes are born, and allowed to breed.
!commentForm
Your description of the development jam session is definately appealing to me, and the tiny and inexperienced development team to which I belong has at times taken on certain of those characteristics. But I think back to the concept of 'flow' in the book Peopleware (among many places) and wonder whether I would be able to maintain 'flow' in the jam session environment. Some days, it seems like any additional external stimuli at all can snap my focus and derail my train of thought. Is that just the effects of too much coffee/not enough sleep? Should there be a quiet place to which a pair can retreat for total concentration, or do you feel that the cons of silence outweigh the cons?
-Matt
The New Guy
-Matt
The New Guy
If you knew me, you would know that your concentration is not less tenuous and fragile than mine. ;-) I keep thinking about meta-issues and whether the process is giving the desired results, and whether flaws in the design are because of people or process, and whether they are indeed flaws in an "agile" world view, or just in my old OO/pre-Agile thinking. These things distract me, but only because I think that I'm still assimilating agile, and don't have any (heavily marketed, life-enhancing) Agile super-powers yet. And I'm distracted by shiny objects.
To retreat to some other place where you can collaborate and be noisy together is perfectly acceptable AFAIK, but you lose the advantages of eavesdropping and eavesdroppers.
To retreat to some other place where you can collaborate and be noisy together is perfectly acceptable AFAIK, but you lose the advantages of eavesdropping and eavesdroppers.
Management recently changed where I'm at and we went from pairing on almost every task to pairing on none of them. One thing that I noticed in this change is that when I'm working by myself, I feel the need for uninterrupted concentration. However, when I was pairing, I didn't feel that need.
I've sat here and tried to think of the explanation but one of my co-workers was being extra noisy so I had a tough time of it ;-). However, I was able to come up with at least one answer.
For me, design can be like a conversation and when I'm alone, it's one I have with myself. I'll think of an idea, and then try to play it out in my mind, coming up with counter examples, new ideas to deal with those counter examples, etc. I'm not as quick as some guys I know so this process takes a lot of focused brain power for me. When I was pairing, that conversation took place out loud between my partner and it didn't seem to require as much brain power to play only one side of the conversation.
I'm not sure that's the whole story but I'll continue mulling this one over in a quiet, secluded place.
I've sat here and tried to think of the explanation but one of my co-workers was being extra noisy so I had a tough time of it ;-). However, I was able to come up with at least one answer.
For me, design can be like a conversation and when I'm alone, it's one I have with myself. I'll think of an idea, and then try to play it out in my mind, coming up with counter examples, new ideas to deal with those counter examples, etc. I'm not as quick as some guys I know so this process takes a lot of focused brain power for me. When I was pairing, that conversation took place out loud between my partner and it didn't seem to require as much brain power to play only one side of the conversation.
I'm not sure that's the whole story but I'll continue mulling this one over in a quiet, secluded place.
Nice reinforcement of many agile principles... and some good sound bites too. I especially like "Isolation breeds arrogance, and hides dishonesty." I might post that one on my wall.
Considering again, I think my difficulty concentrating stems from the fact that the other conversation in the room has nothing to do with what I'm working on. Our team of four developers is currently fragmented and working on three entirely distinct and unrelated projects - a CMS project, a data warehousing project, and a web application. We have an open workspace, and it's fairly common for a stakeholder from another department to pop in and have a conversation about something entirely unrelated to my work. I've even been 'kicked out' of the office a few times during meetings for other projects because our conference table is four feet behind my workstation and there's not enough room for everyone to sit comfortably.
Add Child Page to TheQuietBullpen