How to build a basic Growth Model

I recently wrote a guest post for the guys at the Mobile Growth Stack. Check it out here.

It covers the basic rules of setting up a Growth Model and what to avoid, and you can download a sample .xls that includes everything in the article.

Head over to the Mobile Growth Stack to check it out. If you use the model effectively, I’d love to hear about it!

An Excel spreadsheet showing a Growth Model and MAU numbers

Early Growth: Look for “Pockets of Demand”

In the early days of launching a new product, it’s useful to think about your market in terms of “pockets of demand”.

A pocket of demand is of course another way of saying “target market”. It is essentially identifying a group, or niche, of potential customers who share a common problem that you can solve extremely well: people for whom your product is the greatest thing in the world.

The advantage of thinking in terms of a “pocket of demand” is that it encourages you to focus on that pocket, that core market, even when this is potentially to the detriment of the broader market.

But why is this a good thing? Because when you are trying to nail product market fit, thinking too much about the broader and adjacent markets can often lead to a tendency to want to solve too many problems at once. No market is completely homogenous, and you might start making too many compromises instead of focussing on what’s truly important for your core target market.

Knowing your pocket of demand can also help you optimise your go-to-market strategy to find exactly these customers, which can help lower your customer acquisition cost.

In Peter Thiel’s book Zero to One, Thiel talks about the early days of Paypal. Their first target segment – their initial pocket of demand – was Ebay “PowerSellers”. From the book:

“We set our sights on eBay auctions, where we found our first success. In late 1999, eBay had a few thousand “PowerSellers”, and after only three months of dedicated effort, we were serving 25% of them. It was much easier to reach a few thousand people who really needed our product than to try to compete for the attention of millions of scattered individuals.”

They zeroed in on the needs of that niche, and solved their problem – safe, cheap and fast online money transfers – and only after they had nailed that did they expand the value proposition to include broader slices of the market.

When it comes to growing your customer segment, you have two choices:

  1. Try to expand the penetration of your product within the pocket of demand you’ve identified, or
  2. Expand the offer to adjacent pockets of demand.

When Amazon started out, Jeff Bezos had a vision: to build the “Everything Store” – an online store far bigger, stocking more items, than any physical retail store ever could. But the first years of the company focused on a specific pocket of demand: readers. They spent a couple of years expanding their selection of books before expanding into other retail categories.

What is the pocket of demand that you are addressing?

Ways to think about Android Instant Apps, and what it means for developers

This week their annual developer event Google casually announced a huge new feature coming soon to Android: Instant Apps. Chris Maddern called it their “one more thing” moment. When finally released, perhaps later this year, it could be the one of the most fundamental changes to the way mobile apps work since the App Store. What it won’t be, however, is an instant solution to the majority of app developer’s main problem: app discovery.

Let’s unpack this a bit.

Android Instant Apps, as they were presented during the keynote, will allow Android native apps to run immediately, without being installed, by essentially lazy-loading the relevant modules to the device at run-time. This will allow users to interact with your app and your content immediately, without needing to go through the hurdle of visiting the app store. Users can then (presumably) install the ‘full’ app if they want to.

It’s easy to see why this is a big deal. The mechanics of installing an app involve a lot of physical and psychological friction: do I really want this app on my phone? Do I trust it? Will I ever use it again? Do I have the time to wait for it to download and install? Do I even have the space for it? (Anyone with a 16GB iPhone can attest to this being a very real and very constant problem). Apps could lose anywhere between 20 to 80% of the traffic that hits their app store page, so anything that helps eliminate this friction will be a huge win for app developers.

Then it gets even more interesting with Android Pay. According to the keynote, Instant Apps will be able to integrate with Android Pay. If we assume this gives the app instant access not just to payment details, but identity and shipping details as well, you could easily imagine purchasing something you just discovered on the web in an Instant App with just a couple of taps.

Ways Instant Apps will help app developers

