Software is largely about building data and transferring it between places in different ways to produce the required results. How that data is organised is therefore fundamental.

A good data model is like a well-structured book. Without a clear index, meaningful section names and logical groups, the book is difficult to read. Software data should likewise be organised so that it is understandable and usable whenever it is needed.

In application code we often call this a data structure; for databases we speak of data models and tables. Data modelling is the foundation of the solution. When the design is weak, its effects spread throughout the software.

1. Start with box diagrams

Begin by drawing simple boxes that represent the important data concepts. At this stage, do not worry about documenting every characteristic. Concentrate on identifying the main entities.

Initial data-model box diagram
Begin with a simple box diagram.

2. Elaborate the details

Gradually add the important characteristics of each data concept. This makes the model more concrete while keeping the overall structure visible.

Details added to the data-model boxes
Add relevant details to each box.

3. Establish relationships

Connect the different concepts and identify how information moves or relates between them. Highlight the relationships that matter for the use case you are currently analysing.

Relationships between data concepts
Make relationships explicit.

4. Review and refine

Consult useful references: experienced colleagues, documentation, search resources or an AI assistant. Remove unnecessary characteristics and relationships. Some elements may need to be combined; others may need to be divided.

Detailed data characteristics and relationships
Refine the characteristics and relationships.

5. Test with sample data

Enter realistic sample data in a spreadsheet based on the proposed design. Check whether the structure makes sense, whether the relationships work and whether the information is convenient to use.

Sample spreadsheet data based on the model
Validate the design with representative sample data.

6. Apply modelling techniques

Finally, apply database normalisation or appropriate JSON-modelling techniques before integrating the design into the application. Use these techniques as tools to improve clarity and integrity, while staying mindful of the system’s real access patterns.

Final note

Every existing software data model can be improved as real-world use cases and constraints become clearer. Start with these steps and refine the model as your understanding and experience grow.

An artist who wants to draw realistic people studies human anatomy. In the same way, a developer who wants to build good software should become proficient in data modelling.