The biggest problem for me is that I am the "IT Guy" at work. Everyone else does something else, so of course if there is any computer or technical issue I get the call. It doesn't really bother me, but I am hired as a developer first and foremost, and when you are working something through in your head, being interrupted by some insignificant problem in Excel can be annoying.
The other problem is I am lumped in with the admin staff in an open plan office. I have always worked in my own office throughout my professional programming career. I think it is good to have interaction with others, but it is also important to have a quiet place to go. Most people realise that a shut door means do not disturb. You just can't do that in an open plan office.
Anyway, this got me thinking, what makes a good office environment? One day I want to run my own company with employees (minions) to do my bidding. Here are the golden rules that would apply for dev's in my company:
- Developers to get their own office, or place they can call their own if they need a quiet moment.
- Working on Friday afternoons will be optional - I mean how much gets done on a Friday arvo anyway?
- Once a week dev team meetings
- All dev leads to talk to their devs on a one to one basis every day to discuss issues and other ideas. The quieter members of a team don't always get their ideas across at team meetings - usually they would be more comfortable tabling things on a one to one basis
- Dev's could work from home for at least 50% of the week, if and only if it suits their team
- No 8 hour day / 40 hour week.
Not that anyone in the IT world does a 40 hour week, but it's non sensical to me to set an arbitrary amount of hours that someone is required to do per day or week. People in my team will, at their Monday morning team meetings, set the work they expect to achieve for the week. Once that is done, they may go. Obviously the work would have to be sensible and signed off by a team lead.
- Flexi time.
Some people are morning people, some people prefer to code in the middle of the night. My dev's will decide themselves when they want to come in.
- Don't feel like it, Don't
It sort of fits with the above point, but I have had days when I wake up and just don't feel inspired to code. I may be tired or need a break - whatever the reason, I am just not going to get any useful coding done that day. As an employer I would rather that if employees are having days like that, they don't bother coming in.
All of the above may sound like a bit of a fantasy, and I'm sure there would need to be a few kinks ironed out. The main problem would be if a team member needed to talk to another team member and they weren't available. Having said that, with instant communication available almost anywhere on the planet, that shouldn't be a problem.
Hopefully, I will get a chance to put my ideal world into practice.