Friday, 30 November 2007

Find my nearest toilet, curry, whatever

Written by Martin Kleppmann on Friday, 30 November 2007, 20:57 GMT.
Filed under: mobile, techie notes.

Some interesting developments in so-called location based services have hit the news in the last few days:

Although it can undoubtedly be very useful in many circumstances (I can certainly see myself using both the toilet service and the map service), these developments do raise questions: How do they know where I am? Does Google now know my location as well as my web searches, emails, contacts, diaries, YouTube video preferences and everything else? How easy is it for a somebody to track where I am, and can they do it without me noticing?

In case you were wondering, this is not GPS. There are phones with in-build GPS, but they are still pretty rare and expensive. The remarkable thing about these location technologies is that they work pretty well with a far broader range of handsets (although Google Maps is more accurate if you have GPS).

So how does it work? As far as I know, there are the following ways of finding your location:

  • GPS (only on a few phones such as the Nokia N95)
  • Operator-based location lookup (as offered by MX Telecom, for example) — this is what SatLav uses.
  • Cell ID and cell location — this is what Google uses.

GPS I won’t discuss any further: it can be accessed only by applications installed on the phone, which need to be given permission to do so — the phone itself controls the information, so the chances of abuse are pretty low. (But see the Google-related caveat below.)

Operator lookup is a bit more concerning. To find out somebody’s location, you need to know their phone number. You send a location request for that number to the operator whom you are registered with. The operator sends a text message to the person you are trying to locate, to ask for their consent. If they agree to release the location, that information (latitude, longitude and an accuracy value) is sent to you who requested it. (I think that’s how it works anyway — I’ve not seen it in action yet, and I can’t try it out since I’m on the only mobile network in the UK which has not yet implemented location requests). The consent is valid for only one look-up, so you don’t need to be concerned about the toilet finder service being able to track you for the rest of your life just because you needed a loo in Westminster once.

The advantage of operator-based lookup is that it works on any phone, provided that phone’s network supports location lookups. (In the UK, Vodafone, T-Mobile, O2 and Orange all do.) No software needs to be installed, and it appears to be reasonably secure too. On the downside, the operators charge for the service — about £0.10 a go, plus a monthly fee. And if you want to use a location-based service (for example, to find your nearest xyz shop) you need to give that shop your mobile number, risking that you may receive unwanted text message advertising from them in future.

Cell location is a very different beast, and more difficult to understand too. You may know that the mobile phone network is split into cells, each cell being the area covered by one particular receiver/transmitter (e.g. on the roof of a building). Cells can be pretty small (a few dozen meters radius) in urban areas, and much larger (several kilometers radius) in the countryside. A mobile phone is usually locked onto one particular cell, and each cell has a unique identifier. On many handsets it is possible for an application running on the phone to find out the identifier of the cell to which it is connected.

So what does that give us? Only the cell ID is not worth much. But if you have a big database which contains approximate locations for every cell in the world, you can make a pretty good guess at where you are (provided you’re in a small cell at least). The problem: there does not seem to be such a database. At least it’s not possible for normal people to get hold of it. The operators (who have built all those cells) know where they are of course, but they won’t simply give away that valuable information.

A number of collaborative projects are attempting to gather location information of cells by combining many volunteering users’ contributions. Among these are CellSpotting, GSM Location and Navizon. The general idea here is: people who have GPS in their handsets walk/drive around, and every time the phone comes across a new cell, it sends the identifier of that cell together with the GPS coordinates to the database. Over time, the database gets a pretty good idea of the range of locations in which you lock onto a particular cell. Then people who don’t have GPS can send their cell ID to the database to get an averaged value of their probable location.

(A note on the side: people talk a lot in theory about using triangulation — measuring signal strengths, angles of directional antennas, signal timings from several adjacent cells and so on. In principle, these techniques could be used to provide a location which is more accurate than simply “you are in cell X, and cell X covers this and that area”. In practise, I don’t think triangulation is feasible on phones for all sorts of reasons — software limitations, hardware support etc. The operator-based location lookup, which uses the cells rather than the handsets to measure timings, may well use it — I don’t know.)

