Knowledge Management in Software Engineering. 10/30/2002

Size: px
Start display at page:

Download "Knowledge Management in Software Engineering. 10/30/2002"

Transcription

1 Knowledge Management in Software Engineering 10/30/2002

2 Reference Ioana Rus and Mikael Lindvall, Knowledge Management in Software Engineering, IEEE Software, May/June 2002.

3 Outline Introduction Motivation for KM in SE KM background KM s role in SE Implementing KM State of the practice Conclusion

4 Introduction

5 Some Information About KM The concept of KM is not new: Knowledge bases, knowledge engineering, and AI KM supports not only the (1)know-how, but also the (2)know-where, (3)know-who, (4)know-what, (5)know-when, and (6)knowwhy KM implementation and use has rapidly increased since the 1990s: 80% of the largest global corporations have KM projects Over 40% of Fortune 1000 companies have a chief knowledge officer (CKO)

6 Questions to be addressed What kind of problems can KM help solve for software organizations? What are its challenges? What are the success factors? How can KM leverage all the knowledge that exists in software organizations?

7 Motivation for KM in SE

8 Motivation for KM in SE Two points of view Business needs Knowledge needs

9 Business needs (1/2) Decreasing time and cost and increasing quality: Avoiding mistakes reduces rework Repeating successful processes increases productivity To apply process knowledge gained in previous projects to future projects

10 Business needs (2/2) Making better decisions: Most of the time, team members make decisions based on personal knowledge Large organizations cannot rely on informal sharing of employees personal knowledge Individual knowledge must be shared and leveraged at project and organization levels Organizations need to define processes for sharing knowledge

11 Knowledge needs (1/5) Acquiring knowledge about new technologies: Using new technologies may or may not make software development more efficient. The learning by doing approach can result in serious delays Organizations must quickly acquire knowledge about new technologies and master them

12 Knowledge needs (2/5) Accessing domain knowledge: The software domain and the problem domain Organization acquire new domain knowledge either by training or by hiring knowledgeable employees and spreading it throughout the team

13 Knowledge needs (3/5) Sharing knowledge about local policies and practices: New developers need knowledge about the existing software base and local programming conventions Unfortunately, such knowledge typically exists as organizational folklore Organizations must formalize knowledge sharing while continuing informal knowledge sharing

14 Knowledge needs (4/5) Capturing knowledge and knowing who knows what: Knowledgeable employees are key to the project s success but accessing these people can be difficult When a Knowledgeable employee suddenly leaves, it creates severe knowledge gaps, but probably it is not observed Also important for efficiently staffing projects, identifying training needs, and matching employees with training offers

15 Knowledge needs (5/5) Collaborating and sharing knowledge: Software development is a group activity Group members are often geographically scattered and work in different time zones Group members need a way to collaborate and share knowledge independently of time and space

16 KM Background

17 Knowledge levels Data Raw material for creating information Information Data that is organized to make it useful for end users who perform tasks and make decisions Knowledge Contain information and the relationships among information items, their classification, and metadata (such as who has created the information) Experience is applied knowledge

18 Knowledge characteristics (1/2) Explicit (codified) knowledge Can be expressed easily, such as processes, templates, and data Implicit (tacit) knowledge Personal knowledge that people gain through experience Can be hard to express and is largely influenced by their beliefs, perspectives, and values Knowledge scope Individual, group, organization, multiple organization, or industry-wide

19 Knowledge characteristics (2/2) Knowledge evolution cycle: Originate/create knowledge Capture/acquire knowledge Transform/organize knowledge Deploy/access knowledge Apply knowledge

20 Knowledge management Tangible assets: Documented explicit knowledge Manuals, directories; correspondence with clients, vendors, and subcontractors; competitor intelligence; patents; licenses; and knowledge derived from work processes (such as proposals and project artifacts) Intangible assets: Undocumented implicit knowledge Skills, experience, and knowledge of an organization s people

21 Learning and KM Learning is a fundamental part of KM Organizations learn only through individuals who learn. Individual learning does not guarantee organizational learning. But without it no organizational learning occurs

22 KM s Role in SE

23 Overview (1/2) Knowledge can be transferred through formal training or through learning by doing Formal training is time consuming and expensive, and if done externally does not cover local knowledge Learning by doing can be riskey because people continue to make mistakes until they get it right

24 Overview (2/2) KM does not replace organized training, but supports it Documented knowledge can provide the basic for internal training courses based on knowledge packaged as training material KM mainly supports learning by doing It provides knowledge or pointers to people who have the knowledge, when and where it is needed KM does not come for free

