프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

19
아꿈사 http://cafe.naver.com/architect1. cafe 이상훈 Ch. 13 개발 일정을 맞추는 방법 Avoiding Software Development Overruns Saturday, December 8, 12

description

아키텍트를 꿈꾸는 사람들 오후반 스터디 2012-12-08 발표

Transcript of 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

Page 1: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

아꿈사http://cafe.naver.com/architect1.cafe

이상훈

Ch.����������� ������������������  13개발����������� ������������������  일정을����������� ������������������  맞추는����������� ������������������  방법Avoiding Software Development Overruns

Saturday, December 8, 12

Page 2: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦으면?

개발자가����������� ������������������  느리고����������� ������������������  생산성이����������� ������������������  낮다는����������� ������������������  인식을����������� ������������������  준다.

한����������� ������������������  프로그래머가����������� ������������������  늦으면����������� ������������������  팀����������� ������������������  전체에����������� ������������������  영향을����������� ������������������  미친다.

개발팀을����������� ������������������  넘어����������� ������������������  마케팅,����������� ������������������  영업,����������� ������������������  출시에도����������� ������������������  영향을����������� ������������������  미친다.

재정����������� ������������������  문제를����������� ������������������  불러올����������� ������������������  수도����������� ������������������  있다.

Saturday, December 8, 12

Page 3: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

Saturday, December 8, 12

Page 4: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

결국은����������� ������������������  사람����������� ������������������  문제

11가지����������� ������������������  중요한����������� ������������������  이유들

Saturday, December 8, 12

Page 5: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

장롱����������� ������������������  문짝����������� ������������������  주문����������� ������������������  시����������� ������������������  고민����������� ������������������  사항들����������� ������������������  -����������� ������������������  나무����������� ������������������  종류?����������� ������������������  속이����������� ������������������  빈나무?����������� ������������������  문����������� ������������������  무늬?����������� ������������������  광택����������� ������������������  여부?����������� ������������������  ...

이런����������� ������������������  자질구레한����������� ������������������  사항이����������� ������������������  항상����������� ������������������  추가된다.

이런����������� ������������������  문제를����������� ������������������  ‘범위변경’,����������� ������������������  ‘복잡화����������� ������������������  경향’이라����������� ������������������  한다.

모든일에����������� ������������������  지나치게����������� ������������������  디테일����������� ������������������  하지����������� ������������������  말자.����������� ������������������  

‘이정도면����������� ������������������  괜찮은’에서����������� ������������������  멈추고����������� ������������������  필요에����������� ������������������  의해����������� ������������������  개발하자.

(1)����������� ������������������  범위����������� ������������������  변경����������� ������������������  문제

Saturday, December 8, 12

Page 6: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

사람마다����������� ������������������  실력의����������� ������������������  편차가����������� ������������������  상당히����������� ������������������  크다.����������� ������������������  -����������� ������������������  5배����������� ������������������  ~����������� ������������������  최대����������� ������������������  28배����������� ������������������  (연구결과)

다섯명의����������� ������������������  위대한����������� ������������������  프로그래머����������� ������������������  >����������� ������������������  50명의����������� ������������������  그럭저럭����������� ������������������  잘하는����������� ������������������  프로그래머

‘가장����������� ������������������  똑똑한’����������� ������������������  사람을����������� ������������������  고용하는����������� ������������������  일이����������� ������������������  매우����������� ������������������  중요!!

(2)����������� ������������������  인력����������� ������������������  수준의����������� ������������������  문제

Saturday, December 8, 12

Page 7: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

프로젝트����������� ������������������  지연시����������� ������������������  인력����������� ������������������  투입����������� ������������������  =����������� ������������������  일정����������� ������������������  더����������� ������������������  지연

기술을����������� ������������������  익히는데����������� ������������������  오래����������� ������������������  걸림.

원래����������� ������������������  업무����������� ������������������  하던����������� ������������������  사람에게����������� ������������������  많은����������� ������������������  요청.

새로운����������� ������������������  사람을����������� ������������������  가르치느라����������� ������������������  원래����������� ������������������  사람은����������� ������������������  생산성����������� ������������������  저하.

커뮤니케이션이����������� ������������������  복잡해지고����������� ������������������  관리가����������� ������������������  힘들다.

(3)����������� ������������������  인력����������� ������������������  증가����������� ������������������  문제

Saturday, December 8, 12

Page 8: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

