2008년 10월 29일 수요일

책소개 - 소프트웨어개발의모든것(All of Software Project)



이번에 집필한 책입니다.

소프트웨어 개발의 전반에 대한 기초에 대해서 다루고 있습니다.
코딩을 어떻게 하느냐하는 내용이 아니고 소프트웨어 회사라면 당연히 갖춰야 할 기반시스템, 조직, 프로세스 등에 대해서 현실적이고 체계적으로 정리를 했습니다.

책을 쓰면서 가장 어려운 점은 가능하면 많은 소프트웨어 개발자들이 볼 수 있도록 난이도를 조정하는 것이었습니다. 어차피 책이라는 것이 모든 사람의 눈에 맞출 수는 없으니까요.

그리고 너무 자세한 내용을 기술하지 않은 이유는 그러기에는 수천페이지도 모자를 수 있고, Detail한 내용은 또 많은 경로를 통해서 얻을 수도 있고 일부는 스스로 공부를 하거나 훈련을 해야하는 것이라고 생각했습니다.

그래서 소프트웨어 개발 및 프로젝트를 전체적으로 볼 수 있는 책으로 구성을 했고, 추후 쓰게될 책이나 블로그를 통해서 점점 디테일에 접근을 해나가려고 합니다.

책을 읽으신 독자분이나 그렇지 않은 분이나 블로그를 통해서 소프트웨어 개발에 관한 어떤 얘기도 의견을 주고 받고 싶습니다.

책 소개를 한번 보시죠. 





 책소개
대한민국 소프트웨어 분야 권위자인 김익환 대표와 전규현 수석이 제시하는 소프트웨어 개발 필드매뉴얼! 
실리콘밸리의 GE, SUN Microsystems와 안철수연구소의 CTO 등을 거치며 소프트웨어 개발 분야의 야전사령관으로 활동해 온 김익환 대표와, ‘한글과컴퓨터’ ‘안철수연구소’ 등을 거치며 현장을 리드해 온 전규현 수석이 제시하는 ‘소프트웨어 개발 실행 지침서’이다. 

많은 소프트웨어 개발자들이 프로젝트 진행에 대해 제대로 배울 기회를 갖지 못한 채, 과거부터 해오던 방법을 그대로 답습하고 있다. 그런 상태로 매일 프로젝트에 투입되다 보니, 야근에 야근을 거듭해도 프로젝트가 언제 끝날지 모르는 상황에 빠져들곤 한다. 이 책은 그간의 이 같은 문제를 해결하고 소프트웨어를 성공적으로 개발하기 위해 반드시 알아야 할 ‘조직’ ‘프로세스’ ‘문화’ ‘기반시스템’ ‘방법론’에 대한 현장 실무 위주의 전략을 제시한다.
      
 
 
 저자 및 역자 소개
저자 : 김익환
소프트웨어 컨설팅 회사인 ABC Tech의 대표이자 카이스트 소프트웨어 전문가 과정 겸직교수. 서울대학교 공과대학을 졸업하였고 미국 산호세 캘리포니아 주립대학에서 전산학 학사, 스탠포드 대학에서 전산학 석사를 취득하였다. 미국 실리콘밸리의 GE, Sun Microsystems등에서 약 16년간 소프트웨어 실무경력을 쌓고 세계 150여 개 기업에 인터넷 통합 메시지 솔루션을 제공하는 ‘스탠포드 소프트웨어’를 설립하여 제품을 개발하고 회사를 운영하였다. 2000년 귀국 후에는 소프트웨어 분야 컨설턴트로 활동하며 ‘안철수연구소’의 부사장 및 최고기술경영자(CTO)로 근무하였다. 저서로 『대한민국에는 소프트웨어가 없다』, 역서로 『세상을 바꾼 32개의 통찰』이 있다.

