2008 Year-End Wrap-Up

It’s become the tradition at this time of year for the cool kids to round-up the year with the most popular blog postings of the year; so I thought I would do the same.

My most popular photo on Flickr. Some rights reserved.
My most popular photo on Flickr. Some rights reserved.

Here then are the most popular posts from the last 12 months (most popular first):

Web design 2.0 – it’s all about the resource and its URL — thanks to Simon Willison this is my most popular post of all time and of 2008.

QR codes for BBC programmes and some other stuff — a lunchtime of hacking from the wonderful Duncan Robertson gave us QR Codes for every BBC programme.

When agile projects become mini waterfalls — I have no idea why this is so popular, but there you go.

Interesting BBC data to hack with — the release of XML views of Radio AOD data, unsurprisingly, proved popular.

The all new BBC music site where programmes meet music and the semantic web — the first hint at what the BBC will be able to do by caring about its URLs, Linked Data and Domain Driven Design. If you put everything in the right place you can join it all up and create a coherent user experience. 

Osmotic communication – keeping the whole company in touch — I still think this is a good idea.

Find and Play BBC Programmes — announcing the embedded media player on programme pages — meaning all BBC programme support sites now include the latest TV and Radio media.

iPhoto photos not appearing in Front Row — how to fix iPhoto’s album.xml file when you migrate from Google’s Picasa to iPhoto. The fact this is still proving popular implies Apple still haven’t fixed the bug. 

Highly connected graphs: Opening BBC data — in response to Mike Butcher’s post on TechCrunch requesting the BBC open up their data and provide APIs I thought it worth pointing out there’s already some good stuff going on.

Ladies and gentlemen I give you BBC Programmes — the launch of a page for every programme the BBC broadcasts.

UGC its rude, its wrong and it misses the point — its still rude and it still means those that think of amateur publishers in these terms will continue to miss opportunities.

So there you have it. It’s been a good year and as I’ve discussed previously I’m very proud of what we’ve achieved, as reflected in many of these posts and the fact the Guardian also cover the work — which also had the added bonus that my parents finally have some idea of what I do for a living.

Interesting stuff from around the web 2008-10-06

The map is scaled to the number of radios per capita. The most radios per person are in Norway - at more than 3 per person.
The map is scaled to the number of radios in each territory. The most radios per person are in Norway - at more than 3 per person.

Lots and lots of clouds

Stephen Fry explains the principles of cloud computing and recommends a few services
Clever man Stephen Fry, perhaps he could write a piece on OpenID next.

Richard Stallman on Cloud Computing: “Stupidity” [autonomo.us]
“I’m very supportive of [Stallman’s] concern about cloud computing, and I agree that it’s something that the Free Software and Free Culture communities need to address. But in rejecting all network computing, I think RMS has thrown out the baby with the bathwater.”

Can’t Open Your E-Mailbox? Good Luck [NYTimes.com]
Amidst all the hype around cloud computing, The New York Times points out that if Google locks down your Gmail login for whatever reason (like someone tried the wrong password too many times), you’re basically screwed.

Some lovely visualisations, one odd one

Worldmapper: The world as you’ve never seen it before
Interesting collection of maps, where territories are re-sized on each map according to the subject of interest. There are now nearly 600 maps.

AirTraffic Worldwide [YouTube]
A map of the world showing a simulation of all of the air traffic in a 24-hour period

Flickr Panda – strange, very strange
Panda vomiting photos – why the Panda? Who knows. Something to do with this.

Height – the observable universe from top to bottom [xkcd]
I don’t normally link to xkcd because, to be honest, I would simply be linking to every addition. But this one is particularly good.

Listen to TimBL: Link your Data, give it context

Is Linking to Yourself the Future of the Web? [O’Reilly Radar]
“Follow Jay’s link and you come to a story that indeed doesn’t have any outbound links, except to other Times stories. Now, I understand the value of linking to other articles on your own site — everyone does it — but to do so exclusively is a small tear in the fabric of the web, a small tear that will grow much larger if it remains unchecked.”

…and listen to Martin: don’t fall for BDUF

‘Requirement’ is inherently waterfallish. Agile methods violate this underlying assumption by intending to discover the ‘requirements’ during construction and after delivery. [martinfowler.com]
Everyone knows how big the difference is between what people say they want and what people actually need and use. By watching what people actually do with your application, you can find out what actually happens with the software – which can give you much more direct information than other sources. As a result I think more teams should consider adding this approach to their toolkit.

