Dynamics of Software Product Management & Software Architecture
Garm Lucassen · 2014
Information exchange between software architects and product managers relies on simple communicative methods: long meetings supported by impromptu drawings. A counterintuitive premise when you realize software architecture has large, direct impact on product success factors: creating a winning product and delivering value to customers. This thesis analyzes the interaction between software architects and product managers to answer the main research question: “How to support information exchange between Software Product Managers and Software Architects?”. At the start of this thesis, we elaborately discuss literature on SPM, SA and their interdependence at software producing organizations. We argue that product managers and software architects contribute to each other’s goals in four activities: (1) requirements gathering, (2) prioritization, (3) refinement and (4) transferring product context. Subsequently, we conduct five case studies with to validate whether an interdependence between SPM and SA truly exists and to identify which activities SPM and SA collaborate on. The case study results confirm the existence of an interdependence between SPM and SA. Of the four activities identified in the literature study, requirements gathering and refinement are universal. Product managers require software architects’ technical input to complement their primarily functional requirements list. While software architects require requirement details from product managers to be able to properly develop new features. Prioritization is common but the information exchange is trivial and one-sided. Surprisingly, none of the case companies collaborate in transferring product context. In subsequent research among 25 practitioners, we confirm that refinement and gathering are the primary collaborative activities for SPM and SA at SPOs. The second phase of this thesis consists of design science research, itself comprising three stages. Based on the results of the case study, we present the Accurate Architectural Models Approach (AAMA) that engages both the product manager and software architect to ensure ongoing accuracy and timeliness. However, AAMA requires operationalization to achieve continuous model accuracy. With this goal in mind, we construct a simple wire-frame prototype for an automatic tool integrating AAMA. Next, we evaluate the prototype by means of 9 case studies with a product manager and software architect from 5 SPOs. The most important feedback is that practitioners think product managers should not create architectural models, that the level of architectural detail is too high and that, despite these drawbacks, there is considerable value in being able to view connections between requirements and code components. Based on this feedback, we iterate and create a V2 of the prototype and evaluate it with an online survey. V2 gives users considerably more freedom to choose when and how to create architectural models and what detail level to apply per requirement. Unfortunately, although respondents think that individual features do offer value, the total benefits of AAMA do not outweigh the necessary extra overhead. At least, that is what respondents believe based on a primitive prototype. Arguably, a real and working prototype will garner more positive results. On the other hand, we recognize that the presented solution incrementally improves the information exchange instead of solving concrete problems mentioned by practitioners. Consequently, respondents do not recognize or acknowledge that their processes need improvement, blinding them to the potential benefits. For AAMA to succeed, we first need to identify concrete problems that SPOs experience during requirements gathering and refinement and subsequently formulate specific solutions. Our next research efforts will focus on formally describing how requirements gathering and requirements refinement takes place in SPOs.