2. 목표 중심적인 프로젝트 관리
• SMART
• 구체성(Specific), 측정
가능성(Measurable),
달성 가능성(Attainable), 현실성(Realistic), 적시성(Timely)
• 목표는 관련된 모든 사람에게 분명해야 한다.
• 감성과 영감.
• 실천 능력. - 실천 없는 약속은 신뢰감 구축에 치명적이다.
3. 인간 본성의 관리
• 팀장의
역할은 상당 부분 팀원이 인간 본성을 극복하는 것을
돕는 데 있다.
• 프로젝트를 관리한다는 것은 인간 본성을 관리한다는 것을 뜻
한다.
1.사랑받는다는 느낌을 준다.
2.수시로 현황 파악을 해야 일이 돌아간다.
3.빠져나갈 구멍을 만들어 준다.
4. 가치 측정의 가치
• 개발하는 소프트웨어의 가치를 측정하라.
• 가치(데이터)를
시각화하면,
사내에 도움이 되고 고객을 설득할 자료가 될 수 있다.
1.성공의 정량화. - 고객이 어떠한 성과를 거두었다는 사례.
2.차기 제품 계획에 대한 근거자료.
3.마케팅에 대한 파급 효과.
4.팀의 사기 증진.
6. 개발 성숙도 평가
• 우선순위가 높은 기능을 포함하여 프로젝트를 완수했는가?
• 결함 추적 시스템을 쓰고 있는가?
• 소스 코드 제어 시스템을 쓰고 있는가?
• 요구사항,명세서,코드 관리,테스트,결함 추적을 지키는가?
• 이전/신규 결함 발생율을 관리하는가?
• ...
7. 소프트웨어 결함과 비용
그리고 효율
• 지원에 대한 비용이 커지면 신규 개발에 대한 투자가 작아진다.
• 개발자의성질이 더러워지면
동기 부여나 효율에 악영향을 끼친다.
• 개발
후반부에 결함이 프로젝트 마무리를 할 수 없게 만들고,
일정을 지연시킨다.
• 출신된제품에 품질이 떨어지면 고객만족도도 낮아지고,
수익도 줄어든다.
8.
9. 결함 및 비용을 줄이고
생산성을 증가시키려면...
• 결함을조기에 발견하는 효율적인 방법은
설계, 명세서 작성, 코드 검토다.
• 테스트를
마지만 한번으로 하지 말고
개발 기간내 지속적으로 반복해라.
• 트레이스 지점, assert 구문, 프로그래밍 방식 후크 삽입해라.
10. 테스트와 품질
• 역사적으로 코드 품질을 개선하고 버그를 없애는 데 있어서
가장 좋은 방법은 코드 검토다.
• 최고품질의 코드를 개발하기 위해서
설계 및 명세서 검토, 코드 검토,
형식적인 인라인(런타임) assert 테스트,
코드 삽입, 철저한 테스트등을 수행한다.
• 소프트웨어 프로젝트 관리는
사람, 절차, 품질을 관리하는 일이다.