The Modern .NET Show

CQRS, System Maintainability, and Pragmatic Tech Choices with Dejan Miličić

Sep 27, 2024
Dejan Miličić, Head of R&D at RavDB and a seasoned software consultant with 25 years of experience, discusses the essence of maintaining software systems over time. He emphasizes that developers spend 90% of their time on change requests rather than building new systems. Dejan dives into CQRS, exploring its benefits in system design, while addressing common misconceptions. He also warns against premature optimization and vendor lock-in, advocating for a deep understanding of historical programming practices to enhance modern development.
Ask episode
AI Snips
Chapters
Transcript
Episode notes
ANECDOTE

System Design Interviews

  • Even experienced developers often neglect system design until job interviews, highlighting a gap in practical experience.
  • System design interviews prompt them to think holistically, suggesting a need for more focus on this aspect throughout their careers.
INSIGHT

Maintaining vs. Building

  • Software development is primarily about maintaining and changing existing software, not building it from scratch.
  • Focus on sustainable design to minimize rewrites, which waste accumulated knowledge and introduce instability.
INSIGHT

Complexity in Systems

  • Systems have two types of complexity: essential (inherent to the domain) and accidental (introduced by implementation).
  • Accidental complexity accumulates over time, often leading to rewrites, so focus on simplicity in design.
Get the Snipd Podcast app to discover more snips from this episode
Get the app