On developers

I got into software development in the early ’90s. Prior to that, I’d only programmed for fun, having originally played with various implementations of BASIC at home and school, and then having bought – on floppy disk, no less – my first C++ compiler.

And I love being a software developer for one simple reason: it is the very best excuse for spending your days learning new things.

Firstly, you spend your day solving business problems. That’s cool. Software developers generally try to write software that improves how we work, do business with each other, and even have fun. It’s great.

Next, in order to solve those problems, you have to unpick APIs and (typically lousy) documentation, hack code, and explore.

And there will be bugs.

And the great thing about bugs is that you, as a developer, have to find out whether they’re yours or someone else’s.

This is awesome.

Of course, in a post-Internet world, there is a ton of stuff to help you with this learning. You have a multitude of blogs, forums and articles to read. Good Google and StackOverflow searching skills will therefore get you a long way as a developer.

But I’m really starting to notice a sea change in the way forums work.

Increasingly frequently, developers can’t be bothered to write code and then post questions when they get stuck.

Oh no.

Now, the preferred approach tends to be more along the lines of this (and this is a genuine post on a significant Microsoft forum)

I am writing an application (windows service) which needs to POST to a REST web service to send some data. Can someone please tell me step by step process to do this?

I find this deeply worrying.

This is tantamount to finding yourself on seat 5C of an airplane and overhearing the pilot speaking into the radio, saying

So I need step by step instructions on how to fly this plane

It’s utterly ridiculous for a developer to not have the skill, motivation or intelligence to be able to even have a go at Googling on how to make an HTTP request to a service, and then at least make a stab at writing some code.

There have always been bad developers, as there have always been excellent ones.

But now it appears that we’re seeing an increase in developers that just can’t even be bothered to try.

Which is a sobering thought when all of us depend on software to the extent that we now do.


“How may I redirect your call?”

I can only say that the past few weeks have been interesting.

My wife and I have moved house, which means that we’ve had to deal with a number of different customer service providers. Some make life easy. They let you change address information online, or let you speak to a human easily and quickly.

Examples of some of the best for us include Severn Trent Water and Basingstoke and Deane Council – although the latter’s website wouldn’t let us enter our new address, so the online experience wasn’t actually perfect.

Two, however, stand out as complete disasters.

Firstly, BT.

My wife has spent over seven hours on the phone to BT. The cause of such heartache and angst: attempting to get two phone lines with broadband into the new house (which, by the way, already had two lines physically installed, so you’d assume that it would only be a matter of seconds to punch some buttons on a computer and, voila, numbers done).

I have to say that BT must have one of the worst-trained staff, and incompetent systems, ever put together.

The problems started when we tried to use BT’s Moving Home facility on the website. Result: computer says no.

So we speak to an operator. An hour or two later, an order is about to be placed and then… computer says no. Reason: that there is an existing business line in the property, so domestic sales can’t deal with it.

So we’re transferred to business sales (why, when we’re ordering standard domestic lines, is beyond us).

Business operator is unable to deal with it. In fact, they can neither find the property nor the phone lines that are there.

Cool systems, BT.

So it’s back to domestic. Eventually, an order is placed, and an engineer visit is lined up. Unfortunately, the operator involved tells us that it is not possible to order broadband until the phone line is installed.

The engineer arrives.

The engineer has not been briefed in any way as to what he is to do.

We show him the order.

He is not allowed to look at that, and has to use his own work order.

We can’t ring BT due to the fact that the lines aren’t working.

He can’t ring BT either.

Eventually, however, he climbs poles, attaches equipment and makes things happen. He leaves us with a working line.

We try to order broadband. We’re told that it is going to take a minimum of two weeks.

My wife spends a further two hours on the phone, and eventually reaches someone with a small modicum of power and common sense. She accelerates the broadband order. I ask for the username and password to set up my own ADSL modem.

She tells me that when I fire up IE, and login, then I’ll be able to find out the password. I explain that this is clearly not possible, as without the password to enable the ADLS modem to connect to the BT network, I won’t be able to login.

She advises that BT Tech Support will be able to deal with that on the day.

The day arrives, and broadband comes online. We contact BT for support on the password. Two hours (I kid you not) later, my wife is finally told that she will have an SMS with the password in the next ten minutes.

Five hours later the password arrives.

We have broadband!

Now we want to add BT Privacy. We’re told that we cannot, due to the fact that the order for broadband is not complete.


Until we’ve received the HomeHub, the order is not complete.


Delivery of the hub will be July 4th. Except, July 4th comes and goes. No hub. Therefore, no order completion. Therefore, no chance to order BT Privacy.

