Abstract
Technical Debt is a term coined by Ward Cunningham to denote the amount of rework required to put a piece of software into that state which it should have had from the beginning. The term outdates the agile revolution. Technical debt can occur using any development approach, but since agile development has become wide spread the notion of “technical debt” has gained much more attention. That is because if agile development is not done properly, technical debt accrues very fast and threatens to strangle the project. In this paper the author describes how technical debt comes to being, how it can be measured and what can be done to prevent it in agile development. The emphasis of the paper is on how to prevent it. What measures are necessary in an agile development project to keep technical debt from accruing over time? The paper lists out a number of measures which can be taken – organizational, procedural and technical. Automated tools play an important role in the struggle against technical debt. Samples are given how a tool can be helpful in identifying and removing problems before they get out of hand. Also important is an external auditing agency which monitors projects in progress with the aide of automated tools. In the end a case study is presented which illustrates the monitoring of technical debt within an agile development and what counter measures are required to stop it.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Kruchten, P., Nord, R.: Technical Debt – from Metaphor to Theory and Practice. IEEE Software, S.18 (December 2012)
Cunningham, W.: The Wgcash Portfolio Management System. In: Proc. of ACM Object-Oriented Programming Systems, Languages and Applications, OOPSLA, New Orleans, p. S.29 (1992)
Sterling, C.: Managing Software Dept – Building for inevitable Change. Addison-Wesley (2011)
Lim, E., Taksande, N., Seaman, C.: A Balancing Act – What Practioneers say about Technical Debt. IEEE Software, S.22 (December 2012)
Fowler, M., Beck, K.: Improving the Design of existing Code. Addison-Wesley, Boston (2011)
Zhang, M., Hall, T., Baddoo, M.: Code Smells – A Review of Current Knowledge. Journal of Software Maintenance and Evolution 23(3), 179 (2011)
Curtis, B., Sappidi, J., Szynkarski, A.: Estimating the Principle of an Application’s Technical Debt. IEEE Software, S. 34 (December 2012)
Wendehost, T.: Der Source Code birgt eine Kostenfalle. Computerwoche 10, S.34 (2013)
Nakajo, T.: A Case History Analysis of Software Error Cause and Effect Relationships. IEEE Trans. on S.E. 17(8), S.830 (1991)
Shore, J.: Why I never met a Programmer that I could trust. ACM Software Engineering Notes 5(1) (January 1979)
Linz, T.A.O.: Testing in Scrum Projects, p. 177. Dpunkt Verlag, Heidelberg
Lai, C.: Java Insecurity – accounting for Sublities that can compromise Code. IEEE Software Magazine 13 (January 2008)
Merlo, E., Letrte, D., Antoniol, G.: Automated Protection of PHP Applications against SQL Injection Attacks. In: IEEE Proc. 11th European Conference on Software Maintenance and Reengineering (CSMR 2007), Amsterdam, p. 191 (March 2007)
Crispin, L., Gregory, J.: Agile Testing – A practical Guide for Testers and agile Teams. Addison-Wesley-Longman, Amsterdam (2009)
Ayewah, N., Pugh, W.: Using Static Analysis to find Bugs. IEEE Software Magazine, 22 (September 2008)
Vieg, J., McGraw, G., Felten, E.: Statically Scanning Java Code – Finding Security Vulnerabilities. IEEE Software Magazine, 68 (September 2000)
Zheng, J., Williams, L., Nagappan, N., Snipes, W.: On the Value of Static Analysis for Fault Detection in Software. IEEE Trans. on S.E. 32(4), 240 (2006)
Gueheneu, Y.-G., Moha, N., Duchien, L.: DÉCOR – A Method for the Detection of Code and Design Smells. IEEE Trans. on S.E 36(1), 20 (2010)
Linz, T.A.O.: Testing in Scrum Projects, p. 179. Dpunkt Verlag, Heidelberg
Sneed, H., Baumgartner, M.: Value-driven Testing – The economics of software testing. In: Proc. of 7th Conquest Conference, Nürnberg, p. 17 (September 2009)
Marre, M., Bertolini, A.: Using Spanning Sets for Coverage Measurement. IEEE Trns. on S.E. 29(11), 974 (2003)
Bloch, U.: Wenn Integration mit Agilität nicht Schritt hält. Computerwoche 24, S. 22 (2011)
Duvall, P., Matyas, S., Glover, A.: Continuous Integration – Improving Software Quality and reducing Risk. Addison-Wesley, Reading (2007)
Humble, J., Fairley, D.: Continuous Delivery. Addison-Wesley, Boston (2011)
Cockburn, A.: Agile Software Development. Addison-Wesley, Reading (2002)
Bavani, R.: Distributed Agile Testing and Technical Debt. IEEE Software, S.28 (December 2012)
Rothman, J.: Do you know what fracture-it is? Blog (June 2, 2011), http://www.jrothman.com
Letouzey, J.L., Ilkiewicz, M.: Managing Technical Debt. IEEE Software Magazine, 44 (December 2012)
Rothman, J.: Buy Now, Pay Later. In: Proc. of Belgium Testing Days, Brussels (March 2012)
Crispin, L., House, T.: Testing Extreme Programming. Addison-Wesley-Longmann, Reading (2002)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Sneed, H.M. (2014). Dealing with Technical Debt in Agile Development Projects. In: Winkler, D., Biffl, S., Bergsmann, J. (eds) Software Quality. Model-Based Approaches for Advanced Software and Systems Engineering. SWQD 2014. Lecture Notes in Business Information Processing, vol 166. Springer, Cham. https://doi.org/10.1007/978-3-319-03602-1_4
Download citation
DOI: https://doi.org/10.1007/978-3-319-03602-1_4
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-03601-4
Online ISBN: 978-3-319-03602-1
eBook Packages: Computer ScienceComputer Science (R0)