저자 : 전규현 (Ray)
ABC Tech의 수석 컨설턴트이자 프로젝트관리전문가(PMP, Project Management Professional)이다. 연세대학교 공과대학을 졸업하고 ‘한글과컴퓨터’를 시작으로 ‘안철수연구소’에 이르기까지 약 15년간 수많은 소프트웨어를 개발하였고 Programming Engineer, Project Leader, Project Manager, CTO 등 소프트웨어 개발 분야의 다양한 역할을 두루 경험했다. 현재는 소프트웨어 개발 컨설턴트로서 소프트웨어 회사의 개발에 관한 문제들을 해결하는 일을 하고 있다.

 
 
 목차/책속으로
• 목차보기
 
Part1 소프트웨어 개발의 기초 
1. 기반시스템 
기반시스템이 잘 구축된 사례┃기반시스템이 잘 구축되지 않은 사례┃소스코드관리시스템┃빌드시스템┃버그관리시스템┃테스트관리시스템과 테스트 자동화툴┃프로젝트관리시스템┃요구사항관리시스템 
2. 조직 
프로젝트 구성원의 역할 ┃조직체계 
3. 개발방법론과 프로세스 
소프트웨어 개발방법론┃소프트웨어 개발 프로세스 
4. 사람 
인재 확보┃문서 작성 기술 
5. 문화 
동료 리뷰┃연구┃공유┃품질 우선┃규칙 준수┃장기적인 관점으로 보기 

Part2 소프트웨어 개발을 성공으로 이끄는 법 
6. 생애주기 모델을 제대로 선택하라 
폭포수 모델┃반복 모델┃XP 모델┃사시미 모델┃발전적 프로토타이핑 모델 
7. 개발 단계별 계획을 수립하라 
개발의 각 단계┃단계별 인원 투입┃단계별 일정 분배 
8. 프로젝트 활동을 확실하게 관리하라 
프로젝트 성공 기준 마련┃개발 계획┃일정관리┃요구사항 분석┃설계┃구현┃품질관리┃리스크관리┃인력관리┃의사소통관리┃원가관리
• 책속으로
 
이 책에 담긴 내용은 소프트웨어 개발 프로젝트에 직접적으로 참여하는 사람들뿐만 아니라 소프트웨어 회사의 경영자, 프로젝트관리자, 개발자, 상위관리자 등 모든 사람들이 알아야 할 내용 모두를 포함한다. 여기서 말하는 소프트웨어 회사는 소프트웨어 제품만을 개발하는 회사를 지칭하지 않는다. 팩키지 소프트웨어를 만드는 회사나 SI회사는 물론, 장비에 탑재되는 임베디드 소프트웨어를 만드는 휴대전화 개발사나 복사기 제조사, 방대한 전산 시스템을 가지고 있는 은행이나 증권사 등 소프트웨어를 개발하고 유지보수하는 모든 회사가 여기에 해당한다. 
--- p.10 

소프트웨어 프로젝트는 그저 열심히 수행한다고 해서 성공할 수 있는 것이 아니다. 회사와 직원들 모두에게 기초가 갖춰져 있지 않은 상태로 진행하는 프로젝트는 모래성 위에 쌓아 올린 탑과 같다. 아무리 훌륭한 프로젝트관리자라 하더라도 소스코드관리시스템이나 버그관리시스템도 없고, 테스터도 없고, 개발자들이 서로 리뷰를 해본 적도 없다면, 이들을 이끌고 프로젝트를 성공시키기란 기적이나 다름없다. 반면 기초를 잘 갖추고 진행하는 프로젝트는 튼튼한 탑과 같이 견고하다. 
--- p.24 

시중에는 수많은 소프트웨어 개발방법론이 넘쳐난다. 지금까지 알려진 방법론만 100가지가 넘는다. 인터넷에서 이에 대한 설명만 보고 Template을 복사해 와서 회사에 적용한다는 것은 기적에 가깝다. Template과 Sample만 보면 방법론을 적용하여 선진 개발 방식을 따라 할 수 있을 것 같지만, 착각이다. 제대로 된 방법론을 잘못 오해하여 적용하거나 특정 부분에 집착하여 전체를 놓치는 경우가 많다. 
한 가족이 살기 위한 집을 짓는데 고층 빌딩을 만드는 방법을 적용하면 안 되고, 그렇다고 개집을 만들 때처럼 대충 지어서도 안 된다. 개집을 만들 때는 대충 만들어도 되고, 안되면 다시 만들면 된다. 그러나 빌딩을 만들 때는 한 치의 오차도 없이 정확하고 정교한 방법을 사용해야 한다. 
--- p.118 

