Greetings and Salutations,
I'm currently in the process of expanding a software development company. We're moving into larger offices and hiring several more programmers. I've found in the past that one of the top (if not the top) factors in company productivity is team cohesion and individual employee morale. I'd like to do everything possible to foster an environment that results in improvements in this area.
I've attempted to implement the general basics such as investing in superior equipment and training, providing a comfortable level of flexibility, a relaxed atmosphere, and so forth. I've read many stories about related practices at large software development companies that go an extra step by providing morale budgets to programming teams and other similar steps.
My question is what are your recommendations for improving the work environment of a software development business? Thank you for your suggestions.
|
---|
Replies are listed 'Best First'. | |||||||
---|---|---|---|---|---|---|---|
Re: On Creating an Effective Work Environment
by chromatic (Archbishop) on Aug 22, 2003 at 03:29 UTC | |||||||
If you want to develop teamwork, your workspace has to encourage it. If you want people to work together — if you want developers to ask each other and the customer questions rather than guessing at the answers — it has to be easier to work together than to work separately. | [reply] [Watch: Dir/Any] | ||||||
by Anonymous Monk on Aug 22, 2003 at 04:18 UTC | |||||||
Thank you for your response. You raise a good point about making it easier for people to work together than separately. Could you elaborate a bit more on the contents of an ideal meeting room (for roughly 6-10 people?). Projectors vs. whiteboards? Are computers at all necessary? As for the extra couple of small offices - do you think the benefits of having these would outweight the hassle of moving developers around? I've found most people are rather attached to specific configurations (both of their software and physical setup). Also decent sound proofing isn't so expensive for a company our size, is the separate location more for noise factors, or change of atmosphere? Thanks. | [reply] [Watch: Dir/Any] | ||||||
by chromatic (Archbishop) on Aug 22, 2003 at 05:47 UTC | |||||||
I probably wouldn't have a meeting room, preferring to save the space for a big workroom. That has a threefold effect. First, you have more space to use for actual work. Second, you have no secret meetings larger than two or three people. Third, everyone has to be involved in any meeting, so you have pressure to have fewer meetings. The important thing I want to encourage is happy and accidental teamwork. Provided you have a healthy team, I know of no better way of accidental teamwork than having everyone work in close proximity. (Obviously, if you're working as individuals, you'll have concentration troubles. I'm a strong believer in pairing, though, so it tends to work out nicely, once you get the hang of it.) The extra offices are there for private phone calls, one on one meetings (performance reviews), and private e-mail or research. They're temporary; you wouldn't use one for more than an hour or two at a time. (I like the way the O'Reilly offices in Sebastopol are laid out — there are offices and group work areas. If you want your own office, you can have one. It's in the middle of the building, though. The group work areas are along the outside, by the windows.) Figuring out software and physical setups is trickier, but if you want the happy collaborative accidents, you need to standardize on one or two configurations that everyone can work with productively. It's more important to work well as a team than to use what you were most comfortable with on your own. There are legitimate and important ergonomic considerations that may come into play, and those have to be taken seriously. In those cases, you may need special equipment, but that's motivated by the genuine need to include someone in your team, not to assuage someone's preferences. The sound proofing is mostly for noise, though having a different atmosphere can be nice. Lots of companies already have different atmospheres for different groups. If you visit O'Reilly headquarters, you'll notice that customer service feels very different from HR and both are quite different from marketing, not to mention online publishing. (For one thing, there's a bookshelf full of foreign translations just outside online publishing, while the marketing department has lots of posters and end displays and a whole table full of pamphlets, mailings, and geegaws.) | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by VSarkiss (Monsignor) on Aug 22, 2003 at 03:52 UTC | |||||||
First, realize that you can't create an environment that will please everyone. Then, consider these criteria, which have slowly risen to the top of my list. Good luck. | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by BrowserUk (Patriarch) on Aug 22, 2003 at 07:11 UTC | |||||||
If you want a happy, contented bunch of team-players, give them the nice comfortable, open-plan environment, morale boosting perks, ralaxed atmosphere, artwork on the walls etc. where they can communicate openly, share their problems and so forth. If you want a productive team. Hire yourself productive programmers! Give them their own spaces where they can close the door and shut themselves off from the world and unplug the phone for at least the 4 hours of the day. Let them decide which 4 hours individually. Allow them to work hours that suit their personality traits. Morning people work morning, night people work evenings, if they choose. Have one day every 1 or 2 weeks when everyone has to be together. Don't make that day a Monday or a Friday. Don't allow them to work more than 10 hours a day. Then hire yourself a good project manager--someone with the ability to organise resources, schedule things, keep records. Probably not a programmer! Then hire yourself a technical project leader, with good people skills. Not a 'suit'. Give the project leader the sole responsibility for managing the people. The project manager the project. Have them both report to the same manager who abitrates between them when they don't reach a consensus. Organise your coders in teams of two or three. Give them complete responsibility for their parts of the project. Ban meeting that include more than 6 people or more than one manager. Good luck:) Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller If I understand your problem, I can solve it! Of course, the same can be said for you. | [reply] [Watch: Dir/Any] | ||||||
by halley (Prior) on Aug 22, 2003 at 13:26 UTC | |||||||
Being in view of someone else's screen, when I'm trying to concentrate on mine, destroys my 'groove'. And vice versa. I'll come out of my office to question, to arrange, to chit-chat, to play hacky-sack. I'll go into my office to code. I'll set the lights the way I want. I won't overhear a conversation and try to butt in, and I won't be interrupted by someone else when I'm trying to talk one-on-one. I'll sit on my papa-san couch and read when I need to, without everyone watching me "slack off." If people are going to own their problem domain, they need to feel like they own their physical domain too. If you mix several flavors too thoroughly, you get the bland average. If you highlight and juxtapose various flavors, you get a dynamic interaction. -- | [reply] [Watch: Dir/Any] | ||||||
by vek (Prior) on Aug 22, 2003 at 16:00 UTC | |||||||
I could never work in any of these "open plan" bullsh-pen suggestions. What's next, uniforms and fox-holes? A few people can work well like that, but not everyone. We could easily list a large number of teams and companies (both Bazaar and Cathedral style) who are extremely effective without playpen spaces. I couldn't agree more. Working in an open playpen is certainly *not* for everyone. I think a lot of it boils down to your personality. I can't think of anything worse than someone looking over my shoulder all day long - or forced to look over someone else's shoulder myself. That would drive me nuts. I like to put on my headphones and start banging out code. Where I work, all non manager types live in the cubie farm. The developers are all in the same area. When we need to ask each other questions we do - there's no need to get up from our cubies. We have an open area (i.e corner of office next to the window) that we use for our meetings. It all works extremely well. You certainly don't need an open playpen to be productive. -- vek -- | [reply] [Watch: Dir/Any] | ||||||
by chromatic (Archbishop) on Aug 22, 2003 at 16:41 UTC | |||||||
by vek (Prior) on Aug 22, 2003 at 16:51 UTC | |||||||
Re: On Creating an Effective Work Environment
by dbwiz (Curate) on Aug 22, 2003 at 11:20 UTC | |||||||
In addition to the excellent advice already given, here are a few links with food for thought. | [reply] [Watch: Dir/Any] | ||||||
by chanio (Priest) on Aug 23, 2003 at 01:41 UTC | |||||||
I think that it is a good sign to ask others before creating a good working environment at these days that seem that everything is pulling us down to the past. (might be there are still some wrong aproachings to the future that our karma must overcome?) I believe that coherence has nothing to do with new tech and amazing environments, but only to some human constants that have always worked well. If you search for these human constants you are never going to get wrong results. Nevertheless, they might surprise you, and enrich you. It shouldn't depend on the money, or the fashion, or the people, or showing off. Working must be constant creation and of course, clear communication. People that feels lonely, aprettiate a lot good company. So if your working environment goes well, noone would want to leave it. And would care if the company is not getting the comercial results that should need to keep them working together. People don't need to be friends but to feel good sharing a common place and job. These are simple facts, but real for every part of the world, don't you think? | [reply] [Watch: Dir/Any] | ||||||
by BrowserUk (Patriarch) on Aug 23, 2003 at 02:55 UTC | |||||||
Absolutely! So often, management set out with the best intentions in the world to create great working environments; build cohesive and cooperative teams; facilitate and promote communication; encourage and reward involvement, interest and commitment to the company/team/project. They will often put time, money and resources behind the endevour. The problem is, that in their enthusiasm for "doing it right", they forget one crucial aspect: The human factor! People are not the same. The environments, working methods, encouragements and perks that work for one guy can be a complete turn off to the next. Ignoring this factor and opting for a 'one size fits all' edict, completely misses the boat with respect to what they are hoping to achieve. The growing mantra of management to their employees since the late 70s has been flexibility. Flexibility of working practices. Flexible response to the demands of the job. All too often this is seen as a one way street. For it to work, it has to be two way. Management has to be flexible in their understanding and tolorance of the preferences and foibles of their workforce. This doesn't mean allowing guys to bunk off, or take liberties, or not pull their weight, or be prima donnas. It does means respecting that some people work best in quiet environments and others like music. Some need comfy chairs, playpen distractions, discussion groups and team building outings. Others would simply prefer to be left alone to do their work. It doesn't mean that they should be allowed to buck the requirements to communicate their progress or lack of it, or side step peer reviews, nor avoid administrative requirements or only work on the 'plum jobs'. That simply generates resentment. It does mean recognising personality differences like the morning person/ evening person syndrome. Work alone/ work in groups preferences. Force fitting people into or out of boxes by blanket edict, serves no one. Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham"When I'm working on a problem, I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." -Richard Buckminster Fuller If I understand your problem, I can solve it! Of course, the same can be said for you. | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by graff (Chancellor) on Aug 22, 2003 at 04:14 UTC | |||||||
Don't get me wrong -- perks are good; it's important for people to feel valued and to see tangible evidence that they are appreciated. But being nice and indulgent toward them won't help productivity if they're unsure or unclear about what they are supposed to be doing (and morale will still suffer, as well). I think it's especially important for new hires to have mentors, who know what is expected of the newbies, can ask detailed questions to keep track of their progress, and can offer tips or answers when the newbie gets stuck (or offer more to do when the newbie sails ahead of expectations). The "big picture" for each project needs to be shared, and the detailed breakdown and assignment of tasks needs to be a matter of record, with realistic assessment of the tasks that will involve learning and using new tools (as distinct from those that involve "turning a crank" on a familiar process). | [reply] [Watch: Dir/Any] | ||||||
by adrianh (Chancellor) on Aug 22, 2003 at 09:24 UTC | |||||||
Personally, I would rank appropriate guidance and clear project management as more important than physical layout or various other "perks". I'd disagree. I'd put them on equal footing. A bad working environment can cause just as many problems as bad "management". No matter how good the management you cannot be productive in a poor working environment. For example, I was once forced to work for a couple of months in an open plan office next to a group of marketing people. Lovely people (well, most of them :-) but their jobs involved answering and making phone calls all day. Our productivity dropped to just above zero with six mobiles and six desk phones going off continuously. | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by cleverett (Friar) on Aug 22, 2003 at 06:09 UTC | |||||||
When I worked construction in college, I worked for this contractor who would always order his concrete dry (w/ less water) so that his employees had to work way harder. Of course he knew perfectly well that up to a certain point the wetter the concrete the higher quality result he would get. But he didn't care, he was out to make his employees as tired as he could. Needless to say, his turnover was pretty high, to the point where he had to pay higher wages to even get people to finish a job for him, which just pissed him off more. IMO, a lot of people act as if the fun police were going to parachute onto their lawn and summarily execute them for having fun getting real work done. And because work is supposed to be "not fun" and "serious business", they make it harder on themselves and/or their employees. I say do whatever makes productivity the _fun_ choice. To go one further, make sure that more productivity == more pleasure. Then you'll never be disappointed in your output. But you may have to put up with people wondering if they have a real job ... | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by Ryszard (Priest) on Aug 22, 2003 at 08:40 UTC | |||||||
The company was also very good to its employees with frequent team building exercises (small things like bowling and bbq's), and offered free softdrinks and a pool table, which was kind of like out water fountain. IM_O_ probably the single biggest thing in creating a healthy, happy, productive company would have to be the culture. Sounds strange and even foreign to some, but i actually _enjoyed_ getting out of bed and going into the office to face the next challenge. Update: If you get it "right", make me an offer.. :-) | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by dragonchild (Archbishop) on Aug 22, 2003 at 12:52 UTC | |||||||
There's more, but it's been said by others. ------ The idea is a little like C++ templates, except not quite so brain-meltingly complicated. -- TheDamian, Exegesis 6 Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified. | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by chunlou (Curate) on Aug 22, 2003 at 06:25 UTC | |||||||
Other people have covered many of the instrinsic (mentoring, education), extrinsic ("pleasant" workplace) and systematic aspects (well-defined goals and process) of creating a productive work environment. Another thing is to find a way to listen to what people "don't tell you." Cubicles and email-based communication often hinder someone from listening to unspoken messages. Sitting alongside with the people you work with helps. Creating atmosphere that people feel free to talk whenever they have concerns (as opposed to meeting-based communication) helps more. What "unspoken" messages? Well, at a personal level, it includes dissatifaction with badly-written, badly maintained code (Difficult code (Resolutions)); some other coworkers/managers making unreasonable requests (work-related or otherwise) to some other. At a project level, unclear project object or req spec. people might hestitate to speak out about for whatever reasons (which should be caught prior to implementation stage). No news is not necessarily good news as it could be due to truly free of problems (rare) or there's communication failure (often). You don't want to find the bad news the moment someone telling he quits or a project collapses and fails. * * * * * * Another thought, don't do motivation by giving motivational speeches. It's annoying and demotivating. Good mentoring, as-organized-as-possible development process, pragmatic problem solving procedure (as opposed to you-can-do-it heroic Hollywood kind) motivate people much better. | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by demerphq (Chancellor) on Aug 22, 2003 at 13:42 UTC | |||||||
I think a good answer to your question really requires a thorough understanding of your staff and their personal foibles. For instance in general I dont like music playing when I code and im not a morning person. OTOH Ive worked with people whose idea pushing out the code means coming to the office at 6am and cranking the thrash metal. Needless to say neither of us were entirely happy working in close proximity to the other. Nor were either of us as productive as we could have been. I suffered through music I could (mostly) tune out, and he suffered by not being able to listen to music he really liked. My point is that having the flexibility to accomodate the various personality types out there in one office will probably be your best approach. If you have enviornments were the rowdy types can be grouped together to laugh, shout and work, while at the same time leaving us quieter types a place to go and meditate and concentrate, with some kind of common ground in between for hanging out and brainstorming and drinking beveridges (and maybe smoking depending on what country you are in :) then I think everybody will be able to find their comfort zone and be more productive. Grouping your coders (by personality type) in pairs in offices with windows and doors like they do often in academia, with a friendly meeting room for the rest seems like a viable approach. Certainly one that I would like to work in. --- demerphq <Elian> And I do take a kind of perverse pleasure in having an OO assembly language... | [reply] [Watch: Dir/Any] [d/l] | ||||||
by Abigail-II (Bishop) on Aug 22, 2003 at 14:03 UTC | |||||||
Grouping your coders (by personality type) in pairs in offices with windows and doors like they do often in academia, I'm currently working in a place where everyone has an office. Most offices are shared between two people. Over the weekend, we have a large (internal) move, and starting on Monday I'll share a good sized office with one person, with a window overlooking a train station. Abigail | [reply] [Watch: Dir/Any] | ||||||
by Anonymous Monk on Aug 24, 2003 at 08:02 UTC | |||||||
I agree. And to emphasize just how strong personal preferences can be, I find my productivity nearly triples when I have a window. Especially if I can look out at something and just stare for a few minutes a couple of times a day. A train station sounds absolutely perfect. In my current position I share an office with three others who *always* bounce in and out, up and down. Fortunately we have flex hours, so I've started working 12-9 to minimize overlap, so I can get some *real* work done. | [reply] [Watch: Dir/Any] | ||||||
by PodMaster (Abbot) on Aug 22, 2003 at 14:07 UTC | |||||||
| [reply] [Watch: Dir/Any] | ||||||
by chunlou (Curate) on Aug 22, 2003 at 14:02 UTC | |||||||
| [reply] [Watch: Dir/Any] | ||||||
by demerphq (Chancellor) on Aug 22, 2003 at 14:50 UTC | |||||||
Actually in the area of creativity and productivity Ive seen many an argument for the contrary to what you say. There is one company in particular, (a large privately owned defense and hightech corporation in the US), where the owner more or less encourages his different divisions to compete against one another for contracts. This drives the individual teams creativity to the overall benefit of the company. Factions and gangs are only negative when their competition is unfriendly or underhand. Proper open faced friendly competition is a stimulant to open mindedness, productivity and creativeness. --- demerphq <Elian> And I do take a kind of perverse pleasure in having an OO assembly language... | [reply] [Watch: Dir/Any] [d/l] | ||||||
by chunlou (Curate) on Aug 22, 2003 at 15:10 UTC | |||||||
Re: On Creating an Effective Work Environment
by dws (Chancellor) on Aug 23, 2003 at 04:33 UTC | |||||||
I've worked in a number of situations, from new building build out with private offices to cube farms to retail buildings in the process of being "repurposed". When I think back on the projects that were successful, and match that up against environment, a couple of things pop out: I used to be a fan of private offices with doors, but thinking back, having an office doesn't really correlate with my being happy and productive, only less distracted.
| [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by LameNerd (Hermit) on Aug 22, 2003 at 17:08 UTC | |||||||
I think you should incorporate the strategy managers at big companies like Sun use. First hire smart, then completely ignore these smart hires. Another thing you can do to boost productivity is "evaluate" your employees. Do this often enough so that your employees realize that you are sizing everyone up for the evitable layoffs. This way your stupid employees will work harder and your smarter employees will spend their final days working for you sending out resumes and sneaking off to interviews. Also make the evaluation process subjective enough so that managers can keep their favorite boot licks and brown nosers. Once you have identified the employees "deadwood" (smart hire is now synonymous with deadwood) to be laid off make sure everyone in the company avoids and ostracizes these people by placing them on a "Performance Improvement Program". </tongue in cheek> | [reply] [Watch: Dir/Any] | ||||||
by neilwatson (Priest) on Aug 22, 2003 at 18:51 UTC | |||||||
Neil Watson | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by kutsu (Priest) on Aug 22, 2003 at 15:53 UTC | |||||||
Cool points for all, I just have a little to add Allow an employee some control of their meal period. At my current workplace we get a 30min. meal and two 15min. breaks, but I take either a hour lunch or a 30min. lunch and leave a half-hour early (US law requires 20min. break for any workday at or over 7 hours). Also, have days, such as a monthly food-day for birthdays, that employees get some payed time off, like 30min., to talk, eat, and celebrate something, you might be suprised how much they talk about projects their working on. That's all I have except to say, I like to work alone and headphones rock! "Pain is weakness leaving the body, I find myself in pain everyday" -me | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by coreolyn (Parson) on Aug 22, 2003 at 20:25 UTC | |||||||
I'm in a cube farm but I love it and the team atmosphere we enjoy. As mentioned earlier ergonomics play a big part, lots of whiteboards, and a mix of large and very small offices are available to use. However, while all these physical pieces are helpfull ( oh and a real smoking lounge is especially sweet ) what makes the Team 'tick' is very flexible hours.. No one does less than 45 hours in a given week but it doesn't feel like it. Having the ability to control your own coming and going, and getting to know each others time quirks allows for a great easing of stress, and everyone is quite religous about fufilling thier obligations in spite of when they come and go. Another piece that has recently ended as policy and it's absence has had a great detrimental effect to the 'Team' atmosphere was the frequent utilization of 'Off-Site' teambuilding. While the actual task of the meeting was seldom accomplished the liberal give and take between the participants made for a much stronger level of communication between members when the heat was on. coreolyn | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by jacques (Priest) on Aug 25, 2003 at 02:45 UTC | |||||||
| [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by greywolf (Priest) on Aug 27, 2003 at 04:34 UTC | |||||||
Z: A development team needs to be able to communicate easily. All members of the development team should be in the same area. Having 1 person even an extra ten feet away from the rest of the team will affect their morale and productivity. Y: Developers need an area where they can get together and work without disrupting others or being disrupted by others. Being able to paste the walls with information/notes/ideas is key in this area. X: Give the developers enough room to work. It can be a major pain when 2 people have to work at the same desk for a while and the person at the next desk has to move around to accomodate them. W: Outside noises that cannot be blocked out are a major pain. I can't count the number of times I have had to listen to sales reps all day long. V: Flexible break schedules. It may not sound important but given the choice between 2 fifteen minute breaks and 1 thirty minute break I will take the thirty minute break almost every time. U: Headphones are a godsend. It doesn't matter how well a team gets along, at some point they will all need some noise to distract them back into a quality working mode. mr greywolf | [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by ellem (Hermit) on Aug 24, 2003 at 03:15 UTC | |||||||
No chairs! No desks! No computers! Everytime you hit them with the Cat-O-Nine and they only feel the sting from seven ought to be perk enough! And what's all this going home? Make them stay until they are done. Let them write their code on pads with pencils on their wooden benches by candlelight. And NO PAY if there are BUGS in the code! -- ellem@optonline.net There's more than one way to do it, but only some of them actually work. | [reply] [Watch: Dir/Any] | ||||||
by menolly (Hermit) on Aug 25, 2003 at 03:37 UTC | |||||||
| [reply] [Watch: Dir/Any] | ||||||
Re: On Creating an Effective Work Environment
by Anonymous Monk on Aug 25, 2003 at 02:10 UTC | |||||||
| [reply] [Watch: Dir/Any] |