Abstract
Agile methods are widely used and successful in many development situations and beginning to attract attention amongst the software maintenance community – both researchers and practitioners. However, it should not be assumed that implementing a well-known agile method for a maintenance department is therefore a trivial endeavour - the maintenance operation differs in some, important respects from development work. Classical accounts of software maintenance emphasise more traditional software engineering processes, whereas recent research accounts of agile maintenance efforts uncritically focus on benefits. In an action research project at Aveva in Denmark we assisted with the optimisation of SCRUM, tailoring the standard process to the immediate needs of the developers. We draw on both theoretical and empirical learning to formulate seven heuristics for maintenance practitioners wishing to go agile.
Similar content being viewed by others
References
Abrahamsson P, Salo O, Ronkainen J, Warsta J (2002) Agile software development methods: review and analysis. VTT, Finland
Abrahamsson P, Conboy K, Wang X (2009) ‘Lots done, more to do’: the current state of agile systems development research. Eur J Inf Syst 18(4):281–284
Arisholm E, Briand LC, Hove SE, Labiche Y (2006) The impact of UML documentation on software maintenance: an experimental evaluation. IEEE Trans Softw Eng 32(6):365–381
Baskerville R, Wood-Harper AT (1998) Diversity in information systems action research methods. Eur J Inf Syst 7:90–107
Beck K, Andres C (2004) Extreme programming explained: embrace change. Addison-Wesley Professional, USA
Beck K, Beedle M, van Bennekum A, Cockburn A, Cunningham W, Fowler M, Grenning J, Highsmith J, Hunt A, Jeffries R, Kern J, Marick B, Martin RC, Mellor S, Schwaber K, Sutherland J, Thomas D (2001) Manifesto for Agile Software Development. Accessed Web Page
Bennett KH, Rajlich VT (2000) Software maintenance and evolution: a roadmap. In: Proceedings of the Conference on the Future of Software Engineering. ACM, pp 73–87
Boehm B (2002) Get ready for agile methods, with care. Computer 35(1):64–69
Boehm B, Turner R (2003) Observations on balancing discipline and agility. In: Proceedings of the Agile Development Conference, Salt Lake City, Utah, USA. IEEE Computer Society, pp 32–39
Buchmann I, Frischbier S, Putz D (2011) Towards an estimation model for software maintenance costs. In: 15th European Conference on Software Maintenance and Reengineering (CSMR) Oldenburg. IEEE Computer Society, pp 313–316
Charette RN, Adams KM, White MB (1997) Managing risk in software maintenance. IEEE Softw 14(3):43–50
Choudhari J, Suman U (2010) Iterative Maintenance Life Cycle Using eXtreme Programming. In: International Conference on Advances in Recent Technologies in Communication and Computing (ARTCom 2010). IEEE, pp 401–403
Choudhari J, Suman U (2014) Extended iterative maintenance life cycle using eXtreme programming. ACM SIGSOFT Softw Eng Notes 39(1):1–12
Cockburn A (2006) Agile software development: the cooperative game. Addison-Wesley Professional, Boston
Cockburn A, Highsmith J (2002) Agile software development, the people factor. Computer 34(11):131–133
Conboy K (2009) Agility from first principles: reconstructing the concept of agility in information systems development. Inf Syst Res 20(3):329–354
Conboy K, Fitzgerald B (2010) Method and developer characteristics for effective agile method tailoring: A study of XP expert opinion, vol 20. ACM Transactions on Software Engineering Methodology, vol 1. doi: 10.1145/1767751.1767753
De Lucia A, Pompella E, Stefanucci S (2003) Assessing the maintenance processes of a software organization: an empirical analysis of a large industrial project. J Syst Softw 65(2):87–103
De Sousa KD, Anquetil N, De Oliveira KM (2004) Learning software maintenance organizations. In: Advances in Learning Software Organizations. Springer-Verlag Berlin Heidelberg, pp 67–77
de Souza SCB, Anquetil N, de Oliveira KM (2005) A study of the documentation essential to software maintenance. In: Proceedings of the 23rd annual international conference on Design of communication: documenting & designing for pervasive information. ACM, pp 68–75
de Souza SC, Anquetil N, de Oliveira KM (2006) Which documentation for software maintenance? J Braz Comput Soc 12(3):31–44
Dybå T, Dingsøyr T (2008) Empirical studies of agile software development: a systematic review. Inf Softw Technol 50(9–10):833–859
Dzidek WJ, Arisholm E, Briand LC (2008) A realistic empirical evaluation of the costs and benefits of UML in software maintenance. IEEE Trans Softw Eng 34(3):407–432
Ghods M, Nelson KM (1998) Contributors to quality during software maintenance. Decis Support Syst 23(4):361–369
Grubb P, Takang AA (2003) Software maintenance: concepts and practice. Thomson Computer Press, London
Hall R, Lineham S (1997) Using metrics to improve software maintenance. BT Technol J 15(3):123–129. doi:10.1023/a:1018694404616
Hanssen GK, Yamashita AF, Conradi R, Moonen L (2009) Maintenance and agile development: Challenges, opportunities and future directions. In: International Conference on Software Maintenance, ICSM 2009., Edmonton, Alberta, Canada. IEEE, pp 487–490
Heeager LT (2012) Introducing agile practices in a documentation-driven software development practice: a case study. J Inf Technol Case Appl Res 14(1):3–24
Heeager LT, Nielsen PA (2009) Agile Software Development and its Compatibility with a Document-Driven Approach? A Case Study. In: Scheepers H DM (ed) Australasian Conference on Information Systems, Melbourne, Australien, 2009. p 205
Heeager LT, Nielsen PA (2013) Agile software development and the barriers to transfer of knowledge: an interpretive case study. In: Aanestad M, Bratteteig T (eds) Scandinavian conference on information systems. Springer, Oslo, pp 18–39
Junio GA, Malta MN, de Almeida Mossri H, Marques-Neto HT, Valente MT (2011) On the benefits of planning and grouping software maintenance requests. In: 15th European Conference on Software Maintenance and Reengineering (CSMR), Oldenburg. IEEE, pp 55–64
Kajko-Mattsson M (2008) Problems in agile trenches. In: Proceedings of the Second ACM-IEEE international symposium on Empirical Software Engineering and Measurement, Kaiserslautern, Germany. ACM, pp 111–119
Kajko-Mattsson M, Nyfjord J (2009) A model of agile evolution and maintenance process. In: 42nd Hawaii International Conference on System Sciences Hawaii. IEEE, pp 1–10
Kitchenham BA, Travassos GH, von Mayrhauser A, Niessink F, Schneidewind NF, Singer J, Takada S, Vehvilainen R, Yang H (1999) Towards an ontology of software maintenance. J Softw Maint 11(6):365–389
Kung H, Hsu C (1998) Software maintenance life cycle model. International Conference on Software Maintenance. IEEE Computer Society, Bethesda
Lehman MM (1980) on understanding laws, evolution, and conservation in the large-program life cycle. J Syst Softw 1:213–221
Lientz BP, Swanson EB (1980) Software maintenance management. Addison Wesley, Reading MA
McKay J, Marshall P (2001) The dual imperatives of action research. Inf Technol People 14(1):46–59
Misra SC, Kumar V, Kumar U (2010) Identifying some critical changes required in adopting agile practices in traditional software development projects. Int J Qual Reliab Manag 27(4):451–474
Moe NB, Dingsøyr T, Dybå T (2010) A teamwork model for understanding an agile team: a case study of a Scrum project. Inf Softw Technol 52(5):480–491
Myers MD, Newman M (2007) The qualitative interview in IS research: examining the craft. Inf Organ 17(1):2–26
Nawrocki JR, Walter B, Wojciechowski A (2002) Comparison of CMM level 2 and eXtreme programming. In: 7th European Conference on Software Quality Software Quality, Hensinki, Finland. Springer, pp 288–297
Nerur S, Mahapatra RK, Mangalaraj G (2005) Challenges of migrating to agile methodologies. Commun ACM 48(5):73–78
Nguyen V, Boehm B, Danphitsanuphan P (2011) A controlled experiment in assessing and estimating software maintenance tasks. Inf Softw Technol 53(6):682–691
Paetsch F, Eberlein A, Maurer F (2003) Requirements engineering and agile software development. In: Proceedings of the Twelfth International Workshop on Enabling Technologies: Infrastructure for Collaborative Enterprises, Linz, Austria. Citeseer, p 308
Paulk MC (2002) Agile methodologies and process discipline. Crosstalk-J Def Softw Eng 1(1):15–18
Pigoski TM (1996) Practical software maintenance: best practices for managing your software investment. Wiley, New York
Pikkarainen M, Haikara J, Salo O, Abrahamsson P, Still J (2008) The impact of agile practices on communication in software development. Empir Softw Eng 13(3):303–337
Pino FJ, Ruiz F, Garcia F, Piattini M (2012) A software maintenance methodology for small organizations: Agile_MANTEMA. J Softw Evol and Process 24(8):851–876
Polo M, Piattini M, Ruiz F (2002) Using a qualitative research method for building a software maintenance methodology. Softw Pract Experience 32(13):1239–1260
Poole C, Huisman JW (2001) Using extreme programming in a maintenance environment. IEEE Softw 18(6):42–50
Poole CJ, Murphy T, Huisman JW, Higgins A (2001) Extreme maintenance. In: Software Maintenance. Proceedings. IEEE International Conference on, Florence, Italy. IEEE, pp 301–309
Popovic M, Atlagic B, Kovacevic V (2001) Case study: a maintenance practice used with real-time telecommunications software. J Softw Maint Evol Res Pract 13(2):97–126
Prochazka J (2011) Agile Support and Maintenance of IT Services. In: Information Systems Development, Prague, Czech Republic. Springer, pp 597–609. doi: 10.1007/978-1-4419-9790-6_48
Rose J (1997) Soft systems methodology as a social science research tool. Syst Res Behav Sci 14(4):249–258
Rudzki J, Hammouda I, Mikkola T (2009) Agile Experiences in a Software Service Company. In: 35th Euromicro Conference on Software Engineering and Advanced Applications, SEAA'09. IEEE, pp 224–228
Runeson P, Höst M (2009) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131–164
Schwaber K, Beedle M (2001) Agile software development with Scrum. Prentice Hall, Upper Saddle River
Senapathi M (2010) Adoption of software engineering process innovations: The case of agile software development methodologies. In: Agile Processes in Software Engineering and Extreme Programming, 11th International Conference, XP 2010, Trondheim, Norway. Springer, pp 226–231
Shaw S (2007) Using Agile Practices in a Maintenance Environment. Intelliware Development Inc
Sherer SA (1997) Using risk analysis to manage software maintenance. J Softw Maint Res Pract 9(6):345–364
Sidky A, Arthur J, Bohner S (2007) A disciplined approach to adopting agile practices: the agile adoption framework. Innov Syst Softw Eng 3(3):203–216
Singer J (1998) Practices of software maintenance. In: International Conference on Software Maintenance. IEEE, pp 139–145
Souza SCBd, Anquetil N, #225, Oliveira tMd (2005) A study of the documentation essential to software maintenance. Paper presented at the Proceedings of the 23rd annual international conference on Design of Communication: designing for pervasive information, Coventry, United Kingdom
Stachour P, Collier-Brown D (2009) You don’t know jack about software maintenance. Commun ACM 52(11):54–58
Standards Coordinating Committee of the Computer Society of the I (1990) IEEE Standard Glossary of Software Engineering Terminology. vol IEEE Standard 610.12. Los Alamitos
Sukumaran S, Sreenivas A (2005) Identifying test conditions for software maintenance. Ninth European conference on software maintenance and reengineering. IEEE Computer Society, Manchester. doi:10.1109/CSMR.2005.32
Susman GI, Evered RD (1978) An assessment of the scientific merits of action research. Adm Sci Q 23:582–603
Svensson H, Host M (2005) Introducing an agile process in a software maintenance and evolution organization. In: Ninth European Conference on Software Maintenance and Reengineering, Manchester, United Kingdom. IEEE, pp 256–264
Taylor M, Moynihan E, Laws A (1998) Training for software maintenance. J Softw Maint Res Pract 10:381–393
Thomas D (2006) Agile evolution: towards the continuous improvement of legacy software. J Object Technol 5(7):19–26
Vans M, von Mayrhauser A, Somlo G (1999) Program understanding behavior during corrective maintenance of large-scale software. Int J Hum Comput Studies 51(1):31–70
Ware M, Wilkie FG, Shapcott M (2007) The application of product measures in directing software maintenance activity. J Softw Maint Evol Res Pract 19(2):133–154
Zanker M, Gordea S (2006) Measuring, monitoring and controlling software maintenance efforts. In: Thirteenth International Symposium on Temporal Representation and Reasoning, TIME 2006 Budapest. IEEE Computer Society, pp 103–110
Acknowledgments
The authors would like to thank our dedicated collaborators at Aveva.
The project was partially funded by the European Union through the CAIN project.
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: Hakan Erdogmus
Rights and permissions
About this article
Cite this article
Heeager, L.T., Rose, J. Optimising agile development practices for the maintenance operation: nine heuristics. Empir Software Eng 20, 1762–1784 (2015). https://doi.org/10.1007/s10664-014-9335-7
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-014-9335-7