Many of us have worked in multiple environments over the years, and have found that some are more productive than others. In many cases, it's not directly related to the abilities of the developers, but instead to their environment. I myself have experienced this, being in places where I seemed to develop faster, and better. And yet other places I seem to be dragging time, and developing less thoughtfully.

What do you think creates a productive development environment?

22 accepted
  • A door I can close.
  • People I respect and vice versa.
  • Good senses of humor.
  • A shop that values quality, longevity and customer experience more than get it done fast or via a death march.
  • Management that removes rather than places impediments.
  • Pinball machine.

A quiet environment with minimal interruption.


Freedom for the programmers to experiment a little bit


People that are enjoyable to work with.


A clearly-understood business strategy in the company. If the company does not have a long-term vision, short-term goals, and well-understood, immediate needs, then even great programmers will be chasing their tails trying to keep up with the shifting winds of management.


Continuously embracing new technologies.

This is often taken for granted. I can say that after hearing the heartache of a programmer who was still using Access as their backend database and a sales manager who fights with Citrix terminals all day.


Something that hasn't been mentioned yet: a gigantic white board.


The best environments I've been in were when you have a good team, with fun problems to solve. If the work isn't fun or interesting no matter what you do the team won't excell.

The next thing is the physical environment, minimal noise, good lighting (Which doesn't always mean light but light in the qty that the developer(s) at hand work best in.

The final things are good tools / toys. Good computers, good software, multiple monitors etc. And toys to wind down on, foosball table etc...We used to have our adhoc standups around the foosball table and while yes it was less productive, it was a lot more fun and allowed us to wind down as we prepared for the next steps.


In my last job we developers would meet once a week in our own private meeting room, and just talk about technologies we've been playing with or frameworks we've been exploring. At times we would write problems we had up on the board, and solve them as a team. It was nothing as crazy as playing pool, or video games, but it offered such a release from the tension of the office that we were able to revive our excitement for the day, and finish the task-list.

Today I work as the sole developer on a small project - and boy do I miss those meetings! StackOverflow is my replacement :)



  • Low Cube Walls
  • Physical Separation from sales & marketing
  • Natural / full spectrum lighting
  • Comfortable and ergonomic chairs / computer setup
  • Close proximity to team members
  • Close proximity to QA
  • Lots of conference rooms


  • Smart
  • Motivated
  • Good communication skills
  • Outspoken
  • Entertaining


  • 2 or more monitors
  • Ergonomic wireless Keyboard & mouse
  • Good headphones

"Dan Pink on Motivation" notes a few ideas that I really like for where I work: Autonomy, Mastery, and Purpose. Give me the freedom to do the work, let me become proficient and have a purpose.

On the technical side, good hardware like dual monitors and a machine with a reasonable sized hard drive and RAM, along with good tools like an IDE, source control, and continuous integration machine also prove quite useful.

  1. A quiet work enviornment free from interuptions and distractions
  2. Free soda
  3. Nice equipment (fast computer, comfortable chair)
  4. Engagement (the people working on the team need to feel a since of ownership and connection to the project).

Adding to the the above.

1) Good relation with work colleagues

2) A nice big table

3) Two big monitors

I think its very important to be confortable.

  • Quiet, repetitive music (ie: Infected Mushroom)
  • Dual Monitors
  • Fast PC
  • Leather Chair
  • Dunkin Donuts number 4

In order:

The tools I need to keep doing this for years, without hassle. OSHA-compliant ergonomic chair and desk setup, keyboard that fits me. Lots of screen. Adequate computing hardware.

Interaction with people who are smarter than myself. Isolation when I need it.

Interesting projects which impress me, new challenges, and other things which make me want to be productive.

An agile process with participation in all aspects of development, to some extent. The ability to guide requirements and properly implement the non-negotiable ones.

Lack of code ownership, at least somewhat. A process which lets my co-workers check changes into my project, or vice versa. The ability to do the right thing when I find a problem without being doomed to maintain it forever.