Understanding and Supporting Knowledge Sharing in Software Engineering

Very often in practice, the problems in software engineering projects seem to have their origins in knowledge sharing difficulties. This creates a need to understand knowledge sharing in the software engineering field better and to find ways to support it. Through an improved understanding of knowledge sharing and especially the problems in it, the targets for support can be determined. By supporting knowledge sharing the maturity of software development processes can be significantly raised. This thesis presents new approaches and offers tools to understand and support knowledge sharing. The main results are the Knowledge Sharing Framework (KSF) as a tool for understanding and the Knowledge Sharing Pattern Language as a tool for supporting knowledge sharing. The purpose of the KSF is to help to identify the current knowledge sharing situation in an organization. This creates the basis for improvement actions in an organization. In this thesis the KSF is utilized in an empirical case study as well as a being framework for understanding differences in knowledge sharing approaches in different software development methods. KSF profiles are used to describe the results of KSF analyses in an illustrative way. After gaining more understanding through defining and using the KSF, the focus is transferred to how to support knowledge sharing. A technique, knowledge sharing patterns, is proposed here to improve existing software development processes with better knowledge sharing properties. Knowledge sharing patterns describe solutions to problems frequently related to the difficulties in knowledge sharing and offer a light-weight mechanism to introduce knowledge sharing sensitive practices in development processes. The knowledge sharing patterns form the Knowledge Sharing Pattern Language that covers several important knowledge sharing practices in a software development organization. The process for creating and evaluating Knowledge Sharing Pattern Language is one of the results. It is a process of creating an organizational pattern language that is applicable also in other contexts. The resulting Knowledge Sharing Pattern Language never will be complete. A pattern language needs to mature and be improved constantly in real-life use. This makes the process of creating a pattern language important. The validation of the KSF was made in industrial case studies. The resulting Knowledge Sharing Pattern Language was validated through justifying the single patterns separately, evaluating the coverage of the language and evaluating the applicability of the Pattern language in an evaluation workshop.

[1]  Reuven Karni,et al.  Agile Knowledge-based Decision Making with Application to Project Management , 2005, Wissensmanagement.

[2]  Stanley Wasserman,et al.  Social Network Analysis: Methods and Applications , 1994, Structural analysis in the social sciences.

[3]  Douglas C. Schmidt,et al.  Past, Present, and Future Trends in Software Patterns , 2007, IEEE Software.

[4]  James D. Herbsleb,et al.  Team Knowledge and Coordination in Geographically Distributed Software Development , 2007, J. Manag. Inf. Syst..

[5]  Ari Jaaksi,et al.  Tried & true object development: industry-proven approaches with UML , 1999 .

[6]  H. Peine,et al.  Rules of thumb for secure software engineering , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[7]  John D'Ambra,et al.  Evaluating an Approach to Sharing Software Engineering Knowledge to Facilitate Learning , 2003 .

[8]  O. Coplien,et al.  Software Patterns , 2001 .

[9]  Ioana Rus,et al.  Knowledge Management for Software Organizations , 2003 .

[10]  Wei Li,et al.  Cultural influences on knowledge sharing through online communities of practice , 2006, J. Knowl. Manag..

[11]  Forrest Shull,et al.  What Do We Know about Knowledge Management , 2009 .

[12]  Alan R. Hevner,et al.  Design Science in Information Systems Research , 2004, MIS Q..

[13]  Mona V. Makhija,et al.  The Role Of Organizational Controls In Managing Knowledge , 2006 .

[14]  Frank Maurer,et al.  Knowledge Sharing in Agile Software Teams , 2004, Logic versus Approximation.

[15]  H. D. Rombach,et al.  THE EXPERIENCE FACTORY , 1999 .

[16]  James O. Coplien,et al.  A development process generative pattern language , 1994 .

[17]  Stefanie N. Lindstaedt,et al.  Application of Knowledge Problem Patterns in Process Oriented Organizations , 2005, Wissensmanagement.

[18]  M. Lindvall,et al.  Knowledge management in software engineering , 2002, IEEE Software.

[19]  Ali Mili,et al.  Reusing Software: Issues and Research Directions , 1995, IEEE Trans. Software Eng..

[20]  K. Eisenhardt Building theories from case study research , 1989, STUDI ORGANIZZATIVI.

[21]  David Lowe Emergent Knowledge in Web Development , 2003 .

[22]  Ioana Rus,et al.  Software systems support for knowledge management , 2003, J. Knowl. Manag..

[23]  Tom Lloyd,et al.  Managing Knowhow: Add Value...by Valuing Creativity , 1989 .

[24]  Petra Bosch-Sijtsema,et al.  A knowledge transfer framework for virtual projects , 2004, Int. J. Netw. Virtual Organisations.

[25]  Meliha Handzic,et al.  Managing Software Engineering Knowledge , 2010, Springer Berlin Heidelberg.

[26]  G. Krogh,et al.  An essay on corporate epistemology , 2007 .

[27]  Pankaj Jalote,et al.  Knowledge Infrastructure for Project Management , 2003 .

