Knowledge Management in Software Development

boompikeInternet και Εφαρμογές Web

8 Δεκ 2013 (πριν από 5 χρόνια και 6 μήνες)

357 εμφανίσεις

Knowledge Management in
Software Development
Bc.Pavel Jelínek
Brno,spring 2010
Hereby I declare,that this paper is my original authorial work,which I
have worked out by my own.All sources,references and literature used or
excerpted during elaboration of this work are properly cited and listed in
complete reference to the due source.
Advisor:RNDr.Zdenko Staníˇcek,Ph.D.
I ammost grateful to my supervisor,RNDr.Zdenko Staníˇcek,Ph.D.,for his
guidance and for establishing the SSME field of study at Masaryk University,
which provided me with a unique opportunity to smoothly enter the world
of real business.I would also like to express my heartfelt thanks to my family
for their patience and unfailing support.
The aim of this thesis is to provide a comprehensive outlook on the area
of knowledge management in software development.The thesis offers the
readers an insight into the theory of knowledge management,a comparison
of current practices,and an example of a real knowledge management
In the beginning,the thesis introduces the concept of knowledge,the
types of knowledge,and the theory of knowledge sharing and creation.
Further,the development and processes of knowledge management are
The next,practical,chapters introduce readers into the connection of
knowledge management and the software development industry.The moti-
vation for this connection and its benefits are discussed.Additionally,these
chapters also analyze and compare software development methodologies
and software tools from the perspective of their support for knowledge
management processes presented in the theoretical part.
Moreover,the thesis contains a case study conducted in the environ-
ment of a real software development organization.First,the current state
of knowledge management in the organization is studied with respect to
the theoretical parts of this thesis.Then,the suggested adjustments and
improvements are described along with their impact on the functioning of
knowledge management in the organization.
Finally,the conclusions are drawn,discussing the outcomes of this thesis
and possible future developments.This thesis hopes to provide the readers
with a starting point in successful deployment of knowledge management
in their organizations.
Knowledge management,software development,knowledge creation,knowl-
edge sharing,knowledge management processes,knowledge management
systems,software development methodologies,knowledge management
1 Introduction...............................3
1.1 Knowledge Society........................3
1.2 Thesis Outline...........................4
1.3 Research Hypotheses.......................4
2 Theoretical Backgrounds.......................7
2.1 Basic Concepts...........................7
2.1.1 Data............................7
2.1.2 Information........................9
2.1.3 Knowledge........................10
2.2 Dynamic Knowledge Theory...................11
2.2.1 Types of Knowledge...................12
2.2.2 Knowledge Conversion Process............12
2.2.3 Knowledge Creation...................14
2.3 Knowledge Management (KM).................15
2.3.1 Knowledge Management in Time...........16
2.3.2 Knowledge Management Processes..........19
2.3.3 Knowledge Management Systems...........20
3 Knowledge Management in Software Development.......25
3.1 Overview..............................25
3.2 Motivation.............................25
3.3 The Role of KMin Software Development...........26
3.3.1 Acquisition Benefits...................27
3.3.2 Sharing Benefits......................28
3.3.3 Utilization Benefits....................30
3.4 Results................................31
4 KMin Software Development Methodologies...........33
4.1 Waterfall..............................34
4.1.1 Waterfall Knowledge Conversion............34
4.1.2 Waterfall KMProcesses.................36
4.2 Agile................................36
4.2.1 Agile Knowledge Conversion..............37
4.2.2 Agile KMProcesses...................38
4.3 RUP.................................39
4.3.1 RUP Knowledge Conversion..............40
4.3.2 RUP KMProcesses.....................41
4.4 Results...............................42
5 Software Tools Supporting KM...................45
5.1 KMSystemArchitecture.....................45
5.1.1 Document and Content Management.........46
5.1.2 Data and Knowledge Discovery............48
5.1.3 Collaboration and Communication............51
5.1.4 Expert Networks.....................53
5.1.5 Knowledge Portals....................54
5.1.6 E-learning.........................56
5.1.7 Competence Management................58
5.1.8 Intellectual Property Management...........60
5.1.9 Customer Relationship Management..........61
5.2 Results...............................63
6 Case Study................................67
6.1 Subject Analysis..........................67
6.1.1 KMAssets.........................67
6.1.2 KMObstructions.....................68
6.1.3 KMMethods and Tools.................69
6.2 Improvements and Suggestions.................72
6.2.1 Daily Meetings and Supporting Tool..........72
6.2.2 Competence and Skill Management..........73
6.2.3 Lessons Learned in Portal Articles...........75
6.2.4 Knowledge Exchange Questionnaire..........75
6.2.5 Document Knowledge Base...............76
6.2.6 Integrated Search – Solr.................77
6.2.7 Agile Guidelines and Checklists............78
6.3 Results...............................79
7 Conclusion.................................81
A Knowledge Exchange Questionnaire................87
Chapter 1
1.1 Knowledge Society
The world has changed far more in the past 100 years
than in any other century in history.
– Stephen Hawking
About the year 2000 information and communication technologies be-
came globally widespread and affordable.Thus,technologies lost their func-
tion of competitive advantage.The society,which had an information char-
acter then,has also changed – people were overloaded with information
and,gradually,it has turned out that the important matter of information is
not its amount,but the ability to exploit the most of it.And this ability relies
on knowledge.
Companies in their everlasting race for competitive advantage have also
come to realize that technology and information alone is not that.Knowledge
is becoming the main asset of today.However,unlike land,capital and
,knowledge can not be possessed by organizations – because it
rests in people’s minds.Thus,companies’ hope for survival lies in managing
knowledge and bringing it to the right people at the right time.
As with many other"hyped"concepts and"buzzwords"that float around
businesses,there are also many consultants in knowledge management who
claimthat their tool will solve all your company’s knowledge management
problems.Nonsense.Knowledge management is a problem of processes,
motivation and culture;technology is only an enabler.Moreover,it hardly
ever produces the same results in two different companies.
Within all the uproar over knowledge management,however,is a solid
basis that has proved worthwhile and that will stay around long after these
consultants have gone out of business.The hot issues of knowledge man-
agement addresses questions as:what kind of problems can knowledge
1.The main assets of agrarian,industrial and information societies.
management help solve for software organizations?What are its main en-
ablers?What are the success factors?Howdo current software practices cope
with knowledge management?What spheres of software development does
knowledge management influence the most?This is the sort of questions
which is discussed throughout this thesis.
1.2 Thesis Outline
Following the first introductory chapter,the second chapter offers an insight
into the theory of knowledge management.In this chapter,basic concepts,
history,and processes of knowledge management are introduced.
The third chapter presents a connection between knowledge manage-
ment and software development.Motivation for bringing knowledge man-
agement and software development together is discussed and the possible
benefits of this connection are outlined.
The chapters four and five deal with the current status of knowledge
management in software development.The differences of the support for
knowledge management between software development methodologies
are compared.And the suitability of current software tools for enabling
knowledge management is surveyed.
The sixth chapter gives a report on the case study,which has been carried
out in IBACZ
organization.The case study involved designing suggestions
for improvements of the organization’s knowledge management efforts,
testing some of the surveyed tools and methodologies,and then evaluating
the outcomes and impacts so that conclusions might be drawn.
1.3 Research Hypotheses
Apart from providing the theoretical background information about the
history,development and basic concepts of knowledge management,this
thesis seeks to consider the following hypotheses.
First,since knowledge management is a broad concept,as the theoretical
part shows,there have been doubts whether it brings any concrete benefits
for software development.Therefore,the hypothesis this thesis will try to
confirm is that the role and contributions of knowledge management to
software development are clearly distinguishable.
Second,methodologies used in software development will be discussed.
The hypothesis is that some of the methodologies encourage knowledge
management on larger scale than the others.As the differences between
the methodologies are clearly visible,the differences of their support for
knowledge management should be substantial as well.
Third,the tools involved in encouraging knowledge management in
software development will be tested.The current market seems to offer
solutions sponsored only by multinational software companies,which are
hardly reasonable for small businesses.Thus,the research into the tools
supporting knowledge management will try to disprove the hypothesis that
there are not any affordable knowledge management tools on market.
Chapter 2
Theoretical Backgrounds
2.1 Basic Concepts
It is common to think at the current post-industrial global econ-
omy as an information-intensive environment.More remark-
able is the high number of assertions that knowledge is the key
of effective competition,marketplace distinction and profitabil-
ity (Demarest 1997).
But what is the difference between data,information and knowledge?It
is crucial to clearly explain and distinguish the basic concepts which will be
used throughout the whole thesis.These concepts,such as data,information
and knowledge,have been very often misinterpreted or mixed up and,
therefore,many organizations have invested a lot of funds in tools,which do
not fulfill the real needs of the organizations and thus produce no outcome.It
is necessary to ascertain whether the organization or department needs data,
information or knowledge for its work and only then search for appropriate
tools and methods.
2.1.1 Data
Data.At first we had too little.We asked for more and we got
it.Nowwe have more than we want.Data lead to information,
but what we were looking in the first place was knowledge
(Tiwana 2002).
Data is"everything we can recognize by our senses.That’s everything we
can smell,taste,perceive and hear"(Mládková 2003).Without context,data
makes no sense to the receiver.Data can also be understood as sets of discreet
observations,measuring and objective facts about specific activities and
events;usually describedas"rawdata",which alone has no value.Nowadays
data is usually well structured and ordered according its purpose,which
is largely supported by recent rapid development in database technologies.
The differentiation of data is as follows (Truneˇcek 2004):
 Structured data,which contains facts,attributes,objects etc.,and can
