«Software architects need to have social skills»
Our architects don't design houses, they improve software. What does this require? A passion for technology and humans. Our software architect Alex Stücker talks about why having social skills is essential in the IT industry.
Alex, what’s your team currently working on?
We’re working on the sales order and on improving the delivery status information. Right now, we’re gathering the knowledge and preparing the implementation concept. We recently improved and revamped our cancellation e-mails and turned the overwhelming text blocks into nicely formatted paragraphs with images.
What problems do you face on a daily basis and how do you deal with them?
Most importantly, we need to understand the root causes of problems and be clear about the reasons and motivations to implement an initiative. We mustn’t make assumptions blindly, but verify any assumptions in cooperation with subject matter experts and use this wealth of experience to deliver the right solution to the problem. To find as many blind spots as possible, we ask questions upon questions.
Event storming, domain storytelling, user story mapping, domain-driven design, and example mapping are also powerful tools that help us understand the problem and the domain. After getting a good overview, we break down the big problem into small sub-problems and tackle them one at a time. We can’t just think about something endlessly, have to get active at some point. The OODA Loop, which helps avoid Analysis Paralysis, is a great concept for this.
And what’s your role as a software architect?
The most important part of my role is developing the team. For example, I make sure that everyone understands and can make sense of the architectural patterns. I use a range of approaches and tools, such as coaching sessions, brown bags, coding dojos or pair and mob programming.
Dojo? I’ve only ever heard this in Zen meditation. What are coding dojos?
In traditional Japanese martial arts, a dojo is used as a place for training. That’s exactly what we do. Once a week, we get together as a team and identify problem areas in the existing code. Then we improve them. Once we’ve finished the dojo, we transfer the code into the productive system. What we used to discuss bilaterally, we now do as a team. By doing so, we maintain the quality of our code and spread knowledge within the team at the same time.
What else do you do?
I’m the go-to person for technical questions in my team. I support the team in developing and implementing various solutions. In other words, I provide people with the tools and show them when they need which one. They do most of the hands-on work. The coding. I want my team to be as self-sufficient as possible so we keep the bus factor large.
The bus factor?
That might sound a bit grim. The bus factor is a number that describes how many people could be hit by a bus before the project they’e working on stalls.
So what happens if the architect is run over?
The team would, of course, notice that an important knowledge carrier is missing. But if I've done a good job as a coach, my team would know how to bridge that gap. After all, when I'm on vacation, they also ask «What would Alex say?».
You mention your team a lot and hardly ever talk about yourself. I’d assumed that as an architect, you’d have quite a bit of experience and put yourself at the centre.
As an architect, I always encourage teamwork. While I contribute fresh ideas, I ask twice as many questions to help the team come up with even better ideas. We’re not lone wolves. It’s important that the team supports the ideas and can identify with them. Empowering and inspiring the team to break new ground has a lot to do with experience.
It’s also important to me to share knowledge and experience across teams and to learn from my colleagues in architecture guilds, for example. In the last seven years, I‘ve also been heavily involved in domain-driven design and learned that we need to understand the domain inside and out in order to develop the right thing. If this is the case, we can get going. Unlike in other companies, we don’t face any political hurdles.
How to become a software architect? Is this a course at uni?
Software architect is only a job title. There’s no course for it at university. Above all, you need to have a mix of soft and hard skills.
What do you mean?
We’re important contact persons for technical questions, not only for our own team. Other teams, domain architects, product owners and other stakeholders in the company also count on us. That’s why having good communication skills is essential. Keeping the big picture in mind is also key. Why? To set up the best possible software architecture and, if necessary, to be able to take the necessary corrective measures.
Which hard skills are you talking about?
As an architect, you need to have broad technical knowledge and experience. You need to know about clean code and design patterns as well as be comfortable at higher levels of abstraction, which is where the use of architectural patterns plays a central role. With experience in these areas, you’re equipped to master the technical challenges.
That sounds quite demanding.
Yes. And that's a good thing. As architects, we’re responsible for the technical solutions we deliver as a team. We, I’m referring to the team again, need to understand the problem in depth and breadth, work out suitable solutions and then go on to implement them. It takes a lot of knowledge and experience to do this, as well as a good balance between pragmatism and dogmatism.
So the cliché of the shrewd but slightly egomaniacal architect isn’t true?
I’ve met one or two such architects. However, software development primarily thrives on collaboration. We don’t work alone in a dark room without contact to the outside world. Egocentrism will not get us where we want to be. We want to hear everyone’s opinion. It's quite possible that it's the junior developer's input that saves us from taking a far-reaching wrong decision.
Why do you put so much emphasis on the human aspect?
Maybe it’s connected to the fact that I grew up in Venezuela, surrounded by very warm and emotional people. My motorcycle accident, which I had when I was 20 years old, certainly had an impact on me, too. I’ve been in a wheelchair ever since.
And yet you didn't end up in a social profession, but in the IT industry. Working with computers doesn't have a reputation for being particularly social.
At the time, I asked myself what job I could do well and in a wheelchair and what I’d also enjoy doing. Computer science was the clear winner. The common prejudice against IT is simply not true. We work very closely together and software development wouldn’t work without the human factor.
And how did you become a software architect?
Before joining Digitec Galaxus, I expanded my technical repertoire at two employers. All teams put great emphasis on clean and maintainable code. I still benefit from this experience today. I spent a lot of time learning about software design, architecture, requirement engineering and domain-driven design. In 2019, I joined Digitec Galaxus as a Senior Software Engineer. In the software team Moneypenny, we implemented architectural patterns such as Ports & Adapters, Vertical Slicing (package by component), Tactical DDD patterns, CQRS, and more. Just under two years later, I was offered the role as architect. I’ve been working as an architect for a few months now and I'm enjoying my everyday life and working with all my colleagues.
What surprised you the most about working at Digitec Galaxus?
When you hear e-commerce, you often just think of an online shop. But there’s so much more to it than that. Far more than just building a website. We have many subdomains that can be very complex. For example, there’s product data, purchasing and sales, logistics, finance, HR, community, personalisation, customer communication or business intelligence. We have so many domains, there’s something for everyone.
Once an architect, always an architect? Are you stuck in your position or are there possibilities to develop?
A title is just a title. If someone gets a new job title, it doesn't mean they have loads of new skills. I find it more important which challenges I can tackle than what my job title is. And there are plenty of challenges left.
There are many exciting employers for architects. Why Digitec Galaxus?
On the one hand, the complex subdomains make Digitec Galaxus exciting. On the other hand, we have great teams and cool people. This combination isn’t easy to find. I also like the company spirit. No matter if you’re a junior developer or an architect, everyone is welcome to contribute their knowledge and help find the best solution. So if you identify with these values: What are you waiting for? We need you!
Become part of the crew
Did Alex convince you and you want to join us as a software architect? By the way, we’re looking for more than one architect. Go for it! Check out all open positions.
News aren’t enough for me – it’s the stories behind the news that capture my interest. Curiosity is my constant companion and the reason why I spend Saturday afternoons in my favourite café, eavesdropping on city stories while planning my next travel adventure and creating new event ideas. Zen meditation can wait.