Winning Users

Why your new business should get lots of users right now; some creative ways of getting them.

The Three Personas

There are three types of people you need to consider when trying to sell your product: the User, the Customer and the Buyer.

  • The User is the person who will gain the benefit of your product.
  • The Customer is the person who decides they want your product. They might not necessarily anticipate using it themselves, but they see it as valuable for someone else (e.g. as a present or as a tool for staff members).
  • The Buyer is the person who actually hands over the cash to you.

In the case of a person who goes into a shop, decides they want a Twirl then buys it and eats it, these are all the same person. In the case of a big corporation that buys something new for their employees to use, these are probably three totally different people.

As an early-stage business, you should be starting with the user. Think about this from the points of view of the other personas: the Customer only wants to buy the product because they think it’ll be valuable to the User. And the Buyer only wants to buy the product because they think that the value it gives to the User will give a positive return on their investment. Whether you’re aiming at three-personas-in-one individuals or split-persona companies, start with the user and the customer and buyer will follow later.

Winning users

To get as many users as possible, you need to put in some legwork and get creative. The following won’t apply to every business or product, so work out which ones apply to you and try them out.

Do the splits

Vary your approach and record the results. This is called split-testing; it gives you a way of optimising everything you do to give the results you want. The Obama campaign used split-testing to increase their sign-up rate by 41%. You don’t have to be running for president to split-test.

Let them make the first move

Get a big sign saying “Hi, I’m Hywel and if you ever <the problem your product solves> then you should definitely talk to me!”. Or even get it on a t-shirt. Wear this wherever you go and try to get every one who approaches you signed up. At the least, collect their contact details. This is even more effective if you…

Hunt users in their natural habitat

Where do groups of your users gather? In cafes? The gym? On the train? On the high street? Go there. You can either let them approach you (see above), or if you’ve got the confidence, go up to them and ask if they can spare the time to try your product. If it’s valuable, then people just trying it will graduate into users, who then graduate into paying customers.

Fake it ’til you make it

This might seem morally dubious but it works. If your site is looking a bit dead, you can fake the appearance of activity by creating virtual users that don’t exist and “seeding” the site with activity. Reddit and Paypal have both done this in the past. Users who pop by are more likely to become involved if the site has the appearance of an active community.

Forums, emails, tweets

You might not read forums, click on links in unsolicited emails or use Twitter but some of your users almost certainly will. Find relevant forum threads and link to your product, email people who saying they’re having the problem that you solve, and tweet to users who might be interested. Don’t be shy about doing this: people who experience the problem that your product solves will be glad to see that you’re working on it.

Friends and families

Your family, your partner’s family, every Facebook friend you ever had and every Twitter follower are all prospective users. Contact them individually, explain why your product is great for them and get them on board.

Get competitive

Everyone wants the chance to win even if they’re not going to win much. Run a competition where users who sign up then advertise your product or do another desirable action get extra chances to win. Some prizes can even be free to you, e.g. featuring a winning user on your website.

The hunted become the hunters

Give your users something back if they help you spread the word. let users jump the queue to activate their accounts if they tweeted a link to the site and accidentally gained 40,000 users in a week. Rewards can be less tangible than this though; products with game-like features can simply give a user extra ‘points’ for spreading the word.


5 Tech Tips for Startup Founders

A collection of technology pitfalls I’ve seen non-technical startup founders make, and how to avoid them.

Don’t wait

Let’s kick things off with an easy one. If you want to start a company where users all sign up to use Service X but the technology for Service X isn’t going to be ready for 1 month, what do you do in the meantime?


Desert by Moyan_Brenn, on Flickr

Answer: get the users anyway. Getting users is hard for pretty much every startup in its early days, so don’t delay doing it. Keep a spreadsheet of email addresses, write down phone numbers of everyone you meet who expresses an interest in what you’re doing, post about what you’re doing in forums and get contact details from everyone who replies.

When your technology is ready to go, you have hundreds of accounts you can create from day one and avoid that standing-start empty-desert feel new sites sometimes have.

Your startup’s technology will never be finished

Just as a journey of a thousand miles begins with a single step and Rome wasn’t build in day, so your startup’s technology will never be finished. The danger here for non-technical co-founders is to view the technology side of your startup as a hurdle to be overcome, and postpone other activities until the technology is “finished”. The reality is that your technology is only ever “finished for now” but will need improving, updating and maintaining as you get more users or your users get more involved or your idea grows. Technology grows as your company does; don’t let the technology become an excuse for delaying (see above).

