Disgraceful degradation

Old browsers are a headache for websites: to develop for, to test, you name it, they’re nothing but bad news.

Thankfully modern browsers like Google Chrome, Apple Safari & Mozilla Firefox are not only more open standards compliant, but are generally automatically updated so there’s going to be a lot less legacy versions in the wild.

There’s two techniques I am familiar with to cater for older browsers: graceful degradation and progressive enhancement. Essentially these achieve the same outcome, sites that still work on older browsers, but are different approaches to the same problem.

Graceful degradation is building a site that is optimized for modern browsers, but then adding functionality to gracefully degrade (but still function) when accessed via an older browser.

Progressive enhancement is building a simple site that functions then adding enhancements that work on modern browser technology when it’s available.

Whilst these achieve similar outcomes, I believe we’ve got to a tipping point where a lot of people use non-Microsoft non-legacy browsers so I believe graceful degradation is a better bet in these times.

At work today, we noticed a problem where a Google font wasn’t loading on a dev machine, and our site rendered in Comic Sans (the font we all love to hate), which immediately gave me a great idea: disgraceful degradation: displaying the content of our site in Comic Sans if you’re an IE8 or below user. That should make them upgrade.

Why hot-desking is a bad idea

Hot-desking (aka hotelling) in open plan offices seems to be growing in popularity, and why not, since it seems to make sense from an financial and collaborative viewpoint. But I am of the belief that it’s actually a bad idea. Here’s why:

It’s unhygienic: Most hot-desk arrangements I have seen involve a thin client PC (eg. Windows Thin PC) on each hot-desk which is used to provide a way for a current user to access their computer session wherever they log in. Since the average keyboard has sixty times more germs than a toilet seat, I actually feel disgusted every time I sit down at a hot-desk and am expecting to use the filthy keyboard all day (much like if someone asked me to set up my computer on a toilet seat).

It’s confusing: Not knowing where someone is each day is particularly confusing, especially for new starters who are getting to know people. Sure, IM solves this situation to some degree, but I’ve spent time roaming the office floors looking for people who I don’t know where they are sitting today.

It doesn’t actually work: Even though organizations have hot-desking so they can cut down on the number of desks and get people to sit together, I have found that people still get established in certain desks as they know they’ll be working there for some time, and they can’t be bothered packing their things up and setting up each day in a new desk. The only time these people seem to get displaced is when they go on leave and someone else has to sit at their ‘hot desk’ amongst the stuff they have left behind. The lack of dedicated space has actually been shown to make employees feel isolated and teamless, amongst other things:

A study released by the University of Sheffield in the UK shows it diminishes the connection between colleagues, and the scattered locations make it difficult for people to communicate with each other.

It continues the obsession with open plan: I seriously don’t like open plan offices and don’t understand why software development workplaces continue to foster them. They encourage constant interruption and distraction which inhibits productivity. Paul Graham explained it best, back in 2004:

After software, the most important tool to a hacker is probably his office. Big companies think the function of office space is to express rank. But hackers use their offices for more than that: they use their office as a place to think in. And if you’re a technology company, their thoughts are your product. So making hackers work in a noisy, distracting environment is like having a paint factory where the air is full of soot.

So what is the answer?

Progressive software companies like Campaign Monitor provide dedicated offices to each team member and a large kitchen table to ensure everyone eats lunch together every day.

I like the idea of providing a dedicated office to each team member to work quietly without disruption, and separate (sound proofed) open areas for team collaboration/socializing. The open areas must be easily booked or can used for an impromptu discussion, and must be clean and connected, to maximise productivity.

As Kelly Executive Recruitment GM Ray Fleming says:

Productivity and motivation are maximised when employees have their own workspace. It helps them to feel part of the organisation and solidifies their position in the team, and businesses need to keep this in mind. Businesses also need to be aware that shifting to hot-desking just to save money may drive some employees to look elsewhere for employment.

The sliding scale of client, stakeholder and management engagement

It’s a beautiful colour, grey, and as soon as you put it into black and white it gets lost.
~ Ian Thorpe

I’ve been thinking about client engagement a lot lately: how much engagement should you aim for when working for someone? Whether that someone be a client, a sponsor of your project, or your boss.

I’ve come to realize that engagement isn’t black and white, engaged or not. It’s a sliding scale, and like most things in life, the sweet spot is somewhere in the middle, not at the outer ends.

On the far right you have a client who is too engaged, to the point of being a micro-manager and a hindrance on your progress. This isn’t ideal, but you can manage the micro-management and it still is possible to get a good deal done in this circumstance by using the high level of engagement to your advantage (to clear roadblocks for example).

On the far left is what I consider to be the most dangerous spot: a client who isn’t engaged whatsoever. The benefit is that you will have freedom to do whatever you want, the obvious downside is you’re inevitably going to fail because you won’t know what your client actually wants, and it’ll eventually unravel that you haven’t delivered. Whilst it’s easy to become complacent in this situation, it should be avoided at all costs: raise the red flag early and often, and if you can’t engage your client, get a new client, or leave!

