Building on my Coding Happy Place blog entry (a slight rant, but so is most of my blog), I been thinking of defining my prefered work location and hours.
The obvious answer by most people is on a beach, with half an hour's actual work each month (to pick up a pay cheque). :) However I am thinking of real work, where my output actually benefits the company. And I like my job. :) I do after all get paid to do my hobby.
Note this may only be relevant to me as a Software Engineer, working either as a developer or architect.
Coding Happy Place
I try to achieve, as mentioned in the above mention blog entry, a Coding Happy Place, where the location and environment are laid out in ways for me to concentrate on my tasks without interuption.
I achieve this in 3 locations:
* at home, when no-one else is at home.
* at work in the late afternoon/evening, when office is more empty.
* sometimes at work in normal hours, if left alone in a sheltered location. (But this is rare)
The business need you in the office
However you can not hide away from the company. They need you to join in with the others, share knowledge, ask questions about others work, proper rubberducking etc. And mostly to particiapte in meetings, let the flow of information go up and down in the organisation, and sideways between team mates and similar departments. Join in on preparing bids, customer relations etc.
With using Scrum and similar however the need for being asked for status and similar interuptions / communication is much less, and with proper use of communications channels, information shareing is not restricted to physical locations.
So what are my prefered work location and hours?
I think it will have to be balanced and flexible. Mutual respect between employer, employee and other employees. To achive a good and happy work culture while maintaing an efficient company and work progress.
In brief: I would like to work some mornings from home, most afternoons in the office. Mix in a at least 2 day full days in the office every week. And the option of taking a day working from home most weeks, or at any other time without it being an issue.
Mornings at home
I am not a morning person. In the office my efficiency in the morning is neglible compared to the sweat shop output that can happen in the late afternoon. So with my experience of this from a previous job where this worked well is every morning to log on from home to check my email, task statuses etc. (At the same time going through my morning ritual of digg.com and slashdot over breakfast is also nice ).
This is beneficial, as I would be up to date of any urgencies before commuting to work. If something needs fixing, or someone needs to be phoned urgently I can do it immidietly from home. If someone whom started earlier that day is waiting for information from me I can pass this on quicker.
If nothing of enough urgency is requiring for me to be in the office the option to get a couple of hours of Coding Happy Place at home after morning ritual would be very benefial and appreciated. To get a few hours of good work progression before the possible delays of office interuptions is good for self esteem, and project velocity.
Work need to recognise these morning hours at home as work hours, but some lieway can also be given by me when there were non work interuptions etc.
Afternoons in the office
As mention higher up, the company need you/me in the office. And I need to be in the office, for personal social needs, but also the benefit of finding information out about my tasks, and to assist other's tasks. Also general meetings, estimations, bids are needed by others in the company, often quickly. Proper rubberducking over tasks is essential to optimise development directions.
Not mention Scrum stand up meetings are meant to be in person. They do not however have to be in the morning! ALso web cam can assist distributed teams.
There is a barrier between casual physical chat, and sending email, IMs etc. Less the better people know each other but still a barrier. And I do not want to suffer from cabin fever, and do enjoy office banter.
Knowing me the afternoons, often turn into evenings as well. As once I am concentrated on a task, I do not like to go home before it is finished. (May be why I was so addicted to Championship Manager as a student, and still play Civilization today. Just one more turn/match....) I know if I leave it till the next day, getting into the facts and context of the tasks, not at least into concentration mode, will take a lot of time.
Being in the office, you can pick up busines gossip etc, and then be able to have input into this / affect business directions more than when isolated at home.
Full days in the office
To avoid being a hermit, I would still probably like to have full days in the office every week, to be a team player, show the insignificant face time to management that like that, and to be helpfull to others. To be available for monster day long meetings, specially at sprints starts etc.
But this is on a condition that the office space I have is actually of any use. Cubicle or desks in a public through corridor is dreadful. Also having people staring at your screen paranoia is less than ideal as well. Being the door opener / information booth for visitors is annoying. Being in the office so that you are accessible does not mean you should be interupted constantly, be embarresed by your headset, what is on your screen etc. I must be able to achieve some type of Coding Happy Place even in the office in normal office hours.
All day at the home office
I do like working from home. Naturally it is more comfortable. The availability of your own kitchen for snacks, and your own fridge of drinks, not to mention healthier lunches are nice. I can have the windows / patio doors open for fresh air. Also my home office space is usually much more comfortable than the restrictive cubicle of most offices.
But also my home machines are usually set up correctly (Not windows...), multiple machines are not a problem etc. And the most benefit of work at home, is that no-one else is there, so I can concentrate.
I do feel I am more likely to achieve my Coding Happy Place at home, and produce more efficient work.
Ps. The family must respect when family members work at home, chores can not be expected to be done, you are after all working. (However I have found the odd 10 minuttes restocking the dish washer or washing machine as a good break to reset your thinking if stuck on a problem)
I usually balance the hours I put in at home with how concentrated I was. Did I read too many news sites, or do chores that day, then I work a few extra hours. Simple as that. The happiness of working at home, more than makes up for working longer hours. In the office this compensation for non efficient work is less likely.
The option of going home early, starting late when needed, without it being an issue is quite essential. Taking 1 hour lunch should never be an issue. When required the freedom to pop out for 2 hours if needed is also beneficial, even if that should not happen too often. The trust that I will respect any work urgencies / priorities with flexible hours must be a given. That I will not take the piss, but will always balance out at more than the required 40hours in a week anyway.
For any company to work, people must communicate. To be able to work flexible locations and hours as I would like to, the company and its employees must have good agreed lines of communication. Employees must respect other employees communication preference's and they in turn must respect the other ones as well, especially business needs. (If you as a sales person / manager live by the phone, don't hassle the IT guys by phone all the time, most don't like it. But as an IT guy respect that other people prefer phones over email, IM, twitter, wiki comments etc....)
You must, therefor I am, always be contactable. Especially in office hours. If I work from home, people should not hessitate to call me. True, even in the office I prefer people to email/IM me. That way I am not inturupted if I am in deep concentration on something. But there must not be a physical barrier.
Using issue trackers, such as Jira, people should be able to at all time find out statues. Calendar's for locations and availability etc. But the employees, thus I, must keep these up to date, and the other's must know how to use them properly. This will cut down unneccessary interuptions or misunderstandings.
Being available all the time on IMs, webcam within the team, without hessitation, will make the physical distance smaller, increase knowledge share and banter. I believe in general that whether I am home or in the office should not be noticable to most people. I will always be online, respond immidietly to IMs etc.
For this to work, the tools available in the office or at home must not be distinguishable. I must be able to connect bia VPN and SSH, and have the same access and tools as if I am in the office. Too many times this has not been the case. Just email access is useless. Citrix is for sales people, not developers. Full SSH acccess is needed.
Limiting IM, is one the most stupid things some companies do. The ability to share code, ask quick questions efortlessly is golddust. Restrictive firewalls is also counter productive. True, some sites have no obvious benefits, but sometimes the information you need is on those sites. Very restrictive ones, where you can not even check email, or use google groups etc, is just staffing suicide.
In the office and at home, the network speed must be a bottleneck. Machine hardware not old dogs, but modern, able to use several virtual instances. Preferable ability to use racked server units for computing distribution etc.
Proper multiple screens in the office must also pay it self quickly in more productive hours than the cost of the hardware.
In the end I am looking for flexibility and respect. That my work is recognised wherever I am physically. That if I need to take a few days at home or at the cabin it is not an issue. That they respect me that I will still contribute, if not even more, and that I will respect their needs as well.
Basically that the company have little to no issue with where and when I work. But that they can trust me and know I will most of the time be in the office, easily contactable at any time and will always aim to be an asset to everyone else in the company.
How does this compare to me now and to future potential employers?
I am not looking to change my employer, so I think I will still be here for years to come. As I am currently a consultant, it is difficult to achieve this free location/hours, but some assignments are better than others.
However at some point statistically I will change job. And I will use this blog entry / idea to compare potential future employees, as I have previously, but perhaps with less emphasis. How close to this can they offer me. The more the better. None, then perhaps less likely.
Will this deter employers? Hopefully not. Companies should see it only as a benefit and insight, that I work really well in certain contitions. Some companies however will insist on cloning employees into A4 routines, and I (and they) may not be suitable. However most IT companies/departments even within the most old fashioned enterprises see the benefits of a more flexible working environment and are to various degrees more relaxed than the standard company procedures.
In the end I work well within the office and normal hours. It is just I work REALLY well when allowed to achieve a Coding Happy Place by having flexible locations and hours.
Think I have been repeating my previous rant a bit. Again..