Design guidelines for software processes knowledge repository development
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)
- et al.
An empirical study of relationships among extreme programming engineering activities
Information and Software Technology
(2006) - et al.
Investigating knowledge management practices in software development organisations – an Australian experience
Information and Software Technology
(2008) - et al.
Knowledge management in software engineering: a systematic review of studied concepts, findings and research methods used
Information and Software Technology
(2008) - et al.
Essential communication practices for extreme programming in a global software development team
Information and Software Technology
(2006) - et al.
Understanding e-learning continuance intention: an extension of the technology acceptance model
International Journal of Human–Computer Studies
(2006) - R. Adler, Knowledge engines for critical decision support, in: Knowledge Management Strategies: A Handbook of Applied...
- A. Aguiar, G. David, WikiWiki weaving heterogeneous software artifact, in: Proc. of the 2005 International Symposium on...
- et al.
The theoretical foundations of knowledge management
Knowledge Management Research & Practice
(2006) - et al.
Process deployment in a multi-site CMMI level 3 organization: a case study
Computer and Information Science
(2008) - B. Boehm, R. Turner, Rebalancing your organization’s agility and discipline, in: Proceedings of XP/Agile Universe 2003,...
A process asset library to support software process improvement in small settings
Software Process Improvement, Communications in Computer and Information Science
Next generation knowledge management
BT Technology Journal
Key issues and new challenges in software process technology
SPT, Software Process Technology, Novatica, Spain
Knowledge management systems: finding a way with technology
Journal of Knowledge Management
Software engineering methods and technologies
Application of web 2.0 tools in medical librarianship to support medicine 2.0
Webology
TSP: Leading a Development Team
Utilizing knowledge context in virtual collaborative work
Decision Support Systems
Software Project Management in Practice
The use and effects of an electronic process guide and experience repository: a longitudinal study
Information and Software Technology
Organizational Memory
Software Engineering Best Practices: Lessons from Successful Projects in the Top Companies
Cited by (45)
The impact of knowledge inertia on process tailoring in the dynamic development of software projects in Chinese industries
2024, Information and Software TechnologyComparative effects of knowledge-based antecedents in different realms of CMMI-based software process improvement success
2022, Computer Standards and InterfacesCitation 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 LibrarianshipCitation 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 BehaviorCitation 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.
Analysis of process model reuse: Where are we now, where should we go from here?
2014, Decision Support SystemsA process reference model for managing living labs for ICT innovation: A proposal based on ISO/IEC 15504
2013, Computer Standards and InterfacesCitation 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