Episode #42: Better Serverless Microservices using Domain Driven Design with Susanne Kaiser episode artwork

EPISODE · Mar 30, 2020 · 54 MIN

Episode #42: Better Serverless Microservices using Domain Driven Design with Susanne Kaiser

from Serverless Chats · host Jeremy Daly & Rebecca Marshburn

About Susanne Kaiser:Susanne Kaiser is an independent Tech Consultant from Hamburg, Germany, and was previously working as a startup CTO transforming their SaaS solution from monolith to microservices. She has a background in computer sciences and experience in software development & architecture for more than 15 years and regularly presents at international tech conferences.Twitter: @suksrSite: www.susannekaiser.netLinkedIn: https://www.linkedin.com/in/susannekaiser1/WATCH THIS EPISODE ON YOUTUBE: https://www.youtube.com/watch?v=eGYlTfBJBJQTranscript:Jeremy: Hi everyone. I'm Jeremy Daly and you're listening to Serverless Chats. This week, I'm chatting with Susanne Kaiser. Hi Susanne, thanks for joining me.Susanne: Hi. Thanks for having me.Jeremy: So, you are an independent tech consultant, so why don't you tell the listeners a little bit about your background and what you've been up to lately.Susanne: Mm-hmm. So, as an Independent Consultant, I am helping organizations within the broad spectrum of software architecture and design including development to software delivery, or in other words or in shorter terms, helping organizations in building and shipping their digital products. I was also previously working as a startup CTO and I have a background in software development and software architecture of more than 17 years and I also regularly present at international tech conferences as a speaker.Jeremy: Well, speaking of international tech conferences, I saw one of your talks at ServerlessDays Belfast before we shut down all conferences so no one can get together in person anymore. And, you did a talk about domain driven design and how that applies to serverless and serverless microservices. So, I'd love to talk to you about that today, because I think that is one of those things where software developers ... I don't want to say all software developers ... but a lot of software developers are just really bad at software design, and not just design of architecture and things like that which are in our wheelhouse, but more from the business side of things and understanding what the business needs are, understanding what the technical needs are, and then where that comes together in the middle, and what people should actually be building to solve those customer needs. So, I think that is domain driven design in a nutshell, but maybe you could tell the listeners a little bit about what domain driven design actually is.Susanne: Yeah, so domain driven design is a software philosophy or methodology created by Eric Evans and it's about to capture the business domain as closely as possible into your software and it comes with a lot of strategic and technical design patterns and practices that I am happy to share with you in a moment. But, it's also, I would like to mention also, from the very beginning, it's not applicable everywhere. So, you should focus on your core domain ... I will explain it in a minute, hopefully, too ... where it makes sense that focusing on complex business logic and have to do with solving problems that have complex business logic behind.Jeremy: Yeah, and so you had mentioned in your talk, the cost of poor software quality, and the number you gave here was, I want to say it's $2,840,000,000,000 a year in poor software quality, so what are some of these indicators of poor software quality?Susanne: So, there are no simple measures for bad or good software quality, but there are several metrics that can be used as indicators. For example, an increasing curve of defect trend over the time is an indicator of poor quality software or low test coverage, assuming that as there is good test quality or cyclomatic complexity or large dev of inheritance and high degree of class coupling could also be indicators. Also the amount of effort it takes to understand a piece of code or badly engineered software resulting, for example, from immature or undisciplined practices and using less qualified software engineers or also and one thing is also really important to mention is the lack of domain knowledge and also poor communication and coordination issues and teams, specifically if one of the teams are growing.Jeremy: Yeah, so that lack of domain knowledge, I would think that sort of gets to the crux of it, right? Because like I said in the beginning, we think we know how to solve a problem and we know how to solve it technically but what we're really trying to do is solve a problem that's very specific to a group of customers, whatever that group of customers might be and those different models could be your inventory system, right, and your inventory teams think of ... They think of inventory in a certain way and then you need software engineers to be able to build a system that makes sense for them -- that uses the same language, that uses the same sort of communication patterns or styles or things like that. What goes into building good software, then? Like what are the main components of building good software?Susanne: So your domain driven design comes with a core statement that in order to build better software we have to align its software design with the business domain, with the business needs, and the business strategy. So domain driven design helps you with aligning your software design with the business domain needs and the strategy and it's very crucial for building your software solution, because otherwise, you are building something that, for example, are matching the requirements of your users. Instead you have to collaborate intensively with your domain experts to gain domain knowledge and to understand the problem first before you're solving it. We are tending to jump directly into solving a problem technically and, yeah, yeah, we can just let's deploy it on a cubinated cluster, but we have not understood the problem first. That's really crucial to the build better software.Jeremy: Well, you mentioned the word strategy, which is one of those things where, I don't think a lot of people know what that exactly means. Like what is the strategy and you had talked a lot about Wardley Maps and sort of understanding this landscape and being able to use that to sort of plan your strategy and we can get into some of that more but can you explain Wardley Maps. We've talked about it before but just sort of in the context of domain driven design, how does that help you?Susanne: Yeah, I really like to combine domain driven design with Wardley Maps, because at first, like when you start the journey to a domain driven design, it's really overwhelming. It was for me, very overwhelming, because there's a lot of new terms and it requires some time to grasp and understand it, and since it's not applicable everywhere, Wardley maps helps you to visualize the journey to domain driven design and so Wardley Maps has been created by Samuel Wardley, a researcher from the UK and a Wardley Map is a representation of the landscape the business is operating in and it's really simple. So it consists of an Y axis for the value chain and then X axis for the evolution stages. A Wardley Map visualizes the evolution of a value chain, so the first question is so what is a value chain? So behind every user need, there is a value chain and start off with the questions like who are your users, who are go...

