Design guidelines for software processes knowledge repository development

https://doi.org/10.1016/j.infsof.2011.03.002Get rights and content

Abstract

Context

Staff turnover in organizations is an important issue that should be taken into account mainly for two reasons:

  • 1.

    Employees carry an organization’s knowledge in their heads and take it with them wherever they go

  • 2.

    Knowledge accessibility is limited to the amount of knowledge employees want to share

Objective

The aim of this work is to provide a set of guidelines to develop knowledge-based Process Asset Libraries (PAL) to store software engineering best practices, implemented as a wiki.

Method

Fieldwork was carried out in a 2-year training course in agile development. This was validated in two phases (with and without PAL), which were subdivided into two stages: Training and Project.

Results

The study demonstrates that, on the one hand, the learning process can be facilitated using PAL to transfer software process knowledge, and on the other hand, products were developed by junior software engineers with a greater degree of independence.

Conclusion

PAL, as a knowledge repository, helps software engineers to learn about development processes and improves the use of agile processes.

Introduction

This paper focuses on the use of wikis such as Web 2.0 knowledge repositories to help software engineers access, query and reuse process assets in projects and, consequently, improve the ease of learning and use of software engineering best practices.

A software process is a coherent set of policies, organizational structures, technologies, procedures and artifacts that are required to design, develop, install and maintain software products [16], [56]. Software engineers are not usually motivated to follow the process if they lack the supporting technology to create, store and search for the knowledge needed to develop their activities [13], [47]. Moreover, increasing employee turnover rates and a more mobile workforce intensify the need for knowledge about processes and projects to be stored and reused [5], [12]. Time and effort to describe a project process are reduced when a reusable process is instantiated instead of building the process from scratch [48].

Organizations need technological infrastructures to manage software process knowledge so that users can learn, use and adapt the process to carry out projects, by using repositories that foster collaboration. One such tool is a Process Asset Library (PAL). PAL is a knowledge repository used to store and make available all the process assets that are useful to those who define, implement, and manage processes in the organization [11], [57]. The stored process assets must be available for use in future projects and for defined software processes to be adapted for specific projects [6].

The objective of process assets is to help capture, understand and use the process, saving effort and thus improving productivity [23]. The assets generated in past projects can be stored at the end of the projects and reused in future projects. Reuse of these artifacts can save developers time and effort because the assets encapsulate the experience of the organization.

The use of a PAL is a required practice to achieve Level 3 of CMMI [11]. PAL facilitates standardization and process improvement in organizations and is a key enabler for achieving higher capability maturity [15].

Investments in designing and deploying processes are beneficial to small and large software intensive companies:

  • For a small organization, PAL is a key infrastructure element that:

    • Reduces training time to introduce improvements in the software process.

    • Helps lead to a process-focused culture that provides a backbone to the discipline.

    • Provides a key element to support a reduction in the time needed to plan new projects, a typical area where small (as well as large) projects are challenged.

    • Increases the capability to rapidly deploy and use processes to serve the needs of the marketplace.

  • For a large organization, PAL provides one of the infrastructure elements required to support movement from one set of behavior to another by making public the “new rules” that the organization intends to live by. A well-designed and deployed PAL also reduces planning, implementation, and training time in large organizations, especially for processes that are only intermittently performed.

However, for PAL to be effective, it is necessary to develop domain-specific process assets that can be easily stored and updated [39]. Moreover, PAL is required to capture the diverse forms of knowledge gained from projects [23]. It is difficult to ensure that new processes are adopted in organizations because are conditioned by existing relationships between people and artifacts [21]. PAL must store useful and accessible artifacts to help create the work products of the projects. Also, it must provide learning capabilities to develop collective skills, and be an effective learning environment for training new employees [6].

The objective is for software engineers to have greater autonomy in learning; there is greater emphasis on active learning, with creation and participation playing key roles [52]. During training, software engineers may be involved in a few small software development projects that must be accomplished quickly. At the same time, they must obtain theoretical knowledge of software processes [27]. Therefore, tools are required to provide different support levels for learning and using processes [16].

This work is related to the works of several authors [4], [51] who recommend knowledge management strategies and the use of wikis to create and maintain process information collaboratively and dynamically [34], [42].

Although the number of software processes knowledge repositories is limited, in agile development it is even more limited, mainly to file repositories [10]. In this regard, the challenge was twofold: first, we defined the knowledge management mechanisms that allow PAL to facilitate learning and using the software process. Then, we applied the theoretical guidance defined for agile development processes repositories.

To meet these challenges we defined a PAL, based on Knowledge Management, implemented through a wiki in order to:

  • Facilitate agile development processes learning by storing and reusing the process assets.

  • Improve software engineers’ accessibility to the processes learned.