Another hour or so on the phone.

Hub due to be delivered now on the 8th. When? Who knows?

(It’s not arrived as I write this!)

Then we get charged £130 for the engineer visit. Wife goes ballistic! Another phone and email exchange with BT. Charge is removed.

Tomorrow, line two should – hopefully – come on line (as they say). But who knows.

The second villain of the piece is Sky.

Now, to be fair, I’ve always had really good support from Sky. And when we told them that we were moving, the customer support was excellent in arranging engineer visits. And the engineers themselves were cool, as the installation of the dish in the new house was tricky.

So I was happy.

Up until yesterday, when I spent 90 minutes on live chat with Sky support in a vain attempt to get them to enable Sky Go on my devices. And here’s the stupid bit.

We had Sky Go. Which is great, and lets you watch Sky programming on two devices. As part of the move, we upgraded to Sky Multiroom – we wanted a Sky box in the gym – and thus got Sky Go Extra for free.


This means that we can now have four devices. Woo hop!

So I deregistered one old PC, and registered a new PC. Leaving me with three slots for three other devices.

Then I tried to register another device.

Unfortunately, I’m not allowed. You see, the kicker here is that deleting and adding a device counts as the total amount of change that you’re allowed to do on Sky Go in a single month.

Net result: it will be three more months before I can register the other three devices (I can do one a month).

This is clearly stupid, so I contact Sky support and eventually ended up with Sunil, who is allegedly a customer service supervisor. Except Sunil is possibly the most useless person that I’ve ever come across in a support function.

Did he listen? No. Could he help? No.

However, he could confirm – and I checked this with him several times – that there is no-one in the whole of the Sky organisation who is allowed to reset the Sky Go account for a user. In fact, it is not possible because – and you’ve already guessed it – it’s an “automated system”.


Apart from the fact that Sky chose to go with Silverlight for the client tech, and don’t actually bother to support modern versions of Windows or MacOSX, they also invented a back-end system that doesn’t allow a human employee in Sky to modify account records.

What have they invented? SkyNet?

The machines are in control!

All in all, the thing that I’ve noticed the most during the entire move is that organisations broadly fall in to two categories: those that have developed systems, and trained and empowered their staff, to help their customers.

And then there’s BT and Sky.

Tagged ,

The longest day…

So today is the longest day of the year (in the northern hemisphere, at least).

Druids are on their way to Stonehenge – via the A303, one assumes. You have to admire the practicality of the ancient Britons who chose to build their monument next to a major highway; and then question them on choosing Welsh stone as the building material! I can only guess that the local B&Q in Salisbury was out of giant rocks at the time. Or maybe it was just that the equivalent of Amazon was based out of Wales back then: one can almost imagine the conversation in the quarry

“Dai, we’ve had an order for two thousand tons of stone from those mad English druids, and … bugger … they’re a Prime customer! They want it delivered by 1pm tomorrow. For free.”

Of course, you have to wonder whether the druids had the right idea with Stonehenge. If it genuinely is a giant timepiece, it must have been a real pain to adjust it when the clocks changed between BST and GMT.

To be fair, though, Stonehenge might not have been a timepiece. Some consider it to be a celestial computer. One can only speculate, but if that were the case it would certainly make you think that it was a government sponsored project, with massive delays and cost overruns. Again, the conversation must have gone something like this

“So can it actually calculate the NI and Tax liabilities of the population?”
“No. Not exactly. But it can predict eclipses! And it’s now blue.”

In actuality, though, I believe that Stonehenge was more of a mistake than anything else. I fancy that a druid, living in a draughty shack, checked with his voice-search enabled phone for the plans for a door hinge… and the rest, as they say, is history.

const int EffortByManyDevelopers = 0;

In a world of change, it’s nice to see that some things stay the same.

I’ve just been visiting the ASP.NET forums for the first time in absolutely ages, and I find it shocking that so many developers 

  1. Still apparently don’t know how to use Google to find answers to their questions,
  2. Still haven’t grasped the concept of debugging to find out basic information about their code (and I’m not talking WinDBG here!)
  3. Still want to just post questions which are of the form “I want to do this … please post the code”

And that’s the problem with forums (fora?): it’s too easy to post a question without even applying a modicum of effort to solving the question yourself.

On the other hand, it’s great to see so many developers that are willing to help, and it’s always exciting to see newer developers who are genuinely battling with the technology and trying to improve themselves: in these tough economic times, for many the answers that they get through the forums will be the only training they receive.

Empowering users

One of the most important aspects of any application is the way that it empowers the user. This is so important that I don’t think that this can be overstated too much.

