블로그 이미지
푸른_바람

Rss feed Tistory
IT/Project 2010/07/28 08:30

일반적인 세 가지 종류의 프로젝트에 작합한 방법

SoftWare Productivity Research의 최고 연구원을 지낸 Capers Jones는 20년 동안의 소프트웨어 연구를 다음과 같이 요약했다. 요구 사항을 수집하는데 40가지의 방법이 있고, 소프트웨어 설계 작업을 수행하는 방법은 50가지 방법이 있으며, 700개도 넘는 프로그래밍 언어로 진행된 프로젝트에 적용할 수 있는 테스트는 30가지 방법이 있다.(Jones 2003).


 소프트웨어 종류
 비즈니스 시스템미션-크리티컬 시스템 내장형 라이프-크리티컬 시스템
전형적인 응용 프로그램
  • 인터넷 사이트
  • 인트라넷 사이트
  • 창고 관리
  • 정보 관리 시스템
  • 봉급 지불 시스템
  • 내장형 소프트웨어
  • 게임
  • 인터넷 사이트
  • 패키지 소스트웨어
  • 소프트웨어 도구
  • 웹 서비스
  • 항공 전자 소스트웨어
  • 내장형 소프트웨어
  • 의학 소프트웨어
  • 운영체제
  • 패키지 소프트웨어
수명 주기 모델
  • 기민한 개발(익스트림 프로그래밍, 스크럼, 타임박스 등)
  • 단게별 개발
  • 진화적 개발
  • 나선형 개발
  • 단계별 개발
  • 나선형 개발
  • 진화적 개발
계획 및 관리 
  • 점증적 프로젝트 계획
  • 요구에 따라 테슽 및  QA 계획 수립
  • 기초적인 선행 계획 수립
  • 기초적인 테스트 계획 수림
  • 요구에 따라 QA 계획 수립
  • 형식적인 변경 제어
  • 광범위한 선행 계획 수립
  • 광법위한 테스트 계획 수립
  • 광범위한 QA 계획 수립
  • 엄격한 변경 제어
요구 사항
  • 비 형식적인 요구 사항 명세
  • 중간 수준의 정형화된 요구 사항과 명세
  • 요구에 따라 요구 사항 검토
  • 형식적인 요구 사항 명세
  • 형식적인 요구 사항 정밀 검사
설계
  • 설계 및 코드 작성의 병행
  • 아키텍스 설계
  • 비형식적인 상세 설계
  • 요구에 따라 설계 검토
  • 아키텍처 설계
  • 형식적인 아키텍처 정밀 검사
  • 형식적인 상세 설계
  • 형식적인 상세 설계 정밀 검사
구현
  • 짝 프로그래밍이나 개별적인 코드 작성
  • 비형식적인 체크-인 절차, 또는 체크-인 절차 사용하지 않음
  • 짝 프로그래밍이나 개별적인 코드 작성
  • 비형식적인 체크-인 절차
  • 요구에 따라 코드 검토
  • 짝 프로그래밍이나 개별적인 코드 작성
  • 형식적인 체크-인 절차
  • 형식적인 코드 정밀 검사
테스트 및 QA
  • 개발자가 자신의 코드를 테스트
  • 테스트 우선 개발
  • 별도의 테스트 그룹에 의한 테스트 부재
  • 개발자가 자신의 코드를 테스트
  • 테스트 우선 개발
  • 별도의 테스트 그룹
  • 개발자가 자신의 코드를 테스트
  • 테스트 우선 개발
  • 별도의 테스트 그룹
  • 별도의 QA 그룹
배포 비형식적인 배포 절차 형식적인 배포 절차 형식적인 배포 절차

실제 프로젝트에서는 위 표에서 제공한 세 가지 종류에 대한 광장히 많은 변형들이 있음을 발견할 것이다. 이 표는 일반적인 사항을 설며하고 있다.

'IT > Project' 카테고리의 다른 글

일반적인 세 가지 종류의 프로젝트에 작합한 방법  (0) 2010/07/28
불완전한 준비의 원인  (0) 2010/07/27
IT/Project 2010/07/27 05:32

불완전한 준비의 원인

 모든 전문적인 프로그래머들이 준비 작업의 중요성에 대해서 알고 있으며 구현 단계를 진행하기 전에 선행 조건들이 만족되었는지를 확인한다고 생각하겠지만, 불행하게도 그렇지 않다.


불완전한 준비의 일반적인 원인은 선행 작업에 투입되는 개발자들이 자신의 작업을 수행할 수 있을 정도의 전문가적인 지식을 갖고 있지 않다는 점이다. 그러한 기술들은 프로젝트를 계획하고, 강력한 비즈니스 케이스를 만들기 위해서 필요하다. 또한, 포괄적이고 정확한 요구 사항을 개발하고 훌륭한 아키텍처를 만들기 위해서도 필요하다. 하지만 대부분의 개발자들은 그러한 작업들을 어떻게 수행할 것인지에 대한 교육을 받은 적이 없다. 개발자들이 선행 작업을 어떻게 수행할 것인지를 모른다면, "선행 작업을 더 많이 수행하세요"라고 권한다는 것 자체가 비상식적으로 들릴 것이다. 만약 선행 작업이 처음부터 제대로 수행되어 있지 않다면, 더 많은 선행 작업을 한다고 해서 유용하지 않을 것이다! 

[참고 자료] 이러한 능력을 키우기 위한 전문적인 개발 프로그램에 대한 내용은 Professional Software Development(McConnell 2004)의 16장을 살펴본다.

CODE COMPLETE2 : 69p
 
이론적으로나 귀 동냥으로 선행작업을 해야되는건 알고 있습니다. 문제정의, 요구사항 분석등 대충 이런걸 하는건가? 하는 것도 있지만 정확하게 뭘해야 하는지 실무적인 내용은 깜깜하죠.
물론 문제를 정의하고, 요구사항을 분석하고, 아키텍처 혹은 프레임웍을 구성하는 등등의 일은 하지만 그래도 프로젝트는 산으로 올라가다 못해 구름위를 떠다니다 안드로메다로 가는 경우가 많죠.

뭐가 있을까요? 그리고 뭘 해야 할까요?

'IT > Project' 카테고리의 다른 글

일반적인 세 가지 종류의 프로젝트에 작합한 방법  (0) 2010/07/28
불완전한 준비의 원인  (0) 2010/07/27
TOTAL 246,630 TODAY 8