유지 보수에 소요되는 시간에 대한 업계 평균


17

최근 한 관리자는 버그 수정에 너무 많은 시간을 소비하고 있다고 발표했습니다. 그는 우리가 항상 완벽한 코드를 작성해야한다고 생각한다고 생각합니다 (물론 불가능한 마감일을 지키는 동안!) 새로운 코드를 작성하는 데 버그를 수정하는 데 걸린 평균 시간이 얼마인지 궁금해졌습니다.

그렇다면 새로운 코드 개발에 대한 버그 수정에 소요되는 시간에 대한 통계가 있습니까? 아니면 업계 전체의 버그 수정 시간에 대한 경험적 분석이 있습니까? 50 %가 버그 수정에 너무 많은 비용이 듭니까? 20 % 또는 33 %는 어떻습니까?

개인 경험에서 비롯된 일화적인 증거를 받아들이게되어 기쁩니다. 여기서 우리의 성과를 비교할 수있는 일부 통계의 일부가 될 것입니다.


9
관리자는 소리를 매우 무식한. 그런 경우에 대한 제안 읽기 : 소프트웨어 공학의 사실과 착오 로버트 L. 유리, 특히에 의해 ". 사실 43. 유지 보수 솔루션이 아니라이 문제" Wikipedia 기사에 따르면 소프트웨어 유지 관리에 80 %의 노력이
들었

3
진짜 문제 는 무엇입니까 ? 품질 문제가 있습니까? 프로세스가 실제로 비효율적입니까? 아니면 관리자가 소프트웨어 비용이 그렇게 많이 들지 않기를 바라고 있습니까?
케빈 클라인

@ gnat : 귀하의 의견은 가장 좋은 답변입니다
케빈 클라인

@kevincline thanks- 의견을 답변으로 변환
gnat

유지 관리는 버그 (결함) 수정에만 국한된 것이 아니며 개별 프로젝트마다 그 양이 크게 다릅니다 (= 정답 없음). 나에게 그것은 당신이 다소 품질 문제가있는 것 같습니다.
MaR

답변:


13

최근 한 관리자는 버그 수정에 너무 많은 시간을 소비하고 있다고 발표했습니다.

위의 소리는 매우 무지합니다. 그런 경우에 대한 제안 읽기 : 소프트웨어 공학의 사실과 착오 로버트 L. 유리, 특히에 의해 ". 사실 43. 유지 보수 솔루션이 아니라이 문제"

Wikipedia 기사 에는 소프트웨어 유지 관리에 80 %의 노력이 들었다고 언급되어 있습니다.

내 관리자는 Dilbert의 PHB를 천재처럼 보이게 만듭니다. :)

Hm 위에서 주어진 모든 요청이 실제로 버그 인지 분석하는 데 약간의 노력을 기울입니다 .

내 경험상 개선 또는 새로운 기능에 대한 요청이 버그로 제출 된 것은 너무 흔했습니다. 훌륭한 관리자는 프로그래머가 나쁜 관리자를 찾는 데 관여합니다 . 버그를 수정 하는 데 너무 많은 시간을 계속해서 불평 합니다 .


2
버그 수정! = 유지 보수! 버그 수정은 시스템에서 오류를 코딩했음을 의미하며 올바른 기능을 복원하려면 수정해야합니다 . 유지 관리 란 버그 수정, 확장 성 개선, 하드웨어 마이그레이션 및 성능 개선과 같은 모든 작업을 의미합니다. 버그 수정에만 소비되는 시간의 25-30 % 이상이 즉시 관리 호출이 필요하다고 말합니다. 중간 규모 기업 시스템에 적합한 전체 사운드를 유지하는 데 드는 노력의 최대 40-50 %.
Apoorv Khurasia

다른 종류의 버그에 대한 수치가 있습니까? "쇼 스토퍼 (show stopper)"버그가 많은 우선 순위가 높은 경우, 개발 과정에서 소스를 결정하기 위해 약간의 작업이 필요할 수 있지만, 그다지 중요하지 않은 경우가 많습니다. 또한 gnat가 말했듯이, 그들 중 다수는 향상 요청 일 수 있습니다.
Stevetech

