We struggle with good functional design for as long as we build software at scale – which is for roughly 60 years meanwhile, and we haven’t solved the problem by far.
But while in the past bad design only meant a hard to change and maintain codebase, the consequences are much more drastic these days. In times of microservices, cloud native, APIs and more, bad design also leads to brittle, poorly scalable and available and sometimes even insecure systems at runtime. Additionally, it often leads to poorly accepted APIs, which in the worst case threatens our business.
So, good functional design is needed more desperately than ever. But easier said than done. What is good design and how can we create it?
In this session, first we will examine, why and how functional design affects the aforementioned properties of a system. Then, we will collect several timeless design foundations, traveling through several decades of computer science. After that, we will apply the concepts learned to our challenges today. Finally, we will derive a little design guide containing dos and don’ts for successful functional designs.
After this session, you will have gained a better understanding how to design modern systems that are successful and sustainable in development and operations.