소프트웨어를 개발하는 이유는 오직 두가지이다.

세상에서 없는 것을 개발하는 것, 세상에 나와있는 것보다는 훨씬 성능이 좋은 소프트웨어를 개발하는 것이다.
특정 일을 해야하는 시스템이 구체화되기 위해서는 소프트웨어의 상세 요구사항을 발견하고 목록화해야 한다.

1. 개발하고자 하는 소프트웨어와 비슷한 소프트웨어의 벤치마크를 한다.
  SWOT및 경쟁력이 된다면 개발에 착수한다.
2. 해당 시스템이 당연히 해야할 일을 구체화 한다.
3. 점차 모듈로 구분한다.
4. 모듈의 업무를 세분화하여 요구사항으로 잘 나타낸다.
5. 각 모듈의 interface를 생각하여 요구사항으로 나타낸다.

위의 내용은 Top-down 식 디자인 방법이다. 개인적으로 주로 이 방법을 사용했었다.
하지만, 그 반대의 경우인 Bottom-up 식 디자인 방법이 필요하기도 한다.

하드웨어를 서버에 장착할 수도 있고, 표준문서 입장에서 보는 경우도 있다.
그럴 때에는 아래에서 위로 보는 관점을 가지는 것이 좋다.
본인은 일 자체가 규격문서 위주로 되어 있기 까닭에 규격문서를 위주로 요구사항을 정리하였다.
거의 low-level이기 까닭에 모듈의 세부 요구사항으로 정리가 될 수 있겠다.

하지만, 이것으로 만족스럽지 않다.

바로 고객(사용자)가 사용할 때의 시나리오를 통해서 요구사항을 보완해야 한다.

사용자가 어떻게 사용할 수 있는지 어떤 방법으로 접근하면 좋을 지를 잘 생각해 내고, 이러한 Iterative Thinking & Consideration을 잘 염두하면서 디자인의 첫번째 요소 요구사항을 잘 뽑는 것이 중요하다.

이런 과정을 통해서 설계 작업에 들어가게 될 때 큰 뼈대가 될 수 있다.

'철학' 카테고리의 다른 글

디자인-요구사항 파악하기-3  (0) 2006.07.20
Project Management Office (PMO)  (0) 2006.07.20
디자인-요구사항 파악하기-2  (0) 2006.07.20
커뮤니케이션을 기반으로 하는 학습.  (0) 2006.07.20
버그의 원인  (0) 2006.07.20
Posted by '김용환'
,