I also believe this same scale applies to child development. As the father of two young boys I spend a fair amount of my leisure time in playgrounds, where I observe other parenting styles and interactions. On the far right of this scale fit the parents who hold their kids (or make them wear helmets) as they try to climb the jungle gym. On the far left are the parents who read the paper or play with their latest iPhone 5, oblivious to the amazing physical and mental development they are missing meters away. In the sweet spot are those amazing parents whose children are confident to independently learn, whilst knowing their parents are always there if they need help or something goes wrong.

Summary

If you can aim for somewhere in the middle of my scale, where your client is engaged enough to know broadly what they want, but not engaged too much for them to tell you what to do and how to do it, that’s the sweet spot: that’s where you should be.

What are your thoughts? Do you like one particular end or like living in the grey spots like me?

I used to believe in the tooth fairy

I gave this presentation about changing your mind as a lightning talk in Austin in March.

This slideshow requires JavaScript.

If you can do one thing this year, I’d encourage you to change your mind on something and share it.

Einstein: the Minesweeper Robot (in Brisbane)

I gave a talk tonight to the Brisbane Special Interest Group in Software Testing (SIGIST). There was a great turnout (tickets went in 24 hours after the announcement apparently), and there was some good interest in Einstein (plus 3 people who had never played Minesweeper, what the?).

Alister will discuss browser automation, using an example of writing a Minesweeper robot. Einstein, his robot, proficiently plays Minesweeper in a web browser and was developed using specification by example techniques using Watir, RSpec and Cucumber in the Ruby programming language.

Bio

Alister is an Agile tester who currently works for ThoughtWorks Australia and author of watirmelon.com. He’s been actively involved in the Watir open source project for a number of years and his passions include ruby programming and collecting arid plants.

In getting the slides ready, I actually came up with a reasonable list of things that building Einstein taught me about software testing (and software development in general):

  • Break big things down into little things
  • Design for testability
  • Test in the right places
  • Supplement your automated testing
  • Build in performance measures
  • Change your mind
  • Be young, be foolish, be happy

The last two points weren’t really related but I threw them in there for good measure.

Here’s the slides (and a link to the originals):

This slideshow requires JavaScript.

And here’s that video of Einstein in action:

Good times.

Github is little known

“Little-known social coding start-up GitHub Inc. has raised $100 million in its first round of funding, in a sign of how big investment bets are continuing in Silicon Valley.”

Last week, The Wall Street Journal wrote about Github’s first round of funding calling the company ‘little known’. The software development community was outraged: how dare you call Github ‘little known’!

But Github is little known. Sure, they’ve just reached 1 million users, but compare that to Gmail with over 450 million and Facebook set to reach 1 billion within a month and it’s tiny. Anecdotally, no-one I know that doesn’t work in software development has ever heard of Github, and half of the people I know who do (including a lot of testers) have either never heard of or never used Github.

This is an classic example of the strange tech bubble we live in. Recently I was shocked to meet a couple of software engineers who had never heard of Selenium. I was like, oh my god, how could you have not heard of Selenium. Then I realised I myself was living in my own tiny little tech bubble, where I just assumed that something commonplace to me was commonplace to everyone. But it’s not.

That’s one of the reasons I think we design shit software. Because we think our users will know/do stuff that we know/do, even though they don’t and won’t. Hence the common occurrence of PEBKAC, ID10T and user-errors.

 

 

 

Is it time to rethink the corporate Internet proxy?

Working as a consultant means I am exposed to lots of different organizations: some good and some bad. But the thing that strikes me as strange is how prevalent, even in the good places, highly restricted corporate Internet proxies are.

I’ve worked in an organization where, no lie, access to Stack Overflow was blocked! Others seem to block anything from the usual suspects of Facebook and Twitter, to unusual categorizations of blocking ‘anything social’ which happens to include this blog, which by the way, is probably more work related than other things you’ll visit on the Internet. Other places I have worked have blocked any HTTPS site (including Internet Banking). One place let you access Wikipedia but coupled with a prominent warning that all Wikipedia viewing would be closely monitored.

But these crazy corporate proxies are forgetting something. In this day and age where smartphones and mobile broadband are ubiquitous, if someone can’t access Twitter on their work supplied desktop, they’ll just use their iPhone! If they can’t download a file, they’ll use their MacBook and transfer it via a USB key. It’s commonplace to see staff with their own laptop on their desk so they can do whatever they want with it (and run whatever they want – bye bye Windows XP).

I once saw a technology company here in Brisbane advertise ‘fast, unfiltered Internet’ in their list of employee perks, alongside free pool tables and Friday drinks. I thought it was odd until I realized it’s actually a competitive differentiator for an employer to offer this.

