Software Engineering소프트웨어 프로토타이핑은 SW 개발 예산과 시간을 줄이는데 얼마나 효과적일까

2021-09-03


“A picture is worth a thousand words.” 


소프트웨어 프로토타이핑(Prototyping)은 최종 결과물의 모형을 제작하는 과정으로 중요 부분의 모습(디자인)과 기능을 눈으로 볼 수 있게 해주고 손으로 만져볼 수 있게 해준다. 즉, 백문이불여일견(百聞而不如一見)으로 소프트웨어 개발 관계자들이 이해와 판단을 쉽게 할 수 있도록 해준다. 


코딩을 해야 하는가? 

그렇지 않다. 다양한 형태로 프로토타입을 개발할 수 있으며, 그 목표는 모두가 하나의 동일한 산출물을 생각하게 하는데 있다. 코딩을 해서 비슷한 작동 체험을 제공할 수 있겠지만, 코딩을 하지 않아도 그 목표를 충분히 달성할 수 있으니 개발 초기에 이 부분에 부담을 갖지 않아도 된다. 프로토타입에는 여러가지 형태가 있다. 서투른 그림 솜씨라도 진행 과정의 각 장면을 포스트잇에 그린 다음 휴대폰으로 촬영해서 동영상으로 보여주는 방법이 있고, 마분지와 색종이를 이용해서 입체감을 선사해도 좋겠다. PowerPoint, Figma와 같은 툴을 이용해서 가상의 동작 실감을 느끼게 할 수도 있다. 


프로토타입이 제공하는 장점

  • 고객 요구사항을 명확히 할 수 있다. 텍스트로 정리한 어느 요구사항정의서보다도 프로토타입은 고객 이해를 높인다. 첨삭하거나 조정할 부분도 분명해지고 공감을 높인다. 프로토타입은 그래서 의사소통의 오류를 최소화 한다.
  • 프로토타입은 고객 참여도를 높인다. 개발팀은 만들고 고객은 평가하는 갑을 구조 대신, 양측이 모두 깊게 관여하도록 하므로 프로젝트 결과물에 대한 신뢰는 자연스럽게 증가하게 된다. 프로토타입은 고객과 개발팀을 하나의 팀으로 만든다.
  • 소프트웨어 개발팀에게 프로토타이핑을 강력하게 추천하는 이유는 (심바트의 개발 경험에서 언급한다면) 무엇보다 재작업(Rework)을 줄여주고 일사천리로 완료할 수 있기 때문이다. 말하자면, 기대한 결과물의 납기와 품질 그리고 예산을 모두 만족스럽게 달성할 수 있다. 


프로토타입을 만드는 프로세스

1. Define & Ideation: 개발하려는 최종 산출물이 무엇인지 정의하고 그 솔루션에 대한 아이디어를 도출한다. 

2. Dimension Decision: 필요한 프로토타입의 범위를 결정한다.

  • Horizontal Prototyping: 기대하는 솔루션의 전개 방식과 흐름을 개괄적으로 보여주고 싶을 때 선택한다.
  • Vertical Prototyping: 도출한 솔루션에서 가장 중요성이 높은 프로세스 1~2개를 선정한 다음 End-to-End를 단계별로 정리한다. 이후 각 단계별 표현 방법을 결정한다.
  • Hybrid Prototyping:  위 두가지 방법을 혼용하여 전체적인 흐름과 함께 중요 프로세스에 대한 작동을 제한적으로 표현한다.

3. Visualization: 스케치, 동영상, 코딩 등 다양한 방법을 동원해서 형상화를 진행한다.


프로토타이핑은 언제(When) 누가(Who) 수행하는가?

개발은 커뮤니케이션의 연속이다. 커뮤니케이션의 1차 책임은 청자(Listener)가 아닌 화자(Speaker)에게 있다. 정확하게 얘기해야 잘 이해하고 수행할 수 있다. RFP(제안요청서)를 작성하는 통상 '갑'으로 표현되는 고객은 화자의 입장에서 요구사항을 명확히 해야 한다. 이를 위해 고객은 프로토타이핑을 내부에서 먼저 진행할 필요가 충분히 있다. 


  • 제안요청서의 96%가 과업규모 산정이 불가능하여 사업위험을 예측할 수 없는 수준임에도 이를 기준으로 계약을 체결함(2015년에 나라장터에 공고된 SW사업 RFP 500건 중 482건이 해당, ※ 출처: 소프트웨어정책연구소, 2016)
  • 발주자와 개발자가 합의 없이 산출물을 설계하는 비율이 75%에 달함 (SW사업 수발주역량 실태조사에 응한 발주기관 174개 中 131개가 해당 ※ 출처: 소프트웨어정책연구소, 2016)
  • 민관합동 SW불공정행위 모니터링단 사례집 (KOSA 2017) 중 공공부문 분쟁의 약 30%가 과업추가와 검수지연으로서 발주자와 수주자 간 과업정의와 검수에 대한 기준이 다른 것에서 기인함  


개발 착수 단계에서는 요구사항의 정확한 분석과 공감을 위해 개발팀 주관으로 진행하는 프로토타이핑을 추천한다. 프로토타입을 개발 중간에도 계속 보완해나가는데 경험상 MVP(Minimum Viable Product)를 만들 때까지 관리한다.