The Perfect Development Environment

A friend of mine recently asked, what would be the ideal dream job/work scenario.  I started thinking about it and created this list (Which I’ll be pointing him to).  I thought it would be an entertaining post, so here are the things I came up with.  Please comment with ideas and notions of what would make your dream job/work scenario.

  • 30-45 minutes a day for blogging & getting the days thoughts together.- 1-1 1/2 hour lunch with a proper 45 minute to hour long siesta afterwards.  Returning to work for the home run stretch.- Pair development Agile style.  Switching on and off, with stories and the like.  Maybe experiment with the flexible nature of the development style of different developers.  Change pairs at least daily.  Work on reasonable daily work scopes, don’t let the work lag day to day by assigning tasks to large to complete in a pair session.- Downtown PDX Location or otherwise a town center location (Beaverton, Hillsboro, tigard, Gresham?? maybe not Gresham, Hawthorne, Belmont, Mississippi Ave, Alberta, etc).  It adds dramatically to the vitality and creativeness of the developers and their respective solutions.- Friday telecommute for the morning and bulk of the day.  Then meet up for beer/food/beverage of choice day.  Meet about 3 or 4pm or whenever happy hour starts at a designated place that the team chooses.- Assure everyone has a fairly decent laptop.  Not a desktop, there should be no reason to chain someone to a desk for development.  I’ve seen it happen and the laptop allows for a much more relaxed and conducive work tool.  Sometime of course, someone might prefer a desktop, someone might even need an extra hardware kick – which are perfectly good examples.  But a laptop should still be available too.- The team needs to all be in the top % of their respective income brackets.  If they aren’t, the disparity, when learned or guessed or figured out – which always seems to happen, pushes people out of teams, increases turnover, and causes all types of animosity.  Especially when the market is good and there are all those other upper bracket percentages available.- The team needs to be social enough to pull off an effective Agile process, and it helps a huge amount if the team actually gets along on activities outside of work.  Most people that are developers today don’t have too much of an issue with this, especially once everyone gets to know each other and the pair programming kicks in.

That’s just some ideas.  So what else would ya’ll out there in the world have for ideas?  Beer on Friday, Playstation 3, X-Box 360, foosball table, Olympic swimming pool, jet planes, rocket ships, moon landings?   …whoops, got a little carried away.