다른����������� ������������������  사람들도����������� ������������������  ‘알고����������� ������������������  있다’고����������� ������������������  오해.-����������� ������������������  마케팅팀이����������� ������������������  고객의����������� ������������������  요청을����������� ������������������  듣고����������� ������������������  개발팀에����������� ������������������  전달-����������� ������������������  마케팅팀과����������� ������������������  개발팀의����������� ������������������  이해를����������� ������������������  명확히!

일정이����������� ������������������  그렇게����������� ������������������  잡힌����������� ������������������  이유도����������� ������������������  공유!

개발팀이����������� ������������������  스스로����������� ������������������  무엇을,����������� ������������������  언제까지,����������� ������������������  왜����������� ������������������  해야����������� ������������������  하는지����������� ������������������  알도록����������� ������������������  해야����������� ������������������  함

(4)����������� ������������������  목표����������� ������������������  불분명

Saturday, December 8, 12

Page 9: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

여러����������� ������������������  기능을����������� ������������������  동시에����������� ������������������  개발하는����������� ������������������  일은����������� ������������������  각각의����������� ������������������  일정을����������� ������������������  전부����������� ������������������  더한����������� ������������������  것보다����������� ������������������  더����������� ������������������  오래����������� ������������������  걸린다.

서로����������� ������������������  상대방의����������� ������������������  코드에����������� ������������������  의존하고����������� ������������������  건드리게����������� ������������������  됨.

의존성을����������� ������������������  잘����������� ������������������  파악하고����������� ������������������  일정을����������� ������������������  정확하게����������� ������������������  산출하자!

(5)����������� ������������������  의존성����������� ������������������  관리

Saturday, December 8, 12

Page 10: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

개발����������� ������������������  시간의1/3은����������� ������������������  설계,����������� ������������������  1/6은����������� ������������������  코딩,����������� ������������������  1/4는����������� ������������������  테스트&통합...

인정하자.����������� ������������������  코딩����������� ������������������  시간은����������� ������������������  1/6밖에����������� ������������������  되지����������� ������������������  않는다.

코딩����������� ������������������  외����������� ������������������  시간을����������� ������������������  개발����������� ������������������  일정에����������� ������������������  포함시켜야����������� ������������������  한다.

(6)����������� ������������������  잘못된����������� ������������������  추정치

Saturday, December 8, 12

Page 11: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

추정치를����������� ������������������  공격적으로����������� ������������������  잡으면-����������� ������������������  개발����������� ������������������  비용이����������� ������������������  더����������� ������������������  적어����������� ������������������  보인다-����������� ������������������  개발팀이����������� ������������������  효율적으로����������� ������������������  일하는����������� ������������������  것처럼����������� ������������������  보인다

노련한����������� ������������������  사람이라면����������� ������������������  공격적인����������� ������������������  추정치를����������� ������������������  알아보고����������� ������������������  어느정도����������� ������������������  늘어날����������� ������������������  것을����������� ������������������  예측한다.

(7)����������� ������������������  공격적인����������� ������������������  추정치

Saturday, December 8, 12

Page 12: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

200명이����������� ������������������  넘는����������� ������������������  개발����������� ������������������  팀-����������� ������������������  일정이����������� ������������������  늦어져도����������� ������������������  다른����������� ������������������  사람����������� ������������������  때문이라고����������� ������������������  생각.-����������� ������������������  나도����������� ������������������  늦어진����������� ������������������  일정만큼����������� ������������������  더����������� ������������������  늑장����������� ������������������  부리며����������� ������������������  일함.-����������� ������������������  개발팀����������� ������������������  전체가����������� ������������������  늑장����������� ������������������  부리고����������� ������������������  있음.

마감일이����������� ������������������  정해져����������� ������������������  있으면����������� ������������������  어떻게든����������� ������������������  마감일까지����������� ������������������  추가로����������� ������������������  더����������� ������������������  할����������� ������������������  일이����������� ������������������  생긴다.

(8)����������� ������������������  ‘난����������� ������������������  임계����������� ������������������  경로에����������� ������������������  있지����������� ������������������  않아’����������� ������������������  문제

Saturday, December 8, 12

Page 13: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

개발자들에게����������� ������������������  다른����������� ������������������  항목은����������� ������������������  그정도로����������� ������������������  지연되어����������� ������������������  있지����������� ������������������  않다고����������� ������������������  또는����������� ������������������  더이상����������� ������������������  지연시키지����������� ������������������  말라고����������� ������������������  교육����������� ������������������  시켜야����������� ������������������  함.

