views:

782

answers:

15

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?

+11  A: 

People that are enjoyable to work with.

DavGarcia
+17  A: 

A quiet environment with minimal interruption.

Jon B
Do you think a white-noise generator is helpful?
Jonathan Sampson
@Jonathan - Personally that would drive me crazy, but if you have enough computers, you don't need one ;)
Jon B
A: 

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.

Megacan
+6  A: 

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.

DavGarcia
+1 - I quit a job after being forced to work in spaghetti code VB6 all day. My motivation and skills were backsliding.
womp
This is good, but it needs to be controlled. You need to embrace new technologies that will help development and improve the product, not just whatever is on the back of this month's magazines.
Jeff Barger
+8  A: 

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.

Craig Stuntz
That's actually a very good point that I've not really considered before. In retrospect, it explains why in previous companies specs were constantly changed, and software was never shipped, and developers were growing weary constantly.
Jonathan Sampson
i am leaving my current job for this very reason. The company has lots of money, i work with great people, excellent benefits and whatnot.. but i need to be working on something that has some vision for the future.. And I dont believe I will be the last good person they will lose.
mike
+16  A: 

Freedom for the programmers to experiment a little bit

Nikhil Kashyap
Great suggestion. I've heard that Google actually allows their developers to work on personal projects during the work-day. I can imagine how nice that would be! Most of my personal projects give me new ideas for work-related projects.
Jonathan Sampson
True. I've seen and worked in places where there's so much rigidity and bureaucracy that it stifles creativity. Hence a little freedom to explore and experiment will go a great deal in making the workplace comfortable.
Nikhil Kashyap
One of 3M's cash cows, the Post-It note, came as a result of the company's "bootleg" policy, which allows employees to spend 10% of their time on personal projects. Heh, but try to get a PMO to approve that in most companies.
Bernard Dy
Working for google must be *so* good. sigh...
annakata
+3  A: 

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.

JoshBerke
+3  A: 

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

Jonathan Sampson
+22  A: 
  • 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.
plinth
+1 A door I can close! Haha.
+3  A: 

Environment:

  • 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

Team:

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

Computer:

  • 2 or more monitors
  • Ergonomic wireless Keyboard & mouse
  • Good headphones
John Naegle
+1  A: 
  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).
Scott Wisniewski
A: 
  • Quiet, repetitive music (ie: Infected Mushroom)
  • Dual Monitors
  • Fast PC
  • Leather Chair
  • Dunkin Donuts number 4
+4  A: 

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

Scott
+2  A: 

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

JB King
A: 

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.

Karl Anderson