위키 백과 기사의 인용이 잘못되었습니다! 그것은 말한다 "유지 보수 노력의 80 %가 비 시정 조치에 사용되는" 하지만, 유지 보수 시간 디자인 또는 코딩 또는 다른 작업에 비해에 대해 아무것도 말하지 않는다.
Tobias Knauss

9

"버그 수정"이 실제로 코딩 버그 나 다른 것을 수정하고 있는지 물어보아야합니다. 실제 코드 버그의 수정은 코드 기반이 좋은 한 대부분의 경우 비교적 작아야합니다. 열악한 코드 기반으로 작업하는 경우 광범위한 버그 수정이 불가피합니다.

그러나 프로그램을 프로덕션 환경에 넣는 과정에서 문서화되지 않은 요구 사항, 예기치 않은 사용자 활동, 데이터 이상, 하드웨어 비 호환성, 설치 문제 및 엄격하게 코드 버그가 아닌 기타 문제가 발견됩니다. 종종 관리자와 사용자는 이러한 프로덕션 지원 / 유지 보수 문제를 일반적으로 코드 변경이 필요하기 때문에 버그로 생각합니다.

또한 사소한 개선 요청이라고하는 것을 버그로 그룹화하는 관리자를 만났습니다. 이들은 종종 버그 추적 또는 문제보고 시스템에 입력되어 "버그"통계를 실제보다 높게 만들 수 있습니다.


