소프트웨어 비용 추정 [닫기]


10

나는 대부분의 학생들이 COCOMO를 사용하여 최종 졸업장 작업의 소프트웨어 견적 비용을 만드는 내 직장 (대학교)에서 보았습니다 . 내 추측은 비용을 추정하는이 방법이 다소 오래 되었기 때문에 (1981 년 COCOMO 날짜) 내 질문 :

How do you estimate costs in your software?

나는 다음과 같은 것을 보았다 :

비용 = (HoursOfWork + EstimatedIddle) * 시간당 요금

그것은 내가 원하는 것이 아니며, 적절하게 (과학적으로) 정의 된 비용 모델을 찾고 있습니다.

편집 SO에 관한 몇 가지 관련 질문을 찾았습니다.


30
"소프트웨어 비용은 어떻게 추정합니까?" 불쌍하게 다른 사람들처럼.
Rein Henrichs

1
이것은 실제로 두 가지 질문입니다. 난해한 소프트웨어에 의존하지 않는 하나의 주요 질문으로 다시 작성하는 것이 좋습니다. 내가 요구 사항이 COCOMO와 지식이 경우 많은 답변을 얻을 것이다 의심
, 둘다 Galperin

@Eran, 나는 당신의 충고를 가지고 질문을 다시 쓸 것입니다 ...
David Conde

4
Steve McConnell은 IT 분야의 많은 사람들에 의해이 분야의 사고 리더로 간주됩니다. 그의 책을 봐야합니다. stevemcconnell.com/est.htm
Jeff

5
도움말 센터에 정의 된 범위 내에서 개념적 프로그래밍 문제에 관한 것이 아니기 때문에이 질문을 주제 외의 주제로 마무리하기로했습니다 .
durron597

답변:


16

워터 폴 모드에 갇힌 경우 내가 사용한 유일한 정확한 방법은 다음과 같습니다.

  1. 작업 분류 체계 생성
  2. 각 작업의 규모를 이전에 수행 한 작업 (또는 대화 할 수있는 사람)과 연관시킬 수 있도록 충분히 상세하게 작성하십시오.
  3. 각 작업마다 경험에 따라 최상의 경우, 가능한 경우 및 최악의 경우를 제시하십시오. 최선의 경우는 모든 것이 완벽하게 진행된 것이고 최악의 경우는 다시 수행해야 할 수도 있고 (두 번 정도), 어딘가에있을 수도 있습니다.
  4. (1 * best + 4 * probable + 1 * worst) / 6과 같은 가중치 계산법을 사용하여 범위를 고려한 각 작업에 대한 추정치를 구하십시오.
  5. 또한 각 작업에 "위험"구성 요소를 추가 할 수있는 변형을 보았습니다. 세 가지 수준의 위험은 0, 1 및 2입니다. 위험 0은 이전에 (또는 매우 가까운) 이전에 수행했음을 의미하고, 1은 이전에 수행하지 않았지만 업계에서 정기적으로 수행됨을 의미합니다. 업계에서 이전에 수행 된 적이없는 것 같습니다. 리스크 수를 취하여 추정치의 "표준 편차"의 근사값으로 곱하십시오. 가중 추정치에 추가하십시오. 따라서 0의 위험은 이동하지 않지만 2의 위험은 최악의 경우와 거의 비슷합니다.
  6. 모든 작업을 추가하십시오.
  7. "알 수없는 미지수"에 대한 우발 상황 (일부 %)을 추가하십시오.

당신은 매우 정확한 숫자로 끝날 것입니다. 나는 그것이 정확하다고 말하지는 않지만 정확합니다.

정확성은 전적으로 과거의 경험을 바탕으로 각 작업에 대한 숫자를 제시하거나 이전에 해낸 사람을 찾는 데 달려 있습니다. 경험이 많을수록 견적을 더 잘 얻습니다.

프로젝트를 실행할 때 각 작업에 대한 시간을 추적하고 놓친 작업을 적어 비교할 수 있습니다. 이것은 시간이 지남에 따라 더 나아질 것입니다.


@Scott에게 감사합니다, 나는 당신의 아이디어와 같은 것을 추천 할 것입니다 ..
David Conde

1
이 방법으로 추정을 한 다음 독립적으로 두 번째 방법으로 추정하십시오 (및 / 또는 두 번째 사람이 추정합니다). 결과를 비교하십시오. "직감"과 크게 다르거 나 크게 다른 것은 검토가 필요합니다. 내 경험 (25 년 이상)은 "장감"이 종종 어떤 멋진 공식보다 더 정확하다는 것입니다.
mattnz

@ mattnz-직감은 같은 경고가 있습니다. 경험이 많은 경우에만 작동합니다. 모든 고객은 코너 케이스와 관련된 작업량을 이해하지 못하기 때문에 비용이 훨씬 적게 드는 "장감"을 가지고 있습니다.
Scott Whitlock

3
또 다른 팁 : "추정을 협상하지 않습니다. <긴 일시 중지>"는 상사 / 고객과의 회의에서 매우 유용한 문구입니다. 결국, 자동차 정비사 나 외과 의사가 그렇게합니까? 그는 가격을 협상 할 수 있고, 어떤 작업이 이루어 졌는지 또는 어떻게 수행되는지 협상 할 수도 있지만, 소프트웨어 이외의 다른 분야의 전문가를위한 소매업자는 직업이 얼마나 오래 걸릴지를 협상 한 적이 없습니다.
mattnz

