소스 코드 및 소프트웨어 제품의 가격 정량화


9

프로젝트를 시작하려고합니다. 이를 위해서는 코드와 수많은 코드를 작성해야합니다. 고객의 요구 사항은 프로젝트가 끝날 때 모든 소스 코드를 전달하는 것입니다.

내 질문은 : 소스 코드 및 소프트웨어 제품의 가격을 어떻게 수량화합니까? 가격을 결정하기 위해 따르는 측정 항목이 있습니까? 소프트웨어 제품을 어떻게 수량화합니까?

추가 정보 : 응용 프로그램은 태블릿 (iPad, Galaxy 탭 등), 스마트 폰 (iPhone, Android 전화 등) 및 웹을 포함한 모든 OS에서 어디서나 실행해야합니다. (이것이 얼마나 많은 코드인지 상상해보십시오) .


2
끊임없이 변화하고 불분명하고 종종 불완전한 사용자 요구 사항을 기반으로 소프트웨어 제품의 가격이 얼마나 마술처럼 정량화되는지를 알게되면 세상은 더 나아질 것입니다. 그러나 여전히 질문에 +1합니다.
Arseni Mourzenko

신뢰할 수있는 소프트웨어 가격 책정 방법은 다음과 같습니다. (1) 프로그램 작성 및 테스트; (2) 노력을 측정; (3) 실제 노력에 따라 소프트웨어를 판매하십시오.
Doc Brown

당신은 체크 아웃해야 Appcelerator , 공기Haxe (모두 또는 사용의 대상으로 할 수있는 NME를 ).
back2dos

이는 프로그래밍 또는 소프트웨어에만 국한된 것이 아니라 프로그래밍 관련 질문으로 위장한 가격 책정에 대한 일반적인 질문입니다.

I am about to undertake a project. This requires me to write code.... Programmer + Project = 코드 (일반적으로). 왜 명백한 말을합니까?
동적

답변:


12

가격은 많은 요인에 따라 달라 지므로 정확하거나 거의 정확한 가격을 알 수 없습니다. 예:

사례 연구

WordPress를 기반으로 한 작은 웹 사이트를 요청했습니다. 유일하게해야 할 일은 디자이너와 협력하여 매력적인 그래픽을 만든 다음 웹 사이트 자체 (기술적 인 요소는없고 WordPress에 추가 할 플러그인 집합)를 만든 다음 배포하는 것입니다. 작업이 정말 쉬워서 $ 600을 인용했습니다.

디자이너가 첫 번째 초안을 작성했습니다. 고객은 전혀 매력적이지 않다고 설명했다. 두 번째, 세 번째 및 네 번째 초안도 마찬가지입니다. 마지막으로, 2주의 노력 끝에 디자이너는 마침내 고객이 수락 한 초안을 받았습니다.

그러나 슬프게도 디자이너는 버스에 부딪 쳤고 당신이 얻은 유일한 것은 그가 보낸 JPEG이지만 원래 PSD는 아니기 때문에 새로운 디자이너로 시작해야했습니다. 마지막으로 그래픽을 얻어 작업을 시작했습니다.

놀랍게도 : 플러그인 A가 플러그인 B와 호환되지 않고 플러그인 C가 예상대로 작동하지 않으며 플러그인 D는 최신 버전의 WordPress에 설치할 수없고 플러그인 A 만 설치할 수 있음을 발견했습니다. 이 최신 버전에서. 이제 많은 수의 PHP 코딩을 직접 수행해야하며, 파이썬 개발자이고 PHP로 한 줄의 코드를 작성하지 않았으므로 가장 쉬운 작업은 아닙니다.

한편, 고객은 마감일이 일주일 전인 동안 작업이 아직 완료되지 않은 이유를 묻는 무서운 이메일을 보내기 시작합니다. 마지막으로 PHP 코딩을 마치면 모든 것이 컴퓨터에서 완벽하게 작동합니다. 고객은 행복합니다.

그런 다음 웹 사이트를 호스팅 서버에 배포하기 시작하면 웹 사이트가 약간의 오류로 인해 실패 할뿐만 아니라 호스팅 회사가 코드에서 많이 사용한 PHP 기능을 지원하지 않습니다.

마지막으로,이 프로젝트에 3,000 달러 이상을 지출하면 웹 사이트를 운영 할 수 있습니다. 기한이 지났고 "아무것도 예상대로 작동하지 않기"때문에 고객이 화를 냈습니다. 600 달러를 물 을까요? 3,000 달러?

왜 그런가요?

이 예에서 내가 묘사 한 내용은 생각보다 훨씬 자주 발생합니다. 왜? 예측할 수없고 위험을 증가시키는 변수가 너무 많기 때문입니다. 여기에서 위험이 증가했습니다.

  • 비주얼 디자인과 관련된 불분명 한 사양,
  • 디자이너의 죽음
  • 선택한 플러그인의 비 호환성
  • 선택한 플러그인에 대한 잘못된 지원
  • 전에 PHP를 사용해 본 적이 없다는 사실,
  • 개발 환경과 프로덕션 환경의 차이 및 준비가 없습니다.

특정 접근 방식으로 이러한 문제를 해결할 수 있습니다.

  • 명확하고 정확한 기능적 및 비 기능적 요구 사항
  • 버스 별 시나리오 관리 (예 : 설계자는 프로젝트를 손상시키지 않고 언제라도 죽을 수 있도록 모든 문서를 공유해야했습니다),
  • 사용해야하는 도구 및 언어에 대한 사전 지식 ( 많은 작업 이 필요함 )
  • 스테이징, 집중 테스트 등

