Here’s the deal: I think that, both personally and professionally, there’s a lot to be said for a) not overthinking things, b) not underthinking things either. Let me try to explain what I mean with that.
You don’t want to be overthinkingI know that some problems are very hard. It’s super difficult to get it all in your head, to rationalise all the parameters, to assess the impact of all the different factors, and to play out what will be the right decision in a given set of, usually ever-changing circumstances. So you think and you think and you think things through – but often times that just does not get you any closer to a practical solution. In my experience, very often you are better of “just getting going”, chopping away at the problem and moving the solution forward in what you think will be the right direction. It’s not possible to solve the whole thing all at once, and overthinking it will not get you closer to that solution. It will just continue to look like a massive sticky hairball, a “big ball of mud” that is impossible to manage or untangle. Stop thinking, start doing is often very sound advice.
A personal, and professional balancing act – also in the data modeling worldSo it’s a balancing act, at which we will get better with experience. And I am convinced that this applies to both your personal, and your professional life: you want to find a balance between overthinking and underthinking your problems, and think through them for just about the right amount.
So much for the “life advice”. But obviously I started thinking about this partly since in my professional life I have also noticed that this a great way of doing things.
I am now 1000% dedicated to the work we do at Hackolade, and there are great advocates of Domain Driven Data Modeling. We apply the principles of Domain Driven Design to data modeling – and that will very often imply exactly what I was talking about above. Break down the data models into manageable domains. Work on these with a common language to reach a shared understanding. And iterate and evolve when and where needed.
I am truly loving the way the Hackolade team aligns with all of the above. In your search for the pragmatic balance between over- and underthinking, I have found that
- Tools that create artifacts – like data modeling tools – are really useful in finding that balance. Turns out that writing stuff down is a great way of overcoming hurdles and revealing details that would not be obvious in your head.
- Doing iterations, trying- and retrying to get closer to the right balance, requires a nimble toolset. Otherwise, your tool will not help – it will just get in the way.
- Same thing for your data platform: choose one that allows you to iterate – easily. Rigid lifelong table schemas will also get in the way. Go figure!