Historically, in software development, it has been the case that you focus on your software first. The data that software generated was secondary.
However, in recent times, we have seen a shift towards a data-driven approach. You put the data first, and the software that runs it secondary. Making it much easier to pull your data to multiple different platforms and products.
Today we are quickly going to run through the importance of a data first approach, with two examples; e-commerce and machine learning.
As well as cover off some steps you can take right now.
Example 1; eCommerce
One of the first places I saw taking a data first approach have a massive impact was in e-commerce.
Say you set up an eCommerce store back in the day using Magento, Opencart; whatever was in vogue depending on the year.
You would spend hours curating the data in these systems to build your online shop. However, the data you had created was then locked into this system.
Problems then occur if you tried to introduce additional channels. What happened if you had a bricks and mortar store, and you sold something in your shop, but the stock levels were not updated in the e-commerce store?
Over the years, more and more channels have opened; Facebook, Etsy, eBay, Amazon etc. If you have thousands of products and sales. How do you keep all your order data and stock in sync? It is only possible if you put the data first and the platform / software that sells your products secondary.
Taking a data first, or headless, approach has become critical in the world of competitive eCommerce.
Example 2; Machine Learning
Machine learning is really coming into its prime. If you are generating data, you can learn from it for the common good and for profit.
But to achieve this, you need to be able to readily access the data and the data needs to be clean for it to be of any use.
More and more companies are adopting machine learning techniques, and it is transforming the world, before long, just as a data first approach is now required in eCommerce. Machine learning will be a requirement if you want to be competitive in many sectors.
As such, it is crucial, you take a data first in your software endeavours.
Considerations; procuring software
Whenever procuring software, make sure the data is the primary concern.
For example. Thinking about implementing software that allows people to check in and out of an office block?
It could be in two years' time it will be really useful to know how people move about the building, when they come and go, how long they spend where. Fed to a machine learning algorithm, this could give invaluable insights that could save you money. But for this to work, you need to be able to access the data.
As such, when procuring such software, you need to be certain you can get the data that is being generated out of the system from the outset. Make sure you see it is possible, see it with your own eyes.
So many times over the years, I have seen sales people promise an API for directly accessing data. Contracts are signed, then it turns out the API doesn’t exist, doesn’t provide the required data or is general unfit for purpose. Do not fall into this trap.
Considerations; building software
Do not build your software on a platform that dictates data structure, and ties you to that platform.
Plan your data, architect it in a central location then, build an API and then build software that ingests that data via the API.
That way, if a piece of software fails, you still have the data; the two are decoupled.
Data is increasingly more important, than the platform that serves it. When procuring and building new software, make sure you are putting your data first.