The same goes for other technology. I’ve worked in numerous organizations that have forced their staff to use Internet Explorer 6, when at home, their staff can actually choose a modern, secure, standards based web browser. I was highly vocal in a previous job when there was a threat from management to uninstall Firefox from rogue staff’s computers because the supplied IE6 was supposedly more ‘secure’ (yes: WTF!).

I’m not advocating inappropriate access to content at work. But creating a nanny state using a highly restricted corporate proxy is not the way to motivate staff or let people be efficient at their job. Let staff do the right thing and don’t block what they should be able to use. Kick their ass only if they do the wrong thing.

In the days before broadband, smartphones and tablets, it used to be that what you could use in the office was technologically advanced. Nowadays, it’s commonly like stepping back in time.

Worst security questions… ever.

I went to buy an old TZU album on iTunes tonight and was asked to enter my iTunes password twice, followed by this weird ‘Security Info’ screen I had never seen before.

This is the full list of questions and my responses

Question 1 requires you to select an answer from one of the following questions:

  • What was the first car you owned? The first car I owned was a 1996 White Ford Falcon Panelvan I called ‘Panno’. So, should I enter ‘Ford Falcon’, or ‘Ford Falcon Panelvan’ or even ‘Ford Falcon Panel Van’, or maybe for fun ‘Panno the White Ford Falcon’? What’s the chance that at some point I’ll correctly recall what I specifically entered?
  • Who was your first teacher? I seriously can’t remember who my first teacher was. Was it my kindergarten teacher?  Or is it my first school teacher? Unless you’re under 18, I doubt you’d remember your first teacher either.
  • What was the first album you owned? Surely if anyone Apple would know you don’t actually own an album, you only own a license to listen to it.
  • Where was your first job? Was this when I helping my parents out in their Cafe when I was 12? Or was it when I was at Uni? Or my first ‘real job’?
  • In which city were you first kissed? By my parents when I was a baby? On the cheek by the girl in Year 2? Or was it my first pash in high school?

Question 2 requires you to select an answer from one of the following questions:

  • Which of the cars you’ve owned has been your favourite? I would say my Ford Falcon Panelvan but Apple won’t let me! My first car can’t be my favourite! Ahhhhhhh! The horror!
  • Who was your favourite teacher? Again, Apple won’t let me say my first teacher was my favourite teacher, and even though I might remember the name of my favourite teacher, I don’t remember exactly: was it ‘Ms Dwyer’, or was that ‘Mrs Dwyer’, or ‘Sherry Dwyer’ I think her name was.
  • What was the first concert you attended? I think my parents took me to a Play School Concert when I was 5. Does that count?
  • Where was your favourite job? The recollection of my favourite job today will probably not be my recollection of my favorite job when I need to reset my password in 5 years time.
  • Who was your best childhood friend? Again, do I write ‘Tim’ or ‘Tim Rose’ or I think his actual name was ‘Timothy Rose’

Question 3 requires you to select an answer from one of the following questions:

  • Which of the cars you’ve owned has been your least favourite? Well, it was actually my Ford Falcon Panelvan, because whilst it was a fantastically practical and fun car, it was expensive to run and maintain. But Apple says no, my first car can’t be my favourite car, and my favourite car can’t be my least favourite car.
  • Who was your least favourite teacher? I can’t remember the bastard’s name.
  • Where was your least favourite job? Because every job I take from now can’t be my least favourite.
  • In which city did your mother and father meet? FFS, seriously? Was it Sydney? Or Glebe in Sydney? Or it might have been Tamworth. But that’s not really a city, it’s more of a town.
  • Where were you on January 1, 2000? I am sorry but I have no idea, I could have spent the weekend in Sydney, but again, I wouldn’t know.

What a ridiculous set of questions. I thought Apple were notorious for sweating the small stuff, but from this set of questions it’s obvious they have no clue what they’re doing.

I can’t answer those questions so instead I’ll click ‘cancel’ and maybe go and buy that record in a record store tomorrow. That, or fire up bit-torrent, it’s just less painful.

Software Piracy

I consciously choose not to use any pirated software. There are a few reasons why I made this decision:

  • I work in software development, so using pirated software is like ‘biting the hand that feeds you‘;
  • When you install pirated or ‘cracked’ software on your system, you are potentially opening your system up to all sorts of nasties included in the pirating process; and
  • I have found viable free and/or open source alternatives that remove the need to use pirated software in the first place, so I am not really missing out at all.

pirate

So what do I use instead? Here’s some commercial software and the free/open source alternatives that I use:

A lot of these alternatives use open standards and formats, which is a good thing to encourage. The more people who use open standards and formats, the more commercial software vendors will feel the need to support them.

The other benefit of using these alternatives is that if you decide to switch operating systems then most of these are cross platform, so you don’t need to change your software that you use.

Which brings me to my final point. The more you start to use these cross platform alternatives, and the more things are done on the web (email, IM etc.), the more you start to question why you need a commercial operating system.

Most of the packages above work on Ubuntu or other flavours of Linux, so there’s no reason not to switch to a non-commercial operating system as well.