드리밍 인 코드
국내도서>컴퓨터/인터넷
저자 : 스콧 로젠버그 / 황대산역
출판 : 에이콘출판사 2009.01.02
상세보기


   일반적인 소프트웨어 프로젝트 실패의 이유  
 

  보통, 소프트웨어 프로젝트가 어려움에 빠지는 것은 개발자들이 충분한 개발시간을 확보하지 못하는데 있다. 이런 사태는 일반적으로 개발에 대하여 가장 모르는 사람 - 사장님, 영업 책임자, 마켓팅 담당자 등 - 이 프로젝트의 일정을 좌지우지 하기 때문이다. 프로젝트와 기술에 대하여 가장 많은 정보를 가지고 있는 사람은 말단 개발자인데, 이 프로젝트 완료까지 얼마나 걸릴지는 가장 적은 정보를 가진 사람들이 결정을 하는 것이 일반적인 문화이다. 이로 인하여 프로젝트는 별 성과를 내지 못하거나, 엉망진창으로 흐르거나, 하청업체와 개발자들을 착취하는 방향으로 흘러가게 된다. 근로기준법 같은 것은 염두에 두지 않는다. 각자 자기 입장에 맞춰 꿈속에서 본 날짜를 데드라인 (Dead line) 이라고 적어내면 그건 정말로 개발자를 죽이는 날짜가 된다. 그래서 이 땅에는 제대로된 개발자일수록 일찍 일을 접는다. 진짜 똑똑한 사람은 기술고시나 의학대학원으로 가버리고 별로 똑똑하지 못해서 다른데 갈 수가 없는 사람들만 남는, 약자생존(弱者生存)의 생태계가 만들어진다. 


   여기, 또 하나의 끔찍한 실패담이 있다   

  그런데, 이 책에서 예로 든 "챈들러" 프로젝트는 정반대의 경우이다. 충분히 경험많고 실력인 개발자들이 있어고, 그들을 전폭적으로 지지해주는 CEO가 충분한 자본과 시간을 투자했다. 개발자간에는 소통이 너무 많아서 문제가 되었고, 일정이 쫒기기 보다는 일정을 다그치는 사람이 없어서 프로젝트가 지지부진했다. 우리가 늘 꿈꿔오던 개발환경이 갖춰진 셈인데, 이것이 독이되어 프로젝트는 처참한 실패의 결과로 남게 되었다. 

  가장 큰 문제는 기획의 부재였다. 무엇이든 다 되는 PIM (Personal Information Management system) 을 기획했지만, 실제로는 무엇을 하고 싶은지 명확히 알지 못했다. 창업자의 머릿속에만 있는 신기루 프로그램 (Vapor-ware)를 만들다가 시간도, 비용도, 인재도, 모멘텀도 모두 잃어버리고 말았다. 

   그럼 우리가 옳은건가?   
 

  확실히, 책으로 묶어 낼 만큼 신기한 실패사례이기는 하다. 우리가 상상해오던, 그런 재미있는 개발자의 놀이터 같은 회사였는데, 개발자들이 도전해볼만한 과제였고, 모든 의사결정과정이 개발자들간의 민주적인 토론에 의해서 진행되었는데, 프로젝트는 처참하게 실패했다. 그렇다고 우리가 옳은 것은 분명 아닐텐데 말이다. 소프트웨어는 어렵다 - Software is hard - 는 명언이 새삼 확인되는 순간이다. 이순간에도 죽을만큼 힘들게 일하고 있는 개발자들에게, 꿈속도 결코 꿈같이 행복하지는 않다고 말하고 싶었던 것일까. 