SRS는 이 책 전체에서 소개하는 많은 문서 중에서 가장 중요하다. 프로젝트를 성공으로 이끄는데 가장 중요한 핵심이기 때문이다. 만약 소프트웨어 프로젝트에서 문서를 딱 하나밖에 만들 시간이 없다고 하면 SRS를 만드는 것이 좋다. 
--- p.220 

개발자들은 가장 먼저 
● SRS를 작성해야 한다고 생각하고, 
● SRS를 작성하면서 모든 관련자와 철저히 리뷰를 하고, 
● 프로젝트관리자는 개발자들과 함께 1, 2일 단위의 상세 일정을 작성하고, 
● 테스트팀은 SRS를 보고 테스트 Suite를 만들기 시작하고, 
● 개발 리더들은 화이트보드나 종이를 펼쳐놓고 아키텍처에 대해 토론을 하며, 
● 구현 시 모든 소스코드는 당연히 리뷰를 하고, 
● 개발자는 매일 스스로 일정을 업데이트 하고, 
● 소스코드 작성은 일일빌드가 깨지지 않으면서 이루어지며, 
● 소스코드관리시스템과 버그관리시스템을 효과적으로 사용하며, 
● 알파, 베타 단계 별로 모든 프로젝트 관련자들이 유기적으로 움직이며, 
● 일정에 맞춰 완성도 있는 품질의 제품을 출시한다. 
위와 같은 활동들이 당연하다고 생각되고 몸에 배어야 한다. 이러한 것들을 규칙만으로 통제를 해서는 달성하기 어렵고 한꺼번에 모두 다 습득하기도 어렵다. 하나씩 익혀서 몸에 배었을 때 소프트웨어 프로젝트를 성공하는 원리가 보이기 시작하고 좋은 제품을 만들 수 있을 것이다. 
--- p.318
 
• 출판사 리뷰
 
경영자에서 개발자까지, 
소프트웨어 회사에서 반드시 알아야 할 핵심 노하우 

이 책 『소프트웨어 개발의 모든 것』은 소프트웨어를 성공적으로 개발하기 위해 반드시 필요한 기초에 대해 설명하고, 그러한 기초를 확실하게 활용하고 실행하기 위한 저자들의 노하우를 제시한다. 여기서 제시하는 내용은 회사가 크냐 작으냐에 따라 달라지지 않으며, 어떠한 형태의 제품을 만드느냐에 따라서도 달라지지 않는다. 
1부 ‘소프트웨어 개발의 기초’에서는 소프트웨어 회사에서 기본적으로 갖춰야 할 5가지, 즉 기반시스템, 조직, 프로세스, 기술, 문화에 대해 설명한다. 이 5가지는 우리나라 현실에 맞지 않는 딴 나라 얘기가 아니며, 실제 경험을 통해 가능하고 유용한 것들만 모아 놓은 것이다. 당장 이 5가지를 한꺼번에 갖출 수는 없겠지만 회사의 실정에 맞게 차근차근 모두 다 도입해야 하는 것도 분명하다. 
2부 ‘소프트웨어 개발을 성공으로 이끄는 법’에서는 개발방법론의 선택과 도입방법 및 절차를 설명하고, 소프트웨어 프로젝트의 기둥이라 할 수 있는 SRS(Software Requirements Specification) 작성의 중요성을 설명한다. 더불어 소프트웨어 개발의 각 단계별 계획 수립 방법과, 프로젝트 전반을 확실하게 관리하기 위한 저자들의 노하우를 제시한다. 
추천평
이 책은 단순한 소프트웨어 공학 책이 아니다. 저자의 25년 소프트웨어 개발 경험과 이론이 응축된 결과물이다. 이 책에는 미국의 실리콘밸리, 한국의 대표적 소프트웨어 회사 안철수연구소의 개발 프로세스와 개발 인프라를 만들고 발전시킨 경험이 담겨 있다. 소프트웨어 개발자나 프로젝트 관리자는 물론 개발 부서장, 기획자 등 소프트웨어 개발에 관련된 모든 사람들이 반드시 읽어봐야 할 책이다. - 강은성 (SK커뮤니케이션즈 커뮤니티개발실장)