25 Supporting core SE activities Document management Competence management and expert identification Software reuse

26 Document management A software development project involves a variety of document-driven processes and activities Document management is a basic activity toward supporting an organizations s implementation of a KM system Commercial tools: Hyperwave, Microsoft Sharepoint, Lotus Domino, and Xerox DocuShare

27 Competence management and expert identification An organization must track who knows what to fully utilize undocumented knowledge Competence management systems: SkillScape and SkillView, include tools that let experts generate and edit their own profiles Knowledg , analyzes repositories and documents and build keyword-based profiles that characterize each employee.

28 Software reuse Reducing rework by establishing a reuse repository The software development process must change A programmer first searches the repository for reusable parts Only if the programmer found nothing useful would he write the software from scratch This same concept can apply to all software engineering artifacts

29 Support product and project memory Learning from experience requires a product and project memory. This memory indicates the software s evolution Tools support: Version control Change management Documenting design decisions Requirements traceability

30 Implementing KM

31 Important issues Technology issues It is not always possible to integrate all the different subsystems and tools to achieve the planning goal. (ex, security) Organizational issues Technology VS Methodology Individual issues Employees often do not have time to input or search for knowledge, do not want to give away their knowledge, and do not want to reuse someone else s knowledge

32 Lightweight KM approaches (1/2) A problem with KM is that is might take time before measurable benefits appear. Knowledge Dust Collector: Supports peer-to-peer knowledge sharing by capturing knowledge that employees exchange and use every day The knowledge dust evolves over time into knowledge pearls

33 Lightweight KM approaches (2/2) knowledge pearls Dialogs Capture Knowledge dust Analyze FAQs technical problems Best Practices Analyze extended knowledge pearls

34 Organizational culture Although new technology makes sharing knowledge easier than ever, organizational cultures might not promote it. Employee issues: Be considered redundant Negative experiences and lessons learned may not be shared

35 KM champions HP advocates using an evangelist or champion for any KM initiative-someone who encourages employees to contribute and use the system and who is always it proponent

36 Reward systems Xerox recommends creating a hall of fame for those people whose contributions have solved real business problems Infosys rewards employee with knowledge currency units, which they can convert into cash

37 Leveraging employees expertise Ericsson: Experience communicator Experience broker Pair programming: Facilitate knowledge sharing between peers, while job rotation helps knowledge spread throughout the project or organization Communities: MSDN, IEEE, ACM

38 Leveraging organizational expertise Sharing experience with customers Vendors or customers Microsoft Knowledge Base, Oracle Support Center, and Perl FAQ Industry-wide knowledge sharing and education Design patterns, handbooks, and standards (such as those from the IEEE and ISO),

39 KM challenges in SE Many resources and much time and effort are required before benefits become visible Most SE knowledge is not explicit We have little time to make knowledge explicit There are few approaches and tools that turn tacit into explicit knowledge The fast changes of technology

40 KM opportunities in SE Software engineers is familiar with IT All artifacts are already in electronic form and thus can easily be distributed and shared Software engineers already share knowledge to a large degree in some environments, (ex, newsgroups)

41 State of the practice

42 Jay Liebowitz A look at NASN Goddard Space flight Center s Knowledge Management Initiatives: KM should start small and see what works in a specific environment and that knowledge should be collected during projects, not after their completion To capture individual knowledge through interviews before people leave the organization and to embed KM processes in daily activities

43 Andreas Birk et, al. Postmortem: Never Leave a Project without It: The individual knowledge that engineers gain during projects is not reused or shared between teams To use systematic postmortem analysis for capturing and reusing experience and improvement suggestions

44 Balusubramaniam Ramesh Process Knowledge Management with Traceability: Creating, storing, retrieving, transferring, and applying knowledge by using traceability (creating and maintaining relationships between objects and people in software development)

45 Chin-Ping Wei et, al. Design and Evaluation of a Knowledge Management System: Reports on KM implementation in an integrated-circuit assembly and testing organization The system supports expert identification and collaboration for when engineers need to solve a specific problem

46 Seija Komi-Sirvio et, al. Toward a Practical Solution for Capturing Knowledge for Software Projects: The authors emphasize the need for addressing local needs, problems, and specific content for KM initiative implementation They replaced their current large scale, technology-centered KM approach with a project need-based approach to knowledge collection and delivery

47 Conclusion When an organization implements KM, it has to start small In the future there will be support for capturing and disseminating knowledge in various formats, enabling organizations and individuals to share knowledge on a worldwide scale KM has strongly relationship with human resource management (HRM) and human resource development (HRD)

48 Q&A