I’ve long been a fan of the book Data And Reality by William Kent. I discovered it years ago, when I first started writing and speaking about data and conceptual modeling (see, for example, this talk from 2013, “I’ve always wanted to data model”). I found Kent to be a kindred spirit, like a sort of nerdy “pen pal” across the decades. He was saying things that had been on my mind, but that no one else was talking about–about the gap between computer programs and a human’s nuanced understanding of the world. And he was writing in the 1960s, a time when software was a niche pursuit by today’s standards.
As I reread the book recently, it struck me that there’s still so much to say, so many different interesting angles to explore. In some ways, we have travelled a million miles since Kent was writing—billions of people around the planet can’t go an hour without connecting to the internet using the little supercomputer in their pocket. We have AI programs that can beat humans at many tasks once thought impossible (like facial recognition, Chess, etc.).
In other ways, though, we have made so little progress on the deeper questions. Software creation is just as slow and error-prone as it ever was; except that we have millions of people doing it now (compared to hundreds back then). We produce a lot more software, but never fast enough, or of high enough quality. Why not?
In my experience, at least part of the blame accrues to the fact that we haven’t gotten significantly better at sharing our minds with each other. Our facility at talking and reasoning about concepts in clear, unambiguous ways is quite poor.
Data And Reality is a book worth exploring, so that’s what I’m going to do, for the next few posts on this blog. I’ll be working from my copy of the first edition. Yes, there are newer editions, but IMO, these take Kent’s work more in the “practical” direction, catering to what a modern relational data model professional might need to get as takeaways. (This is likely because they were edited and annotated by a modern relational data modeling practitioner, Steve Hoberman).
But my interest in Kent is almost the opposite; I don’t want to explain how our modern software engineering techniques solve all the quandaries that Kent raises, because I don’t think they do. I want instead to simply sit, quietly, with those original monospace typewritten pages, and listen to what they have to say to me across the ages.
Here are the posts I've written so far:
- Attributes Are Slippery: https://sntl.st/attributes-are-slippery/
I’ll update this index with more links to each post as I get there.