유일한 문제는이 접근 방식을 사용하면 고객이 실제로 요구 사항, 사양, 디자인, 테스트 등의 가격이기 때문에 고객에게 최소 $ 5,000를 지불 할 것이라고 말해야한다는 것입니다.이 고객이 수락 할 가능성 귀하의 견적이 매우 낮습니다.

그래서 할 일이 없습니까?

매우 정확한 가격을 제시 할 수없는 경우에도 위험 지수가 모든 부품에 영향을 미치면서 작업의 모든 부분을 별도로 고려하여 근사값을 지정할 수 있습니다. 예측 가능한 위험이 높을수록 가격이 높습니다.

두 가지 방법이 있습니다.

1. Watefally 방법

Waterfall / V-Model에 적합한 프로젝트에서 작업하는 경우 다음과 같이 작동 할 수 있습니다.

  1. 프로젝트의 기능적 및 비 기능적 요구 사항을 나열하십시오. 고객이 계약서에 서명 한 것과 같은 방식으로 고객이 서명 한 문서를받습니다.

  2. 이 문서를 받으면 다음이 이미 있습니다.

    • 요구 사항을 수집하고이 문서를 작성하는 데 이미 소비 한 가격입니다. 이러한 문서는 일반 프로젝트의 경우 20 ~ 100 페이지가 될 수 있고 대규모 프로젝트의 경우 수백 또는 수천 페이지가 될 수 있으므로 중요한 금액을 나타낼 수 있습니다.

    • 귀하가 요청한 제품에 대한 명확하고 정확하며 완전한 이해.

  3. 단계별로 팀과 함께 각 요구 사항을 분석하고 평가하십시오.

    • 프로젝트의이 부분의 평균 가격

    • 위험을 고려하지 않은 최대 가격

    • 위험 지수.

    고객에게 제공 할 가격을 결정하기 위해이 세 가지가 모두 고려됩니다.

  4. 특정 요구 사항에 의존하지 않고 일반적으로 요구 사항 또는 시스템 간의 호환성에 의존하는 위험을 자산화하십시오.

폭포 형 접근 방식의 장점 : 고객은 수행해야 할 작업과 발생할 수있는 위험에 대한 명확한 비전을 가지고 있다는 점을 고려하면 매우 정확한 가격을 얻습니다.

폭포 식 접근 방식의 단점 : 가격을 제공하기 전에 200 페이지의 문서를 작성해야합니다. 고객이 그 동안 프로젝트를 취소하거나 동시에 진행하면 어떻게됩니까? 전체 프로세스도 매우 무거 우므로 나중에 요구 사항을 변경할 수 없습니다.

2. 민첩한 방법

Scrum 또는 기타 민첩한 모델에 맞는 프로젝트에서 작업하는 경우 :

  • 프로젝트의 전체 가격을 제공하지 않고 모든 구성 요소의 가격을 제공합니다.
  • 또는 처음에 대략적인 전체 가격을 표시 한 다음 점점 더 정확한 가격을 제시 할 수 있습니다.

두 경우 모두, 귀하와 고객 사이의 신뢰가 높거나 영업 부서에 우수한 직원이 있어야합니다. 그렇지 않으면,

  • 첫 번째 경우, 그 사람은 당신이 단지 소량의 돈을 요구하는 돈을 훔치고 있다고 믿고, 이것이 끝나지 않을 것입니다.

  • 두 번째 경우, 특히 가격이 대부분 상승하는 경우, 가격을 항상 바꾸는 이유를 이해하지 못합니다.

민첩한 접근 방식의 장점 : 고객은 언제든지 취소 할 수 있습니다. 또한 초기 단계에서 취소해도 여전히 작동하는 소스 코드가 있습니다.

민첩한 접근 방식의 단점 : 가격이 너무 부정확하거나 제공되지도 않습니다. 지불해야 할 금액을 말하지 않으면 대부분의 고객은 귀하와 거래를하지 않을 것입니다.


3

결과와 고객이 지불해야 할 돈이 모두 명확하지 않은 프로젝트는 수락하지 마십시오. 나는 단지 다음을 수행한다.

  • 고객이해야 할 단계와 지불을 생각해보십시오.
  • 이전 단계가 완료되고 전액 지불되고 고객이 만족하면 다음 단계로 넘어갑니다.

지불 방법으로 기능에 따라 지불을 선택하십시오. 따라서 고객이 전체 프로젝트를 지불 할 수없는 경우 기능을 삭제할 기회가있는 경우.

LOC (Line of Code)에 따라 돈을받는 것은 어리석은 일입니다. LOC는 아무것도 의미하지 않기 때문에!. 똑똑한 기능을 기반으로 좋은 코드를 작성하고 충전하십시오!.

행운을 빕니다,


1
LOC를 지적하기위한 +1은 잘못된 메트릭입니다. 마일스톤은 현명한 지불 방법입니다.
jqa

0

개방형 약정에 대해 고정 가격을 수락하지 마십시오. 당신이 할 때마다 당신은 망할거야.


+1 '고정 가격 개발'은 많은 실패한 사업의 전략이었습니다
jqa
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.