Chapter 6. Data Modeling in an Imperfect World

Imagine that you work for a small business that is in the early stages of replacing a decade-old time tracking application.

Your coworker Mateo was the main developer for the original application, which replaced a tedious paper process that everyone hated. The software has served its purpose over the years, but a decade of constant use has revealed some of its weak spots. In particular, the application’s core data model has a few rough edges that should not be carried over into the new system.

Because you weren’t involved in developing the original application, Mateo is counting on you to look at the project with a fresh pair of eyes. You’ve spent the last few days reading the old codebase and playing around with ideas, and today you’ll present your plan for building a better system.

The challenge will be to balance what is technically ideal with the needs and working style of the company. Data modeling and workflow design go hand in hand; they work best when they’re thought about together.

Mateo will help you with the historical context around the project, and the two of you will work together to design a replacement that can serve the business for many years.

In this chapter…

You will learn how small adjustments to the basic building blocks of a data model can fundamentally change how people interact with a system for the better.

Decouple conceptual modeling from physical modeling

You begin with an idealized example of how employees ...

Get Programming Beyond Practices now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.