Are you struggling with long architecture descriptions that are not followed and quickly become inconsistent with the implemented system? “Improving the Consistency and Usefulness of Architecture Descriptions: Guidelines for Architects” by our PhD student Rebekka Wohlrab, analyzes how practitioners describe their architecture and can keep this description in sync with the developed code and system.
When developing complex products, like vehicles, containing massive amounts of code and involving a very large number of teams and people, communication and consistency are of outmost importance to ensure high quality. To improve communication and consistency, an architecture has to be designed that says how parts developed by different teams can be connected and what rules need to be followed.
However, often there is a big gap between how the system architects design the architecture, and how developers actually implement it in code. Architecture descriptions are usually very extensive and developers typically don’t have time to read them in detail, but focus on the development of their own parts of the system.
Nowadays, more and more companies see the need for and the potential of agile methods. However, agile methods also come with challenges for the architecture. Practitioners do not want to create a detailed plan in the beginning but take changing needs into account and deliver new functionality in fast cycles. For architects, it is difficult to not limit the developers in what they are able to change later, but still create an initial plan that will help to guide the development.
How much can we plan the architecture from the beginning, and how much should be created along the development process? How can we make sure that the program code is more consistent with the architecture? What are guidelines for system architects that try to write more useful architecture descriptions?
The goal of this award-winning research article was to understand and reduce the gap between what developers implement in program code and the architecture descriptions of the system. The article presents a study that resulted in six guidelines that architects can use in order to make the description of the architecture more useful and consistent with the actually developed system.
The guidelines recommend limiting the information in the initial architecture description, but including what is needed to connect parts developed by different teams and support communication between teams. Architects should carefully evaluate future plans for the system, but also be in close contact with development teams to understand how the architecture should be changed with time. To support traceability and transparent documentation, we recommend to use one source of information – for example, in a common tool to manage information throughout the development process.
We’re very happy that our industrial PhD student Rebekka Wohlrab has received the best paper award at the IEEE International Conference on Software Architecture (ICSA’19), together with Ulf Eliasson, Patrizio Pelliccione, and Rogardt Heldal, congratulations!