Now how does Google Maps get its location information for non-GPS handsets? I have not yet heard a definite answer, but the general suspicion is that they use precisely one of these databases. They might have bought it off the operators, but that’s a bit unlikely. Chances are they merged together several open source projects, and also drove around in a car themselves, mapping cells to GPS locations. And now that Google have released the application to the public, they do exactly the same as Google always does: collect the data from as many users as possible. Most probably, those people with GPS handsets who use Google Maps are unknowingly helping to expand Google’s cell ID database. When a GPS user encounters a new cell, Google learns both the location and the cell ID. Over time, their cell coverage and location accuracy will increase for the benefit of non-GPS users.

So, does Google know where you are? Yes. If you do a location lookup, at least. They claim to anonymise that data, so you can only hope that they are telling the truth.

One final note: the mobile web does not come into this at all. That means, if a phone accesses a website, there is in general no way of telling where that user is located (unless they explicitly give the site their phone number and the site performs an operator location lookup).

Sunday, 25 November 2007

Dream teams, team dreams

Written by Martin Kleppmann on Sunday, 25 November 2007, 18:25 GMT.
Filed under: business.

About a year ago I went through a phase of wondering whether I might make a good management consultant. My thought at the time was that such experience might help me when I eventually set up my own business: I was very much a scientist and not at all a businessman, so that seemed a good way to build up the business side of things.

I made some contacts at McKinsey and BCG, applied and went for a day of interviews with BCG. By the end of that day I was boiling with desire to get out very quickly and never go anywhere near a management consultancy again. I found something fundamentally and instinctively repulsive about the way they worked, although I found it hard to put my finger on it.

Book cover of “Peopleware”Fast forward to the present: I started my business anyway, without the consultancy background (I gained some business awareness through the excellent Ignite programme instead), and at the moment I’m reading the book Peopleware by Tom DeMarco and Timothy Lister. It is an excellent manifesto on how to build a company (such as a software company) which relies on the intelligence and creativity of its people. The one-sentence summary might be: People in your organisation are human beings, not parts of a machine; with a good working and social environment, they will enjoy what they do and do an excellent job.

One of the key phenomena which the authors identify with success are what they call “jelled teams”. They define this as: “[...] a group of people so strongly knit that the whole is greater than the sum of its parts.” (p. 123) and “Jelled teams are marked by a strong sense of identity. [...] There is a sense of eliteness on a good team. Team members feel they’re part of something unique. [...] There is invariably a feeling of joint ownership of the product built by the jelled team. [...] The individual is eager for peer review. [...] The final sign of a jelled team is the obvious enjoyment that people take in their work. Jelled teams just feel healthy. The interactions are easy and confident and warm.” (p. 127)

I have had the privilege of being part of a jelled team before, particularly with Johannes Hauser and Alex Heß, so I immediately knew what they were talking about. And it is probably one of my main ambitions in life to work in jelled teams again and again — the positive inter-personal experience is worth so much more than money or any other benefit.

And this is where my thoughts return to the management consultancies mentioned at the start. One thing which struck me about them is how they try so very hard to prevent any team jell from occurring. They constantly talk about teams, but for them, this week’s team is a completely different one from last week’s; the tasks and goals change abruptly; any social bonds which might have formed between people during a project are deliberately broken up; and there is just no way, no way ever, that an exciting and genuinely enjoyable team can form. Their definition of team seems to be “several randomly selected, competitive individuals, working under high pressure on a common project”, whereas my definition of team is more like “a group of friends who want to accomplish something together and have fun in the process”. And my definition is very much what I’m aiming for in our company.

Finally an interesting and inspiring quote on the subject of trust in teams — an extremely important matter, presented here with a philosophical slant:

“Once you’ve decided to go with a given group, your best tactic is to trust them. Any defensive measure taken to guarantee success in spite of them will only make things worse. It may give you some relief from worry in the short term, but it won’t help in the long run, and it will poison any chance for the team to jell. [...]