(8)����������� ������������������  ‘난����������� ������������������  임계����������� ������������������  경로에����������� ������������������  있지����������� ������������������  않아’����������� ������������������  문제

Saturday, December 8, 12

Page 14: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

“절차요?����������� ������������������  쓸데없는����������� ������������������  절차����������� ������������������  같은건����������� ������������������  필요����������� ������������������  없습니다”

필요하다!!

진행����������� ������������������  상황,����������� ������������������  설계,����������� ������������������  코드,����������� ������������������  테스트����������� ������������������  계획,����������� ������������������  버그트레킹,����������� ������������������  스파게티����������� ������������������  코드,����������� ������������������  ...

처음엔����������� ������������������  느린����������� ������������������  것����������� ������������������  같지만����������� ������������������  나중엔����������� ������������������  원동력!

(9)����������� ������������������  S/W����������� ������������������  엔지니어링����������� ������������������  개념을����������� ������������������  말아먹는����������� ������������������  문제

Saturday, December 8, 12

Page 15: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

개발자가����������� ������������������  개발과는����������� ������������������  무관한����������� ������������������  일을����������� ������������������  할����������� ������������������  수밖에����������� ������������������  없다.-����������� ������������������  회의,����������� ������������������  각종����������� ������������������  휴가,����������� ������������������  동료와����������� ������������������  점심,����������� ������������������  임원����������� ������������������  방문����������� ������������������  대비����������� ������������������  발표,서버����������� ������������������  다운,����������� ������������������  각종����������� ������������������  툴����������� ������������������  문제,����������� ������������������  ...

이런����������� ������������������  시간들은����������� ������������������  개발����������� ������������������  일정의����������� ������������������  25%

관리자����������� ������������������  측에서����������� ������������������  이런����������� ������������������  시간을����������� ������������������  미리����������� ������������������  염두해����������� ������������������  일정을����������� ������������������  세워야����������� ������������������  한다.

(10)����������� ������������������  직원들의����������� ������������������  개발����������� ������������������  외����������� ������������������  다른����������� ������������������  일

Saturday, December 8, 12

Page 16: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

모든걸����������� ������������������  제대로����������� ������������������  해도����������� ������������������  일이����������� ������������������  엉망이����������� ������������������  될����������� ������������������  수����������� ������������������  있다.

기반����������� ������������������  설계가����������� ������������������  잘못됨,����������� ������������������  시장이����������� ������������������  달라짐,����������� ������������������  다른����������� ������������������  의존하고����������� ������������������  있던����������� ������������������  회사의����������� ������������������  문제,����������� ������������������  고위����������� ������������������  임원이����������� ������������������  바뀜..

이런����������� ������������������  문제는����������� ������������������  예측하기����������� ������������������  힘들다.

(11)����������� ������������������  바람의����������� ������������������  변화

Saturday, December 8, 12

Page 17: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 개발 일정이 늦어지는 이유?

‘적은����������� ������������������  기능으로����������� ������������������  자주����������� ������������������  내놓는다’����������� ������������������  원칙!

-����������� ������������������  중요한����������� ������������������  피드백,����������� ������������������  요건����������� ������������������  수집����������� ������������������  ->����������� ������������������  위험����������� ������������������  경감-����������� ������������������  분위기����������� ������������������  파악-����������� ������������������  구글����������� ������������������  랩스����������� ������������������  -����������� ������������������  초기����������� ������������������  버전����������� ������������������  시장에����������� ������������������  내놓은����������� ������������������  후,-����������� ������������������  고객의����������� ������������������  관심,����������� ������������������  수익����������� ������������������  창출����������� ������������������  가능성을����������� ������������������  봄

(11)����������� ������������������  바람의����������� ������������������  변화

Saturday, December 8, 12

Page 18: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

* 이미 일정이 늦어졌다면?

1.����������� ������������������  기능����������� ������������������  줄이기-����������� ������������������  가장����������� ������������������  핵심����������� ������������������  기능만으로����������� ������������������  범위를����������� ������������������  제한하자.

2.����������� ������������������  기능����������� ������������������  쪼개기-����������� ������������������  기능의����������� ������������������  일부는����������� ������������������  다음����������� ������������������  릴리즈로����������� ������������������  미루자.

3.����������� ������������������  재협상-����������� ������������������  프로젝트����������� ������������������  일정과����������� ������������������  예산을����������� ������������������  다시����������� ������������������  논의.

Saturday, December 8, 12

Page 19: 프로그래머로 사는 법 - ch. 13 개발 일정을 맞추는 방법

- THE END -

Saturday, December 8, 12