1 Introduction
This chapter covers
- Explaining what collaborative modeling is
- Looking at how design decisions can go wrong in software development
- Exploring a use case based on real life experiences
- Explaining how collaborative modeling enables teams to make design decisions
- Seeing the software architect as a catalyst for agile architecture
- Understanding the mental model of collaborative modeling
Designing a software system is difficult. Understanding the context in which a software system lives is more difficult. In order to understand that context, developers need to communicate with the business. But there is a lot that can go wrong while communicating with the business. For example people can misunderstand what is being said, they are scared to speak up, tensions could grow, and conflict can arise. In order to avoid these miscommunications, it is better to use visual techniques to make assumptions more explicit which will improve collaboration between developer teams and the domain experts. That improved collaboration will let software teams understand better the context and underlying problems the business has. That understanding enables the software teams to design and build sustainable quality software products. In this book we will teach you how to apply different visual techniques and how to facilitate better communication via collaborative modeling.