page icon

Refactoring Management and Monitoring in Data Engineering Teams

Background and Necessity
Agile development has become the mainstream approach in data engineering teams, with short-cycle iteration* development being the norm. This development style often prioritizes feature additions, making it easy for technical debt to accumulate, which in turn makes regular refactoring essential.
Progress Management Through Monitoring Metrics
To objectively evaluate the effectiveness of refactoring, the following three primary metrics should be continuously monitored:
  1. Lines of Code (LOC)
      • Purpose: Detect oversized and bloated modules.
      • Effect: Quantitatively assess improvements before and after refactoring.
  1. Module Coupling (Dependencies/Reference Counts)
      • Purpose: Visualize excessive dependencies between systems.
      • Effect: Track progress towards achieving loosely coupled system architecture.
  1. Number of Bugs/Incidents
      • Purpose: Measure improvements in code quality.
      • Effect: Monitor quality trends before and after refactoring.
Continuous Improvement Through Visualization
Regularly monitoring these metrics and visualizing them on dashboards offers the following benefits:
  • Consistent Decision-Making: Objective, data-driven decisions
  • Reduction of Person-Dependence: Decisions based on common evaluation criteria
  • Continuous Improvement: Data-driven improvement cycles
  • Facilitated Consensus-Building: Shared understanding among stakeholders, derived from visualized data
Implementation
To achieve visibility in both progress and quality, implement an automated aggregation system and dashboards using shared spreadsheets, enabling real-time status tracking.
*What Is Iteration Development?
"Iteration development" refers to the cycle of "design → development → testing → improvement" within agile development. Each cycle is typically set to a short period of one to four weeks, allowing for repeated refinement. This enables teams to flexibly and quickly respond to customer needs and external changes, evolving software or systems step by step. The term "sprint" in the Scrum framework has essentially the same meaning.
 
AI assistant: a large language model trained by Perplexity AI
Â