Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

On Creating an Effective Work Environment

by Anonymous Monk
on Aug 22, 2003 at 02:50 UTC ( #285646=perlmeditation: print w/ replies, xml ) Need Help??

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.

Comment on On Creating an Effective Work Environment
Re: On Creating an Effective Work Environment
by chromatic (Archbishop) on Aug 22, 2003 at 03:29 UTC
    • No cubicles.
    • Give developers a quiet environment.
    • Set up a big room with plenty of space for everyone to work together.
    • No fluorescent lights.
    • Plenty of whiteboards and index cards.
    • There should be plenty of room for developers, their managers, and some sort of customer to work together comfortably.
    • Have a couple of small offices for work that needs absolute quiet or privacy, but don't give them to anyone permanently.

    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.

      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.

        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.)

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.

    • Quiet. An effective work environment needs to be quiet. To the point where you can concentrate, but not to the level where you feel like you're isolated. It's hard to strike that balance, but this is the single most important criterion, imho.
    • A "water cooler". I put that in quotes, because you don't need a physical water cooler, but a place where people can nosh and talk, separately from the quiet place above. It serves as an informal discussion area. Almost as good as the monastery. ;-)
    • Aesthetic "non-computer" art. Really. It makes a difference when you can look at a nice painting or sculpture that has nothing to do with computers to remind you that the bug you've been working on is not the be-all and end-all of your life.

    Good luck.

Re: On Creating an Effective Work Environment
by graff (Chancellor) on Aug 22, 2003 at 04:14 UTC
    Personally, I would rank appropriate guidance and clear project management as more important than physical layout or various other "perks".

    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).

      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.

Re: On Creating an Effective Work Environment
by cleverett (Friar) on Aug 22, 2003 at 06:09 UTC
    Being productive is a choice a person makes on a daily, nay hourly, nay minute by minute basis. How else to explain the disconnect between raw talent and real productivity?

    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 ...

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.

Re: On Creating an Effective Work Environment
by BrowserUk (Pope) 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.

      Amen. 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.

      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.

      --
      [ e d @ h a l l e y . c c ]

        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 --
Re: On Creating an Effective Work Environment
by Ryszard (Priest) on Aug 22, 2003 at 08:40 UTC
    In the best place i've ever worked ( and was in the running for the best employer award ) we had:
    1. No cubicles, no offices, not even the MD had an office
    2. Small meeting rooms with no ceilings (we were in a converted warehouse)
    3. 1 private room with lockable door and only outward facing windows (ie outward to the street, not the office)
    4. A dedicated kitchen area with a coffee machine, tea and a fridge
    5. Open plan, everyone had workstations, and you could standup and look from one end of the office to the other.
    6. Some bright colours and "nice asthetics"
    7. People, good people. Everyone in the office got along with each other, and were excited about what we were doing
    8. Great leadership. The MD was a charismatic and strong leader who knew alot about leading and organising. The fact that he didnt know _that much_ about the technology (IMO) made it even better
    9. Top Communication. Everyone had at least a small view on the "Big Picture (tm)" and knew how they were _personally_ involved.

    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.. :-)

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.

    • Programming outside the cube

      We put our people in cubicles and then tell them to think outside the box.
      Hmm, cubes are boxes, so that essentially means:
      We put our people in boxes and then tell them to think outside the box.
      OK, that makes more sense, so we have a box, but we are supposed to leave it to think. Cool. I'll be in the park for the next few hours.
      Uhm, if you leave before your shift is up, you're fired.
      So, I supposed to think outside the box for this job, but I'm not allowed to leave the box to think. How am I supposed to think outside the box.
      Damn it, that what your off time is for.
      But my off time is supposed to be for me to do my own thing.
      Officer, arrest this bourgeois bastard. He is being unconventional. Thinks he's better than the rest of us.
    • Lord of the flies
      • sabotage the lights. Find a ladder and take out all the fluorescent bulbs, then let folk bring in whatever lighting they're comfortable with. When maintenance turns up, tell them you're using flash-ram and that fluoro lights will destroy six months' work. If necessary, actually purchase some flash-ram.
      • sabotage the chairs. A good place to get comfy chairs from is executive conference rooms. Just souvenir one chair from each room in the dead of night. Put the old uncomfy chairs in your new conference enclosure. When maintenance turns up, point out the uncomfy chairs in your conference room and demand they be replaced with comfy conference room chairs
    • Ringer tape
      Quiet phone by wrapping the ringer with tape.
    • Peopleware
      • get the right people;
      • make them happy so they don't want to leave; and
      • turn them loose (i.e., empower them)
      I was also thinking about Food for the thought!

      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?

        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.

