Abstract
Earlier software development processes (SDPs), such as waterfall processes, were mainly focused on process steps and did not address people- and product-related issues. Emergence of Software development methodologies (SDM) has created a new paradigm for developing software systems. A SDM is a special kind of technically engineered framework for organizing SDPs; this framework is expected to specify three main interwoven elements, namely people, products, and process. It has since become evident that it is impossible to provide a general-purpose SDM for developing all the various kinds of software systems, and it has thus become essential to construct the most appropriate methodology for the system development situation in hand, a practice commonly called Situational Method Engineering (SME). The problem with existing SME methods is lack of adequate attention to the role of people who might seek or possess valuable knowledge about the project situation. This knowledge can be tacit information that is hidden in the developer’s mind, or it might be explicitly available. This paper proposes a knowledge management (KM)-driven and DevOps-based SME method as a new integrated multi-view methodological paradigm that satisfies the need for sharing human experience in engineering SDMs. The method has been proposed by reusing general SME practices and complementing them by embedding appropriate KM and DevOps practices to alleviate the weaknesses of previous SME methods. Furthermore, the proposed method has been evaluated through four case studies and also by conducting a criteria-based comparison with eight prominent SME methods.
Similar content being viewed by others
References
Ramsin R, Paige RF (2008) Process-centered review of object oriented software development methodologies. ACM Comput Surv 40:1–89. https://doi.org/10.1145/1322432.1322435
Henderson-Sellers B, Ralyté J, Agerfalk PJ, Rossi M (2014) Situational method engineering. Springer, Berlin, Heidelberg
Alavi M, Leidner DE (2001) Knowledge management and knowledge management systems: conceptual foundations and research issues. MIS Q 25:107–136. https://doi.org/10.2307/3250961
Jabbari R, bin Ali N, Petersen K, Tanveer B (2016) What is devops?: A systematic mapping study on definitions and practices. In Proceedings of the Scientific Workshop Proceedings of XP 2016. ACM, pp 1–11
Httermann M (2012) DevOps for developers. Apress, New York
Osterweil L (2011) Software processes are software too. Engineering of Software. Springer, pp 323–344. https://doi.org/10.1145/253228.253440
Durst S, Zieba M (2019) Mapping knowledge risks: towards a better understanding of knowledge management. Knowl Manag Res Pract 17:1–13. https://doi.org/10.1080/14778238.2018.1538603
Durst S, Zieba M (2021) A knowledge management-driven and devops-based method for situational method engineering: supplementary file. Figshare. Journal contribution. https://figshare.com/s/074895e29090a831c8c4. Accessed 28 October 2021
Nehan YR, Deneckere R (2007) Component-based situational methods, In Working Conference on Method Engineering. Springer, Boston. pp 161–175
Ramsin R (2006) Engineering of an object-oriented software development methodology. Dissertation, University of York
Mirbel I, Ralyté J (2006) Situational method engineering: combining assembly-based and roadmap-driven approaches. Requir Eng 11:58–78. https://doi.org/10.1007/s00766-005-0019-0
Aharoni A, Reinhartz-Berger I (2008) A domain engineering approach for situational method engineering. In: Li Q, Spaccapietra S, Yu E, Olivé A (eds) Conceptual modelling–lecture notes in computer science. Springer, Berlin, Heidelberg, pp 455–468
Serour MK, Henderson Sellers, B (2004) Introducing agility: a case study of situational method engineering using the OPEN process framework. In: 28th annual international computer software and applications conference (COMPSAC). IEEE, pp 50–57
Seidita V, Cossentino M, Gaglio S (2007) Adapting passi to support a goal oriented approach: a situational method engineering experiment. In: Fifth European Workshop on Multi-Agent Systems (EUMAS’07). pp 1–15
Bajec M, Vavpotič D, Krisper M (2007) Practice-driven approach for creating project-specific software development methods. Inf Softw Technol 49:345–365. https://doi.org/10.1016/j.infsof.2006.05.007
Hoppenbrouwers S, van Bommel P, Järvinen A (2008) Method engineering as game design: an emerging HCI perspective on methods and CASE tools. In: Proceedings of EMMSAD. Citeseer, pp 1–15
Kornyshova E, Deneckère R, Salinesi C (2007) Method chunks selection by multicriteria techniques: an extension of the assembly-based approach. In: Working conference on method engineering. Springer, pp 64–78
Karagiannis D, Burzynski P, Utz W, Buchmann RA (2019) A metamodeling approach to support the engineering of modeling method requirements. In: 27th international requirements engineering conference (RE). IEEE, pp 199–210
Janković M, Žitnik S, Bajec M (2019) Reconstructing de facto software development methods. Comput Sci Inf Syst 16:75–104. https://doi.org/10.2298/csis180226038j
Sandkuhl K, Seigerroth U (2019) Method engineering in information systems analysis and design: a balanced scorecard approach for method improvement. Softw Syst Model 18:1833–1857. https://doi.org/10.1007/s10270-018-0692-3
Franch X, Ralyté J, Perini A, Abelló A, Ameller D, Gorroñogoitia J, Nadal S, Oriol M, Seyff N, Siena A, Susi A (2018) A situational approach for the definition and tailoring of a data-driven software evolution method. In: Krogstie J, Reijers HA (eds) Advanced information systems engineering. Springer International Publishing, Cham, pp 603–618. https://doi.org/10.1007/978-3-319-91563-0_37
Mishra D, Aydin S, Mishra A, Ostrovska S (2018) Knowledge management in requirement elicitation: Situational methods view. Comput Stand Interfac 56:49–61. https://doi.org/10.1016/j.csi.2017.09.004
Park JG, Lee J (2014) Knowledge sharing in information systems development projects: explicating the role of dependence and trust. Int J Project Manage 32:153–165. https://doi.org/10.1016/j.ijproman.2013.02.004
Pee LG, Kankanhalli A, Kim HW (2010) Knowledge sharing in information systems development: a social interdependence perspective. J Assoc Inform Syst 11:550–575
López L, Costal D, Ralyté J, Franch X, Méndez L, Annosi MC (2016) OSSAP–a situational method for defining open source software adoption processes. In: International conference on advanced information systems engineering. Springer, pp 524–539. https://doi.org/10.1007/978-3-319-39696-5_32
Mitchell SM, Seaman CB (2016) Could removal of project-level knowledge flow obstacles contribute to software process improvement? A study of software engineer perceptions. Inf Softw Technol 72:151–170. https://doi.org/10.1016/j.infsof.2015.12.007
Unterkalmsteiner M, Gorschek T, Islam AM, Cheng CK, Permadi RB, Feldt R (2011) Evaluation and measurement of software process improvement—a systematic literature review. IEEE Trans Software Eng 38:398–424. https://doi.org/10.1109/tse.2011.26
Lee MC, Chang T (2006) Applying TQM, CMM and ISO 9001 in knowledge management for software development process improvement. Int J Serv Stand 2:101–115. https://doi.org/10.1504/ijss.2006.008161
Almomani MA, Basri S, Kamil A (2018) Factors influencing the implementation of software process improvement in small and medium enterprises: an empirical study. Adv Sci Lett 24:1716–1722. https://doi.org/10.1166/asl.2018.11144
Sun Y, Liu XF (2010) Business-oriented software process improvement based on CMMI using QFD. Inf Softw Technol 52:79–91. https://doi.org/10.1016/j.infsof.2009.08.003
Basili VR, Caldiera G, Rombach HD (2002) Experience factory. Encycl Software Eng 1:1–19. https://doi.org/10.1002/0471028959.sof110
Basili VR (1993) The experience factory and its relationship to other improvement paradigms. In: Sommerville I, Paul M (eds) Software engineering-lecture notes in computer science. Springer, Berlin, Heidelberg, pp 1–14
Hevner AR, March ST, Park J, Ram S (2008) Design science in information systems research. Manag Inf Syst Q 28:9–22. https://doi.org/10.1007/978-1-4419-5653-8_2
Clarke P, O’Connor RV (2012) The situational factors that affect the software development process: towards a comprehensive reference framework. Inf Softw Technol 54:433–447. https://doi.org/10.1016/j.infsof.2011.12.003
Khatibian N, Hasan gholoi pourAbedi Jafari TH (2010) Measurement of knowledge management maturity level within organizations. Bus Strateg Ser 11:54–70. https://doi.org/10.1108/17515631011013113
Henderson-Sellers B (2005) Agent-oriented methodologies. IGP, US and UK
Silva A, Araújo T, Nunes J, Perkusich M, Dilorenzo E, Almeida H, Perkusich A (2017) A systematic review on the use of definition of done on agile software development projects. In: 21st international conference on evaluation and assessment in software engineering. ACM. pp 364–373
d Santos FrançaNettodo Carvalho JBJMES et al (2015) KIPO: the knowledge-intensive process ontology. Softw Syst Model 14:1127–1157. https://doi.org/10.1007/s10270-014-0397-1
Object Management Group (OMG) (2008) About the software and systems process engineering metamodel specification version 2.0. https://www.omg.org/spec/SPEM/About-SPEM. Accessed 17 September 2020
Riege A (2005) Three-dozen knowledge-sharing barriers managers must consider. J Knowl Manag 9:18–35. https://doi.org/10.1108/13673270510602746
Balachandran V (2020) On the need for automatic knowledge management in modern collaboration tools to improve software maintenance. In: IEEE international conference on software maintenance and evolution (ICSME). IEEE, pp 722–722
Duffield SM, Whitty SJ (2016) Application of the systemic lessons learned knowledge model for organisational learning through projects. Int J Project Manage 34:1280–1293. https://doi.org/10.1016/j.ijproman.2016.07.001
Shakeri Hossein Abad Z, Gervasi V, Zowghi D, Far BH (2019) Supporting analysts by dynamic extraction and classification of requirements-related knowledge. In: 41st international conference on software engineering (ICSE). IEEE/ACM, pp 442–453
Ali N, Daneth H, Hong JE (2020) A hybrid DevOps process supporting software reuse: a pilot project. J Softw Evol Process 32:1–23. https://doi.org/10.1002/smr.2248
Li Y, Tarafdar M, Rao SS (2012) Collaborative knowledge management practices. Int J Oper Prod Manag 32:398–422. https://doi.org/10.1108/01443571211223077
López-Martínez J, Juárez-Ramírez R, Huertas C, Jiménez S, Guerra-García C (2016) Problems in the adoption of agile-Scrum methodologies: a systematic literature review. In: 4th international conference in software engineering research and innovation. IEEE, pp 141–148
Haumer P (2007) Eclipse process framework composer. https://www.eclipse.org/epf/general/EPFComposerOverviewPart1.pdf. Accessed 20 September 2020
Brereton P, Kitchenham B, Budgen D, Li Z (2008) Using a protocol template for case study planning. In: 12th International conference on evaluation and assessment in software engineering (EASE). ScienceOpen, pp 1–8
Kitchenham B, Al-Khilidar H, Babar MA, Berry M, Cox K, Keung J, Kurniawati F, Staples M, Zhang H, Zhu L (2008) Evaluating guidelines for reporting empirical software engineering studies. Empir Softw Eng 13:97–121. https://doi.org/10.1007/s10664-007-9053-5
Jedlitschka A, Pfahl D (2005) Reporting guidelines for controlled experiments in software engineering. In: International symposium on empirical software engineering. IEEE, pp 95–104
Runeson P, Host M, Rainer A, Regnell B (2012) Case study research in software engineering: guidelines and examples. Wiley, Hoboken, New Jeresy and Canada
Wohlin C, Runeson P, Höst M, Ohlsson MC, Regnell B, Wesslén A (2012) Experimentation in software engineering. Springer, Berlin. https://doi.org/10.1007/978-3-642-29044-2
Mohapatra S, Bose S (2020) An appraisal of literature for design and implementation of developing a framework for digital twin and validation through case studies. Health Technol 10:1229–1237. https://doi.org/10.1007/s12553-020-00443-4
Banerjee SS, Mohapatra S, Saha G (2021) Developing a framework of artificial intelligence for fashion forecasting and validating with a case study. Int J Enterp Netw Manag 12:165–180. https://doi.org/10.1504/IJENM.2021.10039608
Mohapatra S (2019) Critical review of literature and development of a framework for application of artificial intelligence in business. Int J Enterp Netw Manag 10:176–185. https://doi.org/10.3390/jrfm14120604
Rubin KS (2012) Essential Scrum: a practical guide to the most popular agile process. Addison-Wesley, US
Brown JD (2011) Likert items and scales of measurement. Statistics 15: 10–14. http://hosted.jalt.org/test/bro_34.htm
Thompson MP, Walsham G (2004) Placing knowledge management in context. J Manage Stud 41:725–747. https://doi.org/10.1111/j.1467-6486.2004.00451.x
Podsakoff PM, MacKenzie SB, Lee JY, Podsakoff NP (2003) Common method biases in behavioral research: a critical review of the literature and recommended remedies. J Appl Psychol 88:879–903. https://doi.org/10.1037/0021-9010.88.5.879
Armstrong JS, Overton TS (1977) Estimating nonresponse bias in mail surveys. J Mark Res 14:396–402. https://doi.org/10.2307/3150783
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Dehghani, R., Ramsin, R. A knowledge management-driven and DevOps-based method for situational method engineering. Inf Technol Manag 24, 267–291 (2023). https://doi.org/10.1007/s10799-023-00386-y
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10799-023-00386-y