App linking will be smoother and involve less friction.
Both Android and iOS have allowed native app deep linking for a couple of OS versions now, allowing developers to link into deep content views within other apps. This generally works great if the user has the target app already installed on their device; but if they don’t, the experience isn’t so great: the user is generally redirected either to a mobile-optimised version of the target product, and usually presented with a mobile app upsell ad; or they are directed straight to the app store, where the user needs to first figure out what kind of app this is, do I care enough about it to install it, etc.

Flowchart showing how apps are installed from app links

The sloppy app-install experience from app links

Some companies have been trying to improve this process, such as Branch.io who have built tools to allow developers to use ‘deferred deep links’, so that when the user does install the app after tapping a deep link they will be directed straight to the piece of content they were looking for directly after the install. But there is still heaps that can go wrong: the user needs to tap ‘install’, wait for the installation to finish, then open the app… So although deferred deep links help, they are a band-aid on an essentially sloppy user experience.

Instant apps will solve this by skipping the whole store and to-install-or-not-to-install question. Because of this, I expect to see more developers engaging in app linking partnerships and leveraging such partnerships both to monetise their own users and also to grow by seeking partners to send incoming links. The NYC-based startup Button is building an exciting business around facilitating a network of deep-link-based affiliate partnerships, and through their SDK has also tried to solve parts of the app-install problem by bringing more content into the publishing app.

Allowing easy access to rich native experiences from real world locations
Lots of brands and stores have apps already, but they all suffer from the app install friction as described above. It might be really handy to be able to place your McDonalds order in advance from the McDonalds app, but if you’re only going to McDonalds this one time, will you bother downloading the app, signing up, adding your payment details, etc?

Instant Apps would allow businesses like McDonalds to allow customers to place their order, and pay for it, quickly and easily without needing to download anything. The example Google used in their keynote was paying for parking, without needing to install any app, and – more importantly – without even needing to know which app you need. Just ‘point your phone’ at the parking meter and via the NFC connection it can figure out what app you need, lazy-load in the needed module, connect to Android Pay and – boom! You’ve paid for your parking safely and securely. Or perhaps you’re in a new city and you want to buy a ticket for the subway, but you have no idea how the system works in that city (and we’ve all been there). Just point your phone at the ticket machine, and the appropriate experience to book and pay for your ticket pops up right on your phone.

Given the ease of linking into rich experiences that this allows, I could imagine other, non-commerce use cases. Imagine Yelp issues all of its businesses a QR code. Then when you’re sitting in a restaurant and you’ve had a great meal, you could scan the code and go directly into a Yelp-powered experience where you can leave a review – without needing the Yelp app ‘installed’ on your phone. (And if Instant Apps allow users to access users’ identity, you don’t even need to create an account on Yelp either).

Preview an app without installing it
It will be interesting to see if Google build some of the Instant App mechanism into the Play store directly. This could allow you to quickly ‘preview’ an app before you make the decision to install it. Screenshots, descriptions and videos are great – but nothing beats actually using the app. What if you could preview a working version before you install?

Instant App-powered Trial Versions could become the next frontier of App Store Optimisation.

Or what if this enabled free, limited trials of paid apps? Before choosing to drop $9.99 on that newest distraction-free text editor, what if you could trial it? This could also be great for games: like Shareware for the app economy.

Will you even need a mobile-optimised website at all?
If you take all of this to the logical conclusion, you start to wonder if you need a mobile website at all. (Ok, at least an Android-optimised mobile website, for now).

These days plenty of businesses, such as Hotel Tonight, are mobile-only from day one; but for many others the web, and particularly the mobile web, remains an important discovery and conversion channel. For content-based businesses, it’s particularly important to have a mobile website to deal with the “app not installed” dilemma described above: when somebody discovers your content, either through SEO or a link from another service, you want to be able to show the user some content immediately. (Or you risk sending them directly to the app store and hoping they convert to downloading the app).