Re: On Creating an Effective Work Environment
by dragonchild (Archbishop) on Aug 22, 2003 at 12:52 UTC
    1. Don't confuse development with typing. Encourage ... nay, demand! that your "developers" design. You'll find that the best ones will thank you for it.
    2. Give your developers tasks, then listen to them when they say "X weeks". Theoretically, they are your experts. If business needs conflict, discuss - never dictate. They'll deliver, but it will destroy your productivity.
    3. Make sure that your developers understand where they fit and why they personally are important. A little ego-stroking goes a long, long way.
    4. Make sure that the people developing requirements actually talk to the developers to make sure that requirements are sane BEFORE PROMISING THEM TO THE CLIENT. If you can't do that, at least make sure that the delivery dates are based on developer estimates. I once worked at a place where we had 27 days from receiving requirements we had no input in to putting it into production. Not good.
    5. Have a dedicated testing team that is independent of the developers and management.
      • Make sure that there is at least 2 testers for every 3 developers.
      • Analysts analyze, developers develop, managers manage, but only testers can approve code for production.
      • Every time a requirement is decided on, a tester has to sign off. Otherwise, the requirement may not be verifiable.
      • A tester has to be invited in every design and code review.
    6. Oh - require that all designs and all code be peer-reviewed. I personally think XP is overkill, but reviews are critical. The most productive place I've ever worked mandated these, and I loved it. (That 27 days place? The CTO thought design was something we were supposed to do on our own time.)

    There's more, but it's been said by others.

    ------
    We are the carpenters and bricklayers of the Information Age.

    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.

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...
      May sound cliche, it's good to group people together that get along without creating factions or gangs, where people always don't trust the other side or even blame each other for whatever failure. That means, for example, regular (don't mean every minute) face-to-face communication is still important to maintain the overall cohesiveness.

        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...
      I was about to write something similar to your post. I've seen quite some replies that suggested one uniform environment. Silly, because people are different. While some people prefer a big "office garden", others prefer offices. I would hate working in an "office garden", a large open area. I really dislike it when people watch over my shoulder - and such an open area would make me all itchy. I rather prefer cubicles over a big open area. But in my opinion, offices are best. Meeting rooms of various sizes are good too. Some people say the less meetings, the better, but I disagree. Sometimes, things need to be discussed, designed or reviewed, and you need space for that.

      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

        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.

      I liked to play my music loud in the giant cubicle (3 people, big room) and the other would complain. Then I had a stroke of genius and got a set of headphones. I listened to what I want, and they did the same.

      MJD says "you can't just make shit up and expect the computer to know what you mean, retardo!"
      I run a Win32 PPM repository for perl 5.6.x and 5.8.x -- I take requests (README).
      ** The third rule of perl club is a statement of fact: pod is sexy.

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

Re: On Creating an Effective Work Environment
by LameNerd (Hermit) on Aug 22, 2003 at 17:08 UTC
    <tongue in cheek>

    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>
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
Re: On Creating an Effective Work Environment
by dws (Chancellor) on Aug 23, 2003 at 04:33 UTC
    What are your recommendations for improving the work environment of a software development business?

    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:

    • People. Environment can't compensate for poor people. Good people can overcome bad environments.

    • Team within earshot. A colocated team has a big advantage over one that's not. Questions get asked and answered faster, and information spreads osmotically. I'm working with good people in a distributed project right now, and it's painful. The only spurts of productivity we get are when we can get together, even at a coffee shop.

    • Everything else out of earshot. If interruptions aren't supportive, keep them away. That includes a manager who has to spend a lot of time on the phone. Some of the worst situations I've been in involved having to listen to Sales and Marketing people while trying to stay focused on technical work.

    • War room or war wall. A team needs a space where they can post plans, charts, and lists. A meeting room works. A wall works. A meeting room that has to be sanitized to prepare for customer visits doesn't work. Think of it as walk-up context.

    • No standard florescents. A 60Hz flicker interferes with reading, especially off of monitors. The faster you read, the great the interference. Headache city. Natural light is the best alternative. Special, high-frequency florescents work O.K., but they're expensive. Eyestrain can clobber productivity.

    • A printer within reach. If team members have to wander outside of the team's space to get hardcopy, they risk being grabbed or otherwise distracted. Printers are inexpensive these days. There's little excuse to not have on within a 15 second walk.

    • Furniture for Pairing. Even if you don't pair program as a matter of policy, having furniture that allows two people two sit down comfortably in back of one keyboard and monitor can be a great help. The people who manufacture cube-farm builtins haven't figured this out yet (or hadn't, the last time I looked.) It doesn't look as "corporate", but buying tables at Ikea or some local Danish furniture store can work out a lot better, and might even cost less.

    • Desktop space. Given the cost, you're foolish to not supply programmers with at least 19" monitors. 21" is better. Dual 19" LCDs? Heaven.

    • Decent chairs for those who need them. I've tweaked my back a couple of times doing foolish things. Having a chair with good lumbar support keeps me going. Crummy office chairs make me take frequent walk breaks.

    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.

Re: On Creating an Effective Work Environment
by ellem (Hermit) on Aug 24, 2003 at 03:15 UTC
    Do you want productivity or people spolied by chairs?

    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.
Re: On Creating an Effective Work Environment
by Anonymous Monk on Aug 25, 2003 at 02:10 UTC
    If you want productivity per square foot of office space, hire some Indian engineers. You can keep them in cages and stack them 3 high!
Re: On Creating an Effective Work Environment
by jacques (Priest) on Aug 25, 2003 at 02:45 UTC
    Personally, I've always admired Google for having good food (they have their own gourmet chefs) and massage therapy. Nothing ruins a programmer's day like a bad burrito from the taco stand across the street. Feed your staff good food, and provide an outlet for physical activity. That's a winning combo IMHO.

    http://www.google.com/jobs/reasons.html

Re: On Creating an Effective Work Environment
by greywolf (Priest) on Aug 27, 2003 at 04:34 UTC
    I think your question has been answered quite well already but here are my thoughts in no particular order.

    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

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlmeditation [id://285646]
Approved by Albannach
Front-paged by Enlil
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (12)
As of 2014-11-28 15:14 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My preferred Perl binaries come from:














    Results (197 votes), past polls