There’s a counter on the SwiftKey web site that currently sits just shy of 48.5 billion and it won’t be long before it surpasses 50 billion; it is, says SwiftKey, the number of global keystrokes its app has saved users so far, a small measure of this young company’s growing success.
SwiftKey is TouchType’s flagship app, a phenomenally successful product that predicts typing for mobile device users. It has been downloaded over six million times, won Most Innovative App at the Global Mobile Awards in Barcelona this year and in 2011 – according to chief commercial officer Rhodri Thomas – was three times the globally most downloaded paid app.
SwiftKey 3, its latest beta release which offers game-changing predictions (users can now mistype and leave out spaces altogether and the Smart Space technology will be able to correct what you have written), has had over 500 articles written about it, even prompting a “blessay” mention from the likes of Stephen Fry. To get a feel for its success, Firefox had to release an update to fix a SwiftKey compatibility issue!
Split between a London head office and a Cambridge facility, TouchType was founded in 2008 by two former Cambridge University students Jonathan Reynolds (CEO) and Dr Ben Medlock (CTO).
Last week, the Cambridge Mobile App Group hosted a presentation from the company during which core members of the 30-plus team shared with the audience first-hand experience of working in a successful start-up, providing practical business and technical advice on how to emulate its success as an Android app company.
With over 400,000 Android apps in Google Play (formerly Android Market), how can current and potential new Android or general mobile app developers learn from TouchType’s success? Below are the main points covered by Thomas and head of development, Chris Charlton. Some things appear to be blindingly obvious, but quite often even the most fundamental principles are forgotten.
BUSINESS BEST PRACTICES
Focus on the product: Everything flows from having a good product. Thomas has worked for a number of startups with a background in product management. In his experience, companies are often too eager to get things out quickly and cheaply and overlook the importance of focussing on the needs of the user.
Continuously innovate to keep interests high: Though a new release in the Android app world causes a lot of pain because you have to test against a vast number of android-enabled devices, it is really important to create noise regularly and push headline features, especially for those interested in selling their apps as each launch generates downloads and hence brings in more money. TouchType aims for quarterly releases.
One thing to note though is that the hardest problems do not always produce the most interest, sometimes the most warmed responses come from a new skin colour or in its case a bigger spacebar. Users appreciate app developers that are responsive.
Build a beta user group: Beta users are great. TouchType has a VIP forum with a community of about 50,000 users who can get involved with beta-testing new releases. Not only are they critical to finding and fixing bugs before rolling out a new release, these users tend to be passionate about the product and help provide feedback and create awareness by sharing with their friends. Keep users happy by responding to their feedback and meeting the most demanded requests.
Use Social Media: Thomas was a total Twitter cynic about 18 months ago but now loves it. Tweets generate a lot of noise and a big milestone was reached when Stephen Fry tweeted to vote for them in the Webby Awards (AKA Webbies). TouchType have a couple of internal employees dedicated to social-media marketing because the company believes it is worth the investment.
Social Media over Old Media: In pretty much every position Thomas has held, companies are desperate for a mention in the mainstream print media. What he has found interesting is that the newer tech sites actually generate more downloads than a small column entry in an inner page of popular paper.
Foster relationships with tech journalists where possible as they have active readers and followers who respond to their articles. Unlike the old world journalists, tech websites also need to get a lot of content out there for search engine optimisation (SEO) reasons: the more articles they write the more visits they get from search engines.
Google Play is your best friend: In the Android world there are about 1500 app stores – every major handset manufacturer, every major and minor OEM have their own app stores. Google Play effectively covers the whole market with the Amazon app store a good secondary platform for creating downloads.
So think carefully before you commit to spending time with other app stores, for example Vodafone and Nokia require you to upload images and content which quickly becomes very time consuming. Unless you can afford to hire someone to do that full-time, Google plays lets you do things that much easier.
Enter awards: Putting them on slides when talking to business partners helps to validate what you’re talking about and it makes you feel good about yourself. Even if you don’t win it can generate more awareness, though be aware that some charge you regardless of whether or not you are shortlisted. Also research to see if they are well established or not.
Networking is important: Almost every networking event is an opportunity and something interesting almost always comes out of it, whether it’s a useful contact of a contact or finding out about another event. TouchType’s CMO Joe Braidwood is a power networker and has an incredibly successful record of meeting people from pretty much any company you could possibly imagine, including Google, and has ended up with meetings from very senior people.
Enable viral features in your app: An important aspect of any application is trying to create a social or viral connectivity option. When TouchType first launched it included an option in the ‘About’ menu to share information about the company as well as the app itself. In SwiftKey there are options to allow users to share an activity from Twitter, SMS and email once it has happened. Also when a user has entered 10,000 keystrokes it uses Android notifications to alert users of this checkpoint and gives them an option to share that on Twitter. Don’t be too aggressive about it, but put options in your app for it.
Enter promotions: TouchType has a good, though not exclusive relationship with Google. It was part of Google’s 10 Billion App download promotion where users had 10 days to download 10 apps for 10 cents. It made a lot of money despite the huge discount. It also did a “Free App of the Day” on Amazon - for which it was compensated – and resulted in over a quarter of a million downloads.
TECHNICAL IMPLEMENTATION ADVICE
Factors that drive product development: As a small company, Swiftkey has to perform a very difficult balancing act to handle the various product drivers. You must research your competitors and be aware of features they have and know what you should introduce in your own product.
Commercial needs from OEM partners who agree to have SwiftKey as the default keyboard on their device come with specific requirements. Bugs and feature requests from user feedback have been particularly difficult to manage due to the huge volume of them.
It has tried a variety of applications and currently uses UserVoice to keep track of all the issues. As previously mentioned, innovation is also key to keeping the market interested so new features must be continuously rolled out. Put a product manager in place as that really helps to balance workload against user needs.
Be flexible in your development process: The development team follow a somewhat agile process. A distributed team between London and Cambridge adds a layer of difficulty to the development process and therefore it has to adapt to this.
Daily stand-up meetings cannot happen every day, instead, one-liner status emails are sent so that everyone can keep track of what is happening and will know if someone else’s work is going to affect what they are doing. It uses Jira to track user stories and its development process as it has agile features built into it.
Layered software architecture: This enables flexibility in the development process to address the above needs. Cross-platform core language processing is separated into a software development kit (SDK). The SwiftKey app layer is built on top of that.
The cloud-based personalisation feature (this means your personal writing style is remembered if you install SwiftKey on multiple devices) is a web service built on top of the SDK. This structured approach quite often allows them to build a prototype of an idea within a day.
Don’t reinvent the wheel: Use third-party tools and services where it proves useful – as a small company it is not economical to invent and maintain all things yourself. A lot of customisation requests require custom graphics, so if you don’t have graphics designers in your team use an external graphic design house, though this does increase turnaround time.
Test thoroughly, test frequently, automate where possible: As part of any development process it is vital to test as thoroughly and frequently as possible. Testing for Android applications is particularly difficult because the app can run on a number of devices from different manufacturers with varying screen sizes/resolutions.
TouchType address this by running a continuous integration process using Hudson/Jenkins to automate the build process, and Robotium to write automated test cases – for example writing an automated test case for what the app should do when a user slides out the physical keyboard is very hard but is made much easier using this tool.
It also employs well known industry testing methodologies such as test-driven development (TDD) and behaviour-driven development (BDD). The team have been working on various mocking approaches for BDD, where you specify in your mocks and test how you would like something to behave rather than the traditional unit test approach. Its chief software architect Paul Butcher created his own mocking framework called ScalaMock which runs nicely on the Android platform as it is written in Java. A hosted device service like DeviceAnywhere is a possible alternative but not an option for them due to the high costs.
Make friends with Google and don’t release on a Friday: Be cautious of Google updates. When TouchType started, its lowest target platform was 1.6, which meant a lot of features were missing. It is now at 2.1 so it makes certain things a lot easier. However with each update, Google may change the SDK tools as well as the SDK and has at times resulted in a broken build system.
Think about this before putting too much investment into getting your app to work perfectly on one device as it may not be on another. Also, in the past, attempts to upload a new launch to Google Play throws back errors with no support. Having a contact at Google helps immensely but try not to release a Friday when everyone has gone home!
Keep Your developers happy: Developers are extremely important assets to a software start-up so it is essential to keep them happy and treat them as first-class citizens. At TouchType, it has monthly hack days where developers can work alone or get together to form a group and take one day a month to innovate the product (sometimes more).
It offers pretty flexible working hours, so they can work from home, office, coffee shop or anywhere between London and Cambridge! There are other perks, as they are hiring, you may want to check out their vacancies by going to see then at Silicon Milkround Cambridge on Saturday 28 April.
Patent defensively: Patents are a contentious subject but given the funding position of the company, it is something it must do effectively. It is likely to be attacked by someone at some point in the future so a few defensive patents is likely to be useful. They estimate costs range from £2000 as an absolute minimum to kick-start for a few years in Britain, to £20,000 for a full software patent and possibly up to £100,000 for global cover.
Caroline Gasperin who heads up the languages team gave an interesting talk about the techniques used to generate the data models for the underlying language technology but that was beyond the scope of this article. Interest readers may want to contact her on Twitter.
blog comments powered by Disqus