If Android Instant Apps can provide a real, native experience immediately, without downloading the app, why would you need to have a mobile website at all? You would shift your SEO focus to concentrating on Google/Firebase App Indexing, and shift your conversion funnel to the Instant App experience.

(There’s an interesting internal conflict for Google here. On one hand, Google is inviting developers to prioritise native app experiences – which when followed to the logical conclusion might very well result in less investment in the web. At the same time, Google’s control and monetisation is still heavily dependent on people searching and discovering stuff on with Google Search: one of their rationales to invest in their Accelerated Mobile Pages project.)

Where Instant Apps won’t necessarily help: App Discovery

Instant Apps could make the entire conversion experience for apps much more seamless, making it easier to access, consume and potentially test/trial apps.

But conversion is only half of the app distribution problem: the second half. The first half of the problem is app discovery, and this is where I don’t see Instant Apps helping that much – at least not directly.

Instant Apps will make it smoother to link between apps, and this could hopefully encourage a stronger ecosystem of app user/value exchange. This will help app discovery for sure. But the majority of apps are still discovered in the ‘traditional’ ways: word of mouth, content search, app store ‘browsing’, or performance/digital marketing.

Instant Apps by and large won’t let developers circumvent the traditional app discovery channels. You still need to get your app in front of a user. What it does is dramatically simplifies the conversion process, allowing more users to interact with your app and discover its value – once they have discovered it.

Things for developers to think about

What does Instant Apps mean for you? Some things to think about:

  • If you have a content or commerce-based business, start thinking about how to expand your reach through affiliate partnership building. Instant Apps will make consuming your content or service via a referred link in a partner app much easier and this can be a powerful source of acquisition.
  • Where else can you include links that could surface deep views of your service without needing an install? In marketing materials? Affiliate programs?
  • Start thinking about how to modularise your codebase now. For some apps it will be easy: Google says that some apps should be able to make the necessary changes within a day. But for other apps, depending on the architecture, it will be more complicated. Try signing up for early access to the program in the Android developer portal. But even if you don’t get in, start thinking now about how you will approach modularisation – is there a big architecture refactor you’ll need to invest in?

Growth Product Managers: You should learn to code Python. Here’s why:

Python code

<tl/dr>

Growth Product Managers and Growth ‘Hackers’ should learn to code Python: it saves time by automating reporting and analysis, and it will make you a little less dependent on your data science team and a little more confident to go looking through your analytics data yourself.

I run Growth and Monetisation for HERE’s consumer app business. We have an Android and iOS app, a mobile web app and a desktop web product. We are collecting a ton of app usage and attribution analytics, but they are spread out across multiple places: mobile attributions in Adjust, mobile analytics in Amplitude, web analytics in SiteCatalyst, and so on.

The dashboards provided by the analytics tools are great, but I found myself logging into multiple web dashboards every morning, exporting CSV files and importing them into an excel file to get just the view of the data that I wanted. I was spending 30 minutes per day just cutting and moving data around to get the view I wanted, and I decided there must be a way to automate it.

There are a few options when it comes to scripting languages to let you easily pull and manipulate data sets. Your data science team probably uses R, but for Growth PMs a great place to start is Python. Python is a general-purpose interpreted scripting language that is both extremely versatile and easy to learn. It is inherently great at working with data sets, but there are also a ton of additional libraries available designed especially for data science that make fetching and analysing large data sets, like your app analytics, really easy.

Here are a handful of things you can build yourself with a bit of Python scripting knowledge:

  • Automate checking your dashboards and compiling data in the way you want to see it.
  • Save time manually exporting CSV files from different sources and creating an Excel file to see the data how you want to see it: use python to pull all the data sources automatically and crunch them into the right format.
  • Perform basic analysis automatically at regular intervals and email yourself and your team the results.
  • Create an automated ‘early warning’ system: if any of your key metrics start changing (going up or down) at a certain rate, create an alert email. This is a script that could run automatically a few times per day to monitor key stats and email you and your team when any key metric starts changing drastically.

