2009-08-26 1 views
5

왜 프로세스 후반에 결함을 발견하는 것이 더 많은 비용이 드는가?프로세스의 후반부에 결함을 발견하는 것이 왜 비용이 더 많이 듭니까?

나는 이것에 대해 많이 들었다. 그러나 나는 이것에 대한 이해와 문맥을 이해하기 위해 투쟁한다.

+2

http://www.joelonsoftware.com/articles/fog0000000043.html # 5 –

+3

더 일반적인 진술은 "나중에 프로세스에서 발견 될 때 결함을 _ 재하려면 비용이 많이 든다"입니다. – MSalters

답변

8

은 이상은, 버그를 발견하는 데 걸리는 :

  • 더를 버그의 행동이 올바른으로 인정되었을 수 있으며, 더 많은 다른 것들을 그 행동에 의존 수도 (Windows는이 문제로 유명합니다).

  • 시스템이 더욱 밀접하게 통합되면 버그가 추출 될 수 있습니다.

  • 버그의 잘못된 동작이 복사 붙여 넣기 또는 오류 코드를 사용하는 클라이언트에 의해 다른 곳으로 복제 될 가능성이 높아집니다.

  • 코드가 원래 작성된 이후로 길어질수록 더 오래 이해할 수 있습니다.

  • 시스템의 원래 부분을 이해하는 사람들이 그 문제를 해결할 가능성이 적습니다.

1

결함이있는 소프트웨어를 사용하는 사람이 더 많아지기 때문입니다.

초기에 버그를 수정하면 코드 검토자가 조금 시간을 할애 할 수 있습니다. 누군가가 그것을 검토 할 수있다, 누군가가 그것을 테스트 수도, 누군가도 등을 기록하고 수도가 오류로 고객에게 공개하고보고 도착하면, 당신이 그것을 코딩 할 것이다

...

3

나중에 버그를 발견하면 악화됩니다. 코드를 작성한 직후에 버그를 발견하면 모든 행동을 염두에두고 변경 사항을 정확히 파악할 수 있습니다. 문제가있는 곳을 알면 문제에 집중할 수 있습니다.

오래 걸리면 개발자는 더 이상 정확하게 작동하는 것을 기억하지 않으며 버그를 찾기 위해 조사 할 곳이 더 많습니다. 아마도 버그를 코딩 한 개발자는 더 이상 회사에서 일하지 않습니다.

또한 시간이 지남에 따라 코드의 더 많은 부분이 버그 코드에 따라 달라질 수 있으므로 수정해야 할 수도 있습니다.

마지막으로 사용자와 관련된 문제가 있습니다. 출시 후에 버그를 발견하면 더 많은 사용자가이 버그로 인해 좌절하고 제품 이미지가 더 나빠집니다. 사용자는이 버그에 대한 해결 방법을 사용하는 데 사용할 수도 있습니다.이 버그는 사용자가 버그를 수정 한 후에 실패 할 수 있습니다.

요약 : 당신이 버그를 발견 오래 걸리지 때

    조사하기 위해 귀하의 범위는 버그를 만든 개발자는 더 이상 존재하지 않을 수
  • 더 큰
  • , 다른 개발자는 공부를해야합니다 더 많은 코드를 찾아 이해하고 수정하십시오.
  • 버그가있는 코드에 따라 달라지는 부분을 수정해야 할 수도 있습니다 (더 많은 부분이있을 수 있습니다).
  • 사용자는 이미 버그로 인해 좌절 할 것입니다. 제품 이미지가 손상 될 수 있습니다.
13

집을 짓고 있습니다. 하수도 파이프를 기초에 놓고 있지만, 당신에게 알려지지 않은 파이프 중 하나가 죽은 고슴도치에 의해 막혀 있습니다.

당신은 오히려 알겠습니까 :

  • 을 집이 완료된 후에는 콘크리트를
  • 을 부어 새로운 주인이 화장실을 사용하려고 직전에?