[28]  J. Aken Management Research as a Design Science: Articulating the Research Products of Mode 2 Knowledge Production in Management , 2005 .

[29]  J. Brown,et al.  Bridging epistemologies: The generative dance between organizational knowledge and organizational knowing , 1999, STUDI ORGANIZZATIVI.

[30]  Kai Koskimies,et al.  Scenario-Based Assessment of Process Pattern Languages , 2009, PROFES.

[31]  Magne Jørgensen,et al.  Forecasting of software development work effort: Evidence on expert judgement and formal models , 2007 .

[32]  Susan Leigh Star,et al.  Institutional Ecology, `Translations' and Boundary Objects: Amateurs and Professionals in Berkeley's Museum of Vertebrate Zoology, 1907-39 , 1989 .

[33]  Jeannette Cabanis-Brewin,et al.  Book Review: My Life is Failure: 100 Things you Should Know to be a Successful Project Leader , 2007 .

[34]  Veikko Seppänen,et al.  Toward a Practical Solution for Capturing Knowledge for Software Projects , 2002, IEEE Softw..

[35]  Markus Völter,et al.  Guest Editors' Introduction: Software Patterns , 2007, IEEE Software.

[36]  Rini van Solingen In-Project Learning by Goal-oriented Measurement , 2003 .

[37]  J. Ruiz Moreno [Organizational learning]. , 2001, Revista de enfermeria.

[38]  Geraldine Fitzpatrick Emergent Expertise Sharing in a New Community , 2001 .

[39]  John S. Edwards,et al.  Managing software engineers and their knowledge , 2003 .

[40]  R. Freeman Strategic Management: A Stakeholder Approach , 2010 .

[41]  Kevin C. Desouza,et al.  Barriers to effective use of knowledge management systems in software engineering , 2003, CACM.

[42]  Tore Dybå,et al.  A Dynamic Model of Software Engineering Knowledge Creation , 2003 .

[43]  Rik Farenhorst Tailoring knowledge sharing to the architecting process , 2006, SOEN.

[44]  Terry Bollinger,et al.  Making reuse cost-effective , 1991, IEEE Software.

[45]  Jim McCarthy,et al.  Dynamics of Software Development , 1995 .

[46]  Linda Rising Understanding the Power of Abstraction in Patterns , 2007, IEEE Software.

[47]  Christof Ebert,et al.  e-R&D: Effectively Managing and Using R&D Knowledge , 2003 .

[48]  Reidar Conradi,et al.  Usage of Intranet Tools for Knowledge Management in a Medium-Sized Software Consulting Company , 2003 .

[49]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[50]  Alistair G. Sutcliffe,et al.  The domain theory - patterns for knowledge and software reuse , 2002 .

[51]  Christopher Alexander The Origins of Pattern Theory: The Future of the Theory, and the Generation of a Living World , 1999, IEEE Softw..

[52]  Chih-Ping Wei,et al.  Design and Evaluation of a Knowledge Management System , 2002, IEEE Softw..

[53]  野中 郁次郎,et al.  The knowledge-creating company , 2008 .

[54]  Thomas H. Davenport,et al.  Book review:Working knowledge: How organizations manage what they know. Thomas H. Davenport and Laurence Prusak. Harvard Business School Press, 1998. $29.95US. ISBN 0‐87584‐655‐6 , 1998 .

[55]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[56]  W. W. Royce,et al.  Managing the development of large software systems , 1970 .

[57]  Tore Dybå,et al.  Building a Learning Organization: Three Phases of Communities of Practice in a Software Consulting Company , 2007, 2007 40th Annual Hawaii International Conference on System Sciences (HICSS'07).

[58]  Patricia Lago,et al.  Prerequisites for Successful Architectural Knowledge Sharing , 2007, 2007 Australian Software Engineering Conference (ASWEC'07).

[59]  Aybüke Aurum,et al.  Knowledge management in software engineering - describing the process , 2004, 2004 Australian Software Engineering Conference. Proceedings..

[60]  Mary Beth Chrissis,et al.  CMMI: Guidelines for Process Integration and Product Improvement , 2003 .

[61]  L. Argote,et al.  KNOWLEDGE TRANSFER: A BASIS FOR COMPETITIVE ADVANTAGE IN FIRMS , 2000 .

[62]  David M. Weiss,et al.  Software Product Line Engineering , 2005, SEKE.

[63]  I. Nonaka A Dynamic Theory of Organizational Knowledge Creation , 1994 .

[64]  Donald J. Reifer A Little Bit of Knowledge Is a Dangerous Thing , 2002, IEEE Softw..

[65]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[66]  David Coghian Insider Action Research Projects , 2001 .

[67]  Jukka Paakki,et al.  Hypertext support for the information needs of software maintainers , 2004, J. Softw. Maintenance Res. Pract..

[68]  Sari Vesiluoma Improving Knowledge Sharing in Software Engineering , 2006, Int. Trans. Syst. Sci. Appl..

[69]  John Vlissides,et al.  Pattern hatching: design patterns applied , 1998 .

[70]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[71]  RJ Rob Kusters,et al.  Practical Guidelines for Learning-Based Software Product Development , 2003 .

[72]  Pekka Abrahamsson,et al.  Agile Software Development Methods: Review and Analysis , 2017, ArXiv.

[73]  Barbara Paech,et al.  Eliciting and Maintaining Knowledge for Requirements Evolution , 2003 .

[74]  Amrit Tiwana,et al.  Integrating knowledge on the Web , 2001, IEEE Internet Computing.

[75]  Sami Zahran Software process improvement - practical guidelines for business success , 1998 .

[76]  James O. Coplien,et al.  A generative development-process pattern language , 1995 .

[77]  M. Ohira,et al.  Supporting Software Development as Collective Creative Knowledge Work , 2006 .

[78]  Stuart Hannabuss,et al.  Common Knowledge: How Companies Thrive by Sharing What They Know , 2001 .

[79]  Michael J. Earl,et al.  Knowledge Management Strategies: Toward a Taxonomy , 2001, J. Manag. Inf. Syst..

[80]  R. Narasimhan,et al.  Continuance in Expertise-Sharing Networks : A Social Perspective , 2005 .

[81]  I. Nonaka,et al.  Organizational Knowledge Creation Theory: Evolutionary Paths and Future Advances , 2006 .

[82]  Daniela E. Damian,et al.  Stakeholders in Global Requirements Engineering: Lessons Learned from Practice , 2007, IEEE Software.

[83]  Maria Paasivaara,et al.  Communication practices in inter-organisational product development , 2005 .

[84]  Mary Lynn Manns,et al.  Fearless Change: Patterns for Introducing New Ideas , 2004 .

[85]  Ita Richardson,et al.  Project Management within Virtual Software Teams , 2006, 2006 IEEE International Conference on Global Software Engineering (ICGSE'06).

[86]  Vijay K. Vaishnavi,et al.  Five Keys to Project Knowledge Sharing , 2007, IT Professional.

[87]  Daniel Galin,et al.  Software Quality Assurance: From Theory to Implementation , 2003 .

[88]  Dietmar Pfahl,et al.  Making Software Engineering Competence Development Sustained through Systematic Experience Management , 2003 .

[89]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[90]  Sira Vegas,et al.  A Process for Identifying Relevant Information for a Repository: A Case Study for Testing Techniques , 2003 .

[91]  H. Harrington Business process improvement : the breakthrough strategy for total quality, productivity, and competitiveness , 1991 .

[92]  Jonathan Wareham,et al.  De-contextualising competence:: Can business best practice be bundled and sold? , 1999 .

[93]  Sari Vesiluoma,et al.  Making Knowledge Sharing Visible in Software Engineering , 2007, ECIS.

[94]  Jay Liebowitz A Look at NASA Goddard Space Flight Center's Knowledge Management Initiatives , 2002, IEEE Softw..

[95]  Balasubramaniam Ramesh,et al.  Process Knowledge Management with Traceability , 2002, IEEE Softw..

[96]  Muhammad Ali Babar,et al.  Architecture Knowledge Management: Challenges, Approaches, and Tools , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[97]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[98]  Grady Booch Architectural Organizational Patterns , 2008, IEEE Software.

[99]  Wanda J. Orlikowski,et al.  Knowing in practice: Enacting a collective capability in distributed organizing , 2002, STUDI ORGANIZZATIVI.

[100]  Ralph E. Johnson,et al.  Organizing Security Patterns , 2007, IEEE Software.

[101]  J. Bloemhof-Ruwaard,et al.  ERIM R EPORT S ERIES R ESEARCH IN M ANAGEMENT , 2022 .

[102]  J. Brown,et al.  Knowledge and Organization: A Social-Practice Perspective , 2001 .

[103]  Linda H. Rosenberg Lessons Learned in Software Quality Assurance , 2003 .

[104]  Rick Kazman,et al.  Evaluating Software Architectures: Methods and Case Studies , 2001 .

[105]  Kate Ehrlich Locating Expertise: Design Issues for an expertise locator system , 2002 .

[106]  June M. Verner,et al.  An Investigation into Software Development Process Knowledge , 2003 .

[107]  Juan Manuel Cueva Lovelle,et al.  Patterns meta-specification and cataloging: towards knowledge management in software engineering , 2006, OOPSLA '06.

[108]  Tom Pender UML Bible , 2003 .

[109]  Youngjin Yoo,et al.  The Impact of Knowledge Coordination on Virtual Team Performance Over Time , 2007, MIS Q..

[110]  C. P. Goodman,et al.  The Tacit Dimension , 2003 .

[111]  Alfonso Rodríguez-Patón,et al.  Towards a lessons learned system for critical software , 2007, Reliab. Eng. Syst. Saf..

[112]  Sweden alete,et al.  What is a Pattern , 2016 .

[113]  Paul Taylor,et al.  Knowledge management with patterns , 2003, CACM.