Interesting stuff from around the web 2008-09-01

Google Chrome, Google’s Browser Project
Google Chrome, Google’s Browser Project

Some Google news

Google Chrome, Google’s Browser Project [blogoscoped.com]
Built with WebKit but with added cool features – some UX stuff but more interestingly a new JavaScript virtual machine, multi-threading and sensible security policies. And all Open Sourced.

Google’s undocumented favicon to png convertor [via Simon Willison]
Showing the favicon of a domain next to a link is a really nice trick, but it’s slightly tricky to achieve as IE won’t display a .ico file if you link to it from an img element, so you need to convert the images server-side. This undocumented Google API does that for you, meaning it’s much easier to add favicons as a feature to your site.

Some cool hacking…

Solar powered ice maker [Hack a Day]
The system uses solar heat to facilitate evaporation of a coolant. When the sun goes down and the coolant turns back to liquid, its temperature drops drastically due to extreme pressure differences. The unit can produce 14 pounds of ice per day with zero carbon footprint.

Archrs – an everyday story of web development [BBC – Radio Labs]
Tristan’s review of his work on a new Archer’s prototype. Unfortunately it didn’t get launched – which is a real shame it would have been great.

And finally some project management stuff

The Need for Leadership in Scrum [NetObjectives]
An interesting take on the role of management and leadership within organisations using Scrum. Where leadership as the “ability to create a solid vision of a better future for those people he/she is leading.” A leader must have a compelling desire to move towards that vision. And management as the “ability to match people’s tasks with their skills.”

Interesting Stuff from around the web 2008-08-15

The telegraph room at the original Mundaneum in Brussels

The Mundaneum Museum Honors the First Concept of the World Wide Web [NYTimes.com]
In 1934, Otlet sketched out plans for a global network of computers (or “electric telescopes,” as he called them) that would allow people to search and browse through millions of interlinked documents, images, audio and video files.

If this can be made to work this will be massive [MIT News Office]
Inspired by the photosynthesis performed by plants, Nocera and Matthew Kanan, a postdoctoral fellow in Nocera’s lab, have developed an unprecedented process that will allow the sun’s energy to be used to split water into hydrogen and oxygen gases. Later, the oxygen and hydrogen may be recombined inside a fuel cell, creating carbon-free electricity to power your house or your electric car, day or night.

Date set for Large Hadron Collider switch on [vnunet.com]
The first beams will be fired from the device on September 10 and its massive data grid will begin collecting data and analysing particles formed as the beams smash together.

Some BBC stuff…

BBC news trialing something new – inline links [news.bbc.co.uk]
It uses technology from apture.com to add in page pop ups. It’s a time limited trial to see what folk think.

MusicBrainz Releases missing release dates [aelius.com/njh]
The BBC is moving as much music information as possible out of internal BBC databases and into MusicBrainz. If you would like to help by adding release dates to MusicBrainz releases that we have written reviews for that would be great!

And finally another top rant from Stevey…

Business Requirements are Bullshit [Stevey’s Blog Rants]
“For our Case Study, I will not do any research and the product will be entirely fictional. This is the approach used by most real companies… Don’t gather business requirements: hire domain experts.”

Managing the code-garden

Kevin Barnes suggests that software engineering is a bit like gardening – software is never finished – you need to spend some time planning, some time adding new features and some time tending to what you have. Otherwise your code will become steadily more and more unmanageable.

Artfully planned decay

Basically, code is like a garden. We lay it out, plant it and then tend and maintain it for as long as it continues to warrant the attention.”

The trouble is how do you make sure that you allocate enough time to maintenance while continuing to add new features or enhancements? How do you make sure you don’t allocate all your time to adding the next new thing, nor spend weeks on end tidying your code because all you’ve done recently is add new features?

Likewise how do you give the team the time and space to innovate – to try out their ideas? One solution is to let anyone add a new item to the product backlog or requirements catalogue and then prioritise it alongside everything else. Well this is OK if it’s a big idea, but not great for smaller items nor for more geeky ideas if the Product Owner or the business at large doesn’t understand the value of such things. It also feels wrong – if someone has a good idea that can be implemented quickly then they should be able to so, after all going via the Product Baacklog route may take more time than simply implementing the feature. And that is as good a way to kill off innovation as anything else.

