One of the things I think is important to understand when you start out to create an application is: The primary internal purpose of your application is data. That is why your company builds it, for the data that it can create.

I am sure that somewhere there is an app that is created by someone where there is no data saved or exchanged or cared about. But I don’t even see how this can be the case. When I post this blog, I will want to know how many people read it, who comments on it, etc. All of that is data.

But my app isn’t even somewhat about data

While the primary internal purpose of software is data, that is usually not the primary external purpose of your applications. You are trying to sell a product, entertain people, transport goods, even empower people to do great things. All of these require data.

Selling a product is a string of interrelated rows of data. In the simplest manner possible:

  • Customer enters a store (could be a website, could be a physical store front)
  • Customer puts items into a cart
  • Taxes are calculated
  • Customer pays for the items
  • Item is given to customer
  • Inventory is decremented

Every row that is created in this progression has meaning internally both immediately and in the future. And this is just a very simple wireframe list of operations. The more details you can gather as data, the better. How many times they visit, what other products have they purchased, how they paid, etc.

Even a company with a business model that only streams video is all about the data. They want to know which of their videos are fulfilling their purpose so they can know what to produce next. And if that isn’t enough, they also want to see what gets people to click through to the advertisements presented. The more you watch, the more commercials you may see (and the more likely you will continue your subscription).

Even a video game like Nintendo’s Legend of Zelda is largely just a user interface to a database that captures the important details so you when you travel from end to end of the land you still see a task completed that you did 100 game hours ago.

All of this data getting stored is so very important to make sure that the core business gets done. If each step isn’t documented in data correctly, you really have no idea that it happened.

What if it really is a data app

Sometimes your app is about managing your customer’s data, like their contacts. So in that case your app is clearly a data app. However, it is important to note that this will lead to your application being about two different sorts of data. The internal, operational data about how the application affects your company, and the external data, which is the customer’s data.

I will discuss a bit more later, but the important part is that you understand that your internal users care about the internal data, and should only truly care about the external data as a customer service.

The lifecyle doesn’t end there

Once the task is complete, and the user has their cool thing you shipped to them and the company has the payment in hand, the process is far from over. This is where that data is like gold. Seeing how a customer behaves is ridiculously valuable to an organization.

It is true at a micro level, because when you buy an item, it is very likely you are going to need things related to that purchase. For example, say you buy a tent for camping. Even if you already have everything you need for a nice camping trip, it is likely that you will want more equipment. If you know the customer’s correct history, you may be able to extrapolate what else that person needs and not just random camping implements.

The macro level is where data really starts to be valuable. Humans tend to behave similarly, certainly in aggregate. So when you do something like a political poll of 1000 people, you can extrapolate what many other people will do with decent accuracy, even without any other knowledge of these people’s other attributes. The more data you can get about people, and the more history you have with them, the better you can predict what they may want and suggest it.

If you (like myself) are an Amazon customer, think about how easy it is to go to their site and look at the recommendations. Mine is filled with camera gear that I am often interested in because I have searched for camera gear many many times. The more data they gather, the better the suggestions. (This is typically only messed up by purchases for necessities and presents, where they think I am big into cleaning supplies and such.)

All of the data we gather in transactional processing can then be used to determine trends. And whatever applications you have can be a part of that process. Certain types of people play games at these times of day, and like this kind of chocolate, and whatever the data your customer allows you to have can tell them.

Brief ethics note

I won’t get into security or ethics any more than a simple warning in this post, but just beware of that “data your customer allows you to have” message and have a proper privacy policy that you follow. If the customer doesn’t consent to you using their personal data for any of this sort of prediction, you don’t. But you will almost always be able to use your processing data in your analysis, and your customers may allow more data to be stored when they know why.

The key

The best software is created to not let the end user know that you care about the data, except their data of course.

None of this should feel like it matters to the operation of your software. If the point is playing games, the user should simply feel like they are playing a game. If storing their data is the point (like a note taking or contact app), then that is what they should feel like you are doing.

Leave a comment

I’m Louis

I have been at this database thing for a long long time, with no plans to stop.

This is my blog site, companion to drsql.org

Recents