Skip to main content
QUICK REVIEW

[논문 리뷰] Code Red: The Business Impact of Code Quality -- A Quantitative Study of 39 Proprietary Production Codebases

Adam Tornhill, Markus Borg|arXiv (Cornell University)|2022. 03. 08.
Software Engineering Research인용 수 4
한 줄 요약

이 정량적 연구는 코드 품질 지표, 버전 관리 데이터, Jira 이슈 추적 데이터를 사용하여 39개의 기업 내부 생산 코드베이스를 분석하여, 낮은 코드 품질이 결함 발생률, 개발 시간, 그리고 예측 불가능성을 크게 증가시킨다는 것을 입증한다. 연구 결과, 낮은 품질의 코드는 결함이 15배 많고, 복구 시간이 평균 124% 더 오래 걸리며, 최대 사이클 시간이 9배 길어진다. 이는 코드 품질이 기술적 문제를 넘어서 핵심 비즈니스 요소임을 입증한다.

ABSTRACT

Code quality remains an abstract concept that fails to get traction at the business level. Consequently, software companies keep trading code quality for time-to-market and new features. The resulting technical debt is estimated to waste up to 42% of developers' time. At the same time, there is a global shortage of software developers, meaning that developer productivity is key to software businesses. Our overall mission is to make code quality a business concern, not just a technical aspect. Our first goal is to understand how code quality impacts 1) the number of reported defects, 2) the time to resolve issues, and 3) the predictability of resolving issues on time. We analyze 39 proprietary production codebases from a variety of domains using the CodeScene tool based on a combination of source code analysis, version-control mining, and issue information from Jira. By analyzing activity in 30,737 files, we find that low quality code contains 15 times more defects than high quality code. Furthermore, resolving issues in low quality code takes on average 124% more time in development. Finally, we report that issue resolutions in low quality code involve higher uncertainty manifested as 9 times longer maximum cycle times. This study provides evidence that code quality cannot be dismissed as a technical concern. With 15 times fewer defects, twice the development speed, and substantially more predictable issue resolution times, the business advantage of high quality code should be unmistakably clear.

연구 동기 및 목표

  • 코드 품질이 결함 발생률, 개발 시간, 이슈 해결의 예측 가능성에 끼치는 비즈니스 영향을 수량화하는 것.
  • 비즈니스 관리자들이 공감할 수 있는 측정 가능한 KPI가 부족한 문제를 해결하는 것.
  • 기술 부채와 낮은 코드 품질이 개발자 시간을 크게 낭비하고 팀의 생산성을 떨어뜨린다는 것을 입증하는 것.
  • 고품질 코드가 개발 속도 향상, 결함 감소, 일정 예측 가능성 향상에 기여한다는 경험적 증거를 제공하는 것.
  • 코드 품질을 단순한 기술적 고려가 아니라 핵심 비즈니스 목표로 삼아야 한다는 주장을 펼치는 것.

제안 방법

  • 연구는 코드 품질의 대리 지표로 CodeScene의 코드 헬스 지표를 사용하여 파일을 '헬시(Healthy)', '경고(Warning)', '레드(Alert, Red)' 수준으로 분류한다.
  • 소스 코드 분석, 버전 관리 데이터 마이닝, Jira 이슈 데이터를 융합하여 파일 수준에서 개발 시간(Time-in-Development)을 계산한다.
  • 다양한 분야의 39개 기업 내부 생산 코드베이스에서 30,737개 파일을 분석한다.
  • 코드 품질 수준 간에 결함 밀도, 평균 및 최대 사이클 시간, 개발 시간의 분산을 계산한다.
  • 통계 분석을 통해 코드 헬스 카테고리 간 개발 노력과 예측 가능성의 차이를 비교한다.
  • 이 방법은 개발 시간과 이슈 해결 패턴을 세밀하게 파일 수준에서 추적할 수 있도록 한다.

실험 결과

연구 질문

  • RQ1코드 품질은 생산 코드에서 보고된 결함 수에 어떤 영향을 미치는가?
  • RQ2코드 품질은 이슈 해결에 소요되는 평균 시간에 어떤 영향을 미치는가?
  • RQ3코드 품질은 사이클 시간 분산을 통해 이슈 해결의 예측 가능성에 얼마나 영향을 미치는가?
  • RQ4코드 품질은 이슈 해결의 최대 사이클 시간에 어떤 영향을 미치는가?
  • RQ5코드 품질은 개발 노력의 불확실성과 어떤 관계가 있는가?

주요 결과

  • 낮은 품질의 코드(Red Code Health)는 높은 품질의 코드(Healthy 코드)보다 15배 더 많은 결함을 포함한다.
  • 낮은 품질의 코드에서 이슈를 해결하는 데 평균적으로 높은 품질의 코드보다 124% 더 오랜 시간이 소요된다.
  • 낮은 품질의 코드에서 이슈 해결의 최대 사이클 시간은 높은 품질의 코드보다 9배 길다.
  • 낮은 품질의 코드에서 변경 사항을 처리하는 데 소요되는 개발 시간은 상당히 높은 분산을 보이며, 이는 더 높은 예측 불가능성을 의미한다.
  • 경고 카테고리에 속하는 코드조차도 헬시 코드보다 평균 78% 더 오랜 개발 시간이 소요되며, 이는 중간 수준의 품질 문제 역시 상당한 비즈니스 영향을 미친다는 것을 시사한다.
  • 낮은 품질의 코드에서 개발 시간의 높은 분산은 스트레스를 증가시키고 계획 정확도를 떨어뜨려 팀의 성능과 지속 가능성에 악영향을 준다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.