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

Thursday 7 May 2009

Chelsea v Barcelona referee decisions fair? And English press normal referee hounding

Chelsea v barcelona match was funny last night. So hot tempered, so many critical referee decisions. And inevitably one loosing team in fury at the referee, and the following press backlash afterwards.

Had Barcelona not scored the 93rd minute goal, they and the spanish/catalan press would undoubtable been slaughtering the referee instead. With that many match changing events, the sending off, the 4-5 penalty claims, the referee was in a lose-lose situation. The loosing team would always cry foul.

Viewing each situation individually and in isolation on their own, I can pretty much understand why the referee made his decisions. None were clear cut, they were all grey zone of interpretation and human nature. So basically I could have understood a decision the other way as well in most of the events. It is just a shame there were so many of them. If only one of the events happened I don't think we would have this aftermath.

Chelsea are throwing their toys out of the pram, because most went against them. That they did, does not mean the referee was wrong, it may indicate he was strong enough not to be influenced by previous events in the match? He certainly did not flinch when Chelsea players went berserk, a weaker referee would have been terrified.



So what about the decisions?:

First of all the sending off of Abidal. A decision that should by the way kill all speculation of conspiracy theory from the Chelski fans. Did he touch Anelka so he fell? Yes. Did he mean to? Probably not. Was he the last man? Think so. So even if it was unintentional, even it was only a slight flick on Anelka's trailing leg, it was still a foul. And as it looked like he was the last man, and Anelka was about to go clean on through, technically he should get the red card. Most ref's here do chicken out and only give a yellow, which most people agree is the morally correct thing, however acording to the book red is correct. Chelsea would have cried foul if not, and UEFA would have not been pleased with Øvrebø if had not shown the red card, as referees are not allowed to use common sense.

For all the potential fouls on Chelsea players, I think they were all pretty clear and correct decision by the referee. Toure's tacle on Drogba in the box was clean, the wrestling match outside the box was 50-50 each way. The pull down of Malouda clearly started outside the box, even though the significant part of the foul was later inside, which is irrelevant. But even if it was 5cm inside, the referee does not have a ruler with him, so people can't expect a match killing decision like that. I think 90% of on the boxline fouls will be free-kicks.

Most other times was just the normal diving by Drogba, which makes it difficult to referee as you are never sure when Drogba cries wolf.


As for the two handball incidents, they are not so clearcut. Both times by Pique and Eto'o their hands was not in motion, they had no time to remove their arm, but neither was in a "natural" position. Was it accidental ball to hand? I certainly would have not disagreed had they been penalties, but I would thought it be very unfair. But perhaps technically they should have been? But again they are a toss up, greyzones either way, and as expected the loosing teams get upset.


But even if you had 3 penalty claims go against you, it does not mean the next dubious must go your way, they should all be assesed individually!



So I think the referee got it right. Had one of the handballs gone Chelsea's way I would have not disagreed, but like the sending off, I would have thought it was very harsh, but I could understand why. So perhaps Chelsea should have had at least one penalty.



BUT, what is a disgrace is Chelsea and their players and staff and the English Press.

How they let their players behave like enraged animals like Ballack and Drogba is a real disgrace, and for not condemming it afterwards. I must credit John Terry for restraining himself and trying to restrains his players on the pitch, which is unusual of him, however his undignified and bullying comments in the press afterwards highlights that he still has a lot to learn.

Guus Hiddink, a great manager, may still have his own adranaline pumping afterwards, but he even said himself that he is not biased, but think they should have had 3 penalties. Come on! Only the handballs were an actual contention, and then only in a biased way could you say they must have be given. And the unforgivable is his defense of his players behaviour. Shameful.

The Chelsea players' and manager's belittling and bullying of the referee afterwards shows why most people dislike Chelsea.


Chelsea did not deserve it

Really when in a Champions League semi-final you have a one man advantage for a significant part of the match, if you do not score a goal in normal play, nevermind penalties, and even let a goal in, you do are not good enough to be in the Final!

And they wanted to win by dodgy handball penalties instead? That is not football, they were not intentional, Chelsea should try to play and win by playing football!




Another disgrace is the English press.

How they hound all referee's in every big match they loose. Have they not forgotten they stoked the fire so much that Anders Frisk had to retire? How they bullyed and harrased every referee when England gets knocked out of every World Cup or Euros. Having lived in England for 15 years it is always amusing but also disturbing how the press put all blame on the referee and not their own teams inadequasies.


It is such a shame, as Øvrebø is actual a really good referee. (Which I must admit even if he wrongly sent of one my teams players last season.) He is experienced in CL with 20+ matches, World Cup experience, and unflinchingly strong, which is probably why UEFA picked him. Unfortunetly the English press, the bad loosers at Chelsea, and UEFA weakness will probably mean it will be awhile before he gets a big game again.


So in football, for big matches with a lot at stake, how you feel about the referee, FIFA/EUFA or organisers, depends entirely on which team you supported and whom won. but even full of adrenaline and emotions there are limits to acceptable behaviour.

Friday 1 May 2009

Is firefox secure enough? Have you considered the add-ons?

Firstly: I am a Firefox user. I have been involved in the Mozilla community nearly since its early inception. (not greatly but slightly). So I am using Firefox nearly exclusively on each machine and OS.

Yes Opera, Google Chrome, Apple Safari are today very good as well, and even Internet Explorer have caught up. But I am happy to keep using Firefox.


But how secure is Firefox?


No, there is no need to lecture me the benefits of Open-Souce versus properietary. The huge number of users and developers involved with Firefox make the core browser very secure. Critical security bugs are frequently found, but with being open-source these are squashed swiftly. So the core browser is very secure in my mind.


But Firefox is shopped around as a very powerful browser due to its adaptability ability via extensions/add-ons [1]. They certainly make Firefox easy to use, and fit well with the varied usage that people require. The majority may not use add-ons, as they are happy with just a simple browser. However still a large number of people use one or two and many use several add-ons. Add-ons is the perhaps the main reason I am using Firefox over other browsers, as they make my day so much easier and pleasant.


But how secure are these add-ons?


The core browser is trusted due to its share number of peer reviewers and contributors, so trust it to be secure. But each tiny add-ons have few developers, and not too many reviews. Not sure how "open-source" their actual deployed code is either?

So do these add-ons basically make the Firefox browser brittle?

I think so, and other people are trying to warn us about the risks.


How big are these risks? What may have spared the add-ons is that they are so many and the install base is so varied, that targeting a specific add-on may not be worth it. (Similar to why Firefox itself was not targeted until more recently.) However this is a bit naïve, and some add-ons are now installed by hundreds of thousands, if not more.


So what can we or Mozilla do?


Simple solution is to not install any add-ons. Certainly safe. However that is being paranoid, and does not progress the world.

What I think is needed are ways to harden the code and increase trust in specific add-ons. Closed source extensions such as Flash, Silverlight and Java is out of scope (but Gnash, Moonlight and Open-JDK may not be?)

How we achieve this I don't know the answer to, but I hope there will be more and open discussions about it. Ways of increasing peer-reviews, ways of making it clearer to the add-ons website users how many and whom trust the relevant add-on, by some voting mechanism perhaps (and the opposite). Sharing code bases to minimise risk and increase peer reviews must be advantageous. Ways of Mozilla to scan code for common risks is perhaps already done? If not should definetly be implemented.


As it stand I will still use add-ons and a loads of them really. However I wish there was an easy status on the add-ons website that indicated how risky the add-on is? A simple chrome style change, may be completelt different risk than a powerfull GreaseMonkey script with a variety of code elements.