Most managers give themselves excellent grades on knowing when to trust their people and when not to. But in our experience, too many managers err on the side of mistrust. They follow the basic premise that their people may operate completely autonomously, as long as they operate correctly. This amounts to no autonomy at all. The only freedom that has any meaning is the freedom to proceed differently from the way your manager would have proceeded. This is true in a broader sense, too: The right to be right (in your manager’s eyes or your government’s eyes) is irrelevant; it’s only the right to be wrong that makes you free.”

– Tom DeMarco and Timothy Lister: Peopleware, p. 133-134

Saturday, 24 November 2007

Screenshots from Windows Vista Update

Written by Martin Kleppmann on Saturday, 24 November 2007, 10:48 GMT.
Filed under: software, usability.

Jimmy sent me some screenshots of Windows Vista which exemplify my complaints about unclear labelling of buttons — a usability problem which occurs so frequently that I’ve named this whole blog after it. He was running Windows Update, which was installing a bunch of software updates:

Screenshot of Windows Update running

It turned out that he didn’t actually want to install those updates now, so he hit the “Stop installation” button. Up pops a dialog box:

Screenshot of dialog box: Windows needs your permission to continue. Continue, cancel.

Now what does this mean? Does continue mean “continue stopping the installation”, or does it mean “continue the installation”? If we press cancel, will this cancel the request to stop installing updates, or will it cancel the installation process itself? And what does the red X button in the corner do? (The temptation to press X in cases like this is huge: I consider it to mean “shut up, go away, I don’t want to think about what you are asking me”.)

But there is still hope: a “Details” button, which will surely reveal the answer and tell us what button to press. So we click “Details”:

Screenshot: the details of the operation are revealed to be a string of letters and numbers.

Oh, that was really useful. You know, we love hexadecimal numbers. Thank you, Microsoft!

But Microsoft are not the only offenders in this regard. Barbara Ballard is having similar problems with OpenOffice.

Friday, 23 November 2007

Why the mobile web is so slow

Written by Martin Kleppmann on Friday, 23 November 2007, 12:25 GMT.
Filed under: mobile web, techie notes, user experience.

On the “desktop/laptop web” (in contrast to the mobile web), we’ve become used to a page loading in about a second. On mobile phones, we are still far from seeing anything near that responsiveness — for most people, the mobile web experience is still agonisingly slow. Personally, I start to get irritated after about five seconds, and after as little as ten seconds there is a strong chance that I will go away and do something else. And currently it’s still a challenge to get a page to load within that timeframe on a mobile.

Ever wondered why it is so slow? Yesterday I was reading a few articles, and I repeatedly came across people who made a very simplistic assumption: namely that the available network bandwidth is fully used. For example, they will say: on a standard 3G/UMTS connection, each subscriber can transfer 384 kbit/s, therefore a 24 kB web page (text and a few small pictures) will load in 0.5 seconds. Honestly, if you’ve ever tried to access even a simple web page from a phone you know that this figure is just laughably wrong. It is never that fast.

Finally, after lots of searching, I found this paper by Pablo Rodriguez, Sarit Mukherjee and Sampath Rangarajan. And they give some good reasons why this is the case:

  • The round-trip time for packets is between 400 and 1000 ms in a typical 3G cell.
  • Packets loss is inevitable in wireless transmissions because of radio interference. There are two approaches to packet loss: either let TCP deal with retransmission (in which case it thinks the network is congested, and reduces the transfer rate), or to retransmit lost packets in a low-level protocol (in which case the round-trip times observed by TCP can vary wildly, which confuses TCP and also reduces the transfer rate).

In a nutshell, TCP is really not up to the job, but it’s so widely used that there is basically no chance that it is going to be replaced anytime so on. (WAP included a layer called the Wireless Transaction Protocol, which attempted to be a better replacement for TCP. But we know what happened to WAP — nobody wants to use it.) In their paper, Rodriguez et al. go on to describe a method for partially getting round the problem by rewriting DNS and HTTP responses — it’s not ideal, but at least it removes some of the worst problems.