Which is why I find it so strange that game software on the likes of PCs, where user-empowerment is the entire point, has moved so far as to almost totally disenfranchise the user.

Take, for example, the new Sim City from EA.

When this works, it’s a fantastic game. However, it’s fairly unreliable. There are problems connecting to servers, or even worse, you can be happily playing a game and suddenly a drastic error occurs…

“Your city is not processing properly…”

That’s it. Game over.

You can rollback your game all you like, but it’s history. Abandon the region – and all your hours of endeavour – and move on, because it’s never coming back to life correctly.

So what has this got to do with empowering users?

Well, cloud-based or not, the user is unable to save their city. Some ethereal creature does it for you – and in the case of Sim City – not reliably.

Would it have been too difficult to provide the user with a “save now” option?

For another example of dis-empowering, you only have to look at the Start Screen of Windows 8. Quite simply, i find it offensive that I’m not allowed to determine the position of my tiles.

Sure, I can group items.

But I have three browsers installed (IE, Chrome and Firefox), and I’ve grouped them into a “Browsers” group. Now I want this to be one tile wide, and three tiles deep. After all, there’s absolutely no need for this group to be two tiles wide.

Except that I’m not allowed to do that.

Which is pathetic.

And as for not allowing me to run a Windows 8 Modern Style application in its own window on a secondary monitor, well, just don’t get me started on that!

So this post is a call to all UX developers out there.

Remember that whatever you think, the most important part of the application experience is the bit that empowers the user. Because once you’ve started to do that, they will love your software.

Then they will want to use it.

And most importantly, they’ll want to pay for it.


When UIs go wrong

I needed to throw together a spread sheet today, so I fired up Excel 2013.

Excel has long been a great spread sheet app, and I still like it. However, it really annoyed me today.

I was building a UK Personal Tax Calculator for the upcoming tax year. Something that can take about thirty minutes or so. Now I’ve never been a fan of trying to remember cell row/column indices, so I like to name the important cells.

But I cannot fathom the thinking of the coders who, when you’re typing in formulae, don’t support autocomplete. So given a cell named TotalIncome, I was really hoping to write a formula in another cell based on TotalIncome.

So I type


and a little popup appears showing me my beautiful TotalIncome cell. It’s even highlighted in the list.

So I press Enter (as you would expect to select from a list using, say, Visual Studio IntelliSense), and


The magical #NAME? appears in the cell.

Grr! Grrrr!

So I thought about this for a while, and then realised what the developer of this Excel feature was literally trying to tell me, namely

“Sorry, dude. I’ve made a hash of this name feature.”

Of course, they had the time to turn the menu to shouty UPPER CASE, and to put in an annoying animation to move the focus rectangle when you click on a cell.

But not enough time to do a proper auto-complete list.

Ah well, there’s always Office 2015, I suppose.


Who eight all the editors?


They cost money.

Sometimes a lot of it.

Now I’m guessing that a lot of people assume that the money either goes to (a) the author, or (b) the cost of printing and distributing heavy paper books.

So one might naturally assume that, with the emergence of Kindle/Nook/et al, there would be a large drop in prices of “books”, given that the distribution side is largely taken care of.

However, I’ve noticed something.

Good “books” really don’t cost any less on Kindle than they do from a bookshop.

The first cause of this is VAT, of course. Sneaky! Treat an e-book as if it were software, and you can rake in a cool 20% tax. Thank you, Mr. Osborne.

The second cause is that there are a lot of other costs associated with books, and one of those is the cost of editors.

“Editors”, I hear you cry, “who needs them?”

Well, maybe someone who puts “eight” in their blog post titles, rather than “ate”.

Editors make books. They take raw, wonderful output from authors and sprinkle on minor details such as grammar, spelling and consistency.

Editors are like a combination of unit and user tests for software. And we know that these cost; sometimes, a lot.

So the next time that you’re looking for a book for your Kindle, and you’re wondering whether that £0.99 price looks reasonable, just remember this: once you’ve knocked off the VAT, author’s and Amazon’s fee, and you’re left with a balance of £0.00, then the book never got an edit.

Which means that all those grammatical and spelling errors, along with the gaping plot flaws, are just weighting to pounce and destroy the story.

Just like buggy, untested code.

And yes, before you ask, that should have been “waiting”.

On devices

I’m a fan of modern computing devices. I think that they’re great.

But as I work on apps, I find myself continually reflecting on one thing.

You can debate the merits of Android vs. Windows 8 Modern UI vs. iOS all you like. But at the end of the day, when the app is running, all of these operating systems share one thing in common: they get completely out of the way of the user.

The app owns all the pixels on the screen.

