코드 복잡성과 개발자 생산성간에 상관 관계가 있습니까?


10

개발자 생산성 측면에서 장기적으로 가치가있는 코드 기반을 리팩토링하는 데 시간이 걸립니까?

깨끗하고 잘 설계된 시스템을 수정하는 것은 제대로 설계되지 않은 시스템을 작업하는 것보다 훨씬 간단하고 빠르다는 것이 분명하지만 확실한 증거가 있습니다. 이 주제에 대한 연구가 있습니까?



1
엉망을 스스로 유지하고 판사가 되십시오.
Tulains Córdova

답변:


16

경험적으로, 순환 복잡성과 같이 복잡도가 높은 소프트웨어는 유지 관리하기가 어렵습니다. 1970 년대로 거슬러 올라가는연구를 뒷받침하는 연구가 있다 ( "첸 복잡성 및 프로그램 생산성") . 또한 시스템 크기에 따른 순환 복잡성 인 복잡도 밀도는 유지 관리 시간 ( "사이클로 복잡도 밀도 및 소프트웨어 유지 관리 생산성", GK Gill, CF Kemerer) 과도 관련 이 있으며, 여기 에서도 무료로 제공 됩니다 . 불행히도 Chen의 논문에는 IEEE 구독이 필요하지만 관심이 있다면 다른 소스에서 찾아 볼 수도 있습니다.

품질 관점에서 볼 때 새로운 결함이 발생하지 않도록 테스트 프레임 워크가 있다고 가정하면 리팩토링에 시간을 투자하는 것이 좋습니다. 이를 통해 시스템에 새로운 기능을보다 쉽게 ​​구현하고 추가 테스트를 추가하며 새로운 개발자가 작업하도록 교육 할 수 있습니다.

그러나 궁극적으로 새로운 기능과 부가 가치를 제공해야한다는 압박이 있습니다. 새로운 기능 구현 및 결함 복구와 리팩토링의 균형을 유지해야합니다.


2
추가해야 할 또 다른 요점은 리팩토링 할 때 더 나은 /보다 효율적인 / 더 깨끗한 방식으로 기능을 구현할 수 있다는 것입니다. "5 년 동안 코드가 '좋았다'고 생각하면 울부 짖습니다"라는 효과에 대해 여러 번 들었던 격언이 있습니다.
warren

1
@hakre Google 웹 검색과 Google Scholar를 사용하여이 글을 올릴 때 다시 확인했습니다. 처음에이 게시물을 썼을 때, 구매하지 않은 종이는 없었습니다. 그러나 그 이후로 한 논문이 피츠버그 대학교 도메인에 게시되어 저자 중 한 명이 속하는 것으로 보이며 그에 대한 링크를 추가했습니다. 다른 용지는 무료로 제공되지 않습니다. 제목을 게시물 본문에 추가하여 제목을 약간 더 쉽게 검색 할 수 있도록했습니다. 논문을 읽고 싶지 않다면 나의 지식과 경험과 함께 나의 분석을 받아 들여야합니다.
Thomas Owens

0

나는 확실한 증거를보고있다

그럼 여기서 시간 낭비를 그만두세요.

  1. 유지 관리 비용이 많이 드는 코드를 찾으십시오. 그것은 간단합니다. 조직의 문제 티켓을보십시오.

  2. 유지 관리가 저렴한 코드를 찾으십시오. 자주 실행되지만 문제 티켓이 적거나없는 코드를 찾으십시오.

  3. 광범위하게 사용 가능한 복잡성 도구로 복잡성을 측정하십시오.

  4. 증거에 몸을 맡기십시오.

이제 명백한 것을 확인하기 위해 숫자를 제공했습니다.


5
실제로는 아닙니다. 소프트웨어에 의해 수행되는 작업의 복잡성은 선택된 구현에 의해 야기 된 추가 복잡성과 구별되어야한다.
reinierpost

4
-1 답변이 없습니다
Dave Hillier
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.