The real problem here is that round-trip time though. On a normal broadband connection I’d expect a round-trip time between 25 ms (within the UK) and 125 ms (across the Atlantic). On 3G, even though the bandwidth is not that much lower than broadband, we’ve got a round-trip time 8 to 15 times higher. And this time really becomes noticeable every time you click on a link:

  1. Send a DNS request for the hostname we want to contact, and wait for the response. (Unless we’ve cached the DNS record on the handset.)
  2. Send a TCP SYN packet to the server we want to contact, and wait for the response.
  3. Send the HTTP query over the established TCP connection.

This means that every time we click a link, we have to wait 2 or 3 round trip times — i.e. between 0.8 and 3.0 seconds — until we get the very first few bytes of the page we requested. That’s assuming that none of those first few packets got lost (because if one of them was lost, there would be no way of telling — all you can do is wait for a timeout and try again). And then we still have to transfer the whole page, and have all the TCP issues to deal with.

I just hope that mobile phones nowadays use persistent HTTP connections or pipelining which would remove some of the overheads. Does anybody know if they do? I’d like to hear from you.

PS. I thought I had accidentally deleted this post — fortunately I managed to find it again, hidden away in a binary mess, in the MySQL log file! :-)

Tuesday, 20 November 2007

Android — Google’s throw-away mobile operating system

Written by Martin Kleppmann on Tuesday, 20 November 2007, 19:13 GMT.
Filed under: mobile, mobile web, software.

For months there were rumors in the mobile industry that Google was going to launch a phone, until Google dispelled them with the announcement of the Android platform two weeks ago. What they are doing is basically to build an operating system for mobile devices (an alternative to Symbian and Windows Mobile), and to make it freely available. But why?

