Showing posts with label work. Show all posts
Showing posts with label work. Show all posts

Friday, 15 May 2009

My ideal work hours / location, scoring future employers

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)


Hours

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.



Communication

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.


Tools

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.



Flexible

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.


Future employers

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..

Monday, 6 October 2008

Why waste money with inferior equipment?

Single most expensive element of any project and regular company expenses is the salary of people, ie human resources.

Then why do companies insist on saving money elsewhere which increases the cost of staff? Ie. why so restrictive on hardware and software tools?

I think most managers see the expenses on e.g. new PCs as the only place they can make cuts, and are too blinkered to see the effect. Which is increased salary expenses as people take longer to do their job.

Yes, they should not be frivilous, and people always want new gadgets, which some are unneccassary and cause distraction. But they restrict people far too much which in the end costs them more.



For example (and the reason form my rant):
I am a consultant contracted out to a client. Both from my employer and client I have really inferior PCs. And they fail to see this costs them more than it saves.

( This is not specifically targeted at my current client, which is one of the better ones Ive encountered, but they suffer from the same problem. )

The PC I must use have a really slow single core processor with little memory, so most of my time is spendt waiting for the screen, IDE, explorer to refresh.

And the disks is encrypted, which really causes everything to slow down to a halt, especially due to low memory, that the swap file is used a lot...

I don't help by having weblogic, jetty, 1 or 2 eclipse workspaces and netbeans, and 10+ firefox tabs up at the same time, but the machine should handle this.

I would guess as much as 1/3, minimum 1/5, of my time is wasted waiting for the pc to catch up. If you add that up, for 40 hour week say ~10 hours a week is wasted. That is 10 000kr or £1000 per week of invoicable time.

Sure, some waiting will always happen. Especially with inneffective build scripts, wandering concentration... etc.

So they save an initial £1000-2000 by giving my an old machine. But it costs them e.g. £4000 every month! Blinkered wastefullness.

Not to mention only supplying 1 small screen slows down productivity when Im not waiting....


Why restrict developers? If I had a 4gb+ multicore laptop/desktop, or if running linux/osx server processing access, 2 screens, my productivity would be nearly doubled!

( Yes, slow maven scripts (and little use of jetty etc) means I tend to wander onto digg.com for too long while building, but that is another issue... )


As for my real employer, the direct saving is not so obvious if supplying better hardware, as I am mostly working on client pcs. But there are also consequences of that the one they supply is rubbish.

So doing internal development, evening personal development is more and more difficult, or even absent, as the hardware tools is not there. The one I have from them is even less capable, so it is fast becomming just an email reader.

It is a risk for them, as I ( and I presume the others ) are contacted weekly by recuiters offering gadget budgets, macbook pros etc.


So several articles, research papers have been published to inform managers that salary expenses outweight all other costs so much, then why do they not see to optimise that expense? It is very annoying / tempting when reading / hearing of people being given the right tools to do their job, when you are not. :(

Wednesday, 7 March 2007

Spring

Held recently a presentation on Spring at TietoEnator and NetCom. It was a brief introduction to the Spring Framework and the IOC, MVC, JDBC, Hibernate, Acegi modules.

It was the same presentation , but the first one dragged on for 1.5 hours. At which point the audience was getting quite bored. The second wizzed past in 30 minutes. This time the audience probably did not catch a lot of what I said.

It is definetly not easy. Both times the projectors played up and caused a lot of grief. The first presentation included way too many examples. The second not enough.

If curious, the presentation is here, and all the examples are here.

Friday, 29 December 2006

Encryption stops linux?

Does work laptops which are pre installed with Windows, using full disk encryption software stop you from using Linux?

Well at least for me.

The problem I have is I have several laptops handed to me by clients that I have to use while working for them. No problem with that, they are much higher spec than my own pcs anyway. Pre installed with MS Windows is fine, it usually is company standard and most of their employees would insist on it. Previously I have just shrunk the windows partition and dual booted into linux.

But my current two work laptops have both got full disk encryption software, to protect lost laptops, from two different providers (PointSec and SafeGuard). And you cant run dual boots with them, nor resize partitions.

So this means for the past half a year I have had to use windows full time, as I rarely get any time at home to use my own linux pcs.

Okay it is not that bad, I am not suffering from starvation or illness, but it is annoying, feels like having a hand tied behind my back when I work. But I shouldnt complain, I am after all getting hardware and licenses for weblogic and oracle handed to me.

I do wonder though, how many others are affected by this? Does it have any effect on the amount of people using Linux?

Wednesday, 22 November 2006

Planning Poker

Attended a estimation seminar yesterday morning. Some fluff, but being exposed to the theories and practicalities of Planning Poker was worth the time.

Used it immitietly in the afternoon for a project that we were still struggling to define the tasks needed. Very effective, in just getting a discussion going, grouping tasks and assigning estimation units to each task/story.

Well worth a try, even if it made us look like we were playing poker all afternoon, especially as we sat in a tiny glass cubicle at a client.

Agile estimation book by Mike Cohn