«This research has been partially sponsored by the Dutch Joint Academic and Commer- cial Quality Research & Development (Jacquard) program on Software ...»
106 8 Supporting Architectural Knowledge Management in Global Software Development In this chapter we report on a study in which we investigated how the practices for architectural knowledge management in global software development can be strengthened by adequate tool support. In this study we have looked into wikis and wiki functionalities and describe how generic wiki functionalities can be utilized to implement (part) of the practices. Furthermore, we show how we have implemented three use cases that can support the architectural knowledge management practices in global software development in a prototype semantic wiki implementation. 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 architectural knowledge elements to address stakeholders concerns or perform architectural design activities.
8.1 Introduction In the past few years, the software architecture community has shown an increasing interest in architectural knowledge, see e.g., (Jansen and Bosch, 2005; Kruchten et al., 2006; Babar et al., 2007, 2009; Farenhorst and de Boer, 2009). We deﬁne architectural knowledge as the integrated representation of the software architecture of a softwareintensive system (or a family of systems), the architectural design decisions, and the external context and environment. Sound management of architectural knowledge is important since it facilitaties a better decision-making process in shorter time, saving rework and improving the quality of the architecture (Babar et al., 2007; Rus and Lindvall, 2002).
In global software development, software engineering practices are performed at geographically separate locations. With the trend of GSD, the management of architectural knowledge becomes even more important due to challenges that arise as a result of the geographical, temporal, and socio-cultural distance involved with GSD
1078. Supporting AKM in GSD
(Holmstr¨ m et al., 2006). Overviews of the challenges in GSD have been widely reo ˚ ported (Battin et al., 2001; Agerfalk et al., 2005; Holmstr¨ m et al., 2006) and include o the lack of informal contact, linguistic differences, and coordination complexity. Furthermore, (Al-Ani and Redmiles, 2009) show that the decision-making-process in GSD typically is undocumented and hence runs implicit. Al-Ani and Redmiles show that regardless of team size or distribution, the decision-maker is the leader of the team in which the decision-making-process runs. In other words, sound architectural knowledge management is also affected by organizational and personal culture and tools alone do not provide a panacea.
In our research, we focus on using architectural knowledge effectively to overcome the challenges associated with GSD. We have selected and developed a number of practices for architectural knowledge management that help to overcome these GSD challenges, see Chapter 6. Although we have performed a validation of the usefulness of the architectural knowledge management practices (see Chapters 6 and 7), we envision wider tool-based support to implement the practices effectively.
We have gained conﬁdence that wikis are a useful means to manage architectural knowledge, see e.g., (Farenhorst et al., 2007a; Farenhorst and van Vliet, 2008). A wiki is a “collaboratively created and iteratively improved set of web pages, together with the software that manages the web pages” (Wagner, 2004), based on (Leuf and Cunningham, 2001). Yet, we currently lack insight into the extent to which wikis can be used to support architectural knowledge management in a global setting.
To address this lack, our research focuses on identifying generic functionalities implemented in wikis and on identifying how current practices for architectural knowledge management in GSD can be implemented using these functionalities.
The results show that wikis offer substantial functionality for implementing architectural knowledge management practices in GSD; yet, wikis alone are not enough for implementing architectural knowledge management for GSD. Three of the identiﬁed practices, mainly supporting a codiﬁcation strategy towards knowledge management, can be implemented completely. Another three architectural knowledge management practices for GSD, mainly supporting a personalization strategy towards knowledge management, can be implemented partially, and one practice cannot be implemented using wiki functionalities. Furthermore, because several distinct wiki functionalities can be used to implement the architectural knowledge management practices, we conclude that a hybrid approach including a codiﬁcation and a personalization strategy towards architectural knowledge management is beneﬁcial in GSD.
This chapter is structured as follows. First, §8.2 lists the research questions for this research and describes the approach we used. Next, §8.3 summarizes the generic wiki functionalities. In §8.4 we describe the architectural knowledge management practices for GSD and how these practices can be implemented using wiki functionalities. In §8.6 we provide our conclusions and we conclude this chapter with a discussion on the implications in §8.7.
108 8.2. Research Question and Approach
8.2 Research Question and Approach Over the past few years, the workshop series on Learning Software Organizations explored the use of wikis for knowledge management in software engineering, see e.g., (Chau and Maurer, 2004). More recently, speciﬁc proprietary wiki implementations have been developed for capturing architectural knowledge, e.g., (Zimmermann et al., 2009). In our research, we build upon the insights reported and are interested in identifying to what extent our architectural knowledge management practices speciﬁcally for GSD can be supported using wikis. Wikis have a broad applicability and to further broaden the applicability, we do not want to limit ourselves to speciﬁc wiki implementations. Hence, we ﬁrst identify a set of generic functionalities that are typically present in wiki applications. Using this list of wiki functionalities, we next determine for each architectural knowledge management practice on which wiki functionality or functionalities it can be built.
8.2.1 Research question
Following this, we formulate our central research question as follows:
What functionalities of wikis can be employed to implement architectural knowledge management practices for global software development?
8.2.2 Research approach To identify possible wiki functionalities, we performed a critical analysis of the literature. We used the IEEE Digital Library and ACM Portal and searched for papers whose abstracts or titles contained both the terms “wiki” and “functionalities”, since this directly follows from our research question. Following Brereton et al. (2007), we constructed different, resource-dependent searches in the libraries. From the resulting set of twenty papers, we read the titles, abstracts, and conclusions and found that a substantial set of papers concerned speciﬁc wiki implementations and did not focus on generic wiki functionalities. If the
and conclusions of a particular paper discussed wikis in general and listed functionalities, we selected that paper as a basis for our research.
For selecting the architectural knowledge management practices for global software development, we used our existing work as a basis for selecting the practices. In addition, we applied the approach described above and selected other relevant articles from the IEEE and ACM Digital Libraries using the keyword “architectural knowledge management”. This resulted in 36 papers matching our search criteria. Of these papers, we read the abstract and conclusions, as described above.
1098. Supporting AKM in GSD
8.3 Wiki Functionalities Although wikis build upon web technologies that have been around for quite some years, wikis offer the ability to change and reﬁne the content of web pages immediately; as such, wikis augment generic web functionalities and offer new collaboration possibilities.
For our research, we are interested in deﬁning generic wiki functionalities. For the literature research performed to elicit these functionalities, we selected the papers listed below as a basis for generic wiki functionalities. From these literature sources, we deducted the generic wiki functionalities and combined and merged terminology if terms differed across the sources.
• Wagner, C. Wiki: A Technology for Conversational Knowledge Management and Group Collaboration. Communications of the Association for Information Systems, 13:265–289, 2004.
• Cervone, F. So You Want a Wiki - Now What? Accessed January, 2010, 2008.
• Parker, K. R. and J. T. Chao. Wiki as a Teaching Tool. Interdisciplinary Journal of Knowledge and Learning Objects, 3:57–72, 2007.
• Auger, N., R. Raitman, W. Zhou. Teaching and Learning Onine with Wikis.
Beyond the comfort zone : proceedings of the 21st ASCILITE Conference, pp.
1. Collaborative authoring (Parker and Chao, 2007) – Wiki users can collaboratively create documents or review and/or edit wiki content created by others. As such, all wiki users are both reader (consumer) and contributer (producer) of the information stored in wikis. Furthermore, wiki content is not static in nature, but rather dynamic: several versions of the wiki content (wiki pages) can exist. Collaborative authoring is possible because wikis are open systems in nature1 and allow the content to be constructed incrementally.
2. Authentication of users (Ebersbach et al., 2008; Parker and Chao, 2007) – Authentication is the process of determining whether someone actually is who it is declared to be. Usually, wikis implement authentication using username/password pairs. Authentication allows wiki administrators to prevent certain users from editing or viewing wiki content (applying authorization).
3. Proﬁle pages (Augar et al., 2004) – Functionality that is related to the “Authentication of users” allows users to create proﬁle pages. On these pages, wiki contributors 1 Using other functionality (i.e., “Authentication of users”), reading and/or modifying wiki content may be restricted (Ebersbach et al., 2008).
8.4. Implementing AKM Practices for GSD with Wiki Functionalities can describe themselves and their expertise areas, which may facilitate (architectural) knowledge sharing even further.
4. History (or (back-)tracking) (Ebersbach et al., 2008; Leuf and Cunningham, 2001;
Parker and Chao, 2007) – Wikis offer the possibility to roll back changes that were made to wiki content by storing all previous versions of the content. As such, this functionality makes it possible to revert to status of the wiki at any given moment in time.
5 Search functionality (Ebersbach et al., 2008) – Wikis offer full-text or title search to allow for quick access to wiki content.
6. Share information among participants (Leuf and Cunningham, 2001) – Wikis, as other web-based systems, offer the functionality to share (possibly collaboratively authored) content to other users of the wiki (Parker and Chao, 2007). Speciﬁc mechanisms that implement this in wikis include rss feeds or the possibility to subscribe to changes on designated wiki content.
7. Create a multi-media base (Parker and Chao, 2007) – Wikis allow for collaboration between groups (e.g., project members) by storing information such as documents, presentations, audio/video content, and meeting minutes as appendices (attachments) on wiki pages. Furthermore, wiki users can use rich text functionality in individual wiki pages to augment text and enhance information density.
8. Create trails between pages (Reinhold, 2006) – Wikis can offer a wide range of interlinked content (pages). With large numbers of pages, and various links between these pages back and forth, it may become difﬁcult for someone to ﬁnd one’s way through the content. Wiki trails address this issue by offering the possibility to deﬁne paths or trails that suit the information needs for speciﬁc stakeholders.
8.4 Implementing Architectural Knowledge Management Practices for Global Software Development with Wiki Functionalities In this section we describe a list of architectural knowledge management practices for global software development and elaborate on the wiki functionalities that can be used to implement each of these practices. First, we give a brief overview of the architectural knowledge management practices for GSD that were distilled from our previous research and additional literature. Next, §8.4.2 shows how we can map the architectural knowledge management practices for GSD onto generic wiki functionalities.
8.4.1 Architectural knowledge management practices for global software development This section lists the literature sources we used as a basis to elicit the architectural knowledge management practices for global software development.
• Babar, M. A., T. Dingsøyr, P. Lago, and H. van Vliet. Software Architecture Knowledge Management. Springer Berlin / Heidelberg, 2009.
• de Boer, R. C., R. Farenhorst, P. Lago, H. van Vliet, V. Clerc, and A. Jansen.
Architectural Knowledge: Getting to the Core. In Overhage, S., C. Szyperski, R. Reussner, and J. A. Stafford, editors, QoSA 2007, LNCS 4880, pages 197–214,
2007. Springer Berlin / Heidelberg.
• 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, 2008.
• Rus, I. and M. Lindvall. Knowledge Management in Software Engineering. IEEE Software, 19(3):26–38, 2002.
• Neches, R., R. Fikes, T. Finin, T. R. Gruber, R. S. Patil, T. E. Senator, and W. R.
Swartout. Enabling Technology for Knowledge Sharing. AI Magazine, 12(3):