Learning from the past
David Norfolk has Proustian moment over IMS
Of course, even though some of what I write today comes out of what I learned way back then, I take care not to mention COBOL, IMS DB/DC, MVS, data analysis and entity/relationship diagramming, because I want editors to take me seriously and pay me.
So, I talk UML, OO, XML, C#, RDBMS and Team System. However, I think that this is a symptom of what is wrong with IT. Today's technology is better than that of 25 years ago – but we shouldn't throw away the underlying principles of metadata abstraction, functional cohesion and so on just because they were also once useful for building COBOL Message Processing Programs – or rather, we shouldn't relearn these principles from scratch; we should build on what we already know.
IT is the only discipline that's important to business where we routinely throw away knowledge every time a new technology implementation appears. I remember watching OO encounter “for the first time” people and management issues that the OO gurus could have anticipated if they'd been prepared to abstract Structured Techniques experiences away from COBOL and databases and learn from them.
I watched RDBMS outdate my beloved IMS – and I really am a relational data model enthusiast (relational theory is not totally worthless in the design of hierarchical databases, by the way) - and I'm now seeing “post relational” databases replace the relational databases I'm used to. Yes, I know that the product names haven't changed but any database in which a column can contain rich XML documents isn't really a relational database, in my book.
As we move forward, however, are we at risk throwing away knowledge: the importance of abstraction; of analysing metadata structures; of distinguishing the semantics of data from its format; of trading off flexible access against raw performance in a managed way? Is the importance of providing database mentors to help application developers design good, maintainable database accesses that take advantage of the DBMS optimisers etc being recognised? This was a function of DBA in my day but these days I get the impression that DBA doesn't talk to developers much.
Many people use databases today, but how many of them know why they might choose Ingres or PostgreSQL instead of MySQL? We have better automated DBA tools today than I ever had (from the likes of BMC and Embarcadero), but are database maintenance and performance issues still biting developers on the heel?
I leave these questions to my readers – although I believe that many developers, those who still have a career path, have it because they can learn from the past as well as exploit the new - but please feel free to start a debate if you think that there are issues here. Or even if you think I'm finding issues where none exist....®
David Norfolk is the author of IT Governance, published by Thorogood. More details here.