본문 바로가기
나는 모델러다

분석설계? 분석? 설계?

by kooangelo 2025. 1. 8.

여행을 가는데도 MBTI 성향에 따라 스타일이 많이 다르다. 어떤 이는 일자별, 심지어 30분 단위까지 나눠 시간과 장소, 이동수단 등을 계획하기도 한다. 하지만 또 어떤 이는 그냥 발 길 닿는데로 여행하는 스타일도 있을 것이다. 타고난 성향이나 주변 환경에 따라 다르다. 물론 어떤 방법이 정답이라고는 할 수 없다.


여행은 위와 같을 수 있겠지만 부동산을 구매하거나 이사를 가는 경우에는 어떤가? 이러한 일도 그때 그때 생각나는 대로 진행해도 될까? 그러면 개발(구축) 프로젝트는 어떨까? 그냥 눈에 보이는 대로, 생각나는 대로 그 때 그 때 상황에 맞춰 진행해도 될까? 아니면 30분 단위까지 여행 계획짜듯 세부적으로 계획을 세워야 할까?


프로젝트가 시작(Kick-off)되면 제일 먼저 무엇을 해야할까? 인원투입, 사무환경 등 여러가지 챙겨야겠지만 구축(이행) 프로젝트에서 실질적으로 시스템 개발이 잘 되려면 무엇을 먼저 챙겨야할까? 30분 단위까지 세부적으로 여행계획을 짜듯 구축 프로젝트 시작부터 오픈하여 마무리 끝날 때 까지 전체 여정을 WBS(Work Breakdown Structure)로 계획 수립해야 한다.


WBS의 제일 하위 단위는 Task이다. 해야할 일을 Task단위로 계획하면 된다. 그러면 Task를 그냥 쭉 나열하면 될까? Task들을 적절히 Category(단계 또는 Stage)로 묶고 그 하위에 Task를 나열해야한다. 그러면 그 Category를 어떻게 정의하면 좋을까? 보통은 구축해야할 시스템별로 공정에 맞춰 Category를 정의한다. 분석, 설계, 개발, 테스트, 오픈 등으로…

 

그런데 어떤 프로젝트를 갔더니 ‘분석/설계’를 하나의 Category로 묶어두었다. ‘분석/설계’ 하위에 ‘분석’, ‘설계’ 를 Sub Category로 나누었다면 모르겠지만, 그렇지 않았다. ‘분석/설계’ 라는 단계명을 보면서 나는 이런 생각이 들었다.

‘분석과 설계를 한꺼번에 하겠다는 것인가?’
‘분석과 설계를 나누지 않고 어떻게 한꺼번에 하겠다는 것이지?’
‘분석/설계단계가 끝나는 단계말에 무엇을 제출하고 검증할 수 있단 말인가?’

 

혹시 일정이 빠듯하다는 생각에, 개발을 빨리 들어가야 한다는 의중을 담아, 안한다고 할 수는 없으니 최소한의 Task로 분석과 설계를 퉁치려는 것인가? (아니길 바라지만 대부분 이런 경우에는 이러한 의심이 맞아떨어진다)
예전에는 꼬치꼬치 캐묻곤 했는데 이제 그러지 않는다. 그냥 속으로 내 스스로에게만 질문하고 이상하다고만 여기고 지나간다. 어차피 입 밖으로 꺼내봐야 피곤해진다. 달라지게는 별로 없고 서로 얼굴만 붉히기 때문이다. 내가 의사결정 권한도 없는데 어쩌겠는가?

 
그리고 명시적으로 질문해 봐야 이러한 대답이 돌아올 가능성이 크다.
“ ‘분석’, ‘설계’로 나누나, ‘분석/설계’로 통합하나, 일만 하면 되는 것이지 무슨 차이가 있다고 굳이 그렇게 까다롭게 구는가? “

그러면 ‘분석’이란 무엇인가?
WHAT’에 해당하는 말로 ‘무엇’을 개발할 것인지 정의하는 단계이다.

 

그러면 ‘설계’란 무엇인가?
HOW’에 해당하는 말로 ‘어떻게’ 개발할 것인지를 고민하는 단계이다.
무엇을 개발할지 정의가 된(분석) 후 어떻게 개발할지는 고민(설계) 후 실제 개발에 들어가면 된다.

그러므로 WHAT에 해당하는 분석단계가 끝나면 무엇을 개발할지 정의되므로 그 프로젝트의 범위가 결정된다. 그 범위를 확정(Baseline을 긋고)하고 그 일정에 맞춰 설계하고 개발하면 된다. 그런데 분석과 설계를 한꺼번에 하겠다? 혼합해서 통합해서 무엇을 하겠다? 그래서 말이 안된다고 하는 것이다. 범위도 결정되지 않았는데 무엇을 설계한다는 말인가?

예전에 분리발주라는 개념도 있었다. 한 업체가 한번의 프로젝트로 분석, 설계, 개발, 테스트, 오픈 하다보니 기간도 길고 문제가 생겼을 때 뒤로 미루는 등의 문제점을 개선해 보고자 분석단계와 설계단계를 명시적으로 프로젝트를 분리하고 필요한 경우 각 단계별 사업자를 달리 선정할 수도 있도록 한 것이다. 그러면 분석단계 프로젝트를 통해 명확해진 범위를 Input으로 받아 설계 이후 단계 프로젝트를 진행하게 되는 것이다. 같은 사업자든 다른 사업자든 명시적으로 프로젝트를 나눈것이다. 왜 이렇게 했겠는가? 워낙 범위산정이 까다롭고 말이 많기 때문에 그랬을 것이다. 이렇게 분리발주를 하든 하지않든 이러한 사상에 맞춰 분석 Stage와 설계 Stage를 명확히 나누자는 것이다.

분석단계에서는 어떤일(Task)을 해서 범위를 결정하고 설계에서는 어떤 과정을 통해 How 방법을 고민하게 될 까? 별도의 Chapter에서 설명하겠다.

이러한 이유를 이해하고도 분석과 설계를 적당히 하나로 묶어 퉁치려 한다면…
Task간의 선후행 관계 확인하고, 담당자와 일정 계산해가며, 산출물까지 매핑하면서, 피곤하게 WBS를 굳이 왜 작성하는가?

현재 하고 있는 프로젝트의 WBS를 다시 한번 보시라.
어떻게 되어 있는가?

'나는 모델러다' 카테고리의 다른 글

CRUD 권한?  (0) 2025.01.08
분석단계 - 요구사항  (0) 2025.01.08
산출물, 내라고 하니까 낸다?  (0) 2025.01.04
META와 모델링 도구  (0) 2025.01.02
Process Modeler와 MDA/MDD Engineer  (0) 2024.12.17