은 (어딘가에이와 유사. 8에 "스택 오버플로"농담이있다)

+1

어리석은 고슴도치 !! 적어도 그 오소리는 ... – Zoidberg

+0

당신의 헤지스를 공유하십시오! – MSalters

+2

큰 비유! 내 직업에서 사용자에게 프로그래밍 문제를 설명 할 때 자주 "하우스"비유를 사용합니다. –

1

결함의 고정에 영향을 미칠 것이다 (내부 또는 외부) 다른 종속 관계가있을 수 있습니다.

예를 들어 -이 결함을 해결하는 경우에, 나는

1

당신이 그것을 이후 과정에서 결함을 발견하기 위해 더 많은 비용이 많이 드는 이유에 대한 에세이를 작성하는 상상 뭔가를 수정해야 할 수도 있습니다, 당신은 갑자기 일을 실현 에세이 내용의 대부분이 근거지로되어있는

아직 계획 중이라면 변경할 페이지가 절반 밖에 없습니다. 에세이가 거의 끝나면 갑자기 많은 돈을 다 써서 다시 시작해야합니다. 이미 제출했다면 학년에 오류가 생길 것입니다.

같은 이유.

3

간단한 (단순하지는 않지만) 예제로 설명 할 수 있습니다.

메시지와 단 두 개의 "OK"및 "Cancel"버튼으로 간단한 대화를하십시오.

오류가 맞춤법 오류라고 가정합니다.

제품이 출시 된 후에 발견되면 제품과 관련된 모든 비용을 지불하여 새 버전의 제품을 릴리스해야합니다. 매뉴얼을 다시 인쇄해야합니다.

최종 테스트에서 발견되면 매뉴얼을 다시 인쇄해야합니다. 코드를 다시 작성하고 다시 실행해야합니다.

개발 중에 발견되면 코드를 수정하는 데 비용이 부과됩니다.

설계 중에 발견되면 코드는 처음으로 올바르게 작성됩니다 (비용은 들지 않습니다).

+0

+1 : 우리는 실제로 이것과 마주 쳤습니다. 고객은 우리에게 완전히 이해할 수없는 언어로 많은 레이블을 우리에게주었습니다. 우리가 확인할 수있는 유일한 방법은 각 성난 캐릭터의 각각의 성배를 조사하고 그것이 맞는지 확인하는 것이 었습니다. 클라이언트가 작업을 거부 함) + : 각 레이블의 첫 번째 단어는 '예제'와 동일합니다. – Everyone

1

수축 포장 소프트웨어 제품의 경우 : 제품이 상점에 도착한 후에 버그를 발견하면 지원 요청을 통해 사용자를 지원하거나 해결 방법을 제안하거나 제품을 회수하거나 서비스 팩을 발행해야합니다.

웹 사이트 : 사이트 중단 및 지연으로 인한 비용 지출. 가난한/고장난 사이트로 인해 고객이 손실되면 더 많은 비용이 발생합니다. 디버깅 프로세스도 비용이 많이 든다.

2
  1. 아무도 코드를 잘 이해하지 못하고 작성하는 동안 아무도 이해하지 못합니다.
  2. 사람들이 버그가 있다는 것에 의존하게되었을 수도 있습니다.
  3. 버그가 저장 한 많은 불량 데이터를 수정해야 할 수도 있습니다.
  4. 소프트웨어의 새 버전이나 패치를 배포해야 할 수 있습니다.
  5. 헬프 데스크에서 전화를 걸어야 할 수도 있습니다.
  6. 당신은 왜 그 버그가 존재하고 그것이 어떤 문제를 일으키는 지, 왜 그런 일이 일어나지 않았는지, 다시는 일어나지 않을지를 설명하는 서류를 작성해야 할 것입니다.
0

개발 프로세스 및 결함 수정에 관련된 모든 작업으로 인해.