당신이 설명하는 것은 우리가 가진 것이지만, 아무것도 바뀌지 않습니다 :(
gbjbaanb

8

그것은 얼마나 많은 코드가 있는지, 얼마나 오래 있었는지 등에 달려 있습니다.

소프트웨어에서 버그를 수정하는 데 소요 된 시간은 출시 첫 6-12 개월로 전면로드되어야하지만 시간이 무한대에 가까워 질수록 유지 관리에 소요되는 시간과 초기 개발에 소요되는 시간이 100 %를 초과합니다. 작업.

어려운 통계는 없지만 (Code Complete는하지만 어떤 페이지 / 섹션을 정확하게 말할 수는 없지만) 내 경험상 개발의 약 40 % (때로는 60 %)가 유지 보수에 소비됩니다. 더 많은 코드를 릴리스할수록 유지 보수 시간이 길어질 것입니다. 버그는 항상 작동하는 것은 아니며 프로그래밍 방식의 결함만큼이나 불확실성의 결과입니다.


0

좋은 티켓 추적기를 사용하고 (Atlasian의 Jira와 같은) 모든 다른 카테고리, 사용자 스토리, 긴급 성 수준을 정확하게 입력하고 팀 동료의 동의에 따라 시간을 보냈다면 실제로 이러한 메트릭을 계산하는 등 놀랍도록 쉽습니다.

이전 프로젝트에서는 Jira를 사용하여 버그 / 태스크 / 할 일 목록을 관리했으며, 결국 지연과 문제의 가장 큰 원인이 비효율적 인 관리 방식 인 것으로 나타났습니다.

이상하게도, 그 정보가 나오자 우리는 더 이상 Jira를 더 이상 사용하지 않을 것이며 새로운 제품을 가져 와서 교체 할 것이라고 갑자기 말했습니다.

그 동안 Jira를 통해 전달되는 모든 데이터 요청은 관리 팀으로 보내 져야했으며 직접 액세스 권한이 제거되었습니다.

통계 계산의 일부로 개발자 팀은 Jira가 웹 후크에 데이터를 파킹했으며이 웹 후크는 일부 내부 서버의 데이터를 엔드 포인트로 전달하는 데 사용되었습니다. 이러한 보고서는 자동으로보고됩니다.

우리는 웹 후크를 모니터링하기 시작했고, Jira가 더 이상 사용되지 않는다고 말했지만, 더 오래 (정확한 6 개월 이상) 더 오랜 시간 동안 살아남 았으며 고위 경영진의 도매 남용은 잘못 사용하는 평범한 만연.

물론 Jira처럼 복잡한 것은 아닙니다.

수율이 낮은 솔루션을 원한다면 google-docs 스프레드 시트와 GDocs 알림 API를 사용하여 작업 / 티켓 / 버그 / 기능 요청 등을 추적 할 수 있습니다.

GDocs 자체는 이제 웹 후크 및 모든 종류의 것을 발행 할 수 있습니다.

코드를 저장소에 커밋 할 때 트리거되는 Git 및 / 또는 Github 및 일부 후크와 결합하면 놀라운 양의 데이터를 기록 할 수있는 합리적으로 효율적인 홈 브루 시스템이 있습니다.

그러나 일반적으로 제품의 자연 수명 100 % 중 그린 필드 개발과 유지 보수 간 분할은 일반적으로 20/80이며, ALM (Application Lifetime Management)주기의 대부분 비용은 유지 보수 및 지원 비용으로 사용됩니다.

버그를 수정하는 데 너무 많은 시간을 소비하는 것은 없습니다. 버그가없는 코드를 작성하는 것은 불가능하기 때문입니다.

좋은 테스트와 지속적인 통합 정책으로 적자를 줄일 수는 있지만이를 완전히 제거 할 수는 없습니다.

그렇지 않다고 믿는 사람 (IMHO)은 정확한 판단을 내릴 충분한 지식이 없거나 소프트웨어를 실제로 작성하는 것이 얼마나 어려운지에 대한 맹목적입니다 (보다 일반적인 경우).

당신의 관리자가 그것을 위해 있고 그들 중 일부가 있다면, 당신은 그가 하루 동안 그림자를 드리울 것을 제안하고 싶을 것이므로, 당신이하는 일과 어떻게하는지 정확히 볼 수 있습니다.

Iv는 이러한 종류의 작업이 적극적으로 권장되는 일부 회사에서 근무했으며, 상위 직원은 하위 직원을 숨기고 그 반대도 마찬가지입니다.


2
"버그를 고치는 데 너무 많은 시간을 소비하는 것과 같은 일은 없습니다"-엄청난 쓰레기입니다. 시장에서 경쟁력을 유지할 수 없어서 회사가 겪고있는 버그를 수정하는 데 충분한 시간을 할애한다면 (버그보다는 버그를 수정했기 때문에) 버그를 수정 하는 데 너무 많은 시간을 보냈습니다 ...
Telastyn

그리고 대안? -버그를 수정하는 데 충분한 시간을 소비하지 않으며 앱 충돌, 화상 및 경쟁 업체가 모든 사용자 정의를 취해 효과적으로 시장에서 밀려납니다. 비결 (그리고이 중 가장 어려운 부분)은 실제로 허용 가능한 균형을 찾는 것입니다.
shawty

1
아니요, 동의합니다. 그러나 저는이 시대를 진정으로 믿기 때문에 적절한 디버깅 기술이 사라져 버렸습니다. 우리 중 너무 많은 사람들은 단위 테스트와 같은 것들에 너무 많이 의존합니다 .IMHO는 너무 많은 거짓 보안을 제공합니다. 단위 테스트가 폐지되어야한다고 말하는 것은 아니지만 적절한 디버깅 및 버그 수정 사례가 더 이상 충분하지 않다고 말하는 것입니다. 이것은 버그 수정이 필요하지 않다고 믿으며 (따라서 IMHO가) 충분하지 않다고 생각하는 관리자 (위에서 설명한대로)로 이어집니다.
shawty

2
단위 테스트와 디버깅은 다른 문제에 사용되는 다른 기술입니다. "우리의 코드가 정확합니까?"문제를 해결하면 "코드가 왜 깨 졌는가"문제를 더 잘 방지 할 수 있습니다. 모든 것이 평등하기 때문에 근본 원인을 식별하는 것보다 올바른 코드를 작성하는 데 능숙합니다.
Telastyn

1
이제 그 점에 동의합니다. 오늘날의 업계에서 많은 프로그래머들이이 작업을 9시에서 5 시까 지의 또 다른 직업으로 취급하는 것은 슬픈 일입니다. 과거에는 개발자들이 훌륭하고 견고하며 테스트를 거친 코드를 작성하는 데 큰 자부심을 갖고 키보드 근처로 가기 전에 코드에 대해 생각하는 데 시간을 보냈습니다.
shawty
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.