be sorted out in database systems into hierarchic elements as fields,
records,relations and databases.Subsequently,data in these systems
are easily searchable.
 Unstructured data,which is usually described as"flowof bytes"with
no further differentiation.It is often understood as"rawmaterial"for
the creation of information.
Furthermore,data can be analysed in the means of its quantity and quality.
The quantitative analysis evaluates these features (Mládková 2003):
 Costs,which one has to expend on obtaining the data.
 Time in which one is able to obtain the data.
 Volume of the available data in the particular moment.
And the qualitative analysis evaluates these features:
 Accessibility of the data when needed.
 Relevance,which determines whether the data fulfills one’s demands.
 Lucidity,which determines whether one is able to understand the
message encoded in the data.
Recently,availability of data for employees and people in general has been
greatly improved by the wide extension and usage of network technologies.
But the biggest importance of data to organizations lies in the fact,that data
is an essential raw material for the creation of information.According to
Davenport and Prusak (1998),data becomes information through the five
 Contextualization – the consumer knows for what purpose the data
were collected.
 Calculation – the data is analysed with mathematical and statistical
 Categorization – the consumer can classify the data.
 Correction – the data is corrected and mistakes are eliminated.
 Condensation – the consumer summarizes the data.
Figure 2.1:The five"C"of data to information transformation (Davenport
and Prusak 1998).
2.1.2 Information
Information is purposely processed data;in the interpretation process the
consumers of the data assign meaning and importance to it.They do that
on basis of their individual skills,values and knowledge.The consumers
themselves decide on whether the data they received is information or not.
Peter Drucker described information as"data endowed with relevance and
purpose.Converting data into information thus requires knowledge.And
knowledge,by definition,is specialized"(Drucker 1997).There are many
other definitions of information;belowis presented at least one of them.
In general,information is rawdata that (1) has been verified
to be accurate and timely;(2) is specific and organized for a
purpose;(3) is presented within a context that gives it meaning
and relevance;and which (4) leads to increase in understanding
and decrease in uncertainty.The value of information lies solely
in its ability to affect a behaviour,decision,or outcome.A
piece of information is considered valueless if,after receiving
it,things remain unchanged (BusinessDictionary.com2010).
In the present day,the trouble is the overflowof both data and informa-
tion,which makes it really difficult to select the most useful and relevant
information for every particular situation.Thus the current course of many
organizations shifts from gathering information to classifying and evalu-
ating information.Information is a building block for knowledge.Again
information becomes knowledge through the four"C"defined by Davenport
and Prusak (1998):
 Comparison – the information is compared to our experience from
similar situations.
 Consequences – the value of the information for decision-making
and business activities.
 Connections – the connection to other knowledge,which we or others
already have,is sought.
 Conversation – opinion of other people about the information is
