I saw Udi Dahan this week at an event at Onalytica, Udi and a small group of around 20 developers. Onalytica’s CTO acted as host and made it an interview with Udi while giving him plenty of time to talk. This interesting format was pleasantly different than the usual technical talk where the speaker picks the topic. This was more wide-ranging and covered some of his early background as well as current topics in large-scale system design. This was the first time I’d seen him speak and he was as good as everyone had said, very funny and very thought-provoking.
One recurring theme was avoiding overuse of a single technology or architecture or way of thinking. Everyone knew the story of the guy who has a hammer so tries to use it to fix everything but Udi’s “Technology X Hammer” had us all laughing. This idea came up several times: single language, single database or single skillset all lead to problems.
This led to a discussion of multi-dimensional architecture and of Command-Query Responsibility Segregation as one example of that. Prompted by questions about keeping separate Command and Query databases synchronised he talked about how constrained the database design became. The usual single schema being optimised on one side for fast inserts and on the other for fast searches fails at both due to compromises. I was struck that this is just the Single Responsibility Principle for class design at a larger scale. This idea of a rule or pattern applying at multiple levels came through strongly as he discussed further dimensions along which software architecture can be varied.
But the strongest recommendation he had for us was not technical at all. It was to ask questions and get to a real business requirement, not a solution pretending to be a requirement. “We need this screen” should lead back to exactly what the business reason for it is which should lead to an exploration of a range of completely different possible solutions.
My thanks to Udi Dahan for a very enlightening evening, and to Onalytica for hosting such an excellent event.