As software engineers, it’s our duty to provide the highest quality possible, and try our best to make users happy with what we’ve built. More often than not, you take pride on what you’ve accomplished and you wish to refine it, see it grow and make it the best it can possibly be.
But, as with everything, there’s so much you can optimise and there’s a limited amount of time you have to do it.
Once your product is out there being used by thousands of people, that cycle of optimisation becomes more and more challenging because now it’s not you on your staging environment trying to make things work. Every change you make is available to your users and making a mistake is costly. As we all know, competition is fearless nowadays and you can’t afford to lose users. Even more, you need visibility over how the changes you’ve just made are reflected in user’s behaviour.
Let me introduce Data Science and Data Analysis. In short, Data Science consists on using automated methods to analyse large amounts of data and extract them into knowledge.
Now, with this knowledge you can start making decisions on software design; start prioritising the areas of your application that are most important for your users; analising how to offer your users better services, and even how to monetise them better.
Going back to the question of “why is this so important?” For starters, you gain visibility of your changes. You can see the trends that your users are following and model their behaviour to find patterns and finely tune your software to better serve their needs.
Secondly, you make the whole process much faster. Having access to a user behaviour model gives you the opportunity to act right away, instead of looking at the charts of the past month and wondering what happened. You can draw projections based on actual trending behaviour and not past behaviour, which gives you strategic advantage.
On a practical note, particularly in our company the use of data science has been extremely beneficial because we model user trends, detect their likes along with what content is performing better for them and shift it based on what we’re seeing, and the projected outcomes. We carefully monitor their reactions, cluster them and analyse them as a whole to identify major trends and potentially readjust our goals and priorities.
It’s much easier to deploy versions of our software and simply compare against trends we saw in earlier versions, because at the end of the day, final results could be deceiving, as in they could look similar to last month’s results, but they could hide things such as poor engagement and or users not fully exploiting the best features of our app.
Imagine the simple case of a web front store. If you only look at the amount of money you made on the last 3 months and it’s consistently £X per month, you might think everything is running smoothly. But if you analyse your data, you could potentially find that you’re losing half your users each month, while acquiring the same amount of new users within the same timeframe. Hence, that’s why your revenue is constant. While this is not necessarily bad, having a glimpse at your data reveals that if you make a better effort to keep old users engaged, you will double your revenue.
In summary, code smarter. Use data science and mathematical models to analyse the impact of your code, and soon you’ll find out your results get exponentially better. Let the data guide your coding.
NOTE: Published originally on LinkedIn on February 24, 2017, migrated here on January 13, 2021.