Figure 2.2:The four"C"of information to knowledge transformation (Dav-
enport and Prusak 1998).
2.1.3 Knowledge
Real knowledge is to know the extent of one’s ignorance
– Confucius
It is not easy to define the term"knowledge"as it has different meanings
depending on context.Belowfollowsome of its definitions.
In the context of the business enterprise or the personal com-
puter user,knowledge tends to connote possession of experi-
enced"know-how"as well as possession of factual information
or where to get it.In philosophy,the theory of knowledge is
called epistemology and deals with such questions as how
much knowledge comes fromexperience or frominnate rea-
soning ability;whether knowledge needs to be believed or can
simply be used;and how knowledge changes as new ideas
about the same set of facts arise (SearchCIO.com1999).
Knowledge is the outcome of perception,realization,thinking,
imagination,remembering,experimentation and experience
(Palán 2002).
The goal of"commercial knowledge"is not the truth in general,
but effective performance:"what works"or even"what works
better",where better is defined in competitive and financial
contexts (Demarest 1997).
Knowledge is intuitive and exists within people,part and par-
cel of human complexity and unpredictability.Therefore knowl-
edge is hard to capture in words or understand completely in
logical terms.Knowledge is a framework for"evaluating and
incorporating new experiences and information".This is the
basis for a process which continues along time (Davenport and
Prusak 1998).
As one can see,there are many definitions of the term"knowledge",some
differs more,others less.For the purpose of this thesis,which regards soft-
ware development,it is crucial to understand that computers and technology
may foster the process of transformation data to knowledge,but they hardly
solve the problems of the five and four"C"without human help.
Similarly,in organizations knowledge often becomes embedded not only
in documents or repositories but also in organizational routines,processes,
practices,norms and the overall culture.To conclude,it is the humans who
carry out the knowledge-creating activities.
2.2 Dynamic Knowledge Theory
Nonaka (1994:14) argues that the current paradigmin which organizations
process information efficiently in an"input-process-output"cycle represents
a"passive and static viewof the organization".Alternatively,he asserts that
organizational learning results froma process in which individual knowl-
edge is transferred,enlarged,and shared upwardly to the organizational
level;this process represents what he calls"dynamic knowledge conversion".
This thesis employs Nonaka’s dynamic knowledge conversion for evalu-
ating the studied approaches and tools.To grasp the meaning of this conver-
sion,the two types of knowledge are explained in section 2.2.1.Further,the
process of knowledge conversion,characterized as a spiral between the two
types of knowledge,is presented in section 2.2.2.And finally,the knowledge
creation is discussed in section 2.2.3.
2.2.1 Types of Knowledge
The two types of knowledge mentioned above are tacit and explicit knowl-
edge.What are the differences between these two concepts?Tacit knowl-
edge,according to Polanyi (1966),is"a subtle conception rooted in cognitive
schemata referred to as ’mental models’ and is rather difficult to articulate".
According to Nonaka and Takeuchi (1995:8),tacit knowledge is"highly
personal and hard to formalize,making it difficult to communicate or to
share with others.Subjective insights,intuitions,and hunches fall into this
category of knowledge".Other examples of tacit knowledge are intuition,
anticipation,intelligence,and experience.
Explicit knowledge,on the other hand,is the knowledge that is trans-
mittable through any systematic language.As such,explicit knowledge is
more easily processed and shared with others.Polanyi contends that human
beings acquire knowledge by actively creating and organizing their own
experiences;however,only a fewof these experiences can be made explicit
and shared with others in forms of manuals,handbooks,lectures,or presen-
tations.Thus,explicit knowledge represents only the tip of the iceberg of the
entire body of knowledge.
2.2.2 Knowledge Conversion Process
Effective knowledge management requires a continuous knowledge con-
version process.Nonaka and Takeuchi (1995) defined their dynamic model,
called knowledge conversion process (sometimes also called SECI model),
on the assumption that human knowledge is created and expanded through
social interaction between tacit and explicit knowledge.According to their
theory,the process of knowledge conversion proceeds through the four
different modes listed below.
Socialization (tacit to tacit) is the process of learning by sharing experiences
that creates tacit knowledge as shared mental models and professional
skills.Tacit knowledge is transferred through interactions between
individuals,which may also be accomplished in the absence of lan-
guage.According to Bandura (1982),individuals may learn and gain
a sense of competence by observing behavior modeled by others.
For example,mentoring and apprenticeships instruct tacitly through
observation,imitation,and practice.
Externalization (tacit to explicit) is the process of conversion of tacit into
explicit knowledge.Because the conversion of tacit to explicit knowl-
Figure 2.3:Knowledge Conversion Process (Nonaka and Takeuchi 1995)
edge involves the illustration of an esoteric,mental abstraction into a
concrete concept,metaphors are recommended as a way to facilitate
this translation.Metaphors assist individuals in explaining concealed
(i.e.tacit) concepts that are otherwise difficult to articulate by as-
sisting individuals in forming impressions based on"imagination
and intuitive learning through symbols"(Nonaka 1994:21).In other
words,metaphors create networks of related concepts as prototypes
to facilitate the ability to understand abstract,imaginary concepts.
Combination (explicit to explicit) mode of knowledge conversion"embod-
ies the aggregation of multiple examples of explicit knowledge.Ex-
plicit knowledge may be exchanged during meetings or conferences
in which a diversity of knowledge sources combines to shape a new
and enhanced conception"(Nonaka 1994).
Internalization (explicit to tacit) mode occurs through a series of steps in
which concepts become concrete and eventually adopted by the re-
ceivers as an integral belief or value.Internalization is the opposite to
externalization and represents an active process of learning.Nonaka
(1994:20) describes this as"participants...sharing explicit knowledge
that is gradually translated,through interaction and a process of
trial-and-error,into different aspects of tacit knowledge".
2.2.3 Knowledge Creation
The knowledge creation theory used within this thesis is based on the Non-
aka’s knowledge conversion process presented in previous section.In fact,it
employs the same process of mutual exchange of tacit and explicit knowl-
edge,with the difference that knowledge is not only exchanged but also new
knowledge is created throughout the conversion.Since this thesis is aimed
for organizations to handle knowledge conversion and creation,the par-
ticipants and enablers to organizational knowledge creation are discussed
The mutual exchange of tacit and explicit knowledge that describes
the knowledge creation process is initiated at the level of the individual
employee or organizational member.Because individuals are an integral
component of this conversion process,their commitment to knowledge
creation is critical.According to Nonaka (1994),individual commitment is
generated through intention,autonomy,and environmental fluctuation.This
suggests that knowledge creation may be activated when organizational
members have freedomand sufficient purpose to pursue newknowledge,
such as when confronted by change in the external environment.Indeed
turbulence in the organizational environment may act as the catalyst for
the knowledge creation process.According to Nonaka and Takeuchi (1995),
a disruption in the status quo in the organizational environment triggers
a need to adapt and learn.As we question the validity of traditionally
held perspectives,"we turn our attention to dialogue as a means of social
interaction,thus helping us create newconcepts.This continuous process of
questioning and reconsidering existing premises by individual members of
the organization fosters organizational knowledge creation"(Nonaka and
Takeuchi 1995:79).
While individual commitment to knowledge creation is key to the pro-
cess,the organization as a whole must support this effort.In particular,
Nonaka (1994) argues that an organizational climate that fosters the sharing
of redundant information enables a creative (rather than counterproductive)
chaos to emerge fromthe changing environment.In the rubric of the theory
of knowledge creation,the concepts of redundancy and requisite variety
support a climate of social exchange necessary for sharing,and enlarging in-
dividual knowledge.That is,a social network of requisite perspectives and a
diversity of viewpoints helps convert an otherwise turbulent organizational
environment into a more"creative chaos"(Nonaka 1994).
In respect of organizational knowledge creation,cross-functional teams
are regarded as a means to manage social collaboration and concept creation.
Nonaka (1994) argues that self-organizing teams inherently accommodate
diversity in thinking for resolving problems or enhancing creativity and
innovation.But only the exchange of knowledge within the team is not
sufficient,the shared concepts and knowledge must be internalized,as when
other organizational members or departments validate its utility through
testing and experimentation,Nonaka (1994) refers to this process as"crystal-
lization".The extent to which the knowledge or concept is considered useful
determines whether it becomes a justified true belief to the organization
or not.Thus,organizational knowledge creation represents the conversion
of individual to organizational knowledge through a process of extension
the individual knowledge conversion by social interaction across the whole
2.3 Knowledge Management (KM)
As an increasing number of companies nowrealize that knowl-
edge is their key asset,they want to turn to managing this asset
to deliver business results (Tiwana 2002:6).
What is knowledge management then?As we have seen on the example
of knowledge,there may be many definitions of one term.The same applies
to the termknowledge management.While the concepts of knowledge and
knowledge management have been widely debated by public,academics
and managers,still only a fewcompanies and their chief executives properly
understand what knowledge management means.So let us try to grasp the
meaning of knowledge management fromthe very beginning.
In the simplest terms it means exactly that:management of knowledge.
In the context of this thesis,a suitably extended definition by Tiwana (2002)
might be used:"management of organizational knowledge for creating busi-
ness value and generating a competitive advantage."Other different and
more complex definitions can be found in literature,like the one fromQuin-
tas (1999):"Knowledge management enables the creation,communication,
and application of knowledge of all kinds to achieve business goals,"or the
one from Davenport and Prusak (1998):"Knowledge Management is the
name given to a set of systematic and disciplined actions that an organiza-
tion can take to obtain the greatest value fromthe knowledge over which it
In the case of organizations,knowledge management additionally deals
with strategies,orchestration of approaches,methods,processes,tools and
technologies.Moreover – and this proves to be the hardest part – it lies in
people’s behaviour and a specific state of mind,which has to be spread
around the whole organization and which includes a competitive but still
co-operative relations between both the individuals and the teams in the
2.3.1 Knowledge Management in Time
Ikurijo Nonaka is considered as the founding father of the knowledge man-
agement as it is known today.However,as the spiritual father is regarded
Peter F.Drucker,who has formulated the approach of knowledge economy
in his work Managing in Turbulent Times dated from1980.Knowledge man-
agement is a very popular termof today,thus one can come across it very
often on conferences,lectures,books or articles.It seems to forman essential
part of present business.In fact,it has been an essential part of business for
a long time,we just have not called it knowledge management.
According to Hroník (2007),present knowledge management has grown
out of two main branches of study – the information management and the
learning organization.
Figure 2.4:Main influences on KMdevelopment (Hroník 2007:76)
Information management was firstly interested in securing and protect-
ing information within organizations;afterwards,it researched distribution
of information.The concept of learning organization firstly emerged already
in late 1970s,but it had not become generally recognized before the publish-
ing of Peter Senge’s book The Fifth Discipline in 1990.Along with the learning
organization another concept has been formulated – the organizational com-
petence building.
In summary,knowledge management provides us with a framework and
methods howto transfer information into knowledge and howto use this
knowledge to leverage organizational competences.
But why is knowledge management so important now?As contemporary
economy shifts froma product-centric formto a knowledge-centric form,
it becomes essential to support various dimensions of this knowledge as
a critical asset."The ability of companies to exploit their intangible assets
has become far more decisive than their ability to invest and manage their
physical assets"(Davenport and Prusak 1998)."As markets shift,uncertainty
dominates,technologies proliferate,competitors multiply,and products and
services become obsolete rapidly,successful companies are characterized
by their ability to consistently create newknowledge,quickly disseminate
it,and embody it in their new products and services"(Blair 1997).In the
postindustrial era,the success of a corporation lies deeply embedded in
its intellectual systems,as knowledge-based activities of developing new
products,services,and processes become the primary internal function of
firms attempting to create a promise for a long-termcompetitive advantage.
Tiwana (2002) gives us a comprehensive list of nine reasons why knowl-
edge management is so important today:
1.Companies are becoming knowledge intensive,not capital inten-
sive."Knowledge is rapidly displacing capital,monetary prowess,
natural resources,and labor as the quintessential economic resource"
(Hansen et al.1999).Knowledge is the only input that can help your
company cope with radical change and ask the right questions before
you attempt to find the answers.
2.Unstable markets necessitate"organized abandonment."Your tar-
get markets might undergo radical shifts,leaving your company in
a disastrous position of being with the wrong product,at the wrong
time,and in the wrong place.KMlets you undertake what Drucker
(1999:74) calls organized abandonment:reshape products,get out of
projects and product lines that can pull your business down,and get
into others that maximize growth potential.
3.KM lets you lead change so change does not lead you.Drucker
(1999:84) describes knowledge as"the windowof opportunity."Af-
ter all,"the next critical piece of critical information could take any
form– an evolving social trend affecting customer preferences,a new
management practice,a nascent technology,or a political or economic
development in a remote manufacturing location"(Abramson 1999).
You cannot manage this change,Drucker reminds,you can only lead
change,and stay ahead of it.
4.Only the knowledgeable survive."The survival of the fittest firm"is
an outmoded thought in the knowledge-based economy."The ability
to survive and thrive comes only froma firm’s ability to create,ac-
quire,process,maintain,and retain old and new knowledge in the
face of complexity,uncertainty,and rapid change"(Dhurana 1999).
Knowledge management can make that a reality.When your company
can apply its past experience for accelerating future work,why should
you start every project with a blank sheet and then work feverishly,
sometimes even desperately,to make the deadline on budget?Yet
companies do it all the time,Connie Moore notes in CIO(Moore 1998),
and in that mass stupidity lies the opportunity to differentiate your
company’s processes.
5.Cross-industry amalgamationis breeding complexity.Drucker warns
us that complexity,uncertainty,and ambiguity are the hallmarks of
today’s production and business systems irrespective of the nature of
business or type of industry.Knowledge management has allowed
many companies such as Bay Networks to turn this complexity to
their advantage (see howBay Networks ended up saving $10 a year
through knowledge management in Fabris (1999)).
6.Knowledge can drive decision support like no other.KMsolutions
that are capable of effectively supporting collaboration and knowl-
edge sharing enable individual knowledge workers,teams,and com-
munities to collaboratively make better decisions faster – and act on
those decisions to create more economic value for their company.
7.Knowledge requires sharing;IT barely supports sharing.KM re-
quires a strong culture of sharing that information systems do not
inherently support."Knowledge,as any witness to artificial intelli-
gence research knows,’is not about machines,but about culture’"
(Krochmal 1999).Principles that have traditionally driven IT design,
though with moderate success,no longer apply in designing KM
8.Tacit knowledge is mobile.Too often when someone leaves your
firm,his or her experience leaves too.This knowledge,skills,com-
petencies,understanding,and insight then often go to work for a
competitor.Knowledge management can save your company from
losing critical capabilities when that happens.
9.Your competitors are no longer just on the West Coast.We are be-
coming increasingly global,Drucker notes.Keeping up with devel-
opments and ensuing threats or opportunities in other countries is
a tedious,time-consuming,and difficult process.Knowledge man-
agement technology,when given the right source feeds,can deliver
relevant and timely knowledge.
2.3.2 Knowledge Management Processes
Many researchers like Nonaka and Takeuchi have expanded the three basic
steps involved in the knowledge management and learning process.Taking
a closer look at these three steps will give us a better feel for what type of
information technology functionality will support this effort.Tiwana (2002)
clearly defined these three fundamental processes of knowledge manage-
ment,illustrated in figure 2.5,as following:
Figure 2.5:The three fundamental processes of KM(Tiwana 2002)
 Knowledge acquisition– knowledge acquisition is not to be confused
