"AI프로젝트는 업무 요건이 없는, 정답이 없는 프로젝트"

[연재/심기보의 AI프로젝트 성공 비결②] AI프로젝트와 기간계 시스템간 개발 차이

전문가 칼럼입력 :2021/07/18 10:09    수정: 2021/07/18 11:43

심기보 전 정보통신기술사협회장

AI프로젝트는 '프로젝트 내용' '채용기술' '체제' 면에서 기간계 시스템 개발과 크게 다르다. 요건을 사용자(User, 유저)에게 요구할 수 없다. 기간계 시스템은 업무 요건이라고 하는 정답이 있지만 AI 프로젝트는 시스템화 요구(요건)가 정해져 있지 않기 때문이다. 이것이 기간계 시스템 개발을 잘하는 회사가 AI프로젝트에서 실패하는 주요 요인이다. AI프로젝트 매니저는 이 차이를 유의해야 한다.

AI기술 진화로 AI기술을 활용한 프로젝트가 증가하고 있다. 새로운 시스템 개발을 수반하는 AI 프로젝트에 성공 사례도 나오지만, 고전하는 기업도 많다. IT 벤더 등 AI 프로젝트를 수탁하는 회사 역시 AI를 리드할 인재가 없고, 어떻게 진행하면 좋을지 모르겠다고 하는 경우가 많다.

프로젝트 진행 방식이 크게 달라

많은 IT벤더는 기간계 시스템 등 업무 프로세스 개발을 통해 성장해 왔다. 그러나 기간계 시스템 개발 프로젝트와 AI시스템 개발 프로젝트는 다른 점이 많다. 그 다른 점을 이해하지 못하고 기간계 시스템 개발 프로젝트와 동일한 방식으로 AI시스템 개발 프로젝트를 추진하면 진행이 잘 안된다. 필자는 기간계 시스템 개발 프로젝트와 AI 시스템 개발 프로젝트간 차이 점을 살펴보고, AI 프로젝트 매니저(PM)이나 프로젝트 리더(PL)가 AI 시스템 개발 프로젝트를 성공적으로 추진하기 위해 알아 둬야 할 중요한 포인트를 설명하려 한다.

기간계 시스템 개발과 다른 점

기간계 시스템 개발과 AI시스템 개발은 여러 면에서 다르지만 프로젝트 추진에 크게 영향을 미치는 포인트는 '프로젝트 내용' '채용 기술' '추진 체제' 등 세 3가지다. <그림1 참조>

이 중에서도 IT벤더 등 AI 프로젝트를 개발하는 벤더가 알아야 할 가장 중요한 것은 서비스 내용의 요구(요건)이 정해져 있지 않다는 점이다. 이것은 '정답이 없다'는 걸 의미한다. 지금까지 시스템 개발을 하는 IT 벤더는 고객인 유저(User)에게 "요건을 정리해 주세요" "요건을 결정해 주세요" 라고 해왔다.  '업무 요건' 이 정해져 때문이다. 그러나 AI 프로젝트는 유저도 '무엇을 하고 싶은 지 물어도 잘 모른다'가 솔직한 심정일 것이다. AI 등을 활용한 새로운 비즈니스나 시스템을 만들어 내는 것이기 때문에 명확한 답을 가지고 있는 유저는 드물다. 새로운 것을 모색(탐색)해 가설을 정한 다음 먼저 세상에 내놓고 사람들 반응을 볼 수밖에 없는 경우가 대부분이다.

AI시스템 개발 프로젝트의 PM이나 리더에게 요구되는 것은 '유저와 함께 요구(요건)을

결정해 간다'고 하는 자세다. 유저 비즈니스와 AI 기술 양쪽을 모두를 파악해 그에 맞는 시스템 내용을 제안할 필요가 있다.

재작업을 전제로 스케줄을 짜야

AI를 도입하는 시스템 개발은 '사용 기술' 면에서 높은 리스크를 안고 있다. 프로젝트가 스케줄대로 되지 않는 경우가 많기 때문이다. 기간계 시스템 개발은 많은 경우 기술적으로 실적이 있는, 이른바 '검증된' 제품을 채용하지만 AI 시스템 개발은 제품의 기초 연구를 하는 것과 같다고 할 수 있다.

