27.03.2014 Views

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SEKE 2012 Proceedings - Knowledge Systems Institute

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

A Process-Based Approach to Improving<br />

<strong>Knowledge</strong> Sharing in Software Engineering<br />

Sarah B. Lee Ph.D., Kenneth Steward<br />

Department of Computer Science and Engineering<br />

Mississippi State University<br />

Mississippi State, MS, USA<br />

sblee@cse.msstate.edu, kcs111@msstate.edu<br />

Abstract—Information technology organizations often<br />

assume that to improve knowledge sharing, a knowledge<br />

management system must be independently developed or<br />

purchased. Also often assumed is the idea that<br />

implementing tools for knowledge sharing will provide a<br />

foundation for the evolution of processes and culture<br />

that support knowledge sharing. The intent of this<br />

research is to illustrate that an effective approach to<br />

increased knowledge sharing and collaboration must<br />

consider first the processes that make up a knowledge<br />

workers daily context, and the knowledge that supports<br />

that workflow. Organization of people and process must<br />

be considered in order for knowledge creation to be<br />

efficient and effective.<br />

Keywords- knowledge management; process<br />

improvement<br />

I. INTRODUCTION<br />

<strong>Knowledge</strong> has becom e increasingly releva nt for<br />

organizations since the shift from an industrial economy to a<br />

global, decentralized, and knowledge-based econom y.<br />

Organizations now work, compete, and cooperate on a<br />

worldwide scale [1]. T oday, employees are often<br />

geographically separated within a si ngle city or on a<br />

corporate campus. Loss of knowledge in the ha ndoff of<br />

work products is an area of concern. Offices in different<br />

locations may use different terminology and tools, making<br />

knowledge sharing across departmental boundaries a<br />

challenge [2]. A variety of technologies have been<br />

employed to attempt to close t his communication gap<br />

including company intranets, directories, and groupware [3].<br />

When applied to software engineering, knowledge<br />

management deals with a wide domain including projec t<br />

management, communication with clients and e nd users,<br />

problem solving, c ode reuse, staff development, and<br />

maintenance and support. Project success rates continue to<br />

be an area of concern, and one reason given for repeated<br />

failures is that organizations do not adequately use existing<br />

experience to avoid prior mistakes. This occurs when<br />

knowledge created during a project is not captured or shared<br />

for later use [4]. To avoid this continuous cycle,<br />

organizational knowledge produced during the software<br />

development lifecycle (SDLC) must be recognized as a<br />

valuable asset and leveraged to meet objectives.<br />

II. BACKGROUND<br />

While software development shares many characteristics<br />

with other engineering disciplines, it prese nts new<br />

challenges due to its relian ce on the knowledge and<br />

creativity of individual software developers and their<br />

interactions. In addition to the engineering aspects of<br />

software development, cognitive aspects and human activity<br />

must be considered. The development of a software system<br />

requires integration of knowledge from a variety of sources.<br />

Software development can be thought of as “t he<br />

crystallization of knowledge into the software systems” [5].<br />

With a global software development model, the gathering<br />

of requirements may involve a co-located team of analysts<br />

and users. B usiness requirements must be tra nslated to<br />

software requirements specifications, leading ultimately to<br />

development work which may be perf ormed by a team<br />

located separately from the team that worke d on<br />

requirements analysis and development. Throughout the<br />

software development process, knowledge producer and<br />

consumer roles emerge.<br />

A Software Requirements Specification (SRS) is<br />

produced that includes all re quirements needed by the<br />

developers to address the business requirements. The SRS<br />

must be reviewed to validate that it meets the business need<br />

as defined, with traceability to the business requirements<br />

documented. The de velopment and infrastructure support<br />

teams should collaborate to confirm if the SRS is feasible<br />

and verifiable. The SRS is typically used to validate<br />

technical designs, code, and test cases.<br />

The importance of the software architecture design which<br />

documents the com ponents and t heir connectors that<br />

comprise a software system should not be ignored.<br />

Typically all the knowledge regarding the design decisions<br />

on which the architecture is based are implicitly embedded<br />

in the architecture. This lack of explicit representation leads<br />

to increased complexity, a high cost of making changes, and<br />

design erosion. In the design phase, the main concern is on<br />

which design decision should be made. In the coding phase,<br />

700

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!