with information acquisition.Knowledge acquisition is the process of
development and creation of insights,skills,and relationships.
 Knowledge sharing – this stage comprises disseminating and making
available what is already known.One characteristic that distinguishes
a firm’s knowledge fromits information assets is the foundation on
which knowledge is primarily built.For example,collaborative prob-
lemsolving,conversations,and teamwork can generate a significant
proportion of the knowledge assets that exist within a firm.Possibly,
the sharing process has to be optimized on the specific context of
every particular organization.
 Knowledge utilization – knowledge utilization comes into the pic-
ture when learning is integrated into the organization.Whatever is
broadly available throughout the company can be generalized and
applied,at least in part,to new situations,for example to decision
making or project planning.
An important aspect in these processes is that they need not be in a sequence.
They can,and often do,run in parallel.Another important fact to remember
is that knowledge management is an infinite loop that never ends.There is
always roomfor incremental and continuous improvement that is created
by three factors:
 Imperfections in knowledge management
 Changing customer needs
 Changing business scene
2.3.3 Knowledge Management Systems
"IT-based systems developed to support/enhance the processes
of knowledge creation,storage/retrieval,transfer,and applica-
tion"(Alavi and Leidner 2001).
When we begin thinking of technology support for knowledge man-
agement,the first technology that comes to our minds is the companies’
intranets.Tiwana further elaborates on this subject:
intranets and extranets can be a starting point for building a
knowledge management system(KMS),but because they have
a broader user base,they do not productize knowledge as much
as knowledge management systems do.Atypical knowledge
management system,especially if it uses push delivery,has
to do individual iteratively improved content customizations
unlike mass customization on which a typical intranet depends.
However,these functionalities can be merged with relative
ease,and thus the intranet provides one of the best choices for
the knowledge management systemfront end (Tiwana 2002).
Another technology which is broadly used in companies and which
might be considered for the development of a knowledge management
systemis information system.But for a KMtool,interaction between the
user and the tool has to go a step further than the interaction between
information systems and users does.In contrast to information system,
"knowledge management systemhas a different content focus,has higher
performance demands,uses a narrow base,and productizes knowledge"
(Tiwana 2002).
In fact,in a traditional information system there is no sepa-
ration between information level and knowledge level,and
it is common that users adapt themselves to the systemand,
besides small customizations,never vice-versa.The model for
interpretation of data is hardwired or,in the most advanced
cases,based on simple categorizations.On the other hand,KM
tools treat humans (singularly or grouped in communities) as
key components engaged in an active process of sense mak-
ing to continuously assess the effectiveness of"best practices".
Thus,in a KMtool,the human-computer interaction is more
complex and will transfer not only information,but also the
related meaning (Ciccarese 2007).
As can be seen on figure 2.6,Tiwana (2002) has also outlined IT-based
tools and technologies,which might be incorporated in a knowledge man-
agement systemand which support each of the three fundamental processes
of knowledge management.Specific examples of tools supporting KMare
presented further in section 5.Some examples of the tools supporting KM
listed by Tiwana (2002) are:
 Knowledge acquisition – data capture tools with filtering abilities,
intelligent databases,note-capture tools,and electronic white boards
are examples of information technology components that can support
indirectly knowledge data acquisition.
Figure 2.6:The basic elements of knowledge utilization and typical technol-
ogy tools that can be used to support each stage (Tiwana 2002:63).
 Knowledge sharing – an expert systemthat helps a novice technical
support person answer tech support calls at the help desks of Mi-
crosoft is a good example of knowledge that is being shared with that
 Knowledge utilization – The example of the tech support guy at
Microsoft is a perfect case of this:Sharing and utilization are taking
place simultaneously.
However,enabling knowledge access through information technology
is only the beginning of knowledge management.Truly perfect knowledge
management system enables knowledge to flow around your company
freely,just the right knowledge is available when a decision is to be made.An
ideal knowledge management systemprevents lack of knowledge or useless
accumulation of knowledge and thus avoids any inefficiencies.At that level,
knowledge management will become so much a part of an organization’s
culture that there will be no need for knowledge projects or knowledge
managers.Thanks to human nature,such perfection is,in my opinion,almost
impossible to achieve.However,even an initial knowledge management
systemcan remove a lot of inefficiencies.
To conclude,knowledge management systems consists of three parts:
explicit knowledge,tacit knowledge and infrastructure.Effective KMthus
means an integration of explicit and tacit knowledge with support of the
In addition to information technologies,the infrastructure also includes
organizational structure,support fromthe top management,financial sup-
port and most of all social capital,which means organizational culture,trust,
reciprocity,context and last but not least employees training.
Chapter 3
Knowledge Management in Software Development
None of us is as smart as all of us.
– Japanese proverb
3.1 Overview
Software development is an extremely extensive sector in which possession
of the right knowledge at the right time is a crucial factor.With respect to
this,this chapter tries to formulate and present the most valuable assets of
knowledge management to software development.
The most eminent problemwith knowledge in software development
is,however,that just a fraction of it is captured and made explicit.The
majority of knowledge is tacit,residing in people’s heads.This fact makes
knowledge sharing and retaining of knowledge in software development a
real challenge.
3.2 Motivation
"Software development is a human and knowledge intensive activity"(Birk
et al.1999),which involves many people working in different phases and ac-
tivities.Similar to other sectors,such as consulting,law,investment banking,
and advertising,the main asset of an organization consists of its intellectual
capital.On the other hand,software development is,unlike some other
sectors,a very quickly changing business.As the hardware performance
doubles approximately every two years
the same demand is made on soft-
ware.But is software and organizations developing software able to keep
up with such an extreme pace?
The demands on software speed and quality press on the productivity
of software organizations.However,the organizations’ available resources
1.See the Moore’s lawfor an exact version.
are not increasing along with the increasing needs.It is unthinkable for soft-
ware organizations to double their staffing levels every two years;besides,it
would not even guarantee to double the organizations’ productivity.There-
fore,software organizations expect a rise in productivity of their current
employees.And that is the time when knowledge management comes into
What facilitates the use of KMin software development in contrast to
other industries is the fact that some of the sources of knowledge (e.g.,
the artifacts) are stored by default in electronic form,by the very nature
of software development.This provides us with a good basis to build a
knowledge management systemon;however,this source can be viewed as
rawdata and information and,as discussed in sections 2.1.1 and 2.1.2,KM
seeks to transformdata into information,and information into knowledge.
The problem with knowledge in software development is its vast di-
versity,immense amount and never-ending grow."Current software orga-
nizations have problems identifying the content,location,and use of the
knowledge"(Rus and Lindvall 2002:27).An improved acquisition,sharing
and utilization of this knowledge is the basic motivation and driver for
knowledge management in software development.
Organizations can viewKMas a risk prevention and mitigation strategy,
because it explicitly addresses risks that are often ignored,such as:
 Loss of knowledge due to obsolescence.
 Lack of knowledge and an overly long time to acquire it due to steep