예를 들면, AI 시스템 개발의 '교사 있음'은 기계 학습 시스템 개발에서 많은 경우 [그림2]와 같은 프로세스로 진행된다. '교사 있음'이란 컴퓨터에 정답 데이터(교사 데이터)를 학습시켜 정확도를 높여가는 방법이다. 

즉, ③의 '대응하는 데이터 수집 및 가공' 단계에서 필요한 교사 데이터를 좀처럼 제공받지 못하거나 데이터가 미비(Deficiency) 한 경우가 많다. 또 ⑤의 '평가' 단계에서 정답율이 높지 않아 ②의 '필요한 파라미터 가설 정의' 단계부터 다시 시작하는 경우도 많다. 경우에 따라서는 ①의 'AI로 해결하고 싶은 과제 설정' 단계부터 다시 시작하기도 한다. 이와 같이 재작업이 많이 발생한다. ①의 단계부터 스무스하게 ⑤의 단계(평가)까지 잘 마치는 경우가 드물다.

그렇기 때문에 AI시스템 아이디어의 실현성을 확인하는 개념설계(PoC)와 같은 어프로치가 필요하고, 현실적으로 개발 사이클을 몇 번씩 반복하는 것을 전제로 일정을 잡을 필요가 있다. 또 그것을 경영자에게 설명해 이해시킬 필요가 있다.

임원 참여가 필수

AI프로젝트는 새로운 비즈니스나 시스템을 만드는 프로젝트이므로 유저 기업의 1개 부문이 진행하는 경우는 거의 없고 여러 부문이 관여(Joint business)하는 것이 일반적이다. 프로젝트 내용에 따라 다르지만 보통 기획 부문, 마케팅 부문, 업무 부문, IT 부문 등이 관여한다. 이들 각 부문을 찾아다니면서 진행하면 설사 가능하다 해도 시간이 오래 걸린다. 그러므로 프로젝트를 수주 받은 IT 벤더가 유저에게 조직 횡단적인(Traversal) 팀을 만들것을 제안하거나 사장이나 임원이 직접 의사 결정을 하는 구조를 만드는 것이 중요하다. <그림3 참조>

프로젝트를 성공적으로 추진하기 위해서는 각 부문간 협력이 필수고, 이를 위해 각 부문장 간 정보 공유는 반드시 필요하다. 또 프로젝트 검토 내용이나 진행상황을 파악할 수 있는 프로젝트 계획서를 작성해 각 부문장들이 언제든지 볼 수 있게 해야 한다. 이상의 AI 프로젝트를 수행하는 PM(Project Manager)이나 프로젝트 리더(PL)가 프로젝트를 잘 관리하기 위한 3가지 유의 사항을 정리하면 첫째, 유저에게 요건을 요구하지 말고 벤더가 제안해 함께 결정할 것 둘째, PoC는 1회가 아니라 여러 번 개발 사이클을 반복할 것을 전제로 한 스케줄을 잡을 것 셋째, 쥬저에게 조직을 횡단하는(Traverse) 프로젝트 검토 팀을 조직하도록 하고 임원급을 의사 결정자로서 참여시킬 것 등이다.

유저에게 요건 정의를 요구하면 안돼

AI 프로젝트는 개발하는 시스템에서 실현할 시스템 요건(요구)과 그 시스템 운영에 필요한 업무 요건(요구) 두 개를 정의할 필요가 있다. 이를 위해 프로젝트 매니저는 이용하는 기술 사용법을 이해하고 유사 사례를 파악해 두는 것이 좋다.

AI 프로젝트를 능숙하게 추진하려면 종래 시스템 개발과 다른 노하우가 요구된다. 그 중에도 중요한 한가지는 'AI 프로젝트에서는 시스템 구축 주체인 유저에게 요건을 요구해서는 안 된다'는 것이다. AI 프로젝트는 크게 두 종류로 분류할 수 있다. 하나는 신상품 서비스 창출형 프로젝트(신상품 서비스계 AI), 또 하나는 업무 개혁형 프로젝트(업무계 AI)다.

