A series of articles focusing on the common problems caused by improperly managed teams.
Learn how to detect toxic situations, deal with them, and her your team with this curated topic of articles.
Here's a trade secret: Software Engineering is just a fancy term for data processing. Every digital product, like an application or a website, takes some data and transforms it into a different format.
Your digital product is no different: you collect and store the data provided by your customers or the internal team, and you generate web pages, emails, reports, notifications, and other result formats. One of the biggest challenges is making the data model that describes, collects, and enables processing the data powering your company.
Let's start with absolute basics: what is the primary function? Think about the purpose of your product: what is the most critical function that it provides? You can consider different classes of products:
Why do we separate digital products into categories like these? Each class comes with a set of requirements, benefits, and risks to consider. For example, data collection products allow lots of freedom in the data model design because they contain mostly static content that doesn't change rapidly. Data processing products, on the other hand, require a minimalistic approach to the data model, as every bit of information affects the performance of the final product.
The second aspect of the data model to consider is what is the kind of data? Think about the information collected and processed by your product: does it fit into a specific structure? Answer to this question determines what kind of database and storage systems your product requires:
Let's catch a breath! If you feel dizzy and overwhelmed, don't worry: most of the B2C products are informational systems powered by relational data.
Even the Cubitoo Blog: it consists of a few article categories, many article tags, and of course, articles themselves. These three tables create the majority of the data stored and processed that we transform into the website you're reading now!
Here is a simplified data model of the Cubitoo Blog, using our simplified hand-written notation:
What is interesting about the data model is the use of relations between different tables to describe the blog structure: categories have many (↠) articles and analogically articles belong to (->) a category. Additionally, articles have and belong to many (↞↠) tags, enabling very flexible classification of content: an article belongs either to the Engineering or the Design category, but an article from either category can have the same tag assigned!
As your product grows and becomes more complicated, the data model evolves too. Having an overview of the complete structure prevents duplication and over-engineering, removes unnecessary complexity.
Using the simplified hand-written notation is a fun way to use pen and paper to design the data model of your product. It doesn't require the use of specialized software and allows small corrections and annotations.
Data model design makes the foundation of any digital product, and even if you don't feel comfortable betting technical about it, understanding the structure of your product's data has many benefits.
Cubitoo offers personalized coaching for startups and entrepreneurs, focusing on all aspects of lean and efficient product building, effective communication, and management. We will help you to build your own company. Learn more about coaching