In our #SATURN15 talk From Monolith to Microservices we addressed the challenge of data centric development, particularly when behaviour rich domain models are needed.
One of our main point in the talk was that too many developers continued with their script like programming style when they moved to Object-Oriented programming languages. Objects was treated as records and they seamed to have forgotten or never learned that object-oriented programming is all about capture of domain behaviour and knowledge.
After reading the introductory chapter of @VaughnVernon book Implementing Domain-Driven Design this weekend another aspect became evident. The negative influence of properties and property sheets, originally introduced by Microsofts Visual Basic in 1991 and later copied by the JavaBean specification. These innovations dumbed objects down to records and even worse, trained developers to think this was the right way to design software using objects.
For Microservices to survive it is time to take object-oriented modelling back. Developers must learn that objects and object oriented programming supported by domain-driven design provides the tooling and techniques required to build behaviour rich software. Software that not only capture data, but also domain behaviour and knowledge and make it executable.
The claim is that Microservices without sufficient capture of rich domain behaviour and knowledge will not add sufficient business value. They will just end up as distributed balls of mud.
Published by emlandre
Einar Landre is a practicing software professional with more than 30 years’ experience as a developer, architect, manager, consultant, and author/presenter.
Currently working for Equinor as lead analyst within its emerging digital technologies department. He is engaged in technology scouting, open source software development (OSDU) with a special interest for Domain Driven Design, AI and robotics.
Before joining Equinor (former Statoil), Mr. Landre has held positions as consultant and department manager with Norwegian Bouvet, Development manager of TeamWide, technical adviser with Skrivervik Data (SUN & CISCO distributor) and finally software developer with Norsk Data where he implemented communication protocols, operating systems and test software for the international space station.
Over the last years Mr. Landre has become an active member of the professional community, where he has been author and coauthor of several papers presented at OOPSLA, SPE and Saturn. He has presented at several international conferences in Europe and the US.
His professional interests include object oriented programming, enterprise application architecture, multi-agents, autonomous systems design, requirements analysis and specification, use of systems engineering practices, agile methodologies and leadership in high-tech organizations. He is a member of the ACM and the IEEE Computer Society, as well as the SPE (Society Petroleum Engineers).
Mr. Landre holds a MSc in Information Technology from the University of Strathclyde, is an IEEE certified software development professional (CSDP) and lives with his family in Stavanger, Norway.
View all posts by emlandre