Efficient software maintenance

Efficient software maintenance: optimally managing dependencies in agile teams 

,

How can agile teams manage software dependencies efficiently? This article shows how maintenance becomes a priority - with automation, scrum integration and smart AI support.

Modern software development is hardly conceivable without external dependencies. Companies like Netflix show how well thought-out management of libraries and frameworks ensures scalability and high performance. Netflix relies on open source technologies such as Spring Boot and Spring Cloud to provide innovative solutions efficiently. Thanks to automated maintenance processes and a systematic update strategy, the company always stays technologically up to date. 

However, not all companies take this proactive approach - with sometimes devastating consequences. One example is the Equifax data incident of 2017, in which an unpatched security vulnerability in the open source library Apache Struts 2 enabled the theft of personal data from over 143 million people. The security problem was already known and an update was available. But because Equifax did not have clear maintenance processes in place, the update was not carried out in time. The damage: over 1.4 billion US dollars and a massive loss of trust. 

So we can conclude: Maintenance is not only a technical issue, but also a critical economic one. However, it often takes a back seat in agile teams. So how can software maintenance be made more efficient?

In my bachelor's thesis, I dealt with precisely this topic. How can companies optimize their maintenance processes to make software development more efficient? In this blog post, I share the key findings. 

Why agile teams struggle with software dependencies

The analysis of specialist literature and expert interviews reveals two main problems: 

1. organizational challenges

  • Maintenance is neglected: 
    New features have priority, updates are postponed
  • Unclear responsibilities:
    Nobody feels explicitly responsible for maintenance. .
  • High manual effort:
    Developers must regularly update dependencies and perform security checks manually. 

2. technical challenges

  • Hidden risks in dependencies:
    in indirectly integrated libraries are difficult to recognize.
  • Weak integration between tools:
    Different tools do not work together seamlessly. Compatibility problems:
    New library versions often lead to breaking changes.

Solutions for better software maintenance

Based on the challenges identified, various measures were developed to enable more efficient management of software dependencies. These approaches aim to address both organizational and technical problems.

1. introduction of the role of the "Maintenance Minister"

One major problem is the lack of accountability. The solution: a rotating maintenance role within the team.

  • Tasks of the "Maintenance Minister": Evaluate automated code analyses and derive measures.
  • Manage software dependencies: Regular updates and reduction of technical debt.
  • Manage security gaps: Document CVEs and implement countermeasures.
  • Optimize maintenance processes: Use retrospectives to identify improvements.

The advantage: Through regular rotation, maintenance knowledge is widely distributed, no team member remains solely responsible.

Figure 1 shows the comparison between an unstructured and a rotating responsibility for maintenance tasks.

2. systematically integrate maintenance into Scrum

To ensure that maintenance is not neglected, it should be an integral part of every sprint:

  • Allow for a maintenance buffer: A fixed amount of time in each sprint for maintenance topics.
  • Include maintenance tasks in the backlog: Systematically record and prioritize security-relevant updates.
  • Use Scrum events: Maintenance in Sprint Planning and Daily Scrum actively address the issue.
  • Introduce standardized maintenance intervals: Regular dependency checks (e.g. quarterly).

The result: Early detection and resolution of version conflicts.

3. use automation and AI for efficient maintenance

The automation of maintenance tasks and the use of AI-supported assistance systems significantly reduce manual effort. AI optimizes processes by processing data efficiently and facilitating analyses. The aim is to largely automate technical and organizational maintenance. Two prototypical use cases show how AI can Scrum-maintenance process more efficiently. 

Use Case 1: Automatic changelog generation

Target: Comprehensible summary of code changes to increase transparency and reduce manual documentation effort. 

How it works: When a pull request is created, a change summary is automatically created. This is stored in the change log and as a comment directly in the pull request.

Figure 2 shows how the automatic changelog generation works

Use case 2: AI-supported code review

Target: Identify security gaps, code quality problems and optimization potential at an early stage.

How it works: AI analyzes code for each pull request and detects violations of coding standards, inefficient implementations or potential security vulnerabilities.

Figure 3 shows the AI-supported maintenance assistant that optimizes the code review process.

Conclusion: Software maintenance as an integral part of development

  • Software maintenance is crucial for security, stability and efficiency. But it is often neglected. Companies should therefore take the following measures:
  • Clarify maintenance responsibility: Introduction of a rotating Maintenance Minister role.
  • Anchoring maintenance in Scrum: Schedule fixed times for maintenance in the sprint.
  • Automation & AI use: Smart tools significantly reduce manual effort.

How does your team deal with software maintenance? Share your experiences with us!

Maximilian Wesener

About ME

All contributions from Maximilian Wesener

Learn more

Further information on our website and in our newsletter

Arrow up