Whenever we start a new job or begin work on a new project, one of the hardest things to learn is what questions to ask. We have knowledge, we have expertise, but we don’t always know how to get the information we need so that we can apply our expertise.
Once upon a time (more than 20 years ago!), I was developing software for tracking vehicles using GPS and displaying their locations on a map. The mapping software stored map information and programs could query the stored data using SQL. At that stage, I had never seen or heard of SQL before and felt completely lost. The documentation told me all of the limitations of the SQL implementation, so that I knew that correlated subqueries were not supported. The only problem was that I had no idea what a subquery was, let alone why one would bother correlating it.
My ignorance was so deep that I didn’t even know where to start asking questions. My fundamental questions, “What does it do?” and “What use is it?” were not answered helpfully in the documentation. I was completely lost. Quite some time and a lot of floundering later, I slowly began to understand what SQL could do for me and how I could use it. I started to discover how to ask the right questions to extend my knowledge and achieve what I needed.
Data modelling is just the same. Once we have enough knowledge of the aims and methods, it’s not hard to know what questions to ask. Until then, though, we can often feel overwhelmed or completely lost.
Existing systems are often the result of stepwise development. Once we ask the right questions, we can work out what is necessary and what is extra baggage – often added for specific historical reasons that no longer exist.