«This research has been partially sponsored by the Dutch Joint Academic and Commer- cial Quality Research & Development (Jacquard) program on Software ...»
1.6.4 3 – Study: Identifying product practices for managing architectural knowledge in global software development The research as described in §1.6.3 led us to believe that the industrial partners where we performed these studies have a focus on practices that relate to the development process exists. An alternative approach towards managing architectural knowledge is capturing architectural knowledge in the product. This third study, performed in 2008was aimed at identifying possible product practices for architectural knowledge management in global software development.
We used the results of a series of software product assessments performed by an industrial partner in the GRIFFIN research, Organization C. This organization has laid down its experience in performing over 20 of these assessments in a reusable framework containing evaluation criteria (i.e., a software quality evaluation framework). These evaluation criteria are backed by literature as to positively impact quality attributes (as
18 1.6. Research Methods and Studies
e.g., speciﬁed in (ISO/IEC, 2001)) and hence serve as measures that can be taken in the software product to increase its quality.
Some of the products included in our study were developed using GSD, others were developed using collocated software development. We compared each of these two groups using a reference framework. This reference framework consisted of the set of evaluation criteria used in the assessments that concern architectural knowledge and of key elements of architectural knowledge that were distilled via a critical analysis of the literature.
Our main discovery during this research was an observed indifference between the use of architectural knowledge in the product in GSD and collocated software development. Several observations were made on the application of architectural knowledge in products developed using GSD.
1.6.5 4 – Case study: Identifying practices for architectural knowledge management in global software development This case study, performed in 2008, was aimed at deﬁning practices for the management of architectural knowledge in global software development. Our previous studies have provided insight into practices that are typically performed at the organizations involved in these studies. This study was aimed at identifying and proposing a more generic collection of practices for architectural knowledge management in GSD.
We prepared the case study by performing a critical analysis of the requirements engineering literature on solutions to overcome challenges in GSD. We collected a combined series of requirements engineering practices and translated these to the disciplines of architecture and architectural knowledge management. This research resulted in a collection of seven practices. Most of these practices support a personalization strategy towards knowledge management, a minority supports a codiﬁcation strategy.
The combined set of practices identiﬁed through the literature analysis was used as input for the case study. The case study’s aim was to perform a validation of the perceived usefulness of these practices at GSD projects of an industrial partner in the GRIFFIN project, Organization D. In addition, we related the perceived usefulness of these practices to the number of sites in the GSD projects. Before sending out a survey to all Dutch architects employed at Organization D, we conducted several semistructured interviews to collect an initial view of the software engineering practices that were in place at Organization D.
The study showed that the architectural knowledge management practices in general are perceived as useful. The personalization practices are perceived as more useful than the codiﬁcation practices. Moreover, this study showed a peak in perceived usefulness at projects that run with three sites. We found that these several of these software development projects were not started with three sites but evolved into that stage after having run for some time with two sites. The results denote a need to implement architectural knowledge management practices for global software development proactively to prevent problems with architectural knowledge sharing from arising.
1.6.6 5 – Study: (Semantic) wiki support for architectural knowledge management in global software development Architectural knowledge management can be supported using a variety of tool supported mechanisms to ease its adoption and use. In this study, performed in 2010, we ﬁrst identiﬁed to what extent wikis can be used to support architectural knowledge management in global software development. Wikis have proven to provide support in knowledge sharing and community building. As such, employing wikis may help to overcome several challenges (e.g., those related to geographical distance) involved in GSD.
In this study, we found that wikis form a good mechanism to implement a hybrid strategy for managing architectural knowledge (focused on both codiﬁcation and personalization knowledge management practices) in GSD. Furthermore, we discovered that a substantial part of the AKM practices may actually be implemented using wikis.
To further substantiate the results obtained in this study, a prototype implementation of an architectural knowledge sharing environment was developed in 2010. Instead of using a wiki for this prototype, we have used a semantic wiki for the prototype implementation. Semantic wikis combine wiki properties such as ease of use, open collaboration, and linking with Semantic Web technologies such as structured content, knowledge models in the form of ontologies, and reasoning support based on formal ontologies with reasoning rules (Schaffert et al., 2008; Liang et al., 2009). For the prototype, we developed a software engineering ontology and implemented three use cases (i.e., possible uses) for architectural knowledge using this ontology. The use case of software reuse supports the architect to if existing software can be reused to implement a new functional requirement. The use case changing requirement supports the architect in updating an architecture design according to a changing requirement. The use case design impact evaluation supports the architect in evaluating and identiﬁng the impact of changing requirements on architecture design.
This study has brought us the insight that wikis, and semantic wikis in particular, are powerful means to capture architectural knowledge and reason with (query, select) the combined set of knowledge to address stakeholders’ concerns or perform architectural design activities in GSD.
1.6.7 6 – Case study: Understanding how architectural knowledge is managed In the previous studies, we have collected a set of practices for the management of architectural knowledge in global software development. The results of these studies have strengthened us to believe that the identiﬁed practices are suitable for use in GSD.
In this descriptive case study, conducted at Organization E as part of the Stephenson project in 2010-2011, we intended to validate this theory: the actual use of the collected set of practices for architectural knowledge management for global software development that are the result of research described in this thesis.
We used a questionnaire with the aim to explore and understand the way communication, coordination, and knowledge sharing occurs at the activities performed at Or
20 1.7. Publications
ganization E. The questionnaire was used as the basis for conducting interviews at the three major development sites at Organization E.
The results show that Organization E emphasizes architectural knowledge management practices that promote decentralization and, as a consequence, personalization (as
opposed to centralization viz. codiﬁcation). We identiﬁed one new useful practice:
‘peered sites’, covering a combination of activities that support a balance in decisionmaking power across sites.
1.7 Publications The research presented in this thesis has been published previously at conferences and workshops. The publications are included in subsequent chapters as-is, with the exception of added chapter introductions (in italics) and some minor corrections of future work paragraphs. The research reported in this thesis has been performed by Viktor Clerc as the prime researcher (except for the papers that constitute Chapter 8; this research was performed in collaboration with Edwin de Vries, Antony Tang, and Peng Liang) and have been written down by Viktor. Most of the publications are co-authored by Patricia Lago and Hans van Vliet. For these publications, Patricia and Hans provided frequent suggestions on the publication structure and various other review comments.
Parts of Chapter 2 have been previously published as:
• Clerc, V., P. Lago, and H. van Vliet. The Architect’s Mindset. In Overhage, S., C.
Szyperski, R. Reussner, and J. A. Stafford, editors, Third International Conference on the Quality of Software Architectures (QoSA 2007), volume 4880 of Lecture Notes in Computer Science, pages 231–249, Boston, USA, 2007. Springer Berlin / Heidelberg.
Parts of Chapter 3 have been previously published as:
• Clerc, V., P. Lago, and H. van Vliet. Assessing a Multi-Site Development Organization for Architectural Compliance. In 6th Working IEEE/IFIP Conference on Software Architecture (WICSA 2007), Mumbai, India, 2007. IEEE Computer Society.
Parts of Chapter 4 have been previously published as:
• Clerc, V., P. Lago, and H. van Vliet. Global Software Development: Are Architectural Rules the Answer? In Second IEEE International Conference on Global Software Engineering (ICGSE’07), pages 225–234, Munich, Germany,
2007. IEEE Computer Society.
Parts of Chapter 5 have been previously published as:
• Clerc, V. Do Architectural Knowledge Product Measures Make a Difference in GSD? In Workshop on KNOWledge engINeering in Global software development (KNOWING), pages 382–387, Limerick, Ireland, 2009. IEEE Computer Society.
Parts of Chapter 6 have been previously published as:
• Clerc, V. Towards Architectural Knowledge Management Practices for Global Software Development. In Third ICSE Workshop on SHAring and Reusing architectural Knowledge (SHARK’08), pages 23–28, Leipzig, Germany, 2008. ACM.
Parts of Chapter 7 have been previously published as:
• Clerc, V., P. Lago, and H. van Vliet. The Usefulness of Architectural Knowledge Management Practices in GSD. In Fourth IEEE International Conference on Global Software Engineering (ICGSE’09), pages 73–82, Limerick, Ireland,
2009. IEEE Computer Society.
Chapter 8 consists of two previously published papers. The paper with Edwin de Vries and Patricia Lago is based on research performed by Edwin. Viktor extended his work in providing the comparison between wikis and functionalities. The book chapter with Antony Tang, Peng Liang, and Hans van Vliet has been co-authored by Antony, Peng, and Viktor and reviewed by Hans. The parts of the book chapter included in this thesis were written by Viktor.
• Clerc, V., E. de Vries, and P. Lago. Using Wikis to Support Architectural Knowledge Management in Global Software Development. In Fifth ICSE Workshop on SHAring and Reusing architectural Knowledge (SHARK’10), pages 37–43, Cape Town, South Africa, 2010. ACM.
• Tang, A., P. Liang, V. Clerc, and H. van Vliet. Traceability in the Co-evolution of Architectural Requirements and Design. In Avgeriou, P., J. Grundy, J. G. Hall, P.
Lago, and I. Mistr´k, editors, Relating Software Requirements and Architectures, ı pages 35–60, 2011. Springer.
Parts of Chapter 9 have been previously published as:
• Clerc, V., P. Lago, and H. van Vliet. Architectural Knowledge Management Practices in Agile Global Software Development. In First Workshop on Architecture in Global Software Engineering (AGSE’11), 2011. IEEE Computer Society.
In this chapter, we describe how practitioners in the Netherlands view and use architectural knowledge. We have investigated how several proposed use cases for architectural knowledge are actually used by practitioners with architecting responsibilities in Dutch various organizations. This study reveals the mindset of practitioners with respect to the use of architectural knowledge: we list what use cases are important for what architecting roles and on what architecture levels.
2.1 Introduction A software architecture is a transferable abstraction of a system and allows for communication of that system to different stakeholders (Bass et al., 2003). Software architecture and software architecture practices are gaining importance since they enable reasoning on the design of the system and verifying quality attributes of a system at an early stage in the development cycle.
Rather than viewing the software architecture as a set of components and connectors, recent literature regards the software architecture as the set of architectural design decisions (Bass et al., 2003; Jansen and Bosch, 2005). The collection of architectural design decisions and the resulting design together constitute architectural knowledge (Kruchten et al., 2006). Besides providing insight into the current software architecture, architectural knowledge also caters for the ‘why’ of the software architecture, its rationale.