views:

284

answers:

9

Hi! I am currently setting up a new software development department with my employer. I'm a former programmer, project manager and director of development, so I have an idea of how the environment should be. I would like your opinions on the matter as you are the guys I am actually preparing this for :)

My fundamentals:

  • Office space; I am not fund of open space arrangements. I prefer single offices or offices where a max of three people shares the space. There should be sufficient spacing to house a big desk, visiting chair, bookshelves, etc. A minimum of 8-10 square meters pr person. Desks can be adjusted electronically in height; chairs are "executive" models. Every office has at least 1 big window that can be opened.
  • Tools; the computer is latest model from a big supplier - sufficient with HD, ram and power. 2 screens are a minimum, 22 inches. Every office will have at least one whiteboard.
  • Meeting rooms; enough rooms with big whiteboards and projectors will be available.
  • Coffee machine; state of the art serving different kinds of brew
  • Fresh fruit delivered several times a week
  • Soft drinks and fresh water available
  • Software testing lab available
  • Own rooms for communication (video conf, phone conf, etc)

Btw; there will be no public speaker system for messages :)

Other parts of the working conditions like buying the things you need when you need it, being sent to the courses you would like to go to, getting the possibility to travel to customers if needed (and wanted by both parties) and have as little interruptions as possible from customer support and the like are also included.

I guess I could write more, ex. in regards to only working with the tasks you want to work with or projects that are interesting, no code-monkey work, etc. But I'll leave some of it to you :)

(And no - I will not at the end of the thread say something like "Hi - come work for me". I am based in Norway - so I guess this would only be applicable for a very small percentage of you :))

+2  A: 

http://stackoverflow.com/questions/70846/developers-bill-of-rights

Galwegian
Thanks - already working my way through it :)
sonstabo
A: 

2 x 22" is a bit steep IMO.

J-P
I could not live without two 22" monitors. Since I introduced them, all my co-workers that like dual monitors have two 22". The exceptions are the developers with only a single monitor, most of them have a 24". Anything less is contra-productive. And they don't cost that much today.
OregonGhost
Good point... I'm not gonna lie... I do use 2 x 22" at home and it's awesome!!! :D
J-P
+4  A: 

A shower would be great, if there's any possibility to ride a bike to work.

MattW.
He said he is in Norway. Bike? Skiing to work is more likely. :)
KristoferA - Huagati.com
Actually - there is only one city in Norway that will have polar bears in the streets :) But yes - some ski to work. I like to bike myself :)
sonstabo
Ok. If you're in or near the city with polar bears - throw in a couple of free cans of bear spray... ...that way your developers won't be eaten alive when they're skiing to work. :)
KristoferA - Huagati.com
+1  A: 

A pool table.

In general - space for playing. XBOX (or similar), pool table, fussballtable, etc. Noted :)
sonstabo
+1  A: 

Offices with space for pair-programming

mmaibaum
+4  A: 

To be honest I disagree with single offices, programming is a collaberative art and it benefits highly from being in touch with other people doing the same thing as you.

Whether it's to ask somone how to do something, or to show someone something to get thier opinion on it, it's much easier to do so in an open office environment.

I'd suggest Laptops for your developers and a work from home policy. It gets in the way of your 2x22" monitor plans but it's convenient.

Ensure that you have good tools to work with:

  1. Look into continuous integration, source control unit testing etc.
  2. Set coding standards and agree on them, there is nothing worse than picking up somone elses code to maintain and finding it to be a total mess.

  3. Have a library of books for people to use as reference material, yeah you can look it up online but there is something about hardcopy that makes it better in some instances

  4. Offer to pay for your employees to be trained, it will make them feel more appreciated and will also improve the quality of what they produce.l

Clarification

By work from home I mean allow them to work from home if it's nessisary, and at least make it such that it can be done. Some people will work on something in the office and then finish it off over the the weekend if it interests them, others will never work from home.

I've seen studies that say that companies that let their employees work from home have happier employees, but also people who Always work from home have lower promotion prospects because no one knows who they are.

Once or twice a week is probably best for work from home. any more than that and you get detached from the social atmosphere of the office, but it does mean that you can: 1. Accept deliveries. 2. Have people round to fix things. 3. Have a lie in. (half an hour extra in bed can do wonders) 4. Get other stuff done in your lunch break.

Omar Kooheji
In regards to offices; yes, there are definetly pro's and con's on both. I have experience where the open environment was the worst. To many teams picking up short discussions interrupted others in the zone. Delivery dropped 25 % with the new office. Dev. infrastructure - of course :)
sonstabo
In regards to home policy; why? I understand that it sometimes can be great due to sick children or similar (we can stay home from work if this happens in Norway anyways) -but is there any special reason? If you get something delivered, OK. But what is the reason? Do you get to focus better at home?
sonstabo
This reply seems self-contradictory. Isn't working from home even more isolating than private offices?
Dave Sherohman
Touché :) But isn't meeting the guys over lunch, cup of coffee or similar worth turning up at work? I will give you whatever you need to get your job done; but I would also like to see you smiley appearances every day ;) Sometimes one will have to contribute socially to the team (at least my team)
sonstabo
Agree - there is actually an example in Peopleware where programmers that got to work from home delivered more and better, and where more happy than others. I just want to makre sure that they do not work to much :) Do not want the teeam to spend their entire life working for me
sonstabo
+1  A: 

Already plenty of discussion:

http://stackoverflow.com/questions/tagged/work-environment http://stackoverflow.com/questions/54495/demanding-better-work-environments-how-to-say-it-in-a-polite-way http://stackoverflow.com/questions/tagged/ergonomics

Kev
Thanks! It is not always simple to find the natural related ones :)
sonstabo
+1  A: 

If you have the space: a library, with comfortable sitting/reading space and an absolute quite policy. Needs a small Mac mini or netbook with software like Delicious Library to manage loans.

MattW.
A: 

Dedicated paringstations featuring 2xMice and Keyboards. Also when ordering them computers be sure to fit them with fast not big disks, think Western Digital VelociRaptor disks, this will really have an impact on compile and link times.

Don't forget to have a couple of spare machines that can be used as continous integration / build machines.

Torbjörn Gyllebring
Cont. integration, unit-tests, code review, build-machine with 10' rpm disks, load test tools, tools to compile comments to chm, "build-crashed-blame-button" (with a smiley on), pair-prg. when needed, etc.
sonstabo
Seems like you have all the right ideas on how to create a truly great physical environment. And judging from your other questions you seem to have great ideas on how to make a intellectually rewarding place to.
Torbjörn Gyllebring
I have had the pleasure of working with a fantastic team in Oslo (www.luup.com) for some years. Learned a lot in regards to how things should be, and how you (try) to provide a developer with a great working environment.
sonstabo