It was a Thursday, sometime in 1994. I was in the 4th year of my computer science studies, and one of my fellow students asked me to contact his dad, head of HR at a college in Rotterdam.
One of his teachers had fallen ill, and he was looking for someone to stand in and teach bachelors in Economics & Law the mandatory ICT lessons in dBase 3, DrawPerfect, Lotus 123 and the then new kid on the block – MS Access 1.0.
I had never worked with any of these programs, so then how to teach them? I asked for “a week or so to prepare as it had been a while since I had used those programs”. His reply “you have to start last Monday” kind of shocked me. We compromised on the next Monday, giving me a whole 3 days to prepare.
An RDMBS is an RDMBS, right?
Fortunately, I knew the basic concept of a spreadsheet and a database. In our second year for the course “software engineering” we had to build a spreadsheet. It made me understand what a spreadsheet is all about, but more than that I slowly started to understand that coding in itself is something entirely different than coding with a group of people.
And as for the databases … how hard could it be? Thanks to C.J. Date’s great book An Introduction to Database Systems. I felt really comfortable teaching on these products. After all, an RDBMS is an RDBMS, and a table is a table, right?
And, indeed, as we say in Dutch “the soup isn’t eaten as hot as it is served”. After 3 months, everyone was happy. All students passed the examination, having a slightly better understanding of the sheer complexity of ICT that they wanted to stay away from and had not chosen for. And the head of HR was happy that he could produce great numbers, even with a non-licensed teacher.
Where are my tables?
Fast forward to 2018. A customer has an interesting idea for a new application. We propose to build this with modern day event driven technology. The customer claims he is not technical at all, and trusts us for the technology approach. In one of the demonstrations of the proof of concept he suddenly asks: “… but show me the database. I want to see the tables …”
And if you ask around – people generally understand the concept of tables, columns and relationships. But when it comes to code … then it gets scary and people want to stay away from it – too technical.
I believe they rightfully get scared. It forces me to think again on the concept of tables. IT has not given business owners a better abstraction than tables. First design your information object, then build a screen on top of it, and then please add some business logic. And take your pick: whether with “good old” 4GL tooling, modern day low-code platforms or coding based Entity frameworks – all of them take the basic “table” as starting point. Obviously, there is more to it than that – I18N (Internationalization) features, ACL (access control) mechanisms, etc. But the core of these technologies is built on just one basic concept: Table.
Think beyond tables
It is high time that we, IT professionals come up with something better. Something that captures more complexity in a basic concept than just rows and columns. I will write more about that in upcoming blogs, but would like to share a brief prelude: databases are the natural digital successors of good old paper card trays that formed a company’s data bank. Basic business administration was all about manually writing down the activities on cards. But the core differentiators of a company are about combining cards in smart manners and through smart processes. Perhaps a dossier holding a coherent group of cards provides for a much better view than just a bunch of cards in different cabinets. Let’s then give that abstraction to the business and provide them with a 360˚ view!