Can you give a short introduction of yourself?
Currently, I’ m working as a freelance consultant, coach and trainer – helping teams to deliver great software. I have always been a tinkerer, the kid who takes things apart to learn how they work. What clever design hacks were used? Which trade-offs were considered? How can they be applied to derive solutions for my own projects? This fascination for the creative exploration of technology sparked my interest in IT. But in the mid-1980s in East Germany, you could not just buy a computer at the store; you had to get creative yourself, right down to scavenging for discarded hardware and the smell of molten tin. The skills acquired through this process were to come in handy later in my career as a researcher, software developer, and software architecture professional. Less soldering is involved here, but software architecture entails designing a viable solution while being constrained by a plethora of things that have nothing to do with writing code. And I really enjoy discovering how organizations, processes, and machines work, how people interact with them, and how to come up with solutions that meet the sweet spot of this multidimensional optimization problem we call systems engineering. As a trainer for software architecture, I try to convey these skills to others.
What do you think the future of this industry will look like?
Information technology itself is one of the driving forces behind Charles Stross’ observation of an accelerating unpredictability of the future. But Stross’ “whopping 5% of utterly unpredictable deep craziness” aside, there still will be people that build IT systems by transforming requirements into specifications and deriving design solutions that provide a sensible fit between needs and capabilities. Those systems will be more complex and mission critical than ever. At the same time, they are subject to growing adaptation pressure caused by evolving technologies and changing business requirements. As humans can only handle so much complexity, even when assisted by intelligent technological solutions, the only way to deal with increasing complexity is to shape it, to give it some structure, to break it down into comprehensible and maintainable chunks that are ordered according to explicit rules. Software architecture accomplishes exactly that for IT systems and will be a major success factor for organizations designing, building, and maintaining those systems.
Which title(s) have you made with us?
“Software Architecture Foundation” by Gernot Starke and me was the first book we made with Van Haren and my first direct contact with a large publisher. Although having contributed to a few other books, I was deeply impressed by how much value is added by a dedicated and knowledgeable editor, and I really like the result. I hope that this exam preparation guide will be useful for software architecture professionals beyond the scope of the iSAQB Foundation Level exam.
Why did you start writing about this subject?
When Gernot invites you to finish a book with him, it would be a foolish thing to decline. You would miss out on a wild ride and a great opportunity to improve, clarify, and systematize your own knowledge of software architecture. Furthermore, I have wished for such a book to use in my own software architecture trainings. If the universe does not deliver, you have to do it yourself. And last but not least, I was in the process of creating the comprehensive reference training material for the iSAQB (International Software Architecture Qualification Board), which is now being distributed to universities and international training providers. That complemented writing a book about this topic quite splendidly.
What genres do you like to read in your free time?
SciFi (Gibson, Stephenson, Banks, Morgan) with a good dash of space opera (Hamilton, Corey) and a side dish of fantasy (Pratchett, Tolkien). Besides that, non-fiction literature about aerospace, like Brian Shul’s “Sled Driver”, John D. Clark’s “Ignition!” and W. David Woods’ “How Apollo Flew to the Moon which I consider to be the most comprehensive book on humanity’s greatest journey and a good inspiration for systems architects.
What did you study? Or was it your career that put you on the path of authorship?
I studied computer science at the Dresden University of Technology and enjoyed teaching and sharing knowledge during my PhD and postgraduate studies as a way to gain knowledge. To teach something one must first develop a deeper understanding of the subject. In retrospect, becoming a software architecture trainer and eventually an author seemed like an inevitable progression.
What skills that you possess now would you have liked to learn in school?
Preparing a tax return. Cooking food that is both healthy and tasty. Putting Kant’s categorical imperative into practice without getting discouraged when you fail or getting mad at people who don’t care (still improving on the last part).
What is the best book you’ve ever read?
This is an incredibly difficult question for an avid reader. There are many dimensions of quality in books, but there is only one Hitchhikers Guide to the Galaxy. As a non-fiction book, Cialdini’s “Psychology of Persuasion” has given me insights on human behavior that are very valuable to a software architect. But to really understand the human side, Robert M. Pirsig’s “Zen and the Art of Motorcycle Maintenance” is likely the best.
What did writing a book bring you?
The collaboration with Gernot was intense and rewarding. While being a tenacious mental sparring partner, he is also the most pleasant and reliable person to work with. His pragmatic and practice-oriented approach to the topic of software architecture helped me a lot in developing a more precise understanding of software architecture concepts that are still ambiguous, diffuse, overloaded, or not well represented in scientific literature. Putting something into text form is, at least for me, a process of reflecting on, evaluating, and structuring ideas and mental concepts. So hopefully writing this book has made me a more knowledgeable software architecture professional and trainer.