Abstract
The application of knowledge management strategies is essential to solve several process improvement problems in software engineering organizations. In this area, the definition and use of process patterns is an approach that several authors have extensively discussed. Nevertheless, one of the problems is the difficulty of formalizing the knowledge about the development process using patterns. This article presents the sdPP (Software Development Project Pattern) to support the management of knowledge objects that encapsulate information about the recommended practices to develop specific software projects, including explicit and tacit knowledge on software engineering effective practices. The proposal comprises a data model to define the sdPPs as knowledge objects and a tool to manage their life cycle. The authors carried out an experimental validation where 48 junior software engineers applied the sdPP framework. From the results obtained, we discuss the factors that facilitate the correct creation of sdPPs and the improvement of software product quality using the sdPP proposal. We also analyse the effort to implement the sdPP proposal to introduce knowledge management practices in software development projects and determine usefulness of the knowledge assets to adapt the sdPP framework for effective knowledge sharing in software engineering organizations.
References
Alexander C, Ishikawa S, Silverstein M, Jacobson M, Fiksdahl-King I and Angel S (1978) A Pattern Language: Towns, Buildings, Construction. Oxford University Press, Oxford.
Allan J et al (2003) The Lemur toolkit for language modelling and information retrieval. The Lemur Project. [WWW document] http://lemurproject.org (accessed 25 January 2012).
Allison I and Merali Y (2007) Software process improvement as emergent change: a structurational analysis. Information and Software Technology 49 (6), 668–681.
Amescua A, Bermon L, García J and Sánchez-Segura MI (2010) Knowledge repository to improve agile development processes learning. IET Software 4 (6), 434–444.
Apache Jakarta (2005) Apache Lucene a high performance, full-featured text search engine library. The Apache Software Foundation [WWW document] http://jakarta.apache.org/ (accessed 12 March 2012).
Ardimento P, Baldassarre MT, Cimitile M and Visaggio G (2009) Empirical validation of knowledge packages as facilitators for knowledge transfer. Journal of Information & Knowledge Management 8 (3), 229–240.
Aurum A, Daneshgar F and Ward J (2008) Investigating knowledge management practices in software development organisations – an Australian experience. Information and Software Technology 50 (6), 511–533.
Basili VR, Caldiera G and Rombach HD (2002) Experience factory. In Encyclopaedia of Software Engineering, Vol. 1 (MARCINIAK JJ, Ed), pp 511–518, John Wiley & Sons, New York.
Beck K (1999) Extreme Programming Explained: Embrace Change. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
Becker CH (2010) Using eXtreme Programming in a Student Environment. GRIN Publishing GmbH, Munich.
Berczuk SP and Appleton B (2003) Software Configuration Management Patterns: Effective Teamwork, Practical Integration. Addison-Wesley Longman Publishing Co., Inc., Boston, MA.
Birkinshaw J and Sheehan T (2002) Managing the knowledge life cycle. MIT Sloan Management Review 44 (1), 75–83.
BjØrnson FO and DingsØyr T (2008) Knowledge management in software engineering: a systematic review of studied concepts, findings and research methods used. Information and Software Technology 50 (11), 1055–1068.
Boehm B, Abts C, Brown AW, Chulani S, Clark BS, Horowitz E, Madachy R, Reifer DJ and Steece B (2000) Software Cost Estimation with Cocomo II. Prentice-Hall PTR, Upper Saddle River, NJ.
Borges LMS and Falbo RA (2002) Managing software process knowledge. In Proceedings of the International Conference on Computer Science, Software Engineering, Information Technology, e-Business and Applications CSITea’2002, (DEBNATH N, Ed), pp 227–232, Foz do Iguazu, Brazil.
Buschmann F, Henney K and Schmidt DC (2007) Pattern-oriented Software Architecture: A System of Patterns. John Wiley & Sons, Inc., New York, NY.
Calvo-Manzano JA, Cuevas G, Feliu TS and Serrano A (2008) Process asset library to support software process improvement in small settings. In Proceedings of the 15th European Systems and Software Process Improvement and Innovation (EuroSPI) (O'CONNOR RV, BADOO N, SMOLANDER K, MESSNARZ R, Eds), Software Process Improvement, 3–5 September, 16, pp 25–35, Dublin, Ireland; Springer, Berlin, Heidelberg.
DingsØyr T, BjØrnson FO and Shull F (2009) What do we know about knowledge management? Practical implications for software engineering. IEEE Software 26 (3), 100–103.
Eclipse (2011) EPF composer. [WWW document] http://www.eclipse.org/epf/general/description.php (accessed 12 March 2012).
Feinerer I and Hornik K (2011) WordNet: WordNet interface. [WWW Document] http://cran.r-project.org/package=wordnet (accessed 12 March 2012).
Fowler M (2003) Patterns of Enterprise Application Architecture. Addison-Wesley Professional, Boston, MA.
Freeze TR and Kulkarni U (2011) Understanding the composition of knowledge management capability. In Ubiquitous Developments in Knowledge Management: Integrations and Trends. (JENNEX ME, Ed), pp 88–104, IGI Global, San Diego.
Gamma E, Johnson R, Helm R and Vlissides J (1995) Design Patterns: Elements of Reusable Object-oriented Software. Addison-Wesley, Reading, MA.
García J, Amescua A, Sánchez M-I and Bermón L (2011) Design guidelines for software processes knowledge repository development. Information and Software Technology 53 (8), 834–850.
Group Processworks (2011) EzyLib process asset libraries. [WWW Document] http://www.processworksgroup.com (accessed 12 March 2012).
Ivarsson M and Gorschek T (2012) Tool support for disseminating and improving development practices. Software Quality Journal 20 (1), 173–199.
Jalote P (2002) Software Project Management in Practice. Addison-Wesley Professional, New York.
Kroll P and Kruchten P (2003) The Rational Unified Process Made Easy: A Practitioner's Guide to the Rational Unified Process. Addison Wesley, Reading, MA.
Kneuper R. (2002) Supporting software processes using knowledge management. In Handbook of Software Engineering and Knowledge Engineering, Vol. 2 (CHANG SK, Ed), World Scientific Publishing Company, Singapore.
Landaeta JF, García J and Amescua A (2008) Practical SPI planning. Software process improvement. Communications in Computer and Information Science 16 (3), 82–93.
Larman C (2004) Agile and Iterative Development: A Manager's Guide. Addison Pearson Education, Boston, MA.
Llorens J, Morato J and Genova G (2004) RHSP: an information representation model based on relationship. In Studies in Fuzziness and Soft Computing, Soft Computing in Software Engineering (DAMIANI E, JAIN LG and MADRAVIO M, Eds), pp 221–253, Springer-Verlag, Berlin Heidelberg.
Martín D, García J, Amescua A and Llorens J (2007) Reusable project patterns to enhance software process improvement. In EuroSPI’2007 Industrial Proceedings (European Systems and Software Process Improvement and Innovation Conference), 2007, pp 3.25–3.34, ASQF, Potsdam, Germany.
Mathiassen L, Ngwenyama OK and Aaen I (2005) Managing change in software process improvement. IEEE Software 22 (6), 84–91.
Maurer F and Holz H (2002) Integrating process support and knowledge management for virtual software development teams. Annals of Software Engineering 14 (1–4), 145–168.
May D and Taylor P (2003) Knowledge management with patterns. Communications of the ACM 46 (7), 94–99.
Medina-Dominguez F, Sanchez-Segura M-I, Mora-Soto A and Amescua A (2010) Reverse engineering and software products reuse to teach collaborative web portals: A case study with final‐year computer science students. IEEE Transactions on Education 53 (4), 595–607.
Merrill MD (2000) Knowledge objects and mental models. In Proceedings of the International Workshop on Advanced Learning Technologies, pp 244–246, doi: 10.1109/IWALT.2000.890621.
Microsoft Corporation (2010) Visual Studio 2010 Ultimate. [WWW Document] http://www.microsoft.com/visualstudio/en-us/products/2010-editions/ultimate (accessed 12 March 2012).
Nold HA (2011) Making knowledge management work: tactical to practical. Knowledge Management Research & Practice 9 (1), 84–94.
Nonaka I and Takeuchi H (1995) The Knowledge Creating Company. Oxford University Press, New York, NY.
Nonaka I, von Krogh G. and Voelpel S (2006) Organisational knowledge creation theory: evolutionary paths and future advances. Organisation Studies 27 (8), 1179–1208.
OMG (2007) OMG unified modelling language (OMG UML), infrastructure, V2.1.2. [WWW document] http://www.omg.org/spec/UML/2.1.2/Infrastructure/PDF (accessed 25 January 2012).
Osellus (2011) IRIS process author. [WWW document] http://www.osellus.com/IRIS-PA (accessed 12 March 2012).
Pino F, García F and Piattini M (2008) Software process improvement in small and medium software enterprises: a systematic review. Software Quality Journal 16 (2), 237–261.
Rus I and Lindvall M (2002) Knowledge management in software engineering. IEEE Software 19 (3), 26–38.
Sanchez-Segura MI, Medina-Dominguez F, De Amescua A and Mora-Soto A (2010) Improving the efficiency of use of software engineering practices using product patterns. Information Sciences 180 (14), 2721–2742.
Schwaber K and Beedle M (2008) Agile Software Development with Scrum. Pearson Education, Ltd., Upper Saddle River, NJ.
Scott L, Carvalho L and Jeffery R (2002) A process-centred experience repository for a small software organisation. In Ninth Asia-Pacific Software Engineering Conference, 2002, pp 603–609. doi: 10.1109/APSEC.2002.1183096.
Select Business Solutions (2011) Select process director. [WWW document] http://www.selectbs.com/process-improvement/select-process-director (accessed 12 March 2012).
Shalloway A and Trott J (2005) Design Patterns Explained: A New Perspective on Object-oriented Design. Addison-Wesley, Boston, MA.
Software Engineering Institute, SEI (2006) CMMI for development. Version 1.2. Pittsburgh, USA, Technical Report CMU/SEI-2006-TR-008.
Sommerville I (2004) Software Engineering, 7th edn, Addison Pearson Education, Edinburgh Gate, Harlow, England.
Verma A and Tiwari MK (2009) Role of corporate memory in the global supply chain environment. International Journal of Production Research 47 (19), 5311–5342.
Visaggio G (2009) Knowledge base and experience factory for empowering competitiveness. In Software Engineering (DE LUCIA A and FERRUCCI F, Eds), pp 223–256, Springer, Berlin/Heidelberg.
Wei P, Jacobson I and Spence I (2007) Enough of processes – let's do practices. Journal of Object Technology 6 (6), 41–66.
Yin RK (2003) Case Study Research: Design and Methods, 3rd edn, Sage Publications, Thousand Oaks, CA.
Zack M.H. (1999) Developing a knowledge strategy. California Management Review 41 (3), 125–145.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Martín, D., Guzmán, J., Urbano, J. et al. Patterns as objects to manage knowledge in software development organizations. Knowl Manage Res Pract 10, 252–274 (2012). https://doi.org/10.1057/kmrp.2012.15
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1057/kmrp.2012.15