ArticlePDF Available

A Knowledge Management Framework for Agile Software Development Teams

Authors:

Abstract and Figures

Software development is a knowledge-intensive activity and its success depends heavily on the developers' knowledge and experience. Knowledge is considered as the main competitive asset of the organization. One of the objectives of knowledge management (KM) is to improve productivity by effective knowledge sharing and transfer. Agile software development has put a new focus on the question of how to share knowledge among members of software development teams. In contrast to heavy-weight, document-centric approaches, agile approaches rely on face-to-face communication for knowledge transfer. Pair programming is one such practice with the idea to share the work specific knowledge across the development teams through pair rotation. This paper introduces work on developing a framework for capturing the tacit knowledge shared among the practitioners of agile software development methodologies. This approach facilitates the organizational learning process by capturing and maintaining the necessary knowledge.
Content may be subject to copyright.
A Knowledge Management Framework for Agile Software Development
Teams
R.K. Kavitha
Assistant Professor, Department of Computer Applications
Kumaraguru College of Technology, Coimbatore, India
rk_kavitha@ymail.com
M.S. Irfan Ahmed
Professor & Head, Center for Computer Applications
VLB College of Engineering and Technology, Coimbatore, India
msirfan@gmail.com
Abstract: Software development is a knowledge-intensive activity
and its success depends heavily on the developers’ knowledge
and experience. Knowledge is considered as the main competitive
asset of the organization. One of the objectives of knowledge
management (KM) is to improve productivity by effective
knowledge sharing and transfer. Agile software development has
put a new focus on the question of how to share knowledge
among members of software development teams. In contrast to
heavy-weight, document-centric approaches, agile approaches
rely on face-to-face communication for knowledge transfer. Pair
programming is one such practice with the idea to share the
work specific knowledge across the development teams through
pair rotation. This paper introduces work on developing a
framework for capturing the tacit knowledge shared among the
practitioners of agile software development methodologies. This
approach facilitates the organizational learning process by
capturing and maintaining the necessary knowledge.
Keywords: Knowledge Management (KM), Pair Programming,
Agile Software Development
I. INTRODUCTION
Knowledge Management has been the subject of increasing
focus over the last several years. Literature and research on
the topic has grown as companies and organizations have
come to realize that success is often determined by one’s
ability to create, disseminate, and embody knowledge in
products and services. This realization has led to increased
interest in examining the ways in which knowledge can be
effectively created, identified, codified, disseminated, and
retained. The field of Knowledge Management has emerged to
address this need. There are several knowledge frameworks
that describe knowledge-related practices. The organizational
knowledge is embedded in people, systems, procedures and
products. Knowledge workers are required to improve their
work on a daily basis in a process that cumulates into a
significant improvement in performance for the entire
enterprise.
Software knowledge is stored in documents, process,
practices, technologies, and project artifacts. Software’s
developed using traditional methods are well documented
whereas agile methods support working software rather
comprehensive documentation. In traditional software
development methodologies, the knowledge is explicit and
can be easily captured whereas the agile methodology deals
with tacit knowledge. Tacit knowledge is stored in the minds
of people in the form of memory, skills, experience,
education, imagination and creativity [15]. One of the greatest
challenges of knowledge organizations is to extract tacit
knowledge possessed by their knowledge employees, so as to
apply the right knowledge at the right place when needed and
to encourage innovation.
Fig1. Software Knowledge
Agile software methodologies have some inbuilt practices that
facilitate the transmission of experiences and knowledge
inside the organization. Pair programming is such a practice
that holds promise for overcoming some of the challenges
faced by Knowledge Management [12]. In pair programming,
978-1-61284-764-1/11/$26.00 ©2011 IEEE
two programmers work side-by-side at one computer
collaborating on the same design, algorithm, code, or test. The
continual interaction between pair programmers would seem
to provide an environment that promotes knowledge sharing
and collaborative knowledge discovery. Additionally, through
pair rotation, in which pairs change partners fairly often, tacit
knowledge might be spread more effectively through face-to-
face communication than by documentation, databases, or
other means.
The practice of Pair Programming helps to mange knowledge
to a good extent. Even, other ways of exploring tacit
knowledge needs to be considered. In this paper we propose a
framework for managing the knowledge generated by agile
software developers.
II. WORKING OF KM
Knowledge Management is the collection of processes that
govern the creation, dissemination, and utilization of
knowledge. It is a range of practices used in an organization to
collect and share knowledge to help people get their job done.
For the learnings to be retrieved and reused, they need to be
qualified and codified so that they are accessible and
searchable. Furthermore, knowledge management can also
include strategies to foster a culture of information sharing
and the implementation of tools that make it easier for
employees to share their learnings and, in turn, to learn from
each other.
Knowledge repository is a database that organizes and makes
available to all employees, the basic information about the
products, services, customers, and business processes of the
organization. The repository serves as a
Directory of knowledge sources that can be used by
employees to locate specific knowledge when needed
Directory of learning sources that can be used by employees
to find out where they may learn new knowledge and skills
Groupware that facilitates communication and collaboration
among employees
It is found that nearly 40% of organizational knowledge is
stored in employees' heads. This knowledge will be useful in
many ways to the organization and supports reusability,
learning, decision making etc. It is lost when people move to
newer roles, or leaves the organization.
KM requires effective colloboration among the members of
the team. For an organization to do knowledge management
more effectively, one way is to leverage the Communities of
Practice (CoPs) within its organization. Communities of
practice are groups of people who are informally bound to one
another by exposure to a common class of problems. These
groups share their learnings and knowledge resources
continuously and informally amongst each other for mutual
benefit [13]. These CoPs are perfectly positioned to support
knowledge management efforts. They are continuously
capturing and sharing relevant knowledge with each other.
III. KNOWLEDGE MANAGEMENT CHALLENGES IN
AGILE SOFTWARE DEVELOPMENT
The absence of explicit documentation in agile software
development leads to a number of problems:
Experts find themselves spending much time in
repeatedly answering the same questions
Members find themselves in situations where they
know that they have had a certain problem before,
but cannot remember its solution
Knowledge is lost as soon as experienced developers
leave the project or company
Informal communication cannot serve as a record
Less support for reusability
Less contribution to organizational knowledge
The main challenges of KM in agile software development are
to transfer implicit knowledge to explicit knowledge, as well
as to transfer explicit knowledge from individuals to groups
within the organization [4]. The generated knowledge needs to
be stored in a repository. More commitment is needed from
the practitioner’s side in sharing knowledge. Another issue is
to know how far the stored knowledge is used.
Effective Knowledge Management through Pair
Programming
Pair programming consists of two programmers working side-
by-side at one computer, collaborating on the same design,
algorithm, code, or test. One programmer is the driver,
controlling the input device to produce the design or code.
The other programmer is the navigator, continuously and
actively examining the driver’s work. The navigator watches
for defects, thinks of alternatives, looks up resources,
considers strategic implications, and asks questions. Through
these activities, the navigator contributes by identifying
tactical and strategic deficiencies in the design or code.
Every so often, the driver and navigator switch roles. This
allows the programmers to vary their work routine, learn and
practice new skills, and contribute to the work in more than
one manner. There is no set rule as to how often the
programmers should switch roles. It should occur at a natural
transition point in the design or coding activity. Sometimes
this may be after only one or two hours, or sometimes it may
be after days. In organizations where there is more than one
pair, pairs often rotate partners after the completion of a task
or subtask. Pair rotation allows the programmers to learn
different areas of the system, and learn from the skills of
different partners.
The pair programming approach lends itself to several
potential benefits. By being under the scrutiny of two
programmers at all times, the design and code is under
continuous review, potentially leading to higher defect-
removal rates [1]. The combined strengths of two
programmers can potentially enable them to solve difficult
problems more quickly than if they had worked alone. By
pairing, programmers can learn skills from each other and
communicate more closely. And, exposing multiple
programmers to each piece of code potentially reduces the
impact of losing staff.
Developers tend not to document task-related knowledge,
contextual knowledge, and social resources generated through
pair programming for many reasons, such as being
overburdened with other tasks or they may think that the
knowledge may be irrelevant or of no interest to others [9]. To
ensure knowledge shared among a pair is accessible to the
entire team, XP recommends pairs be rotated from time to
time which may not be very effective always. Even though
Pair Programming is an excellent knowledge management
strategy by itself, it would be beneficial to have some means
to capture and store such knowledge.
The following research questions are outlined from the issues
discussed above.
1. How knowledge management is achieved in agile
software development with least documentation?
2. To which extent agile practices like pair
programming contributes to KM effectively?
3. How to capture the tacit knowledge generated during
informal communication?
IV. RELATED WORK
Several frameworks exist for managing software knowledge
generated especially while using traditional methodologies. A
framework for KM Support suggests two important
considerations in managing knowledge [19]
Where the knowledge resides and
The extent to how the knowledge is structured.
A KMS architecture has been proposed consisting of seven
layers, which are interface, access, collaborative, application,
transport, integration and repositories [20]. A Soft-System
Knowledge Management approach for KM system
development was proposed to ensure a fit between the
organizational needs on new product development (NPD) and
KM initiatives [5]. This framework consists of three main
components:
Knowledge sharing methods, Organizational level and Key
Enablers
A KMSOS2oD Framework is formulated especially to support
software development life cycle for Open Source Systems and
consists of five main components: layers, components,
process, knowledge, and CoP [2].
Researchers have proposed several tools to better support
collocated and distributed agile software development. The
tools are mainly intended for application sharing. For
communication and collaboration among team members, tools
like e-mail, newsgroups, and instant messengers are used.
Real-time collaboration tools like audio/video conferencing
and application sharing facilitate the informal and
spontaneous social interactions necessary for sharing tacit
knowledge [3]. Wiki technology enables any users to access,
create, organize, and update any web pages in real-time using
only a web browser. This technology supports asynchronous
collaboration and it only allows users to capture information
in an unstructured format like text and graphics. Several
plugins like JSPWiki and MASE provides a process support
environment tailored for agile development teams [6]. MILOS
can provide each developer with a basic to-do list application;
Jazz Sangam is ex-tended from Sangam, an Eclipse plug-in
for distributed pair programming. It helps the pair
programmers to code effectively and has features like defect
tracking, instant chat etc.
Several studies were carried out in industries and academics to
study the impact of Pair programming on factors like
productivity, quality of software, team work, enhanced
learning etc. Only less research considering pair programming
as knowledge management factor has been carried out.
From the existing studies we come to understand that there
exist some tools and techniques for managing software
knowledge. So far no specific framework that integrates tools
and methods for addressing the tacit knowledge generated
during agile software development has been suggested.
V. PROPOSED FRAMEWORK FOR CAPTURING
TACIT KNOWLEDGE
Needs and benefits of capturing knowledge:
Knowledge captured from informal communication
can contribute to organizational knowledge
Experiences/ knowledge about a work can be made
known to other members of the project team
whenever needed
Stored knowledge supports reusability
Members will be committed and recognized
This paper introduces work on developing a framework for
capturing and distribution of knowledge generated while using
agile software development methodologies in which the team
members may either be collocated or distributed. The
approach facilitates an incremental organizational learning
process to capture and maintain knowledge on what
documentation/information is actually needed. The framework
describes a suite of integrated tools that provides support for
capturing, storing and disseminating knowledge
Real-time collaboration tools like emails, news groups,
NetMeeting facilitate the social interaction necessary for
sharing tacit knowledge.
Fig.2 Tacit Knowledge Enablers
The proposed framework enables informal knowledge
sharing. The members work usually in a collaborative
environment connected by internet / intranet. The framework
provides the developers with a set of tools that helps in
collecting the knowledge. Experiences generated related to
coding, debugging, logic, practices, facts, proof of a concept
etc are entered via an interface by the member and is collected
in the experience recorder. The idea map helps to store
unstructured information related to the project like work
notes, to do list etc. Information can also be posted on a
discussion forum. The information collected by the experience
recorder, idea map and forums can be structured and stored in
the knowledge repository.
The knowledge generated during software development will
be of use to all the project stakeholders. Storing information
does not guarantee that others can find it. The members
should be able to successfully retrieve the information from a
repository that combines structured and unstructured data.
Efficient query mechanisms can be helpful in easy retrieval of
required data.
Fig.3 Proposed Framework for capturing tacit knowledge
during agile software development
VI. CONCLUSION AND SCOPE FOR FURTHER
WORK
This paper is based on the assumption that KM is a vital part
of software projects. Specifically, our work aims to examine
the integration of KM and agile software development which
helps to overcome the existing difficulties when introduced
and applied. The pairing of KM and agile software
development has been acknowledged by various researchers.
In this paper we have presented a framework to capture the
tacit knowledge generated while adopting agile software
development methodologies. The framework shall provide
support for agile practices and overcome the challenges in
organizational knowledge sharing. Immediate future work is
to study how pair programming contributes to KM in practice
and to implement and evaluate the suggested framework. A
further study of the various knowledge management metrics
for agile software development teams will be conducted to
understand how far the stored knowledge will be useful to the
developers and the organization.
REFERENCES
[1] V.Venkatesan, A.Sankar, “Adoption of Pair Programming in the
Academic Environment with Different Degree of Complexit y in Students
Perspective– An Empirical Study”, International Journal of Engineering
Science and Technology, Vol. 2(9), 2010, 4791-4800
[2] Modi Lakulu, “A Framework of Collaborative Knowledge Management
System in Open Source Software Development Environment” Journal of
computer and Information Science, Vol.3, No.1, Feb 2010, pp.81-90
[3] Filipe Figueiredo Correia, Ademar Aguiar, “. Software Knowledge
Capture and Acquisition: Tool Support for Agile Settings”, IEEE Computer,
2009
[4] Meira Levy, Orit Hazzan, “Knowledge Management in Practice:The Case
of Agile Software Development”, IEEE software, 2009, pp. 60-65
[5] Shankar, R., Acharia, S., & Baveja, A. ‘‘Soft-system Knowledge
Management Framework for New Product Development’’, Journal of
Knowledge Management, 2009, 13(1) , pp.135-153.
[6] Till Sch¨ummer, Stephan Lukosch, “Understanding Tools and Practices
for Distributed Pair Programming”, Journal of Universal Computer Science,
vol. 15, no. 16, 2009
[7] Jari Vanhanen, Harri Korpi, “Experiences of Using Pair Programming in
an Agile Project”, IEEE Computer, 2007
[8] Vanhanen, J., and Lassenius, C. 2007. “Perceived Effects of Pair
Programming in an Industrial Context,” 33rd EUROMICRO Conference on
Software Engineering and Advanced Applications, 28-31 Aug. 2007, pp 211-
218.
[9] Thomas Chau, Frank Maurer, “Integrated Process Support and
Lightweight Knowledge Sharing for Agile Software Organizations”, 2005
[10] Claudia Müller, Julian Bahrs, Norbert Gronau, “Considering the
Knowledge Factor in Agile Software Development”, Journal of Universal
Knowledge Management, vol. 0, no. 2 (2005), pp.128-147
[11] Jari Vanhanen and Casper Lassenius, “Effects of Pair Programming at
the Development Team Level: An Experiment”, IEEE, 2005
[12] Mustafa Ally, Fiona Darroch, and Mark Toleman, “A Framework for
Understanding the Factors Influencing Pair Programming Success”, XP 2005,
Sheffield, UK, pp.18–23
[13] Thomas Chau, Frank Maurer, “Knowledge Sharing in Agile Software
Teams”, 2004
[14] Harald Holz and Frank Maurer, “Knowledge Management Support for
Distributed Agile Software Processes”, 2003
[15] David Walsh Palmieri, “Knowledge Management through Pair
Programming”, Thesis
[16] Gerardo Canfora, Aniello Cimitile, Corrado Aaron Visaggio, “Lessons
learned about distributed pair programming: what are the knowledge needs to
address?” IEEE Software, 2003
[17] Williams, L., and Kessler, R. 2000. “All I really need to know about pair
programming I learned in kindergarten,” Communications of the ACM (43:5)
pp 108-114.
[18] Williams, L., Kessler, R., Cunningham, L., and Jeffries, R. 2000.
“Strengthening the case for pair programming,” IEEE Software, July/August
2000, pp 19-25
[19] Hahn, J., & Subramani, M. ‘‘A Framework of Knowledge Management
System: Issues and Challenges For Theory and Practice’’, Proceedings of the
twenty first international conference on Information systems, ACM, Brisbane,
2000
[20] Tiwana, A, The Knowledge Management Toolkit: Orchestrating IT,
Strategy and Knowledge Platforms. USA:
Prentice Hall.
... Wiki based Wikis [9], [73], [41] Provides a collaborative environment that people use to co-author HTMLbased information [9]. sprintDoc [80] Works with issue tracker, wikis, VCS, IDE [80]. ...
... [16], [21], [47] The lack of documentation imposes a variety of problems including the inability to scale the software and add new members. [16] Source code based documentation (simul loco [66], doxygen [44], [55], JavadocMiner [43], [44], [83], GitHub plus markdown [48], Graphical UML class models [14], [15], [23], [51], [53], [64], [72], [77], XML_DocTracker [8]), Wiki based (Wikis [9], [41], [73], sprintDoc [80], XSDoc [5], [6], [80]), Flow chart or Diagrams (Flowgen [46], CLARET [39], Ticket-commit network chart (TCC) [68], [69]), Abstract specification tool [31] Generates minimal documentation with a very little effort. The documentation can be either generated from the source code comments or XML or YAML or JSON file. ...
... Wiki based Wikis [9], [73], [41] Provides a collaborative environment that people use to co-author HTMLbased information [9]. sprintDoc [80] Works with issue tracker, wikis, VCS, IDE [80]. ...
... [16], [21], [47] The lack of documentation imposes a variety of problems including the inability to scale the software and add new members. [16] Source code based documentation (simul loco [66], doxygen [44], [55], JavadocMiner [43], [44], [83], GitHub plus markdown [48], Graphical UML class models [14], [15], [23], [51], [53], [64], [72], [77], XML_DocTracker [8]), Wiki based (Wikis [9], [41], [73], sprintDoc [80], XSDoc [5], [6], [80]), Flow chart or Diagrams (Flowgen [46], CLARET [39], Ticket-commit network chart (TCC) [68], [69]), Abstract specification tool [31] Generates minimal documentation with a very little effort. The documentation can be either generated from the source code comments or XML or YAML or JSON file. ...
Preprint
Full-text available
Context: Agile development methodologies in the software industry have increased significantly over the past decade. Although one of the main aspects of agile software development (ASD) is less documentation, there have always been conflicting opinions about what to document in ASD. Objective: This study aims to systematically identify what to document in ASD, which documentation tools and methods are in use, and how those tools can overcome documentation challenges. Method: We performed a systematic literature review of the studies published between 2010 and June 2021 that discusses agile documentation. Then, we systematically selected a pool of 74 studies using particular inclusion and exclusion criteria. After that, we conducted a quantitative and qualitative analysis using the data extracted from these studies. Results: We found nine primary vital factors to add to agile documentation from our pool of studies. Our analysis shows that agile practitioners have primarily developed their documentation tools and methods focusing on these factors. The results suggest that the tools and techniques in agile documentation are not in sync, and they separately solve different challenges. Conclusions: Based on our results and discussion, researchers and practitioners will better understand how current agile documentation tools and practices perform. In addition, investigation of the synchronization of these tools will be helpful in future research and development.
... It is a common understanding that software engineering and development is a highly knowledgeintensive discipline, and various aspects of it have attracted the interest of researchers in knowledge management (Rus and Lindvall, 2002;Kavitha and Irfan, 2011;Vasanthapriyan et al. 2015;Shongwe, 2017). In terms of the taxonomy proposed by Earl (2001), knowledge management strategies are usually closely related to the technocratic schools for traditional software development and more to the behavioural schools for agile approaches (Bjørnson and Dingsøyr, 2008). ...
... Similarly in projects based on the waterfall model lessons learnt meetings take place after milestones. Another example is Pair Programming where two developers share the same screen while composing source code together (Kavitha and Irfan, 2011). ...
Article
Full-text available
Purpose This paper aims to close the gap between the generic concept of knowledge activities (KAs) and implementing them in the context of software engineering organisations concentrating on the non-technical aspects, such as team organisation and practices. Design/methodology/approach This qualitative research used a questionnaire with practitioners such as software developers and team leads who were asked to provide feedback on a set of team practices and measures typically used in software engineering projects and assess their relation to the activities of acquiring, codifying, storing, maintaining, transferring and creating knowledge. The obtained results were analysed using frequency analysis and further descriptive statistics yielding a matrix linking the investigated team practices and measures to KAs. Findings Team practices and measures commonly applied in software engineering can be facilitated to trigger particular KAs. While most of these team practices and measures originate from agile methods, they are not restricted to these. A purposeful composition can help in assembling a balanced set of KAs aimed at fostering given knowledge goals in software engineering organisations. Practical implications By bridging the communication and terminology gap between knowledge management research and software engineering practitioners, this work lays the foundation for assessing software teams’ knowledge profiles more easily and creating prerequisites for implementing knowledge management by facilitating common practices and measures often already part of their daily work. Hence, overhead can be avoided when implementing knowledge management. Originality/value To the best of the authors’ knowledge, this is the first study investigating application and relevance of KAs in the software industry by linking them to practices and measures well-accepted in software engineering, thus providing the necessary vocabulary for the implementation of knowledge management in software development teams.
... To propose a framework, a few requirements need to be considered and welfares of capture the knowledge [13]: ...
Article
Full-text available
Software development methodologies and knowledge management (KM) are a dynamic part of core challenge of the organization in order to deliver on time with less effort and efficient software product. Scrum model is widely known as one of the best common software development methodologies and this paper has conducted a survey on how to transfer the knowledge between team members. Moreover, the Scrum model relies on daily stand-up meeting or daily scrum meeting for capture and share knowledge. Thus, this paper investigates Scrum model and knowledge management process on how to improve the proficiency of knowledge sharing among the software practitioners with less time and effort. It also proposes a conceptual framework where it stores and retrieves the tacit knowledge via Scrum model for software product management. This proposed conceptual framework is used to store and retrieve the tacit knowledge via Scrum process for software product management to save a time consuming and effort.
Article
Software development requires the assimilation of team members’ diverse knowledge, ideas, and skills for innovative solutions. A software team’s knowledge integration is affected by project characteristics, such as scale and interdependence, and the team’s use of information technology (IT). We examine how contingencies embedded in these dimensions influence team’s knowledge integration. We argue and show that IT-use plays either complementary or substitutive role in moderating the impacts of project scale and project interdependence on knowledge integration.
Chapter
Agile software development (ASD) is a knowledge-intensive and collaborative activity and thus Knowledge Management (KM) principals should be applied to improve the productivity of the whole ASD process from the beginning to the end of the phase. The goal is to map the evidence available on existing researches on KM initiatives in ASD in order to identify the state of the art in the area as well as the future research. Therefore, investigation of various aspects such as purposes, types of knowledge, technologies and research type are essential. The authors conducted a systematic review of literature published between 2010 and December 2017 and identified 12 studies that discuss agile requirements engineering. They formulated and applied specific inclusion and exclusion criteria in two distinct rounds to determine the most relevant studies for their research goal. Reuse of knowledge of the team is the perspective that has received more attention.
Article
Full-text available
Agile software development is a light weight process which is a solution for the heavy weight processes. EXtreme Programming is one of the Agile Methods. Pair Programming is one of best practice of eXtreme Programming. . It is a technique which concentrates not only on the software but also the developer who working on the software. Pair Programming is best suitable to produce efficient software. It accentuates the practice of two persons working together at a single computer terminal, to design, code and test computer programs. We studied the effects of pair programming in student context on knowledge transfer and enjoyment of work. We analyzed whether the task complexity affects the effort differences between solo and pair programming. We conducted experiment to evaluate the efficiency of the knowledge transfer of the students when they adopt pair programming. The feedback from the student show the positive result that pair programming improves knowledge transfer and enjoyment of work. Through the experiment we also analyzed whether there is dependency between the task complexity and students capability. The result of this experiment shows that there is significant difference in the duration of task completion, the effort to perform the task correctly between solo and pair programming.
Conference Paper
Full-text available
The interest in pair programming (PP) has increased recently, e.g. by the popularization of agile software development. However, many practicalities of PP are poorly understood. We present experiences of using PP extensively in an industrial project. The fact that the team had a limited number of high-end workstations forced it in a positive way to quick deployment and rigorous use of PP. The developers liked PP and learned it easily. Initially, the pairs were not rotated frequently but adopting daily, random rotation improved the situation. Frequent rotation seemed to improve knowledge transfer. The driver/navigator roles were switched seldom, but still the partners communicated actively. The navigator rarely spotted defects during coding, but the released code contained almost no defects. Test-driven development and design in pairs possibly decreased defects. The developers considered that PP improved quality and knowledge transfer, and was better suited for complex tasks than for easy tasks
Conference Paper
Full-text available
Knowledge plays a key role in software development, and the effectiveness of how it is captured into artifacts, and acquired by other team members, is of crucial importance to a project's success. The life-cycle of knowledge in software development is derived from the adopted artifacts, practices and tools. These axes are here reviewed from a knowledge capture and acquisition perspective, and several open research issues are identified. The present work is being carried out in the context of the author's doctoral research. The research objectives are derived from the presented open issues, and a research strategy is outlined. Some preliminary results are also presented.
Article
Abstract All I Really Need to Know I Learned in Kindergarten By Robert Fulghum (Fulghum 1988) Share everything. Play fair. Don’t hit people. Put things back where you found them. Clean up your own mess. Don’t take things that aren’t yours. Say you’re sorry when,you hurt somebody. Wash your hands before you eat. Flush. Warm cookies and cold milk are good for you. Live a balanced life – learn some,and think some,and draw and paint and sing and
Article
Distributed development is sometimes inevitable and must be dealt with when agile methods become more commonly used. The increased complexities in communication, collaboration, and coordination associated with distributed development coupled with the lack of support for organizational learning in agile practices present challenges to tool developers for agile teams. This paper describes a suite of integrated tools that (1) accommodates various collaboration styles; (2) provides process support for specific agile practices; and (3) facilitates organizational learning.
Article
Knowledge is considered as the main competitive asset of the organization. One of the knowledge management (KM) cornerstones is improving productivity by effective knowledge sharing and transfer. However, from the game theory perspective, the main constraint is that people tend not to collaborate in uncertainty conditions, when collaborative behavior is not guaranteed, and sharing knowledge is time- and effort-consuming. Therefore, KM must be a practical aspect of the general organizational culture. Specifically, software development is a knowledge-intensive activity and its success depends heavily on the developers' knowledge and experience. In this presentation we highlight how the agile approach initiates a culture change that is in line with the culture change needed for a KM initiative. We discuss KM enablers that are embedded in the agile software engineering approach, and illustrate how collaborating processes and knowledge transparency can weaken the dilemmas people face and lead to better knowledge extraction and sharing.
Conference Paper
Pair programming is one of the more controversial aspects of several Agile system development methods, in particular eXtreme Pro- gramming (XP). Various studies have assessed factors that either drive the success or suggest advantages (and disadvantages) of pair program- ming. In this exploratory study the literature on pair programming is examined and factors distilled. These factors are then compared and con- trasted with those discovered in our recent Delphi study of pair program- ming. Gallis et al. (2003) have proposed an initial framework aimed at providing a comprehensive identification of the major factors impacting team programming situations including pair programming. However, this study demonstrates that the framework should be extended to include an additional category of factors that relate to organizational matters. These factors will be further refined, and used to develop and empirically evaluate a conceptual model of pair programming (success).1
Conference Paper
Agile Software Development has put a new focus on the question of how to share knowledge among members of software development teams. in contrast to heavy-weight, document-centric approaches, agile approaches rely on face-to-face communication for knowledge transfer. Pure face-to-face communication is not feasible when applying agile processes in a virtual team setting. In this paper, we argue that the right approach for virtual software development teams using agile methods lies between a radical "none but source code" standpoint, and the multitude of documents proposed by heavy-weight development standards. This paper introduces work on developing a system for the task-based capture and pro-active distribution of recurrent information needs that typically arise for developers, as well as potential ways to satisfy these information needs. Our approach facilitates an incremental organizational learning process to capture and maintain knowledge on what documentation/information is actually needed, such that documentation is created on an "as needed" basis.
Article
Purpose In today's knowledge economy, a major challenge for the managers is to effectively link the knowledge management (KM) initiatives with the ever‐changing organizational needs. The problem arises due to disjoint strategic alignment between these two, which is mainly due to inappropriate KM framework and adoption of some quick‐fix solutions to achieve business results. Hence, for effective management and utilization of knowledge assets, KM initiative should be dovetailed to link with key organizational goals like new product development (NPD), customer satisfaction and manufacturing excellence. The purpose of this paper is to propose a suitable KM system. Design/methodology/approach This paper proposes an approach for KM system development to ensure a fit between the organizational needs during NPD and KM initiatives. Soft system methodology (SSM) has been adopted to design this framework. Findings This research identified a list of knowledge‐sharing methods, which help in intra‐level or inter‐level knowledge flow. The proposed framework highlights the hierarchal nature and bi‐directional flow of knowledge. Further, this work observed that there are two additional key enablers to effective knowledge management system – competency and infrastructure. Research limitations/implications This work focuses on an auto‐component supplier in India. Therefore, this work is limited by the organizational culture, location, business model and the sector in which this research was done. Originality/value This paper suggests that a technical knowledge driven process like NPD has three strategic enablers – technology, people and process. The sustenance of the NPD process is affected by the balance among these enablers. Fundamentally, a comprehensive and integrative framework not only ensures a structured framework but also helps in better adoption due to stakeholders' buy‐in of the process.