Which is the most awesome thing for an app designer.

So the one thing that matters is actually the feel of the device. Or to be more precise, its size and weight.

If the device feels wrong, then there is nothing that the OS, or its apps, can do to remedy that.

For me, the iPad is just about the perfect size, with the Samsung Galaxy Tab 2 a close second, and the Surface a distant third. To me, the Surface feels like a laptop, albeit one shorn of its keyboard.

And I guess that’s why, when I retire to my sofa at the end of a day’s work, it’s either the iPad or the Samsung that comes with me.

Leaving the Surface to silently fulfil its role as a mere test and debug device.

And that’s a huge shame, as there is no doubt that the Windows 8 (or Windows RT) OS offers, in my opinion, a generally superior experience to either iOS or Android.

In-app Advertising

With the arrival of Windows 8, there’s a whole new generation of developers that are thinking about, or actively engaged in, building apps that are deployed through an online store.

And that’s a group that includes me.

And the evidence tends to suggest that one of the ways to make the most money with an app is to offer it for free. Now whilst this sounds contrary to common sense, it is generally accepted that users are more likely to download free apps.

So this gives you two primary ways of monetizing the app, namely:

  1. In-app purchases
  2. Advertising

Of course, you can do both, and a very common in-app purchase is the one that turns off the adverts, effectively making the game paid-for, rather than free.

So I was thinking about this today, as I plan for my new app, and I wanted to get a real feel for the pros and cons of in-app advertising. Consequently, I booted up the iPad and prodded around with a few apps.

One really caught my attention: Angry Birds.

Undoubtedly one of the most successful apps in history, this was a paid application when it first came out. Now it’s free, but with in-app purchase options.

I haven’t played it in ages, but as I prodded around with it, I realised something: badly done in-app advertising is one of the most annoying features. Ever.

Here’s the problem with Angry Birds.

You mis-throw a bird, and realise that the score on the level is going to suck. So you hit pause, to bring up the in-level menu so that you can restart it.

And the menu displays an advert.

OK. No biggy so far.

Then you press the button to restart the level.


Advert fade to black.

(OK. They’ve been resetting the level in the background, I assume.)


Advert fade back in.

(Huh? What? Let me play the level already!)


Level restarts.

(Too bored to bother, now)

Every pause, and every time, exactly the same irritating advert.

This is a case where the advert is directly, and adversely affecting the player’s enjoyment of the game.

And it lead me to believe that Rovio think I shouldn’t be playing the “#1 app of all time”.

So I fired up Angry Birds Space.

Smack over the top of the big play button, the same ad appears.

Here, though, Rovio have been particularly evil. There are two buttons, a tick and a cross, at the bottom of the ad.

Now anyone who’s done any UI design work will have heard of the Gutenberg Diagram. The cross button is placed in the Weak Fallow Area of the diagram – in other words the bit that the user is most likely to ignore – and the tick is placed in the Terminal Area.

This also happens, of course, to be nearest the right hand, which is the predominant hand for the vast majority of people.

Consequently, I can imagine that a vast number of people click the tick, without even really getting the chance to think about it.

(At least Rovio are reasonably kind – they then prompt you with a dialog before scurrying off out of the app so that you can get the other one).

So I’m intrigued.

I find it deeply annoying when an advert is so overt as to materially impact the enjoyment of something. ITV Player is another classic example of this, as when it crashes – which it invariably does – it then won’t restart the program that you’re watching until it has replayed the adverts of the day.

But do Rovio, and ITV, know something about advertising that I don’t?

Are modern users so inured to advertising that they will ignore all adverts unless they are so prominent as to get completely in the way?

It’s certainly something to ponder over the coming weeks.

It all depends on who you call…

So, yesterday I was talking to a less-than competent call-centre operator at BT.

Today, it’s a completely different experience.

This morning, I had the privilege of talking with Julie who, by the sound of her voice, is a lovely lady from the Newcastle area.

I’d like to buy her a drink!

She’s managed to

  1. cancel the completely erroneous order generated by her colleague from yesterday, and
  2. make a TAG clearance request to BT Wholesale (OpenReach?)

Julie represents the very essence of efficiency and determination. When faced with a system that wouldn’t let her send the TAG clearance request, she got hold of her boss and made it happen anyway.

And it was really nice to speak to someone who actually understands the difference between a MAC and a TAG, and has the ability and desire to want to solve customer problems.

BT should find Julie. Then they should look at why she’s so good, and use that as a model for improving their disastrously poor service from their evening crew.

Because, with more “Julies”, they’d have the best customer service in the UK.


Get every new post delivered to your Inbox.