소프트웨어를 구현하고 개발을 관리하면서, ‘어떻게 하면 여러 명이 이 일을 함께 잘 할 수 있을까?’ 하고 늘 고민해왔다. 결론은 ‘기본에 충실’이다. 이 책은 실용적인 도구, 프로세스, 문화에 대한 설명을 통해 어떻게 소프트웨어 개발의 기본에 충실할 수 있는 지를 알려준다. - 조재희 (휴맥스 혁신실 부장)

소프트웨어 개발을 직업으로 준비 중인 모든 신입 개발자들에게 가장 추천할 만한 입문서다. 이 책을 읽으면서 떠오른 한 가지 생각은, ‘우리나라 소프트웨어 개발자 중 과연 몇 명이나 이 책에 수록된 지식들을 숙지하고 있을까?’ 하는 의문이다. 국내 모든 소프트웨어 개발 종사자들이 꼭 한번 확인해보아야 할 책이라고 생각한다. - 민상윤 (KAIST 겸임교수, 솔루션링크 대표)


독자서평:

댓글 16개:

  1. 보내주신책 잘 받았습니다.
    전 아직 설계쪽 일은 많이 해보지 않아 조금 어려운 감이 있습니다만,
    많은 도움이 될것 같습니다.

    감사합니다~

    답글삭제
  2. 박준상님 블로그에서 만나니 반갑네요.
    개발에 관련된 좋은 의견 자주 주고 받아요.

    답글삭제
  3. 매우 도발적인 제목의 대단한 책을 쓰셨습니다. 앞으로 나올 해설서들도 무척 기대가 됩니다. 사이냅소프트가 나름 잘하고 있다고 생각하는데도 책 앞머리에 있는 역량평가표에 기록해보니 10점도 안나왔습니다. 분발하고 많이 배우도록 하겠습니다. 앞으로도 잘 부탁드립니다.

    답글삭제
  4. 전경헌사장님 반갑습니다.
    회사는 잘되시지죠?
    책이라는게 지면이 짧다보니 모든 것을 다 쓰기가 어렵더군요. 그래서 앞으로 블로그를 통해서 좀더 자세한 내용을 다룰 예정입니다. 감사합니다.

    답글삭제
  5. 반갑습니다. 아주 좋은 책을 저술하셨네요. 저도 한권 사서 읽어봐야겠습니다. 앞으로도 더욱 좋은 저술 활동 기대하겠습니다. 감사합니다.

    답글삭제
  6. 이병준님 반갑습니다.
    블로그에서 소프트웨어 개발에 관한 의견을 많이 나누워요. 감사합니다.

    답글삭제
  7. 목차만 봐도 내용이 기대됩니다. 꼭 한권 사봐야 겠습니다. 최근 회사에 동료리뷰를 정착시키려고 애쓰고 있는 중입니다. 앞으로 궁금한 점들 많이 질문할테니 많은 조언 부탁드립니다.

    답글삭제
  8. 보내주신 책 잘 보고 있습니다.
    책을 읽으면서 든 느낌은 현실에 적용 가능한 PMP + CMMI 를 목표로 기술하신 것 같습니다.
    제 개인적인 목표이기도 하고요.

    답글삭제
  9. 헝그리맨님 반갑습니다.
    동료리뷰(Peer review)는 가장 중요하면서도 가장 정착시키기 어려운 문화입니다. 가장 좋은 방법은 일단 시작하는 것이지요. 앞으로 많은 의견 주고 받고 싶습니다.
    감사합니다.

    답글삭제
  10. 책을 다 읽어보시면 이 책의 목표가 뭔지 아실 수 있을 것 같은데, 결론부터 말씀드리면 기초 체력 연마에 대한 책입니다. CMMI는 그 이후 문제겠죠. 우리나라 회사들은 기초 체력은 안되는데 무리하게 CMMI를 도입하여 형식에 치우치는 경우도 많죠. 미국에서는 S/W회사들이 CMMI 인증을 받으려고 하는 회사는 거의 없습니다. 사실 잘 알지도 못하죠. 앞으로 이에 관해서도 많은 토론 기대하겠습니다.

    답글삭제
  11. 저도 Ray님 의견에 공감합니다. CMMI는 정말 지킬 수 있다면 좋겠지요 Lv2까지는 뭐 괜찮은 것 같습니다만. 그 이상은 무리하게 Document를 요구한다고 생각합니다. 현재 한국 실정에서는요. 물론 정말 좋습니다. 다지키면서 개발하는게 정말 이상적이라 생각하는 내용들이고 이건 아니다 라고 생각하는 내용들은 없더군요. 다만 일반 업체에서 높은 레벨이 필요할까 하는 것입니다. 미국에서도 항공,우주,차량쪽에서의 전문 SW개발회사들만 CMMI LV이 높습니다. SPICE를 요구하는 쪽도 있구요. 제가 전장업계에 있었는데요. 한국 쪽도 Stakeholder가 요구하니 따라가는 것 뿐이지요. 목숨이 걸린 프로그램을 개발하니까 그만큼 주의하겠다는 의지의 표현이라고나 할까... 두서없네요... 트랙백 보고 찾아왔는데 책 한번 읽어 봐야겠네요 ^^

    답글삭제
  12. Uzys님 안녕하세요.
    우리나라는 고객이 엄청난 문서와 방법론을 요구하는 경우가 많습니다. 별 필요도 없고 나중에 보지도 않는 문서를 요구하고 개발사는 제품과는 상관없이 문서를 만드는 것이 일반화 되었죠. 이걸 고치는 일은 보통일이 아니네요.

    답글삭제
  13. 트랙백 보고 날라왔습니다 ^^; 트랙백 보내기도 민망한 글에 저자님께서 직접 보내주시다니..
    이책 덕분인지 저희 회사도 기반시스템을 조금씩 도입하면서 정착시키려는 노력을 하고있습니다. 많은 사람들이 이책을 보고 더 나은 환경에서 개발에 전념할 수 있으면 좋겠습니다 ^^

    답글삭제
  14. 반갑습니다. 블로그를 통해서 의견 많이 주고받기를 기대합니다. 책에서 못다한 얘기도 나누고 의논할 내용 있으면 올려주세요. 감사합니다.

    답글삭제
  15. 제목을 보고 뭐 이런 책이 다 있나 하는 생각에 한번 읽어봤습니다. 읽어보니 제목처럼 소프트웨어 개발에 대한 모든 것을 다루고 있지는 않지만 나름 내용 자체는 충실합니다. 이 책은 두 부분으로 크게 나누어져 있습니다. Part1 소프트웨어 개발의 기초 Part2 소프트웨어 개발을 성공으로 이끄는 법 1부에서는 소프트웨어 개발 프로젝트 전반에 대해 다루고 있는데 형상관리, 빌드, 버그 트랙킹등에 대한 시스템에 대한 부분부터, 방법론, 프로세스까지 설명..

    답글삭제
  16. 저자 사인 도서 증정 이벤트(소프트웨어 개발의 모든 것, 페가수스) , All of Software // 이벤트 기간 중 소프트웨어 개발 역량 분석 서비스를 이용한 독자에게 저자 사인이 담긴 도서를 증정!! ㅡ_-)~ 한번 해봄직 하군요. ㅎㅎ.

    답글삭제