업무계 AI 프로젝트는 업무를 효율화하는 것을 목표로 하는 '기존 업무가 있는 경우' 와 이러한 기술을 이용해 지금까지 할 수 없었던 것을 새로 만드는 것을 목표로 하는 '기존 업무에 없는 경우'로 나눌 수 있다. 기존 업무가 있는 프로젝트는 성취하고 싶은 것, 즉, 요구만 정하면 기존 업무 요건이 이미 존재하므로 기간계 시스템 개발 흐름과 크게 다르지는 않다. 그러나, 기존 업무가 아닌 업무계 AI 프로젝트나 신상품 및 서비스계 AI 프로젝트는 ‘요건’ 이라는 것이 없다. 그러므로 기간 시스템 개발과 프로젝트 진행 방식이 크게 달라진다.

특히 신상품 및 서비스계 프로젝트는 복잡성이나 영향 범위가 넓기 때문에 난이도가 가장 높다. 그러므로 필자는 신상품 서비스계 AI 프로젝트를 염두에 두고 진행 방식을 설명할 예정이다. 이를 파악해 두면 업무계 AI 프로젝트에도 응용이 가능하다.

AI 프로젝트는 시스템을 개발할 때 두 개의 요건(요구)을 정의할 필요가 있다. 새로 개발하는 시스템에서 실현할 시스템 요건(요구)과 그 시스템 운영에 필요한 업무 요건(요구) 등 이다.

기간계 시스템 개발은 기존 업무 프로세스를 시스템화하는 것이 주된 목적이므로 업무 요건(요구)만 정하면 된다. 이에 비해 AI 프로젝트는 신규 사업에 대처하기 위한 업무가 먼저 있는 게 아니다. 우선 '무엇을 하고 싶은가?' 라는 서비스 요구가 있고, 그 서비스를 실현하기 위해 어떤 업무를 할 것인가 라는 순서로 정의해 나가야 한다. <그림4 참조>

AI프로젝트 PM에 요구되는 세 가지 조건

그러면 시스템 요구나 업무 요구 정리 작업에 PM이나 프로젝트 리더(PL)는 어떻게 관여해야 할까? 시스템 요구나 업무 요구를 결정하는 것은 유저니까 유저 결정을 기다리면 된다라는 자세로는 AI프로젝트를 잘 진행할 수 없다.

유저에게 기획을 모두 해 달라고 하면 시스템화 계획을 확정할 수 없게 된다. 프로젝트가 제대로 형성되지 않고 끝나버리거나, 계획이 확정됐다 해도 비현실적인 내용이 되기 쉽다. 이러한 상황을 피하기 위해  PM에게 다음 세 가지가 요구된다. 첫째, AI 등 최신 기술 '사용 방법'을 이해한다 둘째, 경쟁 및 유사 사례를 항상 파악한다 셋째, 요구 및 과제를 적극적으로 정리 및 제안한다 등이다.

PM은 AI 등 최신 기술 사용 방법을 이해해야

AI라는 용어를 들으면 AI로 무엇을 할 수 있을까 퍼뜩 떠오르는 아이디어가 없을까? 심층학습(Deep learning)이나 기계학습 등의 의미를 설명할 수 있을까? PM이나 PL은 이러한 최신 기술의 기본 지식을 갖고 있어야 한다.

기본 지식이라 함은 최신 기술을 이용해 ‘무엇을 할 수 있는가를 이해한다는 뜻이다. 굳이 AI의 많은 키워드를 전부 이해(예: 기계 학습이 알고리즘과 관련된 지스틱 회귀(Logistic Regression), 나이브 베이즈(Naïve Bayes) 등)하고 그 구체적인 처리 내용까지 알아야 할 필요는 없다. PM으로서 중요한 것은 최신 기술의 '용도', 즉 최신 기술을 사용해 '무엇을 할 수 있는가?'를 이해하는 것이다. <그림5 참조>

