개발자 생산성 측면에서 장기적으로 가치가있는 코드 기반을 리팩토링하는 데 시간이 걸립니까?
깨끗하고 잘 설계된 시스템을 수정하는 것은 제대로 설계되지 않은 시스템을 작업하는 것보다 훨씬 간단하고 빠르다는 것이 분명하지만 확실한 증거가 있습니다. 이 주제에 대한 연구가 있습니까?
개발자 생산성 측면에서 장기적으로 가치가있는 코드 기반을 리팩토링하는 데 시간이 걸립니까?
깨끗하고 잘 설계된 시스템을 수정하는 것은 제대로 설계되지 않은 시스템을 작업하는 것보다 훨씬 간단하고 빠르다는 것이 분명하지만 확실한 증거가 있습니다. 이 주제에 대한 연구가 있습니까?
답변:
경험적으로, 순환 복잡성과 같이 복잡도가 높은 소프트웨어는 유지 관리하기가 어렵습니다. 1970 년대로 거슬러 올라가는 이 연구를 뒷받침하는 연구가 있다 ( "첸 복잡성 및 프로그램 생산성") . 또한 시스템 크기에 따른 순환 복잡성 인 복잡도 밀도는 유지 관리 시간 ( "사이클로 복잡도 밀도 및 소프트웨어 유지 관리 생산성", GK Gill, CF Kemerer) 과도 관련 이 있으며, 여기 에서도 무료로 제공 됩니다 . 불행히도 Chen의 논문에는 IEEE 구독이 필요하지만 관심이 있다면 다른 소스에서 찾아 볼 수도 있습니다.
품질 관점에서 볼 때 새로운 결함이 발생하지 않도록 테스트 프레임 워크가 있다고 가정하면 리팩토링에 시간을 투자하는 것이 좋습니다. 이를 통해 시스템에 새로운 기능을보다 쉽게 구현하고 추가 테스트를 추가하며 새로운 개발자가 작업하도록 교육 할 수 있습니다.
그러나 궁극적으로 새로운 기능과 부가 가치를 제공해야한다는 압박이 있습니다. 새로운 기능 구현 및 결함 복구와 리팩토링의 균형을 유지해야합니다.
나는 확실한 증거를보고있다
그럼 여기서 시간 낭비를 그만두세요.
유지 관리 비용이 많이 드는 코드를 찾으십시오. 그것은 간단합니다. 조직의 문제 티켓을보십시오.
유지 관리가 저렴한 코드를 찾으십시오. 자주 실행되지만 문제 티켓이 적거나없는 코드를 찾으십시오.
광범위하게 사용 가능한 복잡성 도구로 복잡성을 측정하십시오.
증거에 몸을 맡기십시오.
이제 명백한 것을 확인하기 위해 숫자를 제공했습니다.