Blog

Shaping Architecture Together - Richard Seidl

Written by Richard Seidl | Nov 20, 2023 11:00:00 PM

A stable architecture is the key to high-quality software. Collaboration within the development team has a major influence on the structure of the system, because the architecture is created when code is written. Melanie and Maximilian give us examples of how architecture work can be practiced and tips on how to introduce the idea of this collaboration into your own team.

“If no solution feels better or worse at a point in time x, then those who have a reliable result faster win.” - Melanie Brunnbauer, Maximilian Aulinger

Maximilian Aulinger is an agile coach at andrena objects ag. He supports software development teams with a twinkle in his eye and a pinch of solution focus. The focus is always on getting off the beaten track in order to achieve greater benefits.

Dr. Melanie Brunnbauer is an agile software developer at andrena objects ag). When working in development teams, she is not only concerned with the internal and external quality of the software product, but also with the continuous improvement of collaboration within the team.

Highlights of this episode:

  • Maximilian and Melanie share their experiences with collaborative architecture design
  • They emphasize the importance of teamwork and how it leads to better technical solutions
  • Experiments such as “double pairs” and “mob programming” are presented and explained
  • The importance of making and implementing architecture decisions as a team is discussed
  • The importance of testers in this process is emphasized
  • They give tips on how to start designing architectures together in your own team

Further links:

Together for better architectures: an integrative approach

Find out how architecture can be designed together and which methods can help. Maximilian Aulinger and Melanie Brunnbauer share their insights and experiences on how an integrative approach can improve software architecture.

The importance of joint design

In the world of software development, architecture forms the backbone of every application. However, its design is often placed on individual shoulders - a practice that presents both challenges and opportunities. Today I had the pleasure of welcoming Maximilian Aulinger and Melanie Brunnbauer and we took an in-depth look at the topic of ‘designing architecture together’. Maximilian and Melanie provided valuable insights into how a collective approach can not only improve the quality of architecture, but also promote teamwork.

Experiments are the key to innovation

A key topic of our conversation was the role of experimentation in architectural design. Maximilian shared his experience as an agile coach and emphasized the importance of trying out and evaluating different approaches. He explained that experiments such as ‘double pairs’ encourage teams to develop different solutions in parallel, creating a more informed basis for decision-making.

The challenge of architectural decisions

Melanie talked about the gravity of architecture decisions and how they can affect the team. Working together on such decisions helps to create a broader knowledge base and therefore make better informed decisions. This process allows all team members to contribute their perspectives and helps to ensure that the final solution takes all relevant aspects into account.

Mob programming as a bridge to understanding

One interesting method is mob programming. Melanie explained how this technique helps the whole team to develop a deeper understanding of the architectural decisions made. The shared code approach promotes knowledge transfer and encourages creative thinking at the same time.

A small step with a big impact

Maximilian recommended that listeners start small if they want to try out new methods in their team. Even small experiments can make a significant difference and raise awareness of the value of collaborative design.

Innovative solutions

Our conversation highlighted the many facets of collaborative architecture design and emphasized its importance for successful software projects. By experimenting and sharing knowledge, teams can not only improve the way they work, but also find innovative solutions that benefit everyone involved.