AI를 이용한 시스템 개발에는 몇 가지 패턴이 있다. 속성 데이터나 이력 데이터, 로그 데이터나 이미지 파일을 이용하는 경우 분류나 예측이 주요 목표다. 분류는 잡다한 데이터를 몇 개 그룹으로 나누는 것이며, 예측은 지금 있는 데이터를 기본으로 장래의 상황 등을 예측(추측)하는 것이다.

AI 활용의 대표적인 예라고 할 수 있는 심층학습에 의한 이미지 인식은 분류의 일종이다. 이미지에 비치고 있는 것이 고양이인지 여부를 판별하고, 방범 카메라에 비치는 사람 움직임으로 수상한 사람인지 여부를 판별하는 것이다.

문장 등의 텍스트 데이터를 다루는 자연어 처리는 번역이나 문장 요약 및 생성 등을 실현한다. 이용자 문의에 회답하는 챗봇(Chatbot)도 질문에 대한 최적의 대답을 찾는 자연어 처리 일종이다.

이러한 AI의 용도, 즉 AI로 무엇을 할 수 있는가를 이해하지 못하면 공상만화 같은 서비스 기획이 되어 버리고, 프로젝트 성공을 기약할 수 없다. 기술 요점을 이해하고 있으면 그 기업의 강점을 살린 AI 제안을 할 수 있게 된다.

AI의 경우, 기업 강점으로서 중요한 것은 데이터다. AI 개발에는 충분한 데이터가 불가결하다. 그 기업이 데이터를 충분히 갖고 있지 않으면 아무리 우수한 기획이라도 실현할 수 없다. 기업이 보유하고 있는 데이터와 AI 사용 방법은 항상 함께 생각해야 한다. 그러므로 기획 작업의 하나로 기업이 보유한 데이터를 조사하는 것이 중요하다.

간혹 PM중 기계 학습 엔지니어나 데이터 사이언티스트가 프로젝트 멤버로 참여하고 있기 때문에 자신은 최신 기술에 정통하지 않아도 괜찮다고 생각하는 사람이 있다. 실제로 프로젝트 현장에서 이러한 전문가가 말하는 기술 용어가 난해해 PM이 충분히 이해할 수 없는 문제가 일어난다. 자신이 이해하지 못하면서 그 기획의 실현성을 자신 있게 판단할 수 있겠는가?

PM으로서 자기 나름대로 기술 핵심을 제대로 이해하고 납득해 자신의 언어로 설명할 수 있어야 한다. AI기술로 무엇을 할 수 있는 지를 PM이 확실히 파악해 두는 것은 해당 프로젝트를 원활히 진행하기 위해 매우 중요하다.

경쟁 및 유사 사례를 항상 파악해야

AI 등 최신 기술 내용을 파악하는 과정에서 아마도 유저 경쟁사나 유사 기업 사례를 알게 될 것이다. 여기에서 얻은 정보는 매우 중요하다. AI 프로젝트는 시스템 개발을 하는 벤더 입장에서도 적극적으로 제안할 수 있어야 한다. 제안할 수 있는 소재를 많이 가지고 있는 것은 유저에게 신뢰를 받을 수 있는 PM이 되기 위해서도 중요하다.

기획단계 뿐 아니라 설계 단계에서 UI(User Interface)나 UX(User Experience)를 검토할 때 타사 사례는 크게 참고가 된다.  '타사에서는 이런 것을 하고 있다'고 항상 말할 수 있는 준비를 해 둬야 한다.

요구(과제)를 적극적으로 정리(제안)해야

기간계 시스템계 개발은 유저가 요건을 정하는 것이 일반적이다. 그러나 AI 프로젝트는 유저의 기획을 단지 기다리고 있을 것이 아니라 AI 등의 기술로 할 수 있는 것을 제안해 가면서 항상 유저와 함께 기획이나 요구, 요건을 정리(제안)해 가야 한다. 여기에서 말하는 정리는 유저가 낸 아이디어를 구조화(구체화)해 실현성이나 우선순위를 정하는 것을 말한다.