어제 코딩 한 기능에서 문제가 발생했다면, 체크 아웃, 수정, 체크인, 기간 만 있다고 가정 해보십시오. 아직 마음에 새롭다. 당신은 그것이 무엇인지, 그리고 당신의 수정이 어떠한 부작용도 가지지 않는다는 것을 안다.

지금부터 6 개월 후에 동일한 버그를 발견한다고 상상해보십시오. 왜 그 기능이 코딩되었는지 기억할 것입니까? 이 프로젝트/회사에서 계속 작업 하시겠습니까? 결함 보고서를 열어야합니다. 소프트웨어의 새 버전을 발급해야합니다. 품질 보증 담당자는 수정 사항의 유효성을 검사해야합니다. 소프트웨어가 배포 된 경우 모든 인스턴스를 업그레이드해야하고 고객이 지원을 요청해야합니다 ...

이제 비용을 보여주는 곡선이 포인트를 설명하기 위해 만들어졌습니다. 그것은 실제로 개발 프로세스에 달려 있습니다.

1

아마도 질문 작성자는 오류 일 수 있습니다. 그러나 실제 질문은 "나중에 프로세스에서 결함을 발견하는 것이 왜 비용이 더 많이 드는가"입니다. 그 질문 내에서 버그를 발견하는 데 드는 비용이 있습니다. 그것을 고치는 것을 의미합니다. 대부분의 답변은 수정 비용을 설명하는 좋은 일을하고 나중에 수정하는 대신 수정하는 것이 더 나은 이유는 무엇입니까? 그리고 저는 그들 중 누구와도 동의하지 않습니다. 그러나 그것이 전체적인 질문은 아닙니다.

필자는 디스커버리 비용에 관한 일련의 비전 논증을 정기적으로 가지고 있습니다. 추측없이 특정 버그를 찾는 데 얼마나 많은 테스트가 필요할 것입니다. 그 테스트 케이스와 시나리오를 발견하기 전에 자동화 된 테스트 또는 수동 테스트를 3 개월 더 필요로합니까?

실제로는 테스트 할 수있는만큼 많이 테스트하지만 균형점을 찾는 것은 생각만큼 쉽지 않습니다. 대부분의 프로그램은 너무 커서 코드 커버리지가 100 %가되지 않습니다. 그리고 100 % 코드 커버리지는 일반적으로 코드가 처리해야하는 모든 시나리오의 일부분에 불과합니다.

버그를 발생시키는 또 다른 요소는 버그와 관련된 비즈니스 비용입니다. 그곳에 5 백만 상자가 있습니까? 제품 회수를 수행해야합니까? 보증 데스크에 X 통화가 생성됩니까? 계약 위반시 손해 배상 책임을지는 계약 조항이 실행됩니까? 간단히 말해 의료 분야에서 작성된 소프트웨어가 웹 사이트 개발보다 LOC 당 비용이 더 많이 드는 이유입니다.

0

나는 가장 값 비싼 것이 결함을 찾아서 내버려 두는 것이라고 말하고 싶습니다. 결함이 생길수록 수명이 길어질수록 비용이 많이 듭니다.

나는 그들이 한 번 결정을 내렸을 때 정책을 가지고있는 회사에서 한 번에 지 냈습니다.우리가 작업 한 시스템은 우리가 강제로 사용하는 어리석은 기업 프레임 워크와 웹 서비스의 적절한 사용에 대한 깊은 오해로 인해 버그로 가득 차있었습니다.

오늘까지, 나는 그 회사가 일하는 데 쓸만한 시스템을 얻는 가장 저렴한 방법은 전체 시스템을 버리고 처음부터 재 작성하는 것이라고 믿는다.

그래서 요점은, 내가 늦게 단계에서 결함을 찾는 것이 문제가된다고 생각하지 않는다는 것입니다. 그러나 후기 단계까지 결함을 무시하는 것은 극히 문제가됩니다.