Your technology doesn’t need to start perfect

Remember that your technology can always be changed. It will never be finished, so don’t assume it will start off being perfect. In six months, your concept might have changed or you might have 100x as many users as now – so your technology just needs to be good enough, not perfect. It’s a waste of time and money to make something that works for millions of users when you only have 1 thousand today. I see a lot of startups worrying about whether they’ll be able to serve 1 million users before they’ve even got 1 thousand. Save your time, save your money: get the technology good enough for now and focus on getting to 1 thousand users before you think about getting to 1 million.

Beware traps

Some startup ideas are simply traps. By traps, I mean ideas that sound attractive or easy but are actually incredibly difficult to execute well.

Traps can be things that lots of people are starting right now. An example? Dating sites: there seems to be a new one every week because a lot of people think they see why existing dating sites are failing and they think they know how to fix it. Even if you build the perfect dating site (and, let’s face it, you probably haven’t), you now have the challenge of recruiting thousands of users away from all the other sites in what is already a saturated market. I suggest asking yourself where your idea came from: were you reading about another startup or talking to someone who uses an existing service? Or did you meet someone who has a problem which there just isn’t a solution for at the moment? You’re much more likely to succeed if you have access to a group of people whose problem isn’t being solved than if you’re trying to improve on flaws in existing solutions.

Dating sites are also a great example of another trap I call symbiotic markets. Symbiosis refers to living things that have evolved together and are dependent on each other for survival. Check out the Wikipedia page for some cool examples. Symbiotic markets refers to a business idea where you need two distinct groups of users to make a success of the site. E.g. eBay needs both buyers and sellers, dating sites for heterosexuals need both men and women. If eBay had no buyers, the sellers wouldn’t visit. And if the sellers don’t visit then the buyers won’t list. The danger of symbiotic markets is that you get yourself into a chicken-and-egg conundrum where it seems impossible to get one group of users without the other, and in the end neither comes. It takes double the effort to get enough users for your site to pass the tipping point in a service with symbiotic markets. If I was going to build a dating business, I’d focus on gay and  lesbian people.

Trap number three: platforms. A platform is a service for other people to build on to make their own services. There are famous lucrative examples, like the Facebook’s platform for building Facebook-based apps, or even the Google and iPhone platforms. But platforms are really hard to get right. You can’t do a platform properly until you can anticipate every single facility that will be wanted by someone who builds on it. The famous platforms everyone has heard of started out by building a whole raft of apps for themselves before letting other companies try out the platform, to avoid this problem. Make several applications first THEN extract the platform from that and you stand a much better chance than if you try to build the platform first.

Hire a CTO or consultant you trust


Trust by Joi, on Flickr

An obvious point but one that bears repeating. If you hire a CTO, you’re likely to be working closely with them for a long time. If you hire either a CTO or a consultant, they have the potential to either ruin your business or make it incredible.

Years ago, I joined my first startup as CTO. We were looking at changing the way clothes are recommended and bought in the fashion industry, and we had a sound business model. But it was a terrible idea for me to be their CTO; I’m not at all enthused about fashion and was very open with them about this. I should never have asked to join, and they should never have wanted to have me. I also made clear that I wanted to have nothing to do with running the business, I just wanted to be left in isolation to make their tech. This should have been another warning sign: be wary of separating the technology from any other part of the business. It’s vital for planning the business to know which parts of the technology are hard/expensive/slow, and which are easy/cheap/fast. Similarly, it’s vital for the technology side to be made with the future direction of the business in mind. The technology can always be changed but early decisions can make later changes easier or harder.

I left that startup after only a few months and take a much stronger role in the business side of startups I work with now. Last I heard, they’d secured investment and were in a London startup accelerator programme; hopefully they went on to find a CTO who was a better fit with what they were doing.

A good CTO / consultant will care about what you’re doing, and will tell you how the technology affects your business, help you plan and think of new directions and will help you make the best decisions. They’ll take half the work off your hands and help you get things done.

A bad tech-person will just do whatever you tell them, even when it’s not the right decision for the business. This will seem easier in the short term but will harm you in the long term when you’ve spent all your cash on technology you didn’t need and bad technology decisions come back to bite you.

Git is not great

Summary: git is better than what we had before but it’s not great. Download my pdf cheatsheet for free if you want a clear guide to using git that thinks the way you do.

Git is a modern, distributed version control system, replacing older, centralized systems like Subversion. It has emerged as the de facto answer to storing historical information about changes to files, at least among software developers.