기획 단계의 유저 요구는 실은 요구가 아닌 과제일 뿐이거나 여러 가지 서비스 요구가 실제로는 1개 요구에 불과 하기도 하다. 개발자는 [그림6]과 같이 이것을 구조화(구체화)해 갈 필요가 있다.

구조화(구체화)하면 '이런 것도 할 수 있구나' '이것은 포기하자' 등 새로운 발상이 나온다. 개발자도 '이런 것이 가능하다고 생각한다' 고 적극적으로 제안함으로써 유저에게 보다 좋은 기획이 만들어진다.

특히 AI 프로젝트의 기획 단계는 유저에게서 '하고 싶은 것'이 다양하게 나온다. 그들 실현성의 평가를 적절히 하기 위해서도 벤더가 제대로 요구를 정리하는 것이 필수적이다. 구체적인 예를 들어 보자. 유저에게서 다음과 같은 아이디어-시스템 이용자의 SNS(교류 사이트)에서의 댓글에서 해약할 것 같은 느낌을 감지하고 싶다-이런 아이디어가 나왔다고 할 때, PM인 당신은 실현성을 어떻게 평가할 수 있을까?

언뜻, AI를 사용하면 실현할 수 있을 것 같은 생각이 들 수 있다. 그러나, SNS의 댓글 데이터는 시스템 이용자 자신이 승인하지 않는 한 취득할 수 없다. 트위터(Twitter)는 댓글 데이터를 취득하는 API(application Programming Interface)를 공개하고 있지만, 모든 이용자에게 공개되어 있는 댓글 밖에 취득할 수 없다. 이와 같이 충분한 데이터를 취득할 수 없는 경우 AI 시스템 개발은 불가능 하다.

실현성 평가는 데이터의 충분함 만이 아니라 개발 코스트나 개발 난이도(기술적 난이도, 시스템 이용자의 협력을 얻기 위한 어려움, 관련 시스템의 조정 난이도 등)를 복합적으로 검토해야 한다. PM은 이러한 다면적 검토가 가능하도록 아이디어를 정리해야 한다.

■불확실성에 맞설 수 있는 팀을 만든다

기획 단계에서 실현성이 있다고 판단해도 그 후 단계에서 많은 과제가 나오는 경우도 있다. 예상하고 있던 데이터가 바로 입수되지 않는다, 불충분하다, AI의 정확도가 나오지 않는다, IoT에서 채용 예정이었던 기기 개발이 지연된다 등이 그 예다. 이와 같이 AI 프로젝트는 불확정 요소가 많다.

이 때 단지 상황 변화를 기다리지 않고 스스로 해결하기 위해 상황을 정리해 필요한 제안을 해 나가는 것이 AI 프로젝트를 성공시키는 비결이다. PM은 수동적이면 안 된다. 개발을 의뢰하는 사람과 수주 받은 사람이 함께 변화에 유연히 대응할 수 있는 팀메이트를 만들어 가는 것이 중요하다.

관련기사


필자 심기보는...

1976년부터 한전에서 SW개발자로 전산업무를 시작했다. 30여년간 정보화 사업 기획, 개발, 운영업무를 수행하면서 SI사업 등 발주관리 전문가로 일했다. 우리나라 최초로 FP(기능점수)법에 의한 SW사업대가 기준연구 및 보급으로 SW사업 선진화에 기여했다. SEC 정책자문위원과 SW사업분쟁조정위원회위원, 정보통신기술사협회장, KAIST 전산학부 겸직교수, SW정책연구소 초빙연구원 등을 지냈다. 숭실대 대학원에서 'FP법을 이용한 다중회귀 분석적 SW사업대가 산정모델 연구'로 박사 학위를 받았다. 현재는 심기보기술사설계사무소를 설립해 SW설계‧견적‧감정 일을 하고 있다. 특히 SW사업 분쟁방지를 위한 SW사업 요건정의 및 기본설계 전문가다

*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.