Engineers are used to solving problems using a certain approach. Generally it can be defined in the following way: 1. Precisely define input and output requirements (let’s set aside performance, non-functional, etc requirements aside for the purposes of this post) and 2. Iterate in a deterministic way until your approach (algorithm) achieves Step 1.
The key here is that this approach is largely deterministic. Software is driven by cause and effect. Engineer says, machine does. (As we all know, almost to a fault. If only the machine could tell us how to do what we are really trying to get it to do!). We know that if we tell the machine to do something it will do exactly that. Furthermore, if some piece of code fails once we can be fairly certain the code will fail again in the exact same way.
In this way, humans are very different. And this is part of what makes marketing and growing the user base of a product so challenging. While overarching patterns in human behavior may be identified, on a day to day basis we have no idea who will respond to a certain product or promotion positively. We can’t even say for certain if the same person will respond the same way to the same product next Tuesday.
To have your product capture the attention of as many people as possible, and as many types of people as possible, and to grow your number of active users, you need a multi-channel approach. Some efforts will fail miserably, while some will succeed for no obvious reason, while others will succeed after a quirky fix to a campaign. The human mind is not so deterministic. You need to take the time to understand your users.
I came across this slideshare that highlights some of the wide-ranging, far-reaching efforts necessary to grow your user base. Unlike in engineering, the relationship between cause and effect is not so clear when managing users and user growth.