Episode 15: Domain-Driven Design with Rob Allen

This week, Oliver discusses Domain-Driven Design with PHP UK speaker, Rob Allen.

Key points

  • Rebuild vs. rewrite.
  • Writing good commit messages.
  • Are code comments useful?
  • Technical Design Documents and ADRs.
  • Ubiquitous language and Domain-Driven Design.
  • PHP UK, PHP South West, conferences and user groups.
  • DDD in Drupal?
  • DRY and YAGNI.
  • When to refactor?


  • I quite like legacy projects because i think they've already proved their worth in the marketplace. (RA)
  • I general, I think that rewriting the wrong approach nearly every single time. (RA)
  • Things are so impermanent. The only things you can trust are in the source code and what's in the revision history of that source code.
  • We have the "what" but we don't have the "why". (OD)
  • As you do this for longer, I think you start picking up on what you wish you'd written in the past. (RA)
  • I think nearly everything related to software development that really matters is invariably about communication. (RA)
  • Nearly everything that results in good quality software is because good communication works. (RA)
  • Ubiquitous language is using the same language the specialists are using. (RA)
  • An awful lot about DDD is trying to get the communication right. (RA)
  • If you pretend it's not happening, it doesn't mean it's not happening - just that you're ignoring the problem. (RA)
  • It's cheaper to fix things earlier in the process. (RA)
  • User groups are such a good community resource. We get to try thing (talks) out. (RA)
  • A conference gives you a focused block of time to learn something. (RA)
  • I think the tenets of DDD can are important regardless (of the size of the project). (RA)
  • We can refactor our way out, but now the overall time is longer. (RA)
  • Time spent upfront is tangible effect on the time spent later. (RA)
  • The biggest one [benefit of DDD] is that you end up with a project that's fit for purpose.
  • You're way more likely to deliver a project that does what the customer needs if you have listened and understood what they said. (RA)
  • It's in the customer's best interest for you to get it right the first time. (OD)
  • You have to be proactive. It doesn't happen by default. (RA)

About me

Picture of Oliver

I'm an Acquia-certified Drupal Triple Expert with 17 years of experience, an open-source software maintainer and Drupal core contributor, public speaker, live streamer, and host of the Beyond Blocks podcast.