@mattnz-지난주 자동차 정비사와 어떻게했는지에 따라 자동차 문을 수리하는 데 걸리는 시간에 대해 협상했습니다.
sixtyfootersdude

3

소프트웨어 추정은 매우 어렵습니다. 내가 사용한 한 가지 접근 방식은 요구 사항을 최대한 세분화하고 각 부분을 개별적으로 추정하는 것입니다. 그런 다음 승수 (두 배) 또는 고정 금액 (예기치 않은 작업의 경우 x 시간) 일 수있는 "퍼지 계수"를 추가하십시오. 요구 사항이 충분하지 않으면 실제적인 목적으로는 추정이 불가능합니다.


1
내가 본 가장 성공적인 추정치 (정교한 방법을 사용하지 않은 추정치)는 원래 추정치의 약 2 배에 해당하는 추정치입니다.
Bernard Dy

1
그래, 더블 내가 정치적으로 성공한 관리자 중 한 명이 개발자의 평가를 받고 3 배로 한 다음 사용자와 두 배로 협상했습니다. 종종 협상 된 배송 날짜가 맞았습니다.
DaveE

0

업계는 81 년 이후 30 년 동안 많은 것을 배웠습니다. 그런 추정은 결코 효과가 없었습니다. 민첩한 열풍이 기본적으로 풍경을 다시 작성하면서, 우리는 흐릿한 "비교 난이도"를 나타내는 "스토리 포인트"를 사용합니다. 그런 다음 "속도"를 얻어 mucky mucks가 어느 정도의 경험적 데이터로 $$ 추정을 수행 할 수 있습니다.


0

함수 점 추정과 같은 일부 "엄격한"접근 방식과 최신 응용 프로그램을 위해 설계된 그 변형을 배웠습니다. 이러한 접근 방식 중 귀중한 부분은 알려진 요구 사항에 대한보다 자세한 분석이 필요하다는 것입니다.

좋은 모델을 가지고 있더라도 좋은 데이터 세트를 얻는 것은 매우 어렵습니다. 생산성 측정이 어렵습니다. 사람들은 거의 모든 메트릭을 게임합니다.

내 조직이 소프트웨어 평가의 혜택을 받기에는 기능 장애로 인해 사용을 중단했지만 Cost Xpert 그룹 및 해당 도구에 대해서는 약간의 관심이 있습니다 . 그러나 그것은 매우 비싸고 대다수의 조직에 대한 비용과 학습 곡선의 가치가 없을 것입니다.


0

노력과 비용을 추정하는 것은 매우 어렵지만보다 정확한 것을 원하면 다음을 수행하십시오.

  • HoursOfWork를 3 개의 구성 요소로 나누십시오.

    1. 최고의 견적
    2. 가장 추정치
    3. 더 나쁜 추정.
  • EstimatedIddle을 제거하십시오.

8 시간보다 오래 걸리면 큰 오류가 발생합니다.


0

우리가 일반적으로하는 일은 전체 작업 범위를 하위 프로젝트로 간주 될 수있는 주요 모듈 / 요소로 나누는 것입니다. 다시 말해 이들은 고객이 프로젝트의 개별 부분으로 간주하고 어떤 고객이 개별적으로 평가 받기를 원하는 작업 부분입니다.

완료되면 각 모듈을 작업, 하위 작업 및 더 작은 하위 작업으로 나누므로 각 모듈을 매우 쉽게 추정 할 수 있으며 1 ~ 10 인 시간이 소요됩니다. 이렇게하면 프로젝트의 작업 범위를 자세히 분석 할 수 있습니다.

마지막 단계는 마일스톤간에 작업을 배포하는 것입니다. 우리는 각 마일스톤 클라이언트가 눈에 띄는 결과를 얻도록 그렇게합니다. 이는 하나의 이정표를 통과하고 다른 이정표로 이동하는 데 도움이됩니다. 결국 우리는 다음과 같은 것을 얻습니다.

모듈 1

    <ol>
        <li>
            Primary task 1 - 5 hrs
            <ol>
                <li>Subtask 1.1 – 3 hrs</li>
                <li>Subtask 1.2 – 2 hrs</li>
            </ol>
        </li>
        <li>
            Primary task 2 - 9 hrs
            <ol>
                <li>Subtask 2.1 – 1 hrs</li>
                <li>Subtask 2.2 – 2 hrs</li>
                 <li>Subtask 2.2 – 5 hrs</li>
            </ol>

처음에는 엑셀 시트를 사용했습니다. 그러나 2 년 전에는 소프트웨어 도구를 사용하기 시작했습니다. www.evenflow.com , www.swproposal.com 및 기타 제품에 도움이되는 유사한 제품이 거의 없습니다. 나는 모든 목록을 기억하지 못한다. 우리는 오래 전에 연구했습니다. 도움이 되길 바랍니다.

좋은 질문은 정확하게 추정하는 방법입니다. 우리가 믿는 100 % 정확한 추정치는 없습니다. 유일한 방법은 전체 작업 범위를 가능한 한 작은 작업으로 나누는 것입니다. 작을수록 프로젝트에 대한 자세한 검토 및 분석이 가능합니다. 어쨌든 정확도가 향상됩니다.

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