Example
As an example, I uploaded one of my basic scripts to GitHub. Take a look here.
This basic script does a couple of things:

  • Allows you to specify a couple of frame variables at the top for how you want the data returned: you can specify the period, the channel grouping, and choose between active or new users.
  • Pulls app analytics data from Amplitude for an Android and iOS app sequentially.
  • Adds two columns to the end, one for the standard deviation and one for the % change between the last two complete periods.
  • The script prints out the channels that have gone up or down by more than 2%. (This variable is configurable at the top of the script as well, allowing you to adjust the sensitivity).
  • For data that is grouped by Country, it will also print the % change for a list of pre-defined ‘Key Markets’.

This is just one simple example for one particular analysis – but you could write a script to pull and combine data in any way you choose, depending on the analysis you want to perform/automate.
(This post is not intended as a ‘how-to’, but if you want help, you can contact me. Also there are some resources for getting started with Python at the bottom of this post.)

The best Growth PMs live and breathe their data. Learning to manipulate and analyse your product’s data with Python will save you time by allowing you to automate many reporting and analysis tasks. The act of working with your data at a raw level will also help you fully understand it.

Your data science team are of course the experts, and you’re not likely to become more competent in programmatic data science than they are – but you can learn enough to make yourself just self-sufficient enough to be able to answer your most burning questions immediately, and you don’t rely only on your data scientists and analysts to create the reports and dashboards you need.

Resources and getting started
There are a ton of great resources out there to help you learn Python. Some assume previous programming experience, and others are designed for absolute beginners. It really doesn’t matter if you’ve never programmed before (although, of course, it certainly helps). If you have a good understanding of data manipulation in Excel, for example, you should be able to pick up data analysis with Python with a bit of patience and practice.

Some resources to get you started:

  • datacamp.com is a great place to learn the basics of Python for Data Science. The basic python course is free, and $25 will get you access to the intermediate course, which covers the most important things you’ll need when using Python for data analysis.
  • A more general Python beginners course is available at codecademy.com.
  • The O’Reilly books are relatively expensive, but they’re the classics.
  • Of course, stackoverflow.com is a gold mine for budding and advanced programmers.

Note
Although I studied Computer Engineering I don’t consider myself a programmer. My scripts focus on simplicity and getting the job done, and in so doing break occasional rules and programming best practices (I use global variables a lot, my conventions are sloppy, etc). But that doesn’t matter. As Growth PMs, we’re not contributing to a large codebase with lots of other developers: we’re programming just for us. So don’t get caught up in conventions, unless they help you write code that you can understand.

Messaging and Chat are the next big channel for Growth

Growth is about finding new channels.

Messaging in general as a channel is young and fresh – and there will be a goldrush very, very soon. Services like Slack and Facebook Messenger are following the lead set by the asian chat successes like Line and WeChat in turning chat into a platform that allows access to services over the top – services like payments, shopping, games and more.

You can now order an Uber by typing a command in Slack, or you can order a pizza within the WeChat app in China.

What happens when chat becomes our interface with the world?

Before the point-and-click windows-based GUI evolved, the earliest PCs running DOS or similar operating systems had a ‘chat-style’ interface – a command line.

Messaging could be the next Operating System, and the starting point could be, once again, the command line. The difference is this time the abstraction level is much, much higher. Instead of a command like cd /uber which would change your working directory to the one called ‘uber’, now a command like /uber ride can literally order you an Uber. What’s old is new again.

There is a big possibility chat will be the next user interface. Chat – or personal assistants – or more likely a combination of both – will replace the apps grid as the next major UI paradigm. The chat window is always open. Yes, you use it to talk to your colleagues or friends – but it is already replacing email, and will piece-by-pice replace everything else around it. It’s so much easier to order an uber by typing “/uber ride” into the chat window that’s already open, than pulling your phone out, unlocking it, opening an app, etc.

(As a fun thought experiment: What comes next? What does the next part of the cycle look like? What does a GUI for chat look like?)