learning curves.
 People repeating mistakes and performing rework because they forgot
what they learned fromprevious projects.
 Individuals who own key knowledge becoming unavailable.
3.3 The Role of KMin Software Development
The major problemwith intellectual capital is that it has legs
and walks home every day (Rus and Lindvall 2002:26).
"Software development is a ’design type process’ where every person
involved has to make a large number of decisions"(Rus et al.2001).For
example,a programmer has to decide on data structures,or functions to use;
an architect has to select a server,or a database;a tester has to choose froma
set of test cases;and a project manager has to decide on a methodology to be
used.In opposite,we can take for example a car manufacture – once the car
is designed,the workers only followthe plans;their work does not require
any decision making.Yet in the software developing,each of the persons
involved has several possible choices,so howdo they make their decisions?
What are their decisions based on?
It is not very long ago when most of the decisions in software develop-
ment have been based on people’s experience or"feeling".But these feelings
have not always proved to be right
.What people need for these decisions
is knowledge.Moreover,as software development projects growlarger and
spread over almost every domain of present world,it becomes nearly impos-
sible for one person to be aware of every aspect which needs to be considered
during decision making.
As a result,software development becomes a group activity where indi-
viduals need to communicate and collaborate.Individual knowledge has to
be shared and leveraged at a project and organization level;this is exactly
what KMproposes.
The benefits which knowledge management brings to software develop-
ment are presented below;they are divided into three sections according
to the knowledge management process (see section 2.3.2 for the processes
definition) which enables them.
3.3.1 Acquisition Benefits
Faster Mastering of NewTechnologies
The emergence of new technologies makes software development more
efficient,but at the same time,it"is every project manager’s worst nightmare"
(Brössler 1999).It is difficult for developers to become proficient with a
newtechnology and for project managers it is extremely hard to accurately
estimate the cost of a project when the technologies it will be using are new
and unproven,and may even change during the project.
"Lack of time causes a lack of experience,constantly pushing the bound-
aries of an organization’s development set of skills and competencies"(Hen-
ninger 1997).Learning curves of the latest technologies are not,due to their
frequent complexity,very steep.It takes an inconsiderable amount of time to
master them.Thus,when developers or project managers use a technology
that a project’s teammembers are unfamiliar with,managers often resort to
the"learning by doing"approach,which can result in serious delays.
2.See,for example,the software crisis of the 1960s,1970s,and 1980s.
So,organizations must quickly acquire knowledge about newtechnolo-
gies and master them.By a carefully worked-out knowledge base,where
developers can easily and quickly find the required documents and manuals;
by a systemof effective trainings and seminars;and by proper sharing of
newpieces of knowledge between the developers,knowledge management
can greatly decrease the time needed for mastering newtechnologies.
Understanding Domain Knowledge
"Writing code is not the problem,understanding the problemis the problem"
(Curtis et al.1988).Software development requires access to knowledge not
only about its domain and new technologies but also about the domain
for which software is being developed.Sometimes a newdomain requires
learning a specific technique or a newprogramming language or application
of a newkind of project management technique.
One way of achieving this is to hire knowledgeable employees and
spread their knowledge throughout the team.But organizations usually
can not afford hiring knowledgeable employees for every domain they
develop software for.Therefore,the need is to acquire as much knowledge
as possible fromthe customer.Knowledge Management can help organize
the acquisition of newknowledge and it can help identify expertise as well as
capture,package and share knowledge that already exists in the organization.
By the right methods and tools,like on-site trainings or knowledge capturing
tools fromdocuments,knowledge management can distinctively facilitate
this activity.
3.3.2 Sharing Benefits
Swift Incorporating of NewEmployees
Every organization has its own policies,practices,and culture,which are
not only technical but also managerial and administrative.To be a success-
ful developer,one needs to have very specific knowledge concerning the
existing software base and local programming conventions.
Unfortunately,such knowledge typically exists as organizational folklore
and is informally sustained within the brains of the experienced develop-
ers.Experienced developers often transmit it to inexperienced developers
through informal meetings,like during the coffee break or at the water
cooler;consequently,not everyone has access to the knowledge they need.
Passing knowledge informally is an important aspect of a knowledge-
sharing culture that should be encouraged.At the same time,it must be
made sure that this knowledge is also passed into the knowledge base of the
organization and made available to everyone that needs it.So,organizations
must formalize knowledge sharing while continuing informal knowledge
Better Competence Management
Much knowledge can be recorded,however,the assets of a software engi-
neering organization are mainly its employees and their tacit knowledge.
Management of intangible assets includes knowing who knows what and
is part of competence management.Knowing who knows what can help
reduce the time it takes employees to find experts.Getting expert help could
reduce the long time it takes to find information.
Another reason to pursue proper competence management in the organi-
zation is the fact that each employee wants to leverage the benefits of her or
his knowledge and expertise.Employees,especially software engineers,are
quite willing to change companies even for a little salary increase.In the ab-
sence of a competence management,the problemof a ’brain drain’ can cause
severe difficulties."Software organizations are heavily dependent on tacit
knowledge,which is very mobile"(Tiwana 2002)."If a person with critical
knowledge about processes and practices suddenly leaves the organization,
severe knowledge gaps are created"(Brössler 1999).Often this person is the
only expert in a specific area and probably no one else in the organization
knows what knowledge he possesses.In the current economic crisis,when
organizations are discharging personnel in large numbers,knowing what
one knows has become much more important,creating a necessity to retain
the most important people.
Knowing who has what knowledge is also a requirement for efficiently
staffing projects,identifying training needs,and matching employees with
training offers.Knowledge management can help build structures and frame-
works for capturing at least some knowledge when employees leave.This
knowledge would at least help in what profile the employee’s successor
needs to have to fill the position.Knowledge Management,by capturing,
storing and promoting knowledge,can help establish processes not only for
identifying knowledge,but also for identifying the people who own it – the
Facilitating TeamCooperation
Any larger software development is a group activity.The division of work
into phases and iterations often means that different groups are involved at
different time.In the present day,moreover,it becomes quite usual for these
groups to be spread out geographically,and sometimes the group members
even live and work in different time zones.Outsourcing of subsystems to
subcontractors also results in geographically co-located teams that need
to work together.These groups need to communicate,collaborate,and
coordinate independently of time and place.
Knowledge Management can help solve this problemas it acknowledges
the need to capture,organize and store knowledge,as well as the necessity of
knowledge transfer.Communication in software engineering is often related
to the transfer of knowledge.Collaboration is related to mutual sharing of
knowledge.Thus,cooperation that is independent of time and space requires
the work artifacts and their status to be stored and shared throughout the
organization and a way of communication to be opened as well.
3.3.3 Utilization Benefits
Decreasing time and cost and increasing quality
Organizations constantly need to decrease software projects’ development
time and costs.On the other hand,they are pushed to improve their products
quality by the stiff competition.These demands seemto be contradicting
each other.However,knowledge management can make this plausible by
providing the proper knowledge which the teamsubsequently utilizes.For
example,reuse of former code and proven solutions helps to avoid mistakes
and thus reduces rework and increases quality;also repeating successful
processes increases productivity and the likelihood of further success.
Unfortunately,the reality is that development teams do not benefit from
existing experience and they repeat mistakes even though some individuals
in the organization knowhowto avoid them.Project teammembers acquire
valuable individual experience with each project – the organization and
individuals could gain much more if they could share this knowledge.With
methods of knowledge management like lessons learned or best practices
organizations can apply much more process knowledge gained in previous
projects to future projects.
Improving Decision Making
As stated earlier,in software development,every person involved constantly
makes technical or managerial decisions.Most of the time,teammembers
make decisions based on personal knowledge and experience or knowledge
gained using informal contacts.This is suitable for small organizations,
but as organizations growand handle a larger volume of information,this
process becomes inefficient.
Large organizations cannot rely on informal sharing of employees’ per-
sonal knowledge.Individual knowledge must be shared and leveraged
at project and organization levels.Knowledge management can help or-
ganizations to define processes for sharing knowledge so that employees
throughout the organization can utilize this knowledge for making correct
3.4 Results
In this chapter the motivation for the connection of knowledge management
and software development has been introduced.Since software development
is a"knowledge intensive activity"(Birk et al.1999),the role of knowledge
management is proving crucial for sustainable growth,improvement,and
competitiveness of current software development organizations.
For a better idea of which assets one can anticipate,the benefits of em-
ploying knowledge management in software development have been listed
later in this chapter.The revealed benefits are categorizes according to which
knowledge management process they support.The seven benefits presented
above also confirmthe hypothesis of this thesis that there exist concrete and
clearly distinguishable contributions of knowledge management to software
Chapter 4
KMin Software Development Methodologies
In current software development,projects are managed according to a large
number of methodologies.These methodologies differ fromeach other a lot –
some are suitable for large projects,others for small;some are more rigorous,
others less;some are old,others newetc.If an organization needs to choose
fromthese methodologies the most suitable one for its case,a comparative
study is desirable.
However,comparative studies between software development method-
ologies are very difficult to do,because it is very hard to devise a controlled
experiment that anyone trained in the theory of science can qualify as a valid
scientific experiment.The problemis the studies in software development
are not repeatable primarily due to the human element.Neither is it possible
to compare the methodologies within organizations,because every orga-
nization is in fact a unique organism,which behaves,reacts,and evolves
This research aims to present a way of comparing the organization’s
practices to theory,and lists the expected outcomes if an organization opts for
a newmethodology.Throughout the survey,every methodology is examined
fromtwo perspectives – its support of the knowledge conversion processes;
and the suitability of the methodology for KM processes.Both pros and
cons of the methodologies in the two perspectives are discussed.In the
last section 4.4 of this chapter,results of the comparison are balanced and
Besides the comparison difficulties,another problem emerges in this
research.The problemis which methodologies should be included in this
survey,since there are too many of themfor this survey to cover themall.
Moreover,it is very hard to find out which methodologies are being used
the most today.There is usually a big boomabout every newmethodology,
which seems to make the older stand back.Asignificant difference also exists
between the methodologies which organizations proclaimto use,and those
they really use.In addition,many of the methodologies mix and integrate
with each other.The methodologies for this survey have been chosen to
contain representatives of both the traditional and the current practices.
4.1 Waterfall
Waterfall model is a sequential software development process involving
a phased progression of activities.The linear progress flows through the
phases of requirements analysis,design,implementation,testing,installa-
tion,and maintenance.
Some authors argue that feedback loops can be made between the phases
and that it is possible to return to a previous phase and make modifications.
Others argue that one can move to a phase only when its preceding phase is
completed and no returns are allowed.Either way,the strong division into
phases is characteristic of Waterfall.
"The Waterfall development model has its origins in the manufactur-
ing and construction industries;highly structured physical environments
in which after-the-fact changes are prohibitively costly,if not impossible"
(Wikipedia 2010).Many modified models have been derived fromthe origi-
nal Waterfall model,such as Sashimi model,or V-model.For the purpose
of this research Waterfall methods and features have been studied fromthe
following sources:(TechRepublic.com2006),and (Kruchten 2004).
4.1.1 Waterfall Knowledge Conversion
The following lists enumerate the pros and cons of the Waterfall methodol-
ogy divided according to the four knowledge conversion processes,which
were presented in section 2.2.2.
Socialization in Waterfall (tacit-to-tacit):
+ The techniques used for the creation of requirements include customer
interviews,which supports the sharing of tacit knowledge between
the development teamand the customer.
– The clear division of work between the functional teams,for example
analytics,designers,and programmers,results in almost no collabora-
tion between these teams,which reduces the amount of shared tacit
– After the requirements are captured,a gap with poor cooperation
between users and developers is created,reducing the conversion of
tacit knowledge.
Externalization in Waterfall (tacit-to-explicit):
+ Waterfall promotes creating a vast number of explicit artifacts,in-
cluding requirement specifications,design documents,architecture,
module interfaces,test plans,code reviews,user manuals etc.
+ Also the cost estimates are made explicit by employing the COCOMO
+ The competences of teammembers are explicitly specified,as well as
the authoring duties are clearly defined.
+ Formal reviews,approvals and signoffs also capture knowledge in an
explicit form.
– The progress within the phases is poorly tracked,it is not made
explicit up to the end of the phase.
Combination in Waterfall (explicit-to-explicit):
+ Large knowledge base is established because of the vast number of
artifacts created,which can be further combined and used in future
+ Based on the artifacts’ authorship experts can be identified.
– The artifacts are in fact"frozen"after every phase,thus the combi-
nation results can not be properly applied in the current project,for
example changed customer requirements can not be reflected.
Internalization in Waterfall (explicit-to-tacit):
+ The explicit documentation can help newteammembers to internalize
the project knowledge.
+ The artifacts can also aid efficient knowledge transfer when team
members are dispersed in different locations.
4.1.2 Waterfall KMProcesses
In this section,suitability of the Waterfall methodology for different project
settings and its support of the three KMprocesses is discussed.
Waterfall is generally more suitable for large projects in which require-
ments are known and stabilized before.In the first phases of Waterfall,
where requirements are analyzed and design produced,a good knowledge
acquiring of domain and technology specifics is performed.
Later,the acquired knowledge fromthe first phases is well utilized in
the creation of explicit artifacts,which are then used throughout the whole
project.A solid sharing of explicit knowledge is supported through these
artifacts,which enables Waterfall to fit in large teams or even distributed
teams.The sharing of explicit knowledge might also prove useful for new
and unexperienced employees,who can gain a lot of knowledge fromthese
However,the sharing of tacit knowledge is not much supported by
Waterfall.This can turn into a difficulty for unexperienced teammembers,
who would profit more frombetter sharing of tacit knowledge with mature
developers.Also the knowledge sharing between development teamand
customer is not much promoted,thus Waterfall is incapable of gaining new
knowledge throughout its later phases.
Another problemmight be caused by the consistency of the produced
artifacts,because Waterfall does not clearly prescribe any structure of its
artifacts,every developer usually has his/her own way of creating these
documents.This might make the readability and thus utilization of the
knowledge from the artifacts really difficult.Waterfall could also benefit
from better best practices externalization and their utilization in future
projects,which is not much supported in Waterfall by default.
4.2 Agile
Agile methodologies are based on iterative and incremental software devel-
opment.Methodologies founded on Agile techniques promote face-to-face
strong customer involvement.
Agile methodologies divide the development process into releases and
iterations.A release usually lasts between 6 to 10 weeks and consists of
short iterations.Every iteration includes most of the disciplines of software
development.Iterations add functionality to the developed systemand at
the end of every release a working systemis presented to customer.Agile
methodologies are adaptive to change;during iterations the most desirable
functions are implemented first and before every release the requirements
are revised according to the customer’s most recent needs.
"Although many viewiterative and incremental development as a mod-
ern practice,its application dates as far back as the mid-1950s"(Larman and
Basili 2003).Many distinctive methodologies have been derived fromAgile,
among themis DSDM,Extreme Programming,and Scrum.For the purpose
of this research Agile properties and methods have been studied fromthe
following sources:(Cockburn 2006),(Holler and Henson 2009) and (Lappo
and Andrew2004).
4.2.1 Agile Knowledge Conversion
The following lists enumerate the pros and cons of the Agile methodology
divided according to the four knowledge conversion processes,which were
presented in section 2.2.2.
Socialization in Agile (tacit-to-tacit):
+ Sharing tacit knowledge on frequent personal meetings:daily standup,
iteration plan,iteration review,release plan,retrospective,strategy
+ Collaborating cross-functional teamshares knowledge between dis-
tinct areas of software development.
+ Involvement of customers (product owners) results in sharing their
knowledge as well.
Externalization in Agile (tacit-to-explicit):
+ The frequent meetings result in these explicit artifacts:vision,goals,
release plan,iteration story tasks,acceptance tests,daily progress
+ Fromevery meeting reports are also created along with the plans.
+ Task estimates and the rules for their evaluation are also made explicit.
– The focus on creating explicit technical documentation is weak,usu-
ally these artifacts are created:initial software concept,requirements
analysis,design of architecture,and user manual.
– The competences of teammembers are not explicitly specified by the
Agile methodology,therefore,neither the authoring duties are clearly
Combination in Agile (explicit-to-explicit):
+ The created plan is collated with iteration backlog and progress bar,
newplan and estimations are derived and used in next iteration.
+ Created requirements are combined with current customer’s needs
and accordingly modified.
+ Guidelines and best practices for future projects are created fromthe
meeting reports,plans,estimates,and daily progress records.
– Little explicit technical documentation fromprojects reduces combi-
nation options.
– Since the competences are not explicitly put down and little explicit
technical documentation is created,it is difficult for people from
outside the project teamto identify experts.
Internalization in Agile (explicit-to-tacit):
+ The created guidelines and best practices can be made tacit and used
in future projects.
– The small number of explicit documentation creates small knowledge
base,thus internalization options,for example for newteammembers,
are reduced.
4.2.2 Agile KMProcesses
In this section,suitability of the Agile methodology for different project
settings and its support of the three KMprocesses is discussed.
Agile does not support acquiring of knowledge about newtechnologies
very much.Since the priority is quick delivery of working system,the
time which can be spent in acquiring knowledge about newtechnologies
is greatly reduced.On the other hand,acquiring of domain knowledge is
highly promoted by Agile,because its processes prescribe a tight cooperation
with customers and their representatives.
Agile methodologies promote an intensive,and often informal,sharing
of tacit knowledge among the teammembers.This results in Agile being
more suitable for small sized projects which do not involve more than 10
people in a co-located development team.Since all the software development
disciplines proceed concurrently in one iteration,Agile is more suitable for
experienced developers,who understand most of the development disci-
plines and can appreciate the sharing of knowledge among them.
However,in larger or distributed development teams serious problems
can emerge because of the Agile’s poor support for explicit knowledge
sharing.This also makes Agile unsuited for unexperienced developers,for
whomAgile does not offer enough explicit knowledge to learn from.
The utilization of knowledge is mostly performed by the continuous
improvement of the Agile process.Agile process defines reviewmeetings
after every iteration,release and project,where lessons learned are captured
and utilized for next projects to improve the decision making and avoid
delays.The utilization of knowledge about technologies and domains is
also facilitated by the reuse of code,artifacts,and processes which Agile
4.3 RUP
The Rational Unified Process (RUP) is an iterative-incremental software
development process framework.It is a process framework,thus it should
not be viewed as a rigid process,but rather as a support structure in which
another process can be developed.
Organizations can select parts of the RUP framework and tailor them
according to their specific needs.For this purpose RUP defines the following
three central elements:key principles for business-driven development;a
framework of reusable method content and process building blocks;and the
underlying method and process definition language.
The development lifecycle itself is divided by RUP into four sequential
phases:Inception,Elaboration,Construction,and Transition.Each phase
concludes with a major milestone,where predefined artifacts (called"work
products"in RUP) are completed;however,the key development is per-
formed in iterations that lie within all of the phases and contain activities
fromacross different disciplines.
"It (RUP) has a long tradition in the industry that can be traced back to
the 1990s when different methodologies merged into this unified approach"
(Shuja and Krebs 2008).Since then,it had been managed by the Rational
Software Corporation until 2003,when IBMcompleted its acquisition.Many
distinctive processes have been derived from RUP,among them is Open
Unified Process/Basic,The Unified Process for Education,and Enterprise
Unified Process.For the purpose of this research RUP methods and features
have been studied fromthe following sources:(Kruchten 2004) and (Shuja
and Krebs 2008).
4.3.1 RUP Knowledge Conversion
The following lists enumerate the pros and cons of the RUP methodology
divided according to the four knowledge conversion processes,which were
presented in section 2.2.2.
Socialization in RUP (tacit-to-tacit):
+ Every phase ends in a meeting,where customers are involved and
can share their tacit knowledge and insights.
+ The predefined activities of the transition phase include training the
end users and maintainers,where tacit knowledge about the system
can be exchanged.
– The involvement of customers within the phases and iterations is,
however,very weak and reduces the option of sharing tacit knowl-
edge about the domain between the developing teamand customer
during the development.
– Although tasks from different disciplines take place concurrently
within each iteration,RUP does not define any cross-functional per-
sonal meetings where tacit knowledge could be exchanged.
Externalization in RUP (tacit-to-explicit):
+ RUP defines creation of many artifacts (called"work products"by
RUP) within its process,this facilitates externalization.Among the
artifacts numbers use case model,project plan,risk list,project re-
quirements,product acceptance plan,measurement plan etc.
+ By default RUP offers sample artifacts and templates bundled in a
hyperlinked knowledge base,which greatly supports externalization
of the teammembers’ tacit knowledge.
+ RUP also defines activities which result in prototypes that demon-
strably mitigate each identified technical risk;while creating these
prototypes teammembers externalize their knowledge.
Combination in RUP (explicit-to-explicit):
+ After a project,created artifacts and plans can be combined with the
true flowof the project and the process can be customized for further
+ RUP clearly defines teammembers’ roles together with skills,compe-
tencies,and responsibilities;these information can be combined with
the created artifacts and consequently experts can be identified.
+ At the end of every phase,RUP enables combination of plans and
actual state and corrective actions can be taken into account.
Internalization in RUP (explicit-to-tacit):
+ RUP includes explicit tasks and roles descriptions which help to
internalize the process.
+ The vast number of explicit documentation created during projects
can be made tacit and further used in future projects.
– Except the technical documentation,RUP does not support any cre-
ation of best practices,which reduces the internalization options for
newor unexperienced employees.
4.3.2 RUP KMProcesses
In this section,suitability of the RUP methodology for different project
settings and its support of the three KMprocesses is discussed.
RUP supports acquiring of knowledge about newtechnologies and do-
mains quite well,especially during the two opening phases of its process.
During these two phases,the main architectural risks are mitigated,thus
there is enough time and attention dedicated to the study of the newtech-
nology and domain specifics.However,during the later phases of the RUP
process,there is very weak customer involvement,thus the acquiring of new
knowledge about customer’s domain lowers.
RUP methodology promotes a consistent and formal sharing of explicit
knowledge.It prescribes when the explicit artifacts should be created,who
should use them,and it even offers templates of these artifacts.Thus,RUP
is suitable even for large and distributed projects.The intensive sharing of
explicit knowledge also results in RUP being suitable for unexperienced
developers,who can acquire a lot of knowledge fromthe artifacts created
during previous projects,and fromRUP’s activities descriptions.
On the other hand,sharing of tacit knowledge is not much supported by
RUP.The lack of personal meetings and exchange of tacit knowledge causes
this methodology to be unsuitable for small projects and development teams,
where the cooperation of developers is needed.
RUP provides a solid support for knowledge utilization through its itera-
tive reviews and phases’ milestones,where the unfolded problems and risks
are captured and,therefore,might be utilized in future projects.The biggest
asset for knowledge utilization brings the RUP’s tailoring options,which
enable organizations to modify RUP to their needs and,thus,utilize the
knowledge they possess in the most effective way.However,the poor track-
ing of progress during the phases might reduce the utilization of knowledge
in decision making,for example,when customer’s needs change during the
4.4 Results
In this research,software development methodologies have been studied
in the terms of their support of KM.The survey has shown the pros and
cons of the methodologies’ paradigms;however,it has also proved that the
methodologies are very hard to compare,since there are no hard rules and
metrics which might be applicable and since the methodologies are very
often tailored and combined in practice,as the introductory section of this
chapter states.
Figure 4.1:Knowledge conversion in software development methodologies
First,the methodologies have been studied in the knowledge conversion
perspective.Figure 4.1 presents a graph,which summarizes the comparison
of the methodologies for each of the four knowledge conversion processes.
The comparison is based on the number of pros and cons identified for every
methodology throughout this survey.
Second,the suitability of the methodologies for the three knowledge
management processes has been discussed.Even though it is almost im-
possible to objectively compare the methodologies,the methodology which
enables acquiring of knowledge about newtechnologies the most is RUP,
because of its opening phases which detect and mitigate the architectural
risks by prototyping,during which the newtechnology is fully mastered by
the developers.
Acquiring of new knowledge about domains is mostly supported by
Waterfall,which conducts a deep analysis of domains during its opening
phases.However,later in the development process Agile is the most knowl-
edge acquiring methodology,because of its high customer involvement and
ability to respond to changes.
Sharing of tacit knowledge is clearly won by Agile with its frequent
personal meetings.Sharing of knowledge in the explicit form is mostly
supported by RUP,which prescribes the whole lifecycle for the explicit
artifacts fromtheir creation to their utilization.
Utilization of knowledge is probably facilitated by Agile the most,be-
cause of its meetings,reviews and re-planning based on the knowledge
acquired during the actual development and the decision making changing
according the latest lessons learned.
The given hypothesis that expected the wide range of methodologies to
be largely divergent in terms of knowledge management capabilities has
been confirmed.This survey should help to spot the differences between the
methodologies and help organizations to improve their abilities to choose
and compose the right mixture of methods for their particular needs.
Chapter 5
Software Tools Supporting KM
KMneeds to support its processes for acquiring,sharing and utilizing of
knowledge by a collection of appropriate technologies.Since computers and
their software have become widely spread and used nowadays,KMneeds
for technology support are mostly solved by software tools.
Software tools that support knowledge management are analyzed in this
chapter.The needs of employees that use knowledge and their demands on
the features of software tools are discussed.The analyzed tools are divided
into categories according to the KMarchitecture model presented below.
Additionally,the tools are discussed fromthe perspective of which types of
knowledge conversion process (introduced in section 2.2.2) they support.
This survey is not intended to cover all kinds of tools on the market,as
there is an untold number of them.This survey aims to give the reader a
sense of the various tools that are available for knowledge management,that
cover most of the KMlayers of the belowarchitecture,and that support the
three KMprocesses presented in section 2.3.2.
5.1 KMSystemArchitecture
Because KMprocesses many sources of knowledge and tries to facilitate ac-
cess to it,a friendly front-end and a robust back-end are the basic necessities
of a knowledge management system.Figure 5.1 shows a layered knowledge
management systemarchitecture based on (Lawton 2001).
The lowest layer deals with sources of explicit knowledge.Explicit knowl-
edge resides in repositories as documents or other types of knowledge items
(e.g.,e-mail messages,and database records).Standard authoring tools (such
as word processors) and database management systems (DBMS) support
this layer.Messaging tools,web browsers the infrastructure
layer.Document and content management tools with features for search and
retrieval as well as analysis and maintenance represent knowledge reposito-
ries.The organization of knowledge is based on a corporate taxonomy and
Figure 5.1:KMarchitecture model.
serves as a"knowledge map"supported by classifying and indexing tools.
KMservices are provided using tools for data and knowledge discovery and
collaboration services.Through portals,knowledge can be distributed to dif-
ferent users and applications,such as e-learning,competence management,
intellectual property management,and customer relationship management.
It is hard to drawa line between information technology (IT) and tools
for KM.In the architectural model above,the higher layers are considered to
formKM,starting at the"knowledge repository"level,and IT constituting
the lower layers.Therefore,this thesis concentrates on the upper layers of the
architecture and analyze tools froma knowledge management perspective,
starting fromthe lower layers and finishing with the top layer.
5.1.1 Document and Content Management
In terms of knowledge management,the documents produced by an organi-
zation represent its explicit knowledge.By enabling users to search through
large amount of documents fromdifferent sources,document management
systems enable explicit-to-explicit knowledge conversion.One might argue
that a formof tacit-to-explicit knowledge creation process is also supported
by document management systems;for example,when experts are identified
based on the documents they authored.
Common requirements made on document and content management
tools include versioning of documents,accessing documents remotely and
sharing documents among teams.Along with the sharing demands comes
the need for controlling the user access rights of every document.Current
document and content management systems offer not only options to up-
load,store and download documents and files,but also include features
for searching and retrieving documents based on indexing techniques and
advanced searching mechanisms like fulltext searching;organizing docu-
ments in different ways;accessing documents fromweb browsers;and also
providing search for experts based on authorship.
Most artifacts guiding a software project and being developed during
a software project are represented as documents and are the main explicit
assets of software organizations.Document management systems thus help
support the core business by managing these assets.In addition,they enable
transferring knowledge fromexperts to novices and also help organizations
to capture and share process and product knowledge.
Hereafter followsome examples of document and content management
tools which comply to most of the requirements stated above and which are
still affordable for small businesses:
 Alfresco
is an open source project with minimal upfront investment
and easy deployment which does not require special hardware,soft-
ware or skills.The option to deploy a private instance of Alfresco gives
organizations full control over this tool and does not bind themto a
vendor’s services.Alfresco meets all the above stated requirements
and adds some own features,among which is automatic retrieving of
meta-data about documents including the author name or creation
date;possibility for users to add attributes to documents,which can
include categories,comments,and efficiency of documents;or e-mail
notifications about newly added or edited documents.
Since Alfresco is an open source software,organizations can cus-
tomize and develop new features to it,which is eased by pre-built
components or lightweight scripting.Alarge community of Alfresco
users has formed on the Internet,therefore,it is relatively easy to
troubleshoot the maintenance of Alfresco.Anegative trait of Alfresco
concerns its fulltext search,which does not fully work on file for-
mats different from Microsoft Word and Adobe PDF.On the other
hand,it provides users with a helpful advanced search,which can be
customized to cover user attributes and meta-data of the documents.
 OpenKM
is also an open source document management system
which is granted for free and offers an easy installation.OpenKMis
based on Java technologies with a web user interface.It allows users
to carry out most of the common operations with files,as sharing,set-
ting security roles,auditing and searching for documents.Moreover,
it adds a possibility of managing the flow of documents through a
business cycle,which can also be managed and tracked.This func-
tionality,which enables approvals,reviews or sign-offs of documents,
exploits the jBPM
However,OpenKMis not yet supported by a large community,which
might cause some difficulties in seeking help to resolve problems with
it.Furthermore,this tool shows the same deficiencies in fulltext search
as does the Alfresco tool.
 There are also many other commercial document and content manage-
ment systems on the market.According to Gartner’s Magic Quadrant
for Enterprise Content Management (Gartner.com2009b) the most ap-
plicable are EMC’s Documentum,Microsoft’s Sharepoint,Open Text’s
ECMSuite,Oracle’s Universal Content Management and IBM’s Op-
timIntegrated Data Management;however,prices for these solutions
start at tens of thousands of dollars.
5.1.2 Data and Knowledge Discovery
This type of tools aims to generate newknowledge fromexisting data,infor-
mation,and knowledge bases.Examples of these tools include visualization
and data mining,as well as analysis and synthesis tools.Data mining tools
try to reveal patterns and relationships between data and generate new
knowledge about the underlying data and what it represents.
Knowledge management tools often deal with raw data and singular
information,yet in order to create knowledge,these data and information
need to be analyzed.Rawdata and singular information are,for example,
manuals,lessons learned,frequently asked questions,and other items stored
in knowledge bases.Data and knowledge discovery tools can reveal patterns
in the content and usage of knowledge,such as identifying active and inac-
tive users and subsequential detecting of experts;or deriving best practices
based on lessons learned and frequently asked questions.
The knowledge conversion process that takes place in data and knowl-
edge discovery most is of the explicit-to-explicit type.This is due to the
fact that all knowledge in the knowledge base is already explicit and the
discovery process creates newexplicit knowledge based on it.One might
argue that the explicit-to-tacit knowledge conversion also occurs when the
analyst looks at the data from different perspectives and gains a better
understanding of it.
Common features of the data and knowledge discovery tools include
many different ways of data visualization;statistical reports on data;and fea-
tures for decision making support.Some tools are able to analyze multimedia
content and,for example,identify similarities and main concepts within it,
or transcribe it into text.Personalization of the analyzed knowledge and
different means of delivering it to those who need it are also supported by
some tools.Other tools help users to develop taxonomies for the knowledge
base;analyze growth and activities within the base;and organize it.
Software development teams frequently work on similar kinds of projects.
The problems tackled in these projects have often been solved in previ-
ous projects.Results would have been achieved more easily if the practice
adopted by a previous project was followed.Therefore,the analyses of the
discovered best practices and lessons learned is very important for continu-
ous improvement of software organizations.
Figure 5.2:Electronic Discovery Reference Model ( 2009).