Skip to main content
Log in

Optimising agile development practices for the maintenance operation: nine heuristics

  • Published:
Empirical Software Engineering Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1

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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Baskerville R, Wood-Harper AT (1998) Diversity in information systems action research methods. Eur J Inf Syst 7:90–107

    Article  Google Scholar 

  • Beck K, Andres C (2004) Extreme programming explained: embrace change. Addison-Wesley Professional, USA

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Cockburn A (2006) Agile software development: the cooperative game. Addison-Wesley Professional, Boston

    Google Scholar 

  • Cockburn A, Highsmith J (2002) Agile software development, the people factor. Computer 34(11):131–133

    Article  Google Scholar 

  • Conboy K (2009) Agility from first principles: reconstructing the concept of agility in information systems development. Inf Syst Res 20(3):329–354

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Dybå T, Dingsøyr T (2008) Empirical studies of agile software development: a systematic review. Inf Softw Technol 50(9–10):833–859

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Ghods M, Nelson KM (1998) Contributors to quality during software maintenance. Decis Support Syst 23(4):361–369

    Article  Google Scholar 

  • Grubb P, Takang AA (2003) Software maintenance: concepts and practice. Thomson Computer Press, London

    Book  Google Scholar 

  • Hall R, Lineham S (1997) Using metrics to improve software maintenance. BT Technol J 15(3):123–129. doi:10.1023/a:1018694404616

    Article  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Article  Google Scholar 

  • Kung H, Hsu C (1998) Software maintenance life cycle model. International Conference on Software Maintenance. IEEE Computer Society, Bethesda

    Google Scholar 

  • Lehman MM (1980) on understanding laws, evolution, and conservation in the large-program life cycle. J Syst Softw 1:213–221

    Article  Google Scholar 

  • Lientz BP, Swanson EB (1980) Software maintenance management. Addison Wesley, Reading MA

    Google Scholar 

  • McKay J, Marshall P (2001) The dual imperatives of action research. Inf Technol People 14(1):46–59

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Myers MD, Newman M (2007) The qualitative interview in IS research: examining the craft. Inf Organ 17(1):2–26

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Nguyen V, Boehm B, Danphitsanuphan P (2011) A controlled experiment in assessing and estimating software maintenance tasks. Inf Softw Technol 53(6):682–691

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Pigoski TM (1996) Practical software maintenance: best practices for managing your software investment. Wiley, New York

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • Poole C, Huisman JW (2001) Using extreme programming in a maintenance environment. IEEE Softw 18(6):42–50

    Article  Google Scholar 

  • 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

    Article  MATH  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Schwaber K, Beedle M (2001) Agile software development with Scrum. Prentice Hall, Upper Saddle River

    Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Google Scholar 

  • Susman GI, Evered RD (1978) An assessment of the scientific merits of action research. Adm Sci Q 23:582–603

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • Thomas D (2006) Agile evolution: towards the continuous improvement of legacy software. J Object Technol 5(7):19–26

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

    Article  Google Scholar 

  • 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

Download references

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

Authors

Corresponding author

Correspondence to Lise Tordrup Heeager.

Additional information

Communicated by: Hakan Erdogmus

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10664-014-9335-7

Keywords

Navigation