1장. 시작하기
_1.1 프로젝트란 무엇인가
_1.2 프로젝트에 대해 알아야 하는 이유
_1.3 이 책의 구성
_1.4 대상 독자
2장. 프로젝트 만들기
_2.1 프로젝트 기획하기
_2.2 제안요청서 만들기
_2.3 제안서 만들기
_2.4 제안 평가와 계약
3장. 프로젝트 관리하기
_3.1 프로젝트 관리란?
_3.2 소프트웨어 생명주기 모델
_3.3 소프트웨어 개발방법론
_3.4 프로젝트 관리 절차와 방법
4장. 프로젝트 분석하기
_4.1 요구사항 분석
_4.2 요구사항 도출
_4.3 요구사항 분석
_4.4 요구사항 명세
_4.5 요구사항 검증
5장. 프로젝트 설계하기
_5.1 프로젝트 설계란?
_5.2 프로세스 설계
_5.3 인터페이스 설계
_5.4 데이터 설계
6장. 시스템 개발하기
_6.1 개발 표준 정하기
_6.2 개발환경 구축하기
_6.3 팀으로 개발하기
_6.4 효율적으로 코딩하기
_6.5 프로그램 단위 테스트
7장. 프로젝트 완료하기
_7.1 프로젝트는 어떻게 완료하는가?
_7.2 프로젝트 완료를 위한 테스트
_7.3 서비스 시작
_7.4 프로젝트 검수
8장. 정보시스템 운영하기
_8.1 정보시스템 운영이란?
_8.2 시스템운영에 필요한 인프라 지식
_8.3 시스템운영에 필요한 네트워크 지식
_8.4 시스템운영에 필요한 보안 지식
_8.5 시스템운영에 필요한 운영체제 지식
9장. 프로젝트와 국제표준
_9.1 표준화와 품질
_9.2 정보시스템 구축 국제표준 CMMi
실제 스마트 영업지원 시스템 개발 프로젝트의 라이프사이클을 따라가보자
이 책에서는 실제 프로젝트의 생성과 소멸, 시스템 개발 후 운영과 관리까지의 모든 라이프사이클을 따라가본다. 그러면서 실제와 같은 산출물을 바탕으로 소규모 프로젝트를 진행해볼 수 있다. 전반적인 프로젝트 관리를 다룬 PM 도서와는 많이 다르며 대상 독자도 다르다. 간접 체험을 통해 시간이 흘러야만 알 수 있는 기술적 경험과 공학적 이론이 실무에 어떻게 사용되는지를 전달하고자 했으며 독자가 가진 기술에 깊이를 더하고자 했다. 다양한 사람들이 참여하는 프로젝트를 이해한다는 것은 책임과 복잡한 이해관계를 이해한다는 것이다. 따라서 다른 사람과의 소통 능력 향상도 기대할 수 있다. 분야의 특성상 추상적인 것들을 최대한 그림과 표, 다양한 산출물을 활용하여 쉽고 구체적으로 알 수 있도록 했다.
왜 개발자가 프로젝트의 모든 것을 알아야 할까?
PM이 아닌 이상, 프로젝트에 참여하는 개발자나 엔지니어는 자기 분야 외의 것은 경험하기도 이해하기도 어렵다. 하지만, 왜 개발자가 모든 과정을 알아야 할까? 고도화된 IT 기술이 빠르게 변화하듯 ‘더 괜찮은’ 개발자로 성장하려면 갖추어야 할 것들도 이전과는 다르게 변화하고 있다. 자신의 분야엔 전문성과 깊이를 가져야 하지만, 이것 외에도 폭넓은 교양과 인적 네트워크까지 가져야만 한다.
이것이 왜 개발자가 프로젝트를 알아야 하는지에 대한 작은 힌트이며 이에 대한 해답을 프로젝트란 틀을 빌려 말하고자 한다.
프로젝트를 알아야 하는 이유
- 다양한 사람들이 참여하고 공동 업무에서 각자의 목표와 위험, 책임과 이해관계가 얽혀있다. 이것을 이해할 수 있다면 상대가 무엇을 원하는지 알 수 있다.
- 다양하고 깊이 있는 지식이 필요하다. 다른 분야의 도메인 지식과 전문 기술, 용어 등을 익히는 데 필요한 시간을 조금 단축시킬 수 있다.
- 넓은 시야를 갖기 위해