In this episode, Jeremy chats with Susanne Kaiser about the problems with poor software design, how Wardley Maps can help you focus on your core business domains, what are the patterns and practices of Domain Driven Design, and how they can help you build better serverless backends.

NOW PLAYING

Episode #42: Better Serverless Microservices using Domain Driven Design with Susanne Kaiser

0:00 54:50

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

Spill The Growth Spill The Growth This podcast is designed for anyone striving to become their best self, whether that means achieving financial independence, advancing in their career, or improving mental and physical health. Each episode features chats with friends and experts in well-being, career development, and personal growth. Through authentic discussions, expert insights, and everyday experiences, we explore what it means to grow and learn. With practical strategies and relatable stories, Spill The Growth is here to guide listeners on their unique journeys towards success—whatever that looks like for them. Caribbean Mentors Joel Millington chats with industry experts from the Caribbean Caribbean Mentors is a podcast for Caribbean people or persons interested in Caribbean businesses and the people behind them. Every Monday Joel Millington would be interviewing industry experts from the Caribbean as they highlight their journey. If you are looking for inspiration, motivation and advice from persons who are from the Caribbean then this podcast delivers. BitChat Fuf Fuv In today’s episode, we’re exploring BitChat (https://bitchat.co.com/), a breakthrough communication app powered by Bluetooth mesh networking. Created by Jack Dorsey and developed by Chandorkar Technologies, this open-source platform lets you message peers with no internet, SIM card, or server in between. Whether you're in a subway, facing a blackout, or living off-grid, BitChat ensures private, encrypted messaging on Android, iOS, macOS, and Windows. We’ll dive into how it works, its standout features like group hashtags and password-locked chats, and how to get it installed. A must-listen for privacy-focused users and emergency communicators alike.Hosted by Ausha. See ausha.co/privacy-policy for more information. Porch Chats with The Magruders The Magruders Sit on the porch with Taylor and Marcus Magruder to have a raw and largely unedited conversation about life, faith, and family.

Frequently Asked Questions

How long is this episode of Serverless Chats?

This episode is 54 minutes long.

When was this Serverless Chats episode published?

This episode was published on March 30, 2020.

What is this episode about?

About Susanne Kaiser:Susanne Kaiser is an independent Tech Consultant from Hamburg, Germany, and was previously working as a startup CTO transforming their SaaS solution from monolith to microservices. She has a background in computer sciences and...

Can I download this Serverless Chats episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!