“So what is in it for Google? Why would it go to the expense of building and supporting a fully-fledged mobile OS and then give it away with very few restrictions on its usage? [...] Its [Google's] primary objective is simply to catalyse internet usage on mobile devices by ensuring as many as possible can support web services. Android is a means to an end. By doing some of the hard work on their behalf, Google is hoping it will encourage handset manufacturers and network operators to extend internet connectivity to more mobile users, more quickly.”

Marek Pawlowski, PNM

Marek has got it spot on: discussions on the technical details of the platform really miss the point. It isn’t even particularly important whether Android will end up being installed on any significant percentage of devices. What is important is the signalling effect to the world: the mobile web is coming, the mobile web is a huge opportunity.

Most current mobile phones are not particularly strong on the mobile web front, whereas Android places its greatest emphasis on web-based services. That’s in Google’s interests, because it enables people to use Google’s web services while mobile, which continues to drive their advertising revenues. However, but it also benefits everybody else who wants to provide services on the mobile web.

Building a mobile OS is a very difficult and expensive job, but Google are willing to do it anyway, just to encourage the mobile web to develop a tiny bit faster. That shows just how important and huge the mobile web is going to be.

As a developer I am not particularly interested in Android. I’ve not even downloaded the SDK, because I don’t want to write applications — it’s just yet another platform besides the many ones already out there. What I am interested in is the web as a platform — Ajax, SVG and Flash enable most of the richness of traditional applications, but are much easier to develop, and more importantly, much easier to get out to users. No downloads, no installations and such nonsense — just immediate use.

So in a bizarre and twisted way, by adding another OS-level platform to the market (Android), Google are actually encouraging people to move away from both Android and the other mobile OSes, and to move towards the web as a platform. One could therefore argue that the purpose of Android is to make itself obsolete (hence the slightly provocative title of this post). But that doesn’t mean it’s bad — to the contrary, I am very supportive of Android for precisely the reasons explained above.

“Will Google end up capturing the lion’s share of the value in the mobile business by dominating mobile advertising?”

There is certainly a fair chance that Google will take a large chunk of the mobile advertising market. But let’s remember that although it has fuelled a lot of recent growth, advertising is not the only business model on the web! The business models which have worked fine for centuries — such as buying goods and selling them for a higher price — have not suddenly gone away. There is a lot more value in the mobile business if e-commerce is taken into consideration.

Monday, 19 November 2007

Challenges of interface design for mobile devices

Written by Martin Kleppmann on Monday, 19 November 2007, 22:54 GMT.
Filed under: mobile, usability.

The Yahoo user interface blog recently featured a good post introducing some of the limitations of designing for mobile devices. It points to the limitations of both output (small screen) and input (keypad, touchscreen, joystick and many other variations), and emphasises the most important basis for the design of mobile sites and services: keeping in mind the context — who the user is, where and when and how they are going to use the service. Outdoors in difficult lighting conditions? On a train which goes through tunnels and therefore keeps losing its network connection?

Sunday, 18 November 2007

This is not a review of the iPhone

Written by Martin Kleppmann on Sunday, 18 November 2007, 10:13 GMT.
Filed under: event report, mobile, user experience.

Last week, when the iPhone was released in the UK, my housemate James came home beaming with delight and cradling Apple’s shiny new toy, probably the most influential product release of 2007. Since then I have had a few opportunities to play with it too. It’s certainly nice.

But about everyone and anyone has written a review of it already, and there is no need for me to add yet another one. Still, there’s something special about it. If I mention the words ‘mobile’ and ‘user experience’ to anybody in conversation, I almost inevitably get ‘iPhone’ back. Why?

“First Apple made the hype, and released the hype as a product. Then they released the iPhone as the follow-up product.”

Charles McCathieNevile (Opera Software) at FoM2007

Maybe the right question should not be why the iPhone is so good, but rather why the handsets of much more established manufacturers are so bad (in some respects, notably usability). Some interesting insight came from Tom Hume and Marek Pawlowski on a FoM2007 panel discussion:

  • The mobile handset industry has a structural problem. The manufacturers are very focused on R&D and on features, and within a single company there may actually be different groups advocating different technologies and features, all competing to be integrated into the next line of handsets. The design process is fundamentally bottom-up, rather than starting from high-level requirements and working down towards the features. The result is a user experience which consists of a bundle of fairly detached features, and is not at all consistent or well structured.
  • Another problem with handset manufacturers is that they are extremely risk-adverse. This is because managers’ bonuses are calculated based on the number of defective handsets returned to the manufacturer — a direct incentive to make their products robust and reliable. So far it sounds good. The problem is that there are certain features which carry a higher risk, but have potentially huge benefit — the most notable one being automatic software updates — and these features get omitted too. Currently it is still the case with most handsets that once it has left the factory, its software is never updated. As phone software begins to become extremely complicated and time to market is extremely short, major bugs in the software are inevitable. And without software updates, those bugs will only be removed if you manually update the firmware (which hardly anybody does), or when you get a new phone.
  • Finally, handset manufacturers don’t usually have their own retail (or have you seen a Nokia store anywhere?). They sell through the mobile operators, and entrust the sales process to people completely outside their control. Moreover, since they don’t have much direct contact with consumers, they get hardly any useful feedback about their products which could feed back into the design cycle. Instead, they just continue to produce more and more phones based largely on speculation of what people actually want.

All three points are different with Apple. The user experience is clearly the most important part of their design, and features are secondary. They regularly update the software, and in fact they have already released a number of improvements which would have never reached the previously shipped devices without this update facility. And they have their own shops, in fact a whole fan base which they actively nurture — what better way to learn how to improve the next version?

And the model clearly works. The iPhone really is a pleasure to use, the experience is consistent and well thought out — it simply feels right.

But what will its longer-term effects be?

The iPhone is just one product, and even if Apple’s highly optimistic sales forecasts were to come true, they would still have less than one per cent market share. I think that the true value of the iPhone lies not in itself, but in the knock-on effects which it is having on the whole mobile ecosystem:

  • It has raised the bar in terms of design and usability, and other manufacturers will be rushing to improve their own designs similarly. (For example, Nokia announced a similar touch screen user interface only a few weeks ago.)
  • It is helping enormously to raise awareness for the mobile internet — people are beginning to see the potential in having internet and web access on the go.

These effects are both rather good, and although I probably won’t be getting an iPhone myself anytime soon, I think these are very good developments.

Friday, 16 November 2007

Future of Mobile conference

Written by Martin Kleppmann on Friday, 16 November 2007, 22:00 GMT.
Filed under: event report, mobile, user experience.

David Burke of Google, talking about AndroidOn Wednesday I went to the Future of Mobile conference in London. It was an exciting event — lots of people had high hopes, in particular for the future of data services on mobile devices (i.e. the internet). Some of my main take-home messages were:

  • The mobile market is HUGE. Seriously. Billions of people worldwide have mobile phones, and more people worldwide access the web from mobile devices than from desktop or laptop computers. By 2010, half the world’s population is expected to be subscribed to the mobile web. A lot of this is driven by developing countries, where mobile is a far better solution for communication than a fixed-line telephone infrastructure. But it is also a growing trend in the developed world.
  • A great user experience is absolutely essential if you want to get people to use your services mobile. The mobile user’s attention is extremely limited: unlike on a computer or a television, where people are more likely to patiently try to come to terms with bad usability, mobile users have plenty of other things to do. If they can’t immediately and very quickly find or achieve what they want, they are gone immediately. Mobile content must therefore be extremely clearly and intelligently structured, presented in an engaging way, glanceable, simple, and be fluid to interact with.
  • Communication is key. People want to talk, create, share, explore — not just passively consume. A mobile is always with you it, it where your life is happening, it is a point of creation and lies in a rich context. The future possiblities for the social use of mobiles is something we can only just begin to envisage.

Amongst the speakers, possibly the most keenly awaited was David Burke of Google, who was the first to present Google’s new Android platform in Europe. See this post for more on his presentation.

Finally an interesting quote, very much in rhythm with the drum I am bashing:

 ”Mobile users are ready and willing to engage with their favourite brands on mobile devices.”

Matt Millar, Director of Mobile and Devices EMEA at Adobe

Tuesday, 13 November 2007

Train ticket machines in Germany (UK vs. Germany Part 2)

Written by Martin Kleppmann on Tuesday, 13 November 2007, 13:14 GMT.
Filed under: electronic devices, usability, user experience.

Here it is — my photo series documenting the menu madness of German ticket machines. See part 1 of the story for an introduction. This post contains a lot of graphics, so I’ve split it out into a separate page. Please click the title or the following link to read it.

[Continue to full article]

Monday, 12 November 2007

Blog coming back to life

Written by Martin Kleppmann on Monday, 12 November 2007, 23:50 GMT.
Filed under: Uncategorized.

Right, well I must admit that this blog had moved down quite a lot in my list of priorities. Then yesterday Robster wrote a very kind post which has resulted in this site getting more hits in 2 days than it had had in its entire lifetime before. Thank you very much, and I think the ball is back in my court now to write something vaguely worth reading!

Just a quick update of where we are now — things have moved forward a bit, and I’m having an exciting time with my company, Ept Computing. We initially set out to do general usability consultancy, and since then we have discovered that there is one particular area where usability is a particularly pressing issue — mobile phones.

Mobiles are pretty powerful computers these days, and increasingly powerful applications are being developed for them. 3G networks are becoming pretty commonplace (in the UK anyway), and the mobile internet is finally within reach of the mainstream. In some Asian countries, internet access from mobile devices already vastly exceeds fixed-line internet use.

But the user experience on mobiles is, in many cases, still terrifying. I still find installing an application on my phone a very puzzling process, despite having Bluetooth, E-mail, WiFi and you-name-it set up. Accessing websites is perfectly doable, both with Opera Mobile and Nokia’s WebKit browser, which render desktop sites remarkably well — but that doesn’t get past the fundamental problem: either the text is too small to read, or you have to scroll horizontally, or you use some form of adaptation such as Opera’s small screen rendering (which, frankly, was the first thing I switched off after installing the application). Nothing particularly satisfying. And that’s what we’re setting out to change.

Anyway, back to the topic of reviving this blog. I have decided to scrap the German version of this site entirely — too much effort to write everything twice, and most Germans speak pretty good English anyway — and will be putting a few touches to the design so that it doesn’t look quite so generic. Then tomorrow I hope to serve you the photos of train ticket machines which I promised so long ago. Yes, we’re back on air.