During the Domain-Driven Design Europe conference in June 2023 in Amsterdam, Augury’s Hila Fox gave the presentation ‘Practical DDD – Transforming Theories Into Guidelines’. Covering Augury’s past 2.5 years as it scaled from 110 to 430 people, Hila explained the advantages and practicalities of applying this type of software development approach to a rapidly growing company with a complexity of products and services. .
Failing, Learning, Getting It Right, Owning
Hila’s presentation struck an obvious chord at the event. “I think it was because I’m coming from experience and not some high-level place. This conference attracts a lot of consultants who come into a business for a couple of months with the initial set-up. They don’t stick around for the full multi-year process,” says Hila.
“So, my story comes from the trenches. It’s a true story about something we did – how we failed and learned, and then got it right. And how in the end, we made it our own.”
Design First, Code Second
At its core, DDD is an approach where the actual coding is secondary to first really understanding the problem and coming up with the right boundaries. In this way, the code is not only easier to test and maintain, but the coders and stakeholders learn how to communicate with each other in whole new ways – and following a language they themselves establish.
“Each empowered squad has their own problem domain – a specific part of our product – that they are solving. And for the full picture, we need to be able to talk to each other,” says Hila.
Power To The Developer
“For Augury, we needed an ‘empowered’ approach since we were scaling and needed to distribute the process around architectural decisions across a larger number of people,” says Hila. “People needed clarity and a sense of ownership around their product area.”
As a result, the tech leads and architects are no longer decision-makers who draw diagrams that the developers follow. Instead, they act more as coaches and enablers who provide guidelines under which the teams could make their own decisions. As Hila puts it, “We want our developers empowered and informed. And this also really reflects Augury’s culture as a whole.”
“We want to give manufacturers all the tools and information they need to keep their machines working at their best. Similarly, we as architects have to provide our developers with all the tools and information they need to code at their best.”
Teams Empowering Teams
Meanwhile, the company’s main mission is to empower manufacturing teams to improve the health and performance of industrial machines – using IoT, advanced AI diagnostics and human reliability experts.
“The fact we are in the business of empowering teams, it helps shape our approach as we seek to empower our own teams internally,” says Hila. “We want to give manufacturers all the tools and information they need to keep their machines working at their best. Similarly, we as architects have to provide our developers with all the tools and information they need to code at their best.”
“We also understand, everyone also needs to be emotionally-aligned for this to work. People need to understand – and feel – that these new approaches are actually making them better at their jobs.”
The Most Complicated Thing: Simplify
Naturally, it’s never straightforward when instilling a new way of working within an organization. “There were definite bumps on the road as we adapted the approach to our own specific needs.”
“When we first started getting into DDD, we did a lot of research and wrote an amazing 20-page playbook. The content was awesome and showed a high-level of engineering ability,” recalls Hila. “But then no one used it. It did not align with how engineers work, think and feel.”
“So, we turned it into more of a definition doc and broke things down into what we called architectural topics – which were each hyper-focused on a specific something. We also backed this up with more online sessions involving all of R&D. This really worked. Friction decreased as we all started to talk the same language.”
“And, again, this really fits with what we as a company are trying to do for those working in manufacturing – giving people that feeling we have their back.”
Do The Right Thing – Easily
“As a software architect I had to learn to simplify, simplify – and that’s actually the hardest thing to do. It’s not only about knowledge but about communication: passing on knowledge in the simplest way so people would start using it in their day-to-day working life. In this way you build up the trust. And, again, this really fits with what we as a company are trying to do for those working in manufacturing – giving people that feeling we have their back,” says Hila.
“We are trying to make it easy for people to make the right decisions for themselves. That’s where the power is.”