Yesterday, I made a comment to a teammate about not being able to imagine working in a team room full time because it would be uncomfortable and unproductive to be hunched over a laptop on a table all day. He said that's not what a real team room is. And he's right. I googled team room and found a number of pictures. The first two look like nice setups that I'd be comfortable working in. The third one looks horrible. How do you develop hunched over with a tiny monitor.
Does anyone have any experiences with team rooms? Or insights into this?
I had to be in a team room once for two days. It was ok cause it was only a two day thing. I can't imagine working in that kind of a setup everyday. I have never understood parallel programming ( I'm not sure if that's the right word -- the concept of two people wotking on the same thing ). I can't imagine somebody looking over at my work all day or sitting that close to me. I find it disturbing. I don't like any of the teamroom setups in those three pics. And the third one is the most disturbing. Where do these guys keep their personal stuff? They carry their things everyday to work? Scary setup.
Chan Ag wrote:parallel programming ( I'm not sure if that's the right word -- the concept of two people wotking on the same thing ).
It's not. The term is "pair programming".
Chan Ag wrote: I can't imagine somebody looking over at my work all day or sitting that close to me. I find it disturbing
I like pair programming, at least in small doses. I've never done it for more than a few days in arow. It's not someone looking at "my work", it is "doing our work together". We are problem solving together. We are coding together. We are alternating who drives (types) and who navigates.
Chan Ag wrote:And the third one is the most disturbing. Where do these guys keep their personal stuff? They carry their things everyday to work? Scary setup.
Some people don't have things. (I'm not one of them. I have lots of things.) Some companies have the concept of hoteling where you don't get a place for your things either. I don't like that idea much either! It's possible they each get a drawer somewhere. Or that isn't their only workspace.
Pair programming is awesome when you are a junior, or if you have one person who has business knowledge and another who has technical knowledge. WHen I started out, I used to pair program with a woman who was really a Commerce graduate, and I was good at C++ It was a financial application. SHe would explain me the financial concepts, and I would explain how to put those things into C++. SHe could type much faster than me, so she would type while I moused. However, if there was something intricate to be built, I would take over and stub the structure out, and she would then come in and fill in. It makes a lot of sense if the problem is a 2 brain problem. If you would do this in a single programmer model, she would be forced to be the business analyst. THen you would get into a situation where she has to write these requirements that I would have to understand. Rather than have a "requirements" meeting where you talk, talk talk... we just bang out the code together
ANyhoo.. back to team room. I like team rooms, as long as the devs have the authority to self organize/decorate.. Actually, I have done it way before there was this concept of agile programming and team rooms. It's just that my boss in India was cheap and instead of giving us cubicles, he put us in a room. We just talked talked talked while we worked. We talked about work.. about family, life THe boss would get pissed off, but it was awesome. In other situations too within the US, I've been in open seating areas, and it just feels right. What you definetly need is a quiet room away from team rooms. ANyone can go into this room, and no one talks. So, if you are working on a difficult problem, jump in there, and come out with the solution.. Or just stay back home and get er done!
I dunno.. I might be biased here. We naturally fell into some of these agile practices in my first job, and IMO they worked.
I have worked in a team area almost exclusively for the last 3 years. I can tell you I sometimes miss the privacy. I have learned to just shut things off when I am in a zone and need to focus. I do very little pair programming, however it is easy for team members to ask a quick question when collaborating on the same project. There are days when it seems like all a person does is answer questions but it does allow for easier collaboration and/or mentoring when required. Our pet name for this area is the 'Petting Zoo', its a large open area split into about 6 different sections, each for different projects.
Bill/Janyesh: What features did you like/dislike about those team rooms. Did everyone have a desk? Was there a big open table? How many monitors did you have? Where did you put your stuff? What else in organizing/decorating is important that I'm not thinking of?
My first job in India was 5 desks arranged around a room. That's basically it. No multiple monitors. Not even whiteboards. However back then I was a n00b and wasn't used to these "luxuries"
The second time was in the US in a temporary space, which was again 20 desks in 4 rows of 5 each. Pretty simple. I didn't like that too much, because that was a "swing" space, and it wasn't team focused, although our team was all together. It did work out, but was distracting.
Then they moved us to a permanant area that was designed for open seating. That was horrible, because everyone was out in the open. All of us revolted, and they put us in cubicles.
They "threatened" to take away our whiteboards once. Enough people were bothered that they changed their mind. (I said I'd bring in my own if they didn't install whiteboards when we moved to new office space.) A "non-professional looking" whiteboard is cheap. If they don't want that in the cube, they should buy them.
Our area is nothing like the 3 pictures you showed. Its huge. There is a big center aisle that winds through the middle of it where 4 people could walk side by side. Through the length of the room there are 3 sections on each side, each section for a different project. Each section is sectioned off by dividers that are probably about 4 feet tall with whiteboards covering each side of the divider. When you are seated you cant see over them.
Long tables form kind of a square with the side into the center aisle left open (no table there although there is a big divider with a white board with small open areas to each side of it to get in and out of the section). Not all sections our equal sized. In our section 4 people sit side by side along the length of one side and 3 along the length of the other 2. You are not super close to your neighbor like in your photos but you don't have room for too much personalization either. In the middle of the square is a big round table, where we usually put candy, or stuff to personalize the space. We hold our scrums around this table. in the morning. Each space also has a 60 in TV mounted in it.
Also everyone has a docking station for their laptop and a 2nd full sized monitor, keyboard and mouse. The chairs are pretty comfortable, but you are still working on a table, with no division between your neighbor to the left or right.
You look across the way at the row across from you and behind everyone is a divider (with the whiteboard)
For six painful months I endured a situation with 8 developers in a small room. We had desks but no privacy and no teamwork. I thought I was going to have to kill the ice-chewing S.O.B. that sat in front of me.
After that experience, I will never again accept a job that doesn't at least get me a cubicle where I have a little bit of privacy and I don't feel like it's feeding time at the zoo. I actually prefer to work at home where it's much harder for anyone to disturb me. I'm far more productive that way. All those pictures you posted look nightmarish to me. No thanks. Make all the Dilbert-esque jokes you want about cubicles. I'm quite comfortable in my little box.
"The good news about computers is that they do what you tell them to do. The bad news is that they do what you tell them to do." -- Ted Nelson
Team rooms are what you make of them. If you are forced to work in a team room with a bunch of other people who have no idea about the kind of working style that fits this kind of environment, then you will probably end up hating it. If, on the other hand, you work with people who understand the Agile principles and values that team rooms were meant to reinforce (Individuals and Interactions over processes and tools; The most efficient and effective method of conveying information to and within a development team is face-to-face conversation) then you will not want to work in any other way. It's kind of the same way with Test-Driven Development -- it's best done with someone else not because of the mechanics of the technique but because of the conversations that occur when you do TDD properly.
I may have the best of both worlds. I work from home but I pair/group program with my teammates at least 4 hours a day. I have three monitors, a 2x24" (double head) desktop and my Mac, which allows me to keep WebEx, my IDE, and a terminal window in view at all times. We use WebEx to share the driver's desktop and carry on our discussions as we watch him/her drive. Non-drivers can do supporting tasks or run small experiments on the side. WebEx makes it easy to switch roles: just pass the "ball" to the new driver so he can share his desktop. I find that the conversations we end up having produce better designs and we can catch more bugs that would have made it further down the development lifecycle otherwise. Working alone is pretty 20th century; one team I talked to at Agile 2013 in Nashville said they practice "mob programming" and would not work in any other way. Whole team, one user story.
Personally I don't think ever ever not worked in a team room. I love it. Especially when working in Agile projects. All the team members are right there and I find it eases communication a lot. That can also be a drawback if everyone just starts shouting at other people from clear across the room, but it can be mitigated by establishing some basic ground rules, and by simply speaking up if it bothers you. I like the social aspect of it. I would be completely miserable if they locked me away in a cubicle somewhere.
Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.