I have almost 10 years of experience programming in Java. I have also a long experience in big data and recommendation systems. Currently, I am the project leader of Walkmod, an open source tool to apply Java code conventions and also the organizer of Legacy Code Rocks Barcelona meetup.
The technical debt metaphor is gaining significant traction in the agile development community as a way to understand and communicate those issues related to accepting bad programming practices in order to achieve fast results (e.g a deadline). However, the idea of getting fast results becomes an illusion, since the cost of building software increases over the time.
In order to achieve a good technical debt management, agile methodologies suggest to measure it and add an specific entry in the sprint backlog to fix it incrementally and to apply continuous inspection to block new code quality issues. In this session, we will explore the different categories of technical debt and how can we benefit from Git workflow to reduce part of it incrementally and safely.
Who should attend your session?
People who care about continuous delivery processes and static code analysis tools.
What are the 'next steps' for an attendee to take after attending your session?
Configure their favourite development tools to address technical debt using Infrastructure as Code.
Who is your favourite fictional British character?
Does addressing technical debt conflict with business values?
It depends which debt we prioritize to fix, and its cost for the company status. Start-ups need to validate their business model as fast as possible. In such cases, you don’t know if what you are coding will be maintained - your code today may be removed next week. However, when companies discover their own business value, it is time to invest to ensure that benefits will not decrease over time due to maintenance costs.
In this talk we will suggest a way to control and reduce this debt with automatic and incremental approaches.
What kind of technical debt can be managed with a Git workflow?
Our Git Workflow determines where our different development tools are executed during the development lifecycle. Therefore, we address:
- Infrastructure debt - related with continuous delivery
- Knowledge debt - related with the code review process
- Coding / Architecture debt - related with continuous inspection (static code analysis tools)
- Testing debt - related with the continuous integration.