Git is powerful and it’s a lot better than Subversion. But it’s not great. I think that statement is objectively true for three important usability reasons.

The help text is terrible

Good software helps the user to feel in control. Git doesn’t. Let’s look at a relatively simple command:

git add <files>

This is the command you use to tell git that you want to include certain files in the next batch of work you commit. Let’s look at the help-text description:

This command updates the index using the current content found in the working tree, to prepare the content staged for the next commit.

Do you fully understand what this is saying? I do, but then I’ve spent the last day writing a git cheatsheet. Using the term ‘commit’ is forgivable, as it’s totally standard in version control systems. But index? working tree? staged? These are all git-specific and go unexplained. I’ve been using git for two years and I finally learned what the index was last week, yet that understanding is required by the fifth word of the help-text for one of the most basic functions of git.

Git does not forgive

Good software lets you explore, make mistakes and undo them. Git doesn’t. Often, there is a way of undoing things, but it is so hidden and so arcane that you feel like you’re in the Da Vinci Code.

Let’s say you do an accidental git add to a file. How do you undo it? git add-undo <file>? git undo add <file>? Or maybe git undo undoes your last action? One nerd point to anyone who guessed at git reset HEAD <file>. Notice that this command doesn’t look like it has anything to do with git add or with undoing.

OK, now you’ve accidentally done git rm on a file, and it’s disappeared. How do you undo it? Pat yourself on the back if you think that git checkout <file> is an obvious solution. (Side-groan: this only counts as checking out the file if you think about how git works, not the mental model of the user).

Whoops, you’ve accidentally committed when you didn’t mean to. Git provides the very nice git commit –amend to add some other changes to the commit. But if you didn’t mean to commit at all, what do you do? 10 points from Gryffindor unless you said git reset –soft “HEAD^”. Again, notice that this command doesn’t obviously relate to the concepts of committing or undoing.

My absolute favourite example of unforgiving user interface is this: go type git checkout “HEAD^” in any git repository. This turns git into a headless chicken:

You are in ‘detached HEAD’ state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name

Sorry, what? My HEAD is detached? And how do I undo that? Why have you detached my HEAD? And what does that mean? And how do I undo it? This output doesn’t help with any of those questions. If you see this, you might well want to do git checkout master to reattach your HEAD, but git doesn’t tell you that.

Git is organised how it’s made

Good software hides the way it works so that the user can think about it in the most natural way. Git doesn’t. Let’s take git reset as our example.

If you know how git works, you’ll know that git reset is for changing where HEAD points to, and for optionally updating the index and working copy. Now forget that you know that, and think about the user’s model of what each form of git reset is for.

  • git reset <commit> <paths> sets the index for the paths to what they were at a certain commit. So the user wants to cherry-pick a file to commit as it was in a different commit.
  • git reset –soft <commit> resets HEAD to a certain commit. So the user can change where in the revision graph their already-prepared commit will go.
  • git reset <commit> resets HEAD and the index to a certain commit. So the user wants their current work to be compared and committed against a different point in the revision history (maybe you’ve fetched some new code).
  • git reset –hard <commit> resets HEAD, the index and the working copy. The user’s doing some work and wants to scrub their changes and start again.

The last form of these is the only one that represents what you might think of as a reset, and all four are used in different situations: change what will be committed, change where your commit appears in the revision history, undo all your current changes.

To use these requires thinking in the terms of how git works internally rather than in terms of what you, the user, are doing and what you want to achieve.

An even worse example of this bad organisation is deleting a branch on a remote. Remember, to delete a local branch you do git branch -d <branch name>. So how do you delete a branch from a remote? I think the obvious way would be git branch -d <remote>/<branch name>. The actual command is git push <remote> :<branch name>. From the user’s point of view, push is a totally different operation to deleting a branch, but push is a better reflection of the internals of git, and that’s the point of view that wins out. Also, note how small a typo it would take to delete a branch (git push origin :master) instead of pushing a branch (git push origin master) .

The Antidote

Try my git cheatsheet. This is a single printable side of A4 that has all the key commands for using git day-to-day. This cheatsheet is unique because it is organised thematically, grouping the commands by the situation in which you’d need them. This makes it very easy to find the commands you need. Download the contextual git cheatsheet here.

Thanks to Tom Carver for pointing out the ‘git branch’ example, and to Tom Carver and Catharine Robertson for proofreading the Git Cheatsheet.