But likewise you need to provide appropriate project governance – if everyone did whatever they wanted then the business is unlikely to get what it needs from the software.

One solution is the idea of Gold Cards [pdf] as suggested by Tim MacKinnon. Gold cards are designed to address:

A lack of innovation because the customer does not necessarily explore options that are technically possible but not currently required. Consequently, cutting-edge knowledge may be slowly lost from the team.

Gold Cards allow developers time to explore technical possibilities in a controlled and focused way.

In Scrum the current sprint’s work items are written on cards and pinned to the wall – so everyone knows what’s being worked on and everyone knows what’s completed. Gold Cards are special cards that let you work on your own idea – it can be anything you want so long as it’s on the current project.

Each developer is allocated two Gold Cards at the beginning of each calendar month… Gold Cards can be used at any time during a month, but cannot be carried over into the next month. […]

Each card grants the developer who has it, one day of work on a topic of their choice.

In a similar fashion ‘Gardening Cards’ let you work on whatever is bugging you – not bugs which should be prioritised elsewhere – but those things that just annoy you about the way something is implemented, that missing feature that would make life much easier if it were there. It’s your chance to spend time tending to your garden, not planting new features.

So the idea is that you place one Gold Card and one Gardening Card on the wall. Each sprint everyone can spend one day on a gold card item and one on a bit of gardening. But because the project only has one gold card and one gardening card only one person can be doing each activity at a time – everyone else is working on the backlog as normal. It’s the Scrum Master’s responsibility to encourage everyone to take the time to work on these items.

Now clearly how many days you allocate to gardening and gold card items will depend on a number of different factors: team size, sprint length, age of the project and the state of the code (you wouldn’t allocate gardening time at the start of a project for instance). But generally when a project matures you should be allocating some time every sprint to this. The Scrum Master can plan around this because although they don’t know exactly what everyone will work on she does know how much time will be allocated.

The other advantage of this approach is that they also help fill the gaps – if your planning is a bit off, you encounter some unforeseen problems and some member of the team are being held up then they can remain productive by working on their gold card idea or fixing that pesky item that’s being bugging them for while rather than waiting for someone else.

Hudson Bay Start – reducing project risk

The Hudson’s Bay Company (HBC) was founded by King Charles II in 1670 and that makes it the oldest commercial company in the English-speaking world. For centuries the HBC controlled the fur trade throughout much of British-controlled North America, in an area known as Rupert’s Land, undertaking early exploration and functioning as the de facto government in many areas of the continent.

Hudson Bay Company traders

Fur trapping and exploration in Rupert’s Land in the 1600s must have been a high risk job to say the least. The trappers would have to survive on their own in the wilderness so having the right supplies in the correct amounts was literally a matter of life and death. To minimise this risk the trappers developed a technique known as the ‘Hudson Bay Start’.

The Hudson Bay Start was a test. A test to make sure the trappers had the right equipment before they headed off into the wilderness. They would pack up as if they were going to leave for the season but only canoe a short distance and camp overnight to make sure they had neither forgotten anything, nor taken too much. They would then return home, correct any mistakes, before heading out for real. Clearly this approach didn’t come for free – the trapping season was quite short – so while it reduced risk it did present an opportunity cost and might be seen as having an impact on their shipping schedule. A similar approach can be applied to large software projects.

Large scale software projects are high risk. The bigger the project the higher the risk, both in terms of impact (if it goes wrong the company will lose more money) and the rate of occurrence because big projects are more complex and are more likely to contain unk-unks. The idea of a Hudson Bay start is to expose some of those unk-unks and assumptions and therfore reduce some of your project risks, as Jerry Weinberg explains:

We take a trivial problem – really trivial like putting HELLO WORLD on a single screen, and run it through the entire development process – tools, people, documents, test plans, testing, or whatever they’re planning to use. It’s amazing the things that shake out in an hour or two. What’s even more amazing is how many clients are reluctant to do this – “It’s a waste of time; we’ve got an ambitious five-year project and we can’t spare a half day on an exercise.”

This is similar to spikes and tracer bullets in agile methodologies like Scrum. Except with tracer bullets you are working on a narrow implementation of a larger user story to help fine tune what needs to be built, helping you aim more accurately; and with spikes you are building quick and dirty throw away code to gain knowledge. Whereas with a Hudson Bay start you’re less interested in the actual product and more interested in making sure the development and deployment process works.