Posted by 지그프리드 지그프리드

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절

  유명 블로거 조엘 스폴스키 (Joel spolsky) - 저자에 관하여 (Joel on Soft ware - About the Author : Joel Spolsky) - 의 글에 따르면, S/W 개발자들의 공평한 고과를 매기는 것은 무척 어려울 뿐 더러, 일반적인 사람들에 비하여 더 똑똑한 이 사람들은 어떠한 기준을 제시해도 그 기준을 피해나갈 방법을 찾기 때문에, 차라리 고과를 매기지 않는 편이 좋다고 얘기를 합니다. 예를 들어,한주에 작성한 코드의 양을 기준으로 삼는다면 일부러 코드를 늘려서 짤 것이고, 수정한 버그 수를 기준으로 삼는다면 일부러 쉬운 버그들을 양산할 것미고, 반대로 만들어낸 버그의 수를 기준으로 삼는다면 테스트를 하느라 코드 작업이 진행되지 않는다는 거지요. 프로그래머를 평가하는 방법은 그들의 짠 코드를 직접 평가하는 수 밖에 없는데, 이는 주관적이고 절대적인 기준이지, 상대적이고 객관적인 기준을 만들 수는 없습니다. 오히려 많은 역효과가 있기 때문에, 조엘은 프로그래머들의 고과를 평가하지 말 것을 권하고 있습니다. 이와 관해서 제가 최근에 겪은 이야기를 써볼까 합니다.

  최악의 프로젝트가 막 끝났습니다. 기획과 경영 파트의 잘못된 추정과 진행으로 프로젝트가 최악으로 치달았습니다. 이로 인해서 코어팀은 6개월 가까이 잔업과 특근에 시달려야 했습니다. (시달렸다는 표현은, 월 100시간 정도 잔업과 토, 일요일 모두 출근했다는 뜻입니다.) 정말 최악이었죠. 프로젝트가 끝나기 두 달 전부터는 어플리케이션 팀도 마찬가지도 시달려야 했습니다. 어플리케이션 팀도 적지 않게 고생을 했습니다.

  어쨌든, 프로젝트는 끝이 났습니다. 그리고 수확의 계절이 되었습니다. 코어팀 리더는 목소리가 큰 분이셨는데 (Big mouth), 코어팀이 가장 고생을 한 것이 명백하니, 우리 애들이 좋은 고과를 받아야 한다고 주장을 하셨습니다. 이로 인해 다른 팀은 "보통" 고과 밖에는 받지 못했는데, 회사 정책이 각 등급의 배분에 제한을 두었기 때문입니다. 코어팀 리더의 주장은, 코어팀이 가장 많은 잔특근을 했기 때문에, 그들이 좋은 고과를 받을 자격이 있다는 것이었습니다. 이 주장은 옳은가요? 충분히 공평한 것입니까?

   이래서 반대합니다.  
 

  반대의견 1. 좋은 고과는 똑똑하고 빛나는 프로그래머들에게 가야합니다. 잔업시간은 좋은 프로그래머의 능력을 나타내는 지표가 될 수 없습니다.

  반대의견 2. 어떤 프로그래머가 코어팀에 배치가 되었습니다. 그는 잔업에 시달리게 되었습니다. 그리고 좋은 고과를 받았습니다. 그런데, 이 프로그래머가 코어팀에 배치된 것은 그가 원해서 된 것도 아니고, 그가 특별한 재능이 있어서도 아닙니다. 그냥 신입사원 배치 중 "우연히" 된 것입니다. 그렇다면, 다른 팀에 배치되어 "보통"의 고과를 받은 신입사원에게는 완전히(totally) 불공평한 일입니다.

  반대의견 3. 엄청난 좌절감(depression)이 코어 외 다른 팀들에 주어졌습니다. 그리고 이는 앞으로 팀을 관리하는데 엄청난 어려움이 됩니다. 다른 팀원들도 잔업에 시달린 것은 마찬가지 였습니다. 두 달간의 시달림도 결코 재미있는 일은 아니었습니다. 그리고, 그들은 그 보상도 받지 못했습니다. 이제, 새 프로젝트가 시작되었지만, 다른 팀원들은 잔업을 거부하게 되었습니다. 더 나아가, 그들은 관리자들로부터 모욕감을 느끼고 있습니다. 이제 관리자들은 어떻게 개발자들의 사기를 북돋을 수 있을까요?

   단순한 고과 문제가 아닌, 신뢰의 문제입니다.
 

  제가 무슨 얘기를 하는 것인지 이해가 되시나요? 이건 단순히 고과 평가에 관한 이야기가 아닙니다. 이건 개발자와 관리자(팀) 사이의 거대한 신뢰 문제에 관한 이야기 입니다. 그리고 신뢰는 멀리, 저멀리 날아가 버렸습니다.

  이것은 현재 진행형의 이야기 입니다. 끔찍한 잔업과 시달림은 관리자들 - 특히 빅 보스 (Big boss) - 에 의해서 만들어졌습니다. 그러므로, 문제를 해결하는 것도 관리자들 (역시 빅 보스)의 책임입니다. 어쩌면 모든 문제를 만든 것은 회사 조직 그 자체일지도 모릅니다.

  앞으로 어떻게 진행이 될까요? 글쎄요. 문제를 해결 할 수 있는 사람이 변하지 않으면, 계속 같은 이야기가 반복되겠지요. 아마도, 끊임없이 같은 이야기가 반복될 지 모릅니다. 그리고, 진짜 쓸만한 개발자는 아무도 안남게 되겠지요.
Posted by 지그프리드 지그프리드

댓글을 달아주세요:: 네티켓은 기본, 스팸은 사절


BLOG main image
일상, 프로그래밍, IT 그리고 직장생활, Dive, 여행 by 지그프리드

카테고리

Class List (402)
Studies (30)
Exercise & Quizz (10)
Term Project (0)
ECIM list (Help!) (10)
Issues & News (0)
Gossip about IT & Job (22)
Tools (2)
Think about the Justice (23)
Book Review (170)
조엘 온 소프트웨어(번역) (28)
Diary (87)
Vacations (9)
Clash of clans 클래시 오브.. (11)

글 보관함

달력

«   2020/04   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Total : 317,428
Today : 23 Yesterday : 40