How a Developer Might Improve the Geolocation App what3words
Last month, I bumped into Terence Eden in the post-COVID revived tech meeting BarCamp London. Mr Eden, a prominent person in the UK tech scene, was helping to run this popular unconference. The last subject he talked about was the British geolocation company what3words. For those not familiar with it, what3words pioneered a clever way to represent exact locations on a map: “We divided the world into 3 metre squares and gave each square a unique combination of three words.” It currently operates in 193 countries, including the US.
Eden’s original criticisms of what3words in 2019 were extensive — including lack of openness, cost, and that “there is no way to translate between languages” from a developer point of view. I honestly expected this old topic to have slipped his mind; perhaps by now a larger company had brought what3words, and he was bedding in a small consultancy exploiting the old solution and creating an open source version. To my surprise, without a pause he responded “they are burning money”.
So let’s step back a bit.
Now, what3words is a perfectly useful system and the idea is straightforward enough. Instead of lengthy floating point geolocation data, it splits the world up into a grid of three metre squares and assigns them each a unique three word address.
I’m writing to you from the location “///little.march.dare”. So if the worse should happen, and I am under some rubble answering the phone without being able to move I can relate those three words to anyone, and they can ring the emergency services and rescue me. My editor tells me he uses it to clarify his address for couriers.
But here is a summary of the problems with the system, as seen by Mr Eden and others:
- The built world isn’t flat, yet what3words has no height information.
- Relaying three English words is quite likely in itself to cause transcription errors, otherwise that game you used to play with a chain of whispers would not have been so unpredictable. Homophones are a particular problem in English.
- Doesn’t my phone already know its geolocation, and isn’t this the most efficient way to transfer my location?
- If each section is a completely different code, then two sectors can be next to each other but I would have no idea about that.
- If this is being used by emergency services, shouldn’t this be owned by the government of each nation so they could make a word list best for them? At the moment the geocoding algorithm is closed to scrutiny.
I’m fairly sure that unless it pivots, what3words can really only find narrow uses with couriers (they have signed some deals already). But this post is about how senior developers help their organisations or startups by working through problems and assessing new technical solutions.
The Developer POV
So for a moment, imagine that the above problems were on your plate. How should you and your team respond?
While senior developers must always support the current solutions, they must also punch through improved options to give the company a chance to grow. As a natural corollary to this, they should also tell stakeholders where they think certain solutions are heading.
Once you are wearing a corporate hat, you need to accept that a closed source solution might be best for the company — but also give the alternative due consideration. Open sourcing is not a route with purely financial intent, but it can shift the status of a company. It allows mass innovation and adoption of an idea that might otherwise fester. Meanwhile, the originating company can offer consultation and ecosystem plays. Without getting lost in licensing models and value propositions, a development team can outline the technical skills needed to move in that direction.
For what3words, there should be away of filtering out homophones — or at least using AI to spot these. Allowing for what3words to work with local language variations (while still pointing to the same location) might ensure that the words used are all distinctive. There are plenty of words that people say differently depending on where they come from, and some sound more distinct than others. This makes sense as people respond to a request — whether as an emergency, or as a courier — are likely to be local too. This points to opening the solution up to locale experts.
Adding height is part of extending a simple solution to work in a more complex real world. It might be that height is best addressed by combining another solution, with either built area solutions or the Ordnance Survey maps. Again, this probably means opening up the backend so that APIs can interrogate the geolocation and combine it with other information.
Returning to the real what3words for a moment; they do of course have an API to convert from words to numeric latitude, longitude GPS coordinates and back:
Note that any attempt to reverse engineer the back end by brute force is both messy and can trivially be detected.
I think the fact that neighbouring areas have completely different words makes it an inferior solution, but it is still good as a complementary solution. This also leads to opening up the geolocation strategy so that other tools can easily work with it. For example, if an emergency service receiving two what3word locations could immediately tell that they were geographically close, that would reduce this concern. How would this be technically represented?
The focus here is not on treating all problems as soluble by software engineers, rather on presenting the options — along with their technical implications — to all stakeholders so they can fully assess them. Some will chime with other business initiatives, others can be trivially rejected due to other experiences. In the casual analysis above, it would appear that many problems might be addressed by changing the closed nature of the back end — but this would need full business buy-in. In summary, as Arnold Schwarzenegger says in the title of his new book, the tech team needs to “be useful”.