본문 바로가기

Project

사양은 고정되어 있는가?

이것도 짧은 마인드멥이다.

프로젝트의 요구 사양은 변화하는가?

만약 사양이 고정되어 있다면 사양을 분석하여 정교한 모델을 만드는데
시간을 투자하는 편이 만들고 테스트 하는 방법보다는 ROI가 높을것이다.

하지만 변화한다면 어떻게 만드는것이 가장 효율적일까?
먼저 개발하려는 사양을 2가지 분류로 나눈다.

1.고정된 사양
2.변화하는 사양


1.먼저 고정된 사양은 연역적 판단을 통해 개발가능하다.
하지만 문제는 사양의 연역적 추론을 통해 만들수 있는 아키텍쳐는 셀수없이 많다.
때문에 성공적인 아키텍쳐를 판단하는 기준이 필요한데 이러한 기준은 연역적 추론 가운데서도
연역적 논리보다 실험적 추론이 훨신 더 유효할 수 있다.
*실험적 추론을 위해서는 어느정도 실패를 통한 정보가 필요하다.


2.변화하는 사양은 빠른 feedback을 통해 개발가능하다.
  - 수렴(짧은 Feedback을 통한 조율, 즉 환경의 변경과 개발사이에 *스래싱을 줄인다)
  - 집합기반 개발(다옵션 개발 , 즉 여러 프로토타입의 모델을 동시에 진행시킨다.)
  - 동기화 (변화의 동기화, 접합점을 통해 관리, *스패닝)
  - 동시개발(확정된 사양을 구성하는 모듈들을 동시에 개발한다. 즉 세부사항을 조율하는것은
              나중으로 미루고 불변하는 사양을 파악해 필요한 모듈의 개발을 동시에 진행시킨다.)
   - 프로젝트관리기술(*당김 시스템pull system,*대기행렬이론)
   - 통합성 관리(인식통합성, 개념통합성)

변화하는 환경에 맞는 성공적인 아키텍쳐를 만드는것은 과학이라기 보단 기예에 가깝다.



*스래싱 - 개발이 완료되기전에 새로운 요구사항이 들어와 개발에 지연이 생기는것
             목표한 사양을 구현하기전에 다른 사양을 구현한다면 그 두사양 사이에
             목표하려는 구현이 모호해질것이다.
             예를들면 목욕탕의 온도계의 변화와 물의 온도의 변화사이에 큰 간격이 있다면
              물이 차가워 온도를 올리고, 물이 뜨거워 온도를 올리는 작업으로 인해 실제 원하는
              온도를 맞추지 못할것이다. 즉 하나의 온도를 향해 수렴하는것을 말함.

*스패닝  - 분리된 모듈간의 영향을 빠르게 분석하기 위해 각 모듈간의 연결을 구현하는
               골격을 확보

*당김시스템 - 해야할일을 전달해주는것이 아니라 직접 선택하여 가져가도록 한다.
                    토요타의 칸반시스템 참고.

*대기행열이론 - 순환시간(대기하는 시간)을 줄인다.
                      요소( 일정한 도착율,일정한 서비스율,여유slack)
                      *자세한것은 TOC(제약조건이론)참고