To address the above objectives, this study proposes the use of Knowledge Management, which targets the capture, codification, and dissemination of knowledge across the organization to enhance value [1]. In software engineering, there has been much discussion about how to manage knowledge [7]. To facilitate the development of knowledge management systems, Web 2.0 offers a more interactive and collaborative framework of technologies, emphasizing peer social interaction and collective intelligence [38]. Knowledge management in PALs will increase skills to develop and store knowledge of organizational processes [14], [25]. Web 2.0 includes the concepts of weblogs, wikis, really simple syndication (RSS) functionality, social tagging, mashups and user-defined content. As a vehicle for implementing the solution proposed, the concept of Wiki is used.

Wikis are among the 17 best learning channels evaluated in terms of cost (expenses a learner is likely to incur using the learning channel); learning efficiency (the amount of calendar time required to transmit a given amount of new knowledge to learners; learning effectiveness (the volume of information that the learning channel can transmit to a learner) and currency of information (the average age of the information that is being transmitted). In the ranking of software learning channels, wikis are positioned in eighth place with the following values: cost (2), learning efficiency (9), learning effectiveness (16), and currency (3), where “1” is the top rank or score for each category [26]. In this ranking, only two channels out of the first seven support information and communications technologies (Web browsing and Webinars/e-learning). Unlike these two channels, wikis offer advantages in that they do not rely on search engines, knowledge can be formalized and the representation of knowledge can be maintained.

Wiki technologies are used as a collaborative web-based learning tool that provides opportunities for instantaneous revision and develops an efficient repository of new information [17]. Wikis support cooperative/collaborative learning and constructivist learning paradigms. Cooperative paradigms imply that wikis can serve as a knowledge platform for a community of practice where members of the community can share their knowledge with the group, put up interesting pieces of information, discuss issues, etc. Constructive paradigms imply that learners are engaged in interactions and explorations with learning materials and the wiki enables new ideas to integrate with previous knowledge.

Learners regularly use wikis as a source of information. Schaffert et al. [49] identify several tasks where wikis can be used: cognitive apprenticeship, learning within communities of practice, project-based learning, collaborative story writing, as well as interdisciplinary and intercultural learning. Parker and Chao [41] identify several benefits of the applications of wikis. Among these are higher levels of thought and information retention than those achieved when students work individually, enhanced peer interaction and group work, knowledge sharing and expertise among learners, and encouraging cooperation.

PAL can be implemented by a wiki to behave like a lightweight knowledge repository [44] in order to store, organize, distribute, reuse and preserve process assets; generate shared knowledge; increase the ability to rapidly deploy and use processes; help lead to a process-focused culture that provides a discipline for the organization and help processes learning and increase the quality of the products.

A wiki-based PAL to support agile software process learning and use was validated in a training course.

This paper is organized as follows. Section 2 presents works related to PAL. Section 3 describes the proposed solution. Section 4 describes the validation process. Section 5 analyzes and discusses the results. Finally, in Section 6, the authors present their conclusions.

Section snippets

Related work

On the Web, there are some specific repositories that implement corporate PALs. The Spawar System Center Pacific’s PAL [18] and Goddard Space Flight Center of NASA’s PAL [43] include artifacts such as guidelines, policies, standards, procedures and training material. These have a large amount of information that makes it difficult to understand the processes. They are organized by areas or categories but the assets are dispersed, so it is necessary to represent the evolution of assets and to

Solution proposed

The purpose of implementing PAL via a wiki is that this technology allows to implement a lightweight repository of knowledge that has impact on the knowledge management of software processes. Wikis are open, incremental and simple technologies. They address knowledge management issues such as usability, distributed access, diversity of knowledge, contended search, version control and content organization [54]. In software processes, wikis are among the software engineering best practices,

Validation description

PAL-Wiki was validated in a training course on agile software development in which 66 junior software engineers participated. The validation was carried out in two phases, and each phase included two stages: Training and Project (both stages are described in Sections 4.1 Phase 1: September 2008 to January 2009, 4.2 Phase 2: September 2009 to January 2010 respectively). The timelines for each phase and stage are shown in Fig. 5.

Fig. 6 shows the main activities for the validation, the data

Analysis of results and discussion

Table 1 presents, for each validation objective, the part of the validation used to assess its compliance.

Conclusions

This paper provides guidelines to build a PAL with a structure and functionalities based on Knowledge Management using a wiki system and an example of the proposed PAL applied to agile development processes.

The PAL-Wiki developed is featured to facilitate an effective learning environment to help users learn a process with a greater degree of independence from software engineers, provide knowledge sharing mechanisms and a knowledge repository with useful and accessible artifacts. The results

Acknowledgments

This work has been partially funded by the Spanish Ministry of Science and Technology through the TIN2009-10700 Project and the Spanish Ministry of Industry through Projects PPT-430000-2008-54, PPT-430000-2009-0012 and PPT-430000-2009-0013.

References (60)

  • J.A. Calvo-Manzano et al.

    A process asset library to support software process improvement in small settings

    Software Process Improvement, Communications in Computer and Information Science

    (2008)
  • T. Chau, F. Maurer, A case study of wiki-based experience repository at a medium-sized software company, in: Proc. of...
  • CMU/SEI-2006-TR-008, CMMI for Development, Version 1.2, Software Engineering Institute,...
  • J. Davies et al.

    Next generation knowledge management

    BT Technology Journal

    (2005)
  • J.C. Derniame et al.

    Key issues and new challenges in software process technology

    SPT, Software Process Technology, Novatica, Spain

    (2004)
  • J.S. Edwards et al.

    Knowledge management systems: finding a way with technology

    Journal of Knowledge Management

    (2005)
  • S. Fogle, et al., The Benchmarking Process: One Team’s Experience, Software Productivity Consortium, IEEE Software...
  • A. Fuggetta et al.

    Software engineering methods and technologies

  • V.Z. Gavgani et al.

    Application of web 2.0 tools in medical librarianship to support medicine 2.0

    Webology

    (2008)
  • B. Groarke, Running an SEPG – How SSC San Diego Operates its SEPG, SPEG 2006, Software Engineering Institute,...
  • J. Grudin, Enterprise knowledge management and emerging technologies, in: Proc. of the 39th Annual Hawaii International...
  • H. Hasan, J.A. Meloche, C.C. Pfaff, D. Willis, Beyond ubiquity: co-creating corporate knowledge with a wiki, in:...
  • W. Humphrey

    TSP: Leading a Development Team

    (2005)
  • A. Hyung-Jun et al.

    Utilizing knowledge context in virtual collaborative work

    Decision Support Systems

    (2005)
  • P. Jalote

    Software Project Management in Practice

    (2002)
  • D. Jeffery et al.

    The use and effects of an electronic process guide and experience repository: a longitudinal study

    Information and Software Technology

    (2005)
  • M. Jennex et al.

    Organizational Memory

    (2003)
  • C. Jones

    Software Engineering Best Practices: Lessons from Successful Projects in the Top Companies

    (2009)
  • G. Kelečić, Ž, Car, Teaching software process: an experience in implementing RUP in a student project, in: Proc. of the...
  • M. Kellner, U. Becker-Kornstaedt, W. Riddle, J. Tomal, M. Verlage, Process guides: effective guidance for process...
  • Cited by (45)

    • Comparative effects of knowledge-based antecedents in different realms of CMMI-based software process improvement success

      2022, Computer Standards and Interfaces
      Citation Excerpt :

      One step further, organizations should pay attention to activating and promoting explicit or tacit knowledge sharing because they impose different effects on different levels of SPI success. That is, organizations seeking the entry level of SPI success, such as the lower CMMI maturities, should build formal codified repositories, such as process asset libraries (PALs) [110,111] and product component libraries. In addition, organizations may also utilize existing informal collaborative social media and tools (e.g., wiki, Google Docs, Trello, SharePoint, etc.) as a venue to allow members to more freely preserve and share explicit knowledge.

    • Assessment of customer knowledge management in academic libraries: Design and validation of a checklist

      2021, Journal of Academic Librarianship
      Citation Excerpt :

      Organizations can gain knowledge that can anticipate users’ requirements or changes in taste and steer services and products toward them by analyzing knowledge about customer and extracting its relevant patterns (Zanjani et al., 2008). Accordingly, García et al. (2011) believe that the knowledge available in academic libraries should not be confined to what is circulated among the staff. Knowing about customers is crucial, and failing to do so might cause libraries to fall behind in competitive arenas.

    • Examining the impacts of organizational culture and top management support of knowledge sharing on the success of software process improvement

      2016, Computers in Human Behavior
      Citation Excerpt :

      This digitalized and weblized PAL facilitates standardization and process improvement in organizations and is a key enabler for achieving superior performance of improvements (Fogle, Loulis, & Neuendorf, 2001; SEI, 2010). PAL offers certain advantages, such as effective transfer of software process knowledge, storing software engineering best practice, reduced documentation, institutionalization of improved processes, and fostering of a knowledge-sharing culture (García et al., 2011). Top management may consider developing this tool to build a clan culture environment that enables more effective sharing of process knowledge and enhances peer interaction and teamwork.

    • A process reference model for managing living labs for ICT innovation: A proposal based on ISO/IEC 15504

      2013, Computer Standards and Interfaces
      Citation Excerpt :

      At this point, the success of a living lab depends on how the information flows and is shared among the partnership to facilitate the tacit knowledge sharing regarding technological solutions and the way to implement them in the different scenarios of the living lab. This type of knowledge is an important resource when it is has value for the organization, is difficult for competitors to imitate, is rare, and can be operationalized by the organization [28]. Team organization to implement innovation initiatives

    View all citing articles on Scopus
    View full text