Monday, March 12, 2012

Working Environments

I’ve become increasingly interested in the different types of working environments currently available for programmers and software developers. My past has included a wide variation of project sizes, companies, technologies and system quality. That gives me a sense of how much variance is out there in different development shops, but my exposure has been limited to companies in Toronto, London and Waterloo. I’d like to know what other environments exist, and how people feel about them.

For anybody interested in describing where they work or have worked in the past, you can comment on this post or if you’d rather, you can send me email directly. If I get enough feedback, I’ll put together some type of summary in a post (but no company names).

Questions about different environments:

What type of development work is going on? What’s the domain and the core functionality? Is the system sophisticated? What sort of planning and design occurs? How long does that extend into the future? What’s the methodology used when building?

Is the culture to get it down quickly, or is it to get it done right? How long do people spend analysing vs. building vs. testing? How much research goes into the underlying algorithms? How about interface standards? How is technical debt. handled? What types of documentation is getting done? What about code reviews?

Who is making the product decisions? Who is making the technical ones? Who does the analysis? What role do domain experts play, if any? Who is making the interface choices? If the project is large, is there consistency to the interface? Are there graphic designers? Editors?

How many bugs are being found? Is there a separate QA group? A separate operations dept? When bugs are fixed, do they ever reoccur again? Do related problems occur frequently?

Are projects coming in close to their schedule? How often are releases happening?

What’s the overall environment like: fun or serious? Is it expected that everyone works overtime? How much overtime do people normally work? Do they encourage people to have a healthy work/life balance?

What is the office environment like? Is it quiet? Private? Are the software developers all together? What about management? Are there technical managers? Do they code as well?

How does this environment compare to others you’ve experienced?