Apiumhub team interviewed Kenny Baas-Schwegler – socio-technical and Domain-Driven Design architect @Xebia. Facilitator of visual and collaborative modelling using Deep Democracy Domain-Driven Design to find out key software architecture trends as well as other key software architecture lessons learned over the past years.
Interview with Kenny Baas-Schwegler: Software architecture trends & key lessons learned
What is software architecture for you?
I describe the term architecture how Grady Booch described it, learned from Ruth Malan: “Architecture represents the significance ‘decisions’ that shape a system” and to continue that quote of his “Software architecture is all about decisions. Models are largely just scaffolding we use to visualize, reason about, and document those decisions. Code is the medium whereby we make those decisions manifest.”
What are the top 3 soft skills you believe software architects need ?
For me, the most important thing is being able to effectively facilitate collaborative modelling sessions. And then you require three top soft skills:
- Gain all insights and knowledge into your model from the group by being aware, and know how to deal with Ranking and Biases
- Dealing effectively with conflict arising from those different perspectives, and knowing how to make an enriched decision that everyone has real consensus on with for instance Deep Democracy the lew method.
- Some problem cannot be solved and are polarities, spotting those and managing these (for instance big up-front architecture vs iterative architecture) and moving away from either-or thinking to both-and.
What are the top 3 responsibilities of a Software Architect within the company?
- Making information flow and align teams and people with the software system that is being built by keeping a birds-eye view of the sociotechnical system of the company
- Facilitate collaborative design decisions that shape the architecture
- Being a translator between the time-span of the strategy of the C-level (multiple years) towards management (year) and the teams (2-week sprints) (Credits: Jabe Bloom)
What are the key software architecture attributes?
- Connascence of name
What are the key software architecture metrics?
- Amount of cross-team communication
- Amount of breaking API changes
- Cyclomatic complexity
Critical Thinking vs System thinking in software architecture, what does it mean for you?
For me this is a polarity, it is Both-and for and architect. The key is in managing that polarity and like Ruth Malan says think about the complexity within boundaries, and think about what spans in between the boundaries.
What is your opinion about Innovation vs Pragmatism?
Again a polarity, we need both-and and the key is managing these polarities and know when you end up in the negative part of one of the polarities. I use polarity management by Barry Johnson for it
What are your thoughts on intellectual control?
Instead of concerning about the size of something (microservices), concern ourselves with what we can handle on our intellectual control, or like Team topologies mentions: software that fits in our brain, a team first approach.
What are your insights about Performance & Responsiveness?
Have none at the moment 🙂
What are your expectations regarding software architecture events, do you think in 2021 everything will be online?
I think perhaps around the end of 2021 things will balance back. Conference will still be held in person. I do think that we need to reinvent working at the office to only keep it to meetings we need to see each other (which we do, in person) and that we also need to get used to smaller interactions online
What software architecture trends have you noticed this year?
The need for collaborative modelling practices. Instead of forming an architecture through short 1-on-1 conversations, which is expensive but easier to control. We need to collaboratively model our design and make design decisions towards sustainable architecture.
Do you believe that silver bullets exist in software architecture?
What is your opinion about Elasticity vs Scalability ?
I do not keep myself busy with that 😀
Could you share your insights regarding software architecture patterns?
Patterns are there for people to share who understand software architecture. The problem why most patterns, like microservices, go wrong is that people without the experience pick them up and implement for the wrong reasons in the wrong way (with the best intentions). We need more mentorship and more collaboration and especially be aware how ranking impacts making design decisions.
What recommendation would you give to big international companies in terms of software architecture?
Well I am biased, but look at Domain-Driven Design collaborative modelling practices and Strategic Design and how it relates to enterprise architecture. Checkout ddd-crew github page.
What recommendation would you give to startups in terms of software architecture?
Start using Wardley mapping to distill the core of your models and know where to focus your experiments on
What are the main issues in software architecture?
Ranking, Bias, Polarities and making collective autocratic decisions that we have consensus on.
Your architecture journey: lessons learned ?
There is so much knowledge we loose, so many books and wisdom we are not aware of. Look for that information, my hero’s for that at the moment are Ruth Malan and Rebecca Wirfs-Brock.
Feel free to share any other thoughts related to software architecture.
We talk a lot about culture, look for the knowledge at the expert. Collaborate and take courses in Anthropology, they can really help you map out your culture and help you change it in a sustainable way.
BIO & Contact Info
Socio-technical and Domain-Driven Design architect @Xebia. Facilitator of visual and collaborative modelling using Deep Democracy Domain-Driven Design
A lot of knowledge is lost when designing and building software — lost because of hand-overs in a telephone game, confusing communication by not having a shared language, discussing complexity without visualisation and by not leveraging the full potential and wisdom of the diversity of the people. That lost knowledge while creating software impacts the sustainability, quality and value of the software product. Kenny Baas-Schwegler is a socio-technical architect. He blends IT approaches like Domain-Driven Design and Continuous Delivery and facilitates change through using visual collaboration practices, the Cynefin framework and Deep Democracy. Kenny empowers and collaboratively enables organisations, teams and groups of people in designing and building sustainable quality software products.
One of Kenny’s core principles is sharing knowledge. He does that by writing a blog on his website baasie.com and helping curate the Leanpub book visual collaboration tool. Besides writing, he also shares experience in the Domain-Driven Design community as an organiser of Virtual Domain-Driven Design (virtualddd.com) and Domain Driven Design Nederland. He enjoys being a public speaker by giving talks and hands-on workshops at conferences and meetups.