Skip to content
Snippets Groups Projects
Commit f44ba19f authored by 이은정's avatar 이은정
Browse files

1212 class

parent a46febcd
Branches
No related tags found
No related merge requests found
Pipeline #5440 passed with warnings
비용을 어떻게 추정할 것인가
cost
1. 진짜로 지불해야 하는 돈 (전기료, 인터넷 사용료 등)
2. 시간 (개발 기간에 따라 달라짐)
3. 어떤 노력과 경험이 필요한가
어떻게 더 디테일하게 산정할 수 있을까
1. size와 user base
웹으로 인터페이스 하는 페이지, 화면 갯수 등
2. 복잡도
어떤 기능과 어떤 기술, 설계, 디자인
3. 어떤 플랫폼에서 쓸 것이냐
웹 중 리액트 기반, 자바스크립트로 다 짠다 등
4. 스크래치
원래 시스템에 추가하는 거냐, 외부 오픈 소스를 가져와서 추가하냐
5. 설계가 얼마나 복잡하냐
6. 사용자가 어떤 user 인터렉션을 하느냐
- 어떤 사용자를 대상으로 하고 그 대상으로 하는 사용자의 스펙트럼에 따라 달라짐(노인, 시각장애인 등)
cost factors
기술적인 부분
1. 팀이 독립적으로 모듈을 구분할 수 있다면 난이도가 낮아짐
(서로 짠 부분이 겹치지 않는다면)
만약 사이드 이펙트(부작용)가 발생하면 난이도가 높아짐
2. 프로그램 언어
c언어, 자바 등 중에 개발하는데 적합한 언어가 있음
내가 가지고 있는 휴먼 리소스가 어떤 언어를 잘 쓰는지 판단
3. 프로그램 스타일
프로그램을 보면 사람마다 느낌이 다름
코드에 특별한 스타일을 넣으면 코드가 유출이 됐을 때 알아볼 수 있음
4. 프로그램 validation & testing
웹 페이지에 자기소개 하는 파일을 만들어라 라고 했을 때
validation : 웹 페이지가 문법에 잘 맞게 만들어졌는지 확인하는 것. 문법이 잘 되어 있는지
varification : 웹 페이지에 자기소개의 정보가 잘 들어가 있는지 확인하는 것. 목표를 잘 이행하는지
validation과 testing의 과정의 비용이 매우 많이 들어감
5. documentation
이전 문서가 얼마나 잘 정리되어 있는지, 내가 문서를 얼마나 잘 정리해서 보내줘야 하는지
6. configuration management
다양한 환경에서 쓸 수 있도록 제작해야 함.
기술적이지 않은 부분
1. application domain
이 소프트웨어를 어디에 쓰는지
ex) 비행기 엔진에 쓸지, 비행기 스크린에 쓸지
고객의 생명과 직결이 되어 있는지에 따라 레벨을 정함
그리고 비행기, 차 등 사용하는 곳에 따라 또 레벨이 달라짐
2. staff stability
직원들이 중간에 사표 내고 도망가면 완료를 못함
3. program lifetime
이 프로그램을 얼마나 써야 하냐
ex) 비행기를 30년동안 써야 함. 30년간 유지보수 해야 함.
만약 pc가 윈도우 7일 때 만들어서 팔았는데 윈도우 10에서는 동작하지 않으면 문제 발생
4. Dependence on External Environment
운영체제, 컴퓨터 속도에 따라 프로그램이 잘 돌아가는지가 변함
5. hardware stability
브레드 보드, 라즈베리 파이 등을 사용할 때 전선이 고장나 있을 수 있음
항상 사용하기 전에 전선이 고장나 있는지 판단 후 사용.
코딩이 끝날 때쯤이면 cost가 얼마나 들었는지 안다
하지만 프로젝트 정의하는 단계에서는 4배에서 2배 정도의 오차범위 존재
detailed recuirements 후에는 2배에서 1.5배 차이
user interface design 후에는 1.5배에서 1.25배 오차 범위를 맞출 수 있음
-> user interface 후 user에게 지불해야 할 돈을 말했을 때 user가 너무 비싸다고 안 하겠다고 하면 peroject definition~detailed requirements 단계는 그냥 무료로 한 게 된다.
cost factor들이 너무 비정형적이라 오차 범위가 매우 커짐
위는 개발 단계이고 maintainance 단계에서 개발 단계의 3배의 돈이 더 들어감
이런 유지 단계에서의 오차를 줄이기 위해 오픈 소스들을 많이 사용함
오픈소스를 사용하면 비용과 시간을 줄여줌 (저 피라미드가 그려져 있을 때)
우리에게 크라우드가 있다는 가정 하에
관심있는 다수가 만들어지지 않으면 내가 개발한 소프트웨어를 오픈하는 것이 소용이 없음
그리고 관심있는 다수 중 일부는 참여를 해야 함.
마이크로 소프트가 소스를 가장 많이 오픈
옛날 윈도우는 다 소스 코드가 오픈되어 있음
게임 개발 200억 -> 마케팅에는 600억 사용
마케팅 비 아끼려고 게임 무료로 제공하는 경우도 존재
무료 + 소스를 오픈해서 고객을 가져오는 전략도 존재
소스 코드를 왜 오픈해야 하냐?
1. 유지 비용, test 비용, debug 비용 절감
2. 마케팅 비용 절감 (조건: 커뮤니티를 만들 수 있을 때)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment