본문 바로가기
이전글/2009

(배치 고도화) 2. 명확한 목표 설정

by 물개선생 2009. 4. 28.

주의 : 쓰다보니 너무 길어졌습니다. 정성들여 쓴 글이나 지루하실 수 있는 글이므로 섣불리 관심을 두고 읽지 말아주십시오. 후회해도 모릅니다. ^^

비전 정의란?

일단 가벼운 퀴즈 하나. 인터넷에서 자주 보이는 아래 그림에서 명확한 목표를 설정한다는 것, 다른 말로 비전을 정의하는 것(Visioning)은 어떤 모습을 찾아내기 위한 걸까요?


비전 정의가 고객이 설명한 요건을 그대로 받아 적는 것 또는 영업이 약속한 그 비용과 일정, 인력으로는 도저히 불가능한 휘황찬란한 약속을 최대한 방어적으로 만드는 것 등으로 곡해하기 쉽지만, 제대로 된 비전 정의고객이 정말 필요한 것을 찾아내는 과정과 그 결과물, 그리고 목표한 그것을 고객과 개발팀이 함께 바라보고 추구하도록 만들도록 변화시키는 것이라고 생각합니다.

일반적으로 어플리케이션 개발 LifeCycle은 Metrozen이라는 외국의개발 업체 홈페이지에 떡~하니 올려둔 그림에서 보듯 Definition, 그러니까 해결하고자 하는 Problem에 대한 정의 [What] 에서 부터 출발합니다. 지금껏 교육이나 수 많은 서적들을 통해 이미 확고하게 결정되어 있는 문제들을 어떻게 기술하는지, 그걸 어떻게 분석하고 설계하는지, 또 어떤 기술들을 써서 구현하고, 테스트하는지 등을 훈련해온 (저를 포함한 ㅠㅠ)엔지니어들은 어떻게 하면 그 문제를 잘 풀어낼 것인가 [How]를 두고 경쟁하듯 그 기술의 깊이와 넓이를 확장해 나가는데만 집중하는 경향이 있습니다.  애당초 그 일을 왜 시작하게 된 것인지는 생각조차 하지 않은채, 때론 자존심을 걸고 열띤 토론을 펼치는 그들만의 리그(?)를 개최하기도 하면서요.


흔히들 프로그래밍을 문제 해결(Problem Solving)이라고 표현합니다. 즉 Problem + Solution이 합쳐진 것이죠. 프로그래밍이 소프트웨어 공학의 수준으로 발돋움하기 위해서는 Right Problem + Right Solution이 필요합니다. Any Problem + Same Solution(어떤 문제는 내가 아는 방식으로 풀어주마~)도, Wrong Problem + Right Solution(문제가 무엇이든 최선의 해결책을 찾아주마~)도 모두 답이 아닌 것이죠.

그런 점에서 딜로이트의 EVD(Enterprise Value Delievery) Methodology는 그 구성과 이름이 무척 마음에 듭니다. 보통 방법론은 xxCBD와 같이 반복 개발이니, 컴포넌트 기반 개발 기법을 채용해 트렌드를 따른다느니 하는 기술적인 느낌을 드러내죠. 고객 입장에서는 Enterprise Value를 Delievery하겠다는 EVD란 이름이 더 마음에 들지 않을까요? 그리고 비전 정의와 Planning이 제일 앞에 위치한 점도 바람직합니다. 사실 비전을 명확히 하면, 제안 단계에서 제출했던 계획을 새롭게 뜯어 고쳐야 하는 경우가 많으니까요. 그런 이유로 일정을 뒤틀어버리면 고객이 두고만 보지는 않을거라구요? 그게 정말 필요한 것이라면 방법은 찾기 나름이겠죠. 안되는 이유를 찾아 정리하고 남 핑계대며 뒷다마 깔 시간을 아끼면, 가능한 방법을 찾을 수 있을지도..



배치 개발에 있어서의 경험 사례

쓰다 보니 서두가 길어졌는데요, 시간을 절약하기 위해 실제 경험은 느낌 위주로 간추려 얘기하겠습니다. 고객 정보가 담긴 프로젝트 상황을 공개할 수는 없기 때문에 공감하기 힘드실 수도 있구요.

(1) 니나 내나~ 모르는 건 마찬가지다.
전체 프로젝트의 1/7을 비전을 정의하는데 사용했습니다. 결국, 초반에는 서로가 서로의 입장과 말을 이해하지 못하고 있는 상태인거죠. 안될 줄 뻔한 이상적인 모습으로? NO! 구현 기술만 바뀌었지 이전과 별 차이없는 형태로? NO! 개발팀만 편한대로도 당연히.. NO!

다 옳은 말이고, 또한 다 자신의 시각과 바람대로만 주장하는 것이기도 하죠. 수 많은 이해 관계자들이 공감할 수 있는 비전, 각자의 의견을 받아들이고 검토하는 과정에서 서로의 입장 차이를 좁혀나가는 것. 그리하여 결정된 비전이 설계 과정을 빗대어 말하자면 4+1 View에서 UseCase View 역할을 하도록 만드는 것이 중요했습니다.

(2) 비전은 구체적일 수록 효과적이다.
그런 과정을 통해 도출된 비전은 뜬 구름 잡는 소리가 아니라 보다 구체적이고, 측정가능하며, 확인가능한 형태를 띄게 됩니다. 예를 들면 "월 마감을 기존보다 X일 줄이자"라거나, "기존 배치 프로그램을 최적화 해서, 실제로 운영될 전체 본수를 X0% 없애자"라는 형태가 되겠죠. 그렇게 구체화된 비전은 자연스럽게, 실제로 그렇게 될 수 있는 수준으로 구체화되고 프로젝트의 목표로 자리 잡습니다.

(3) 일정이 문제가 된다면, 병행해서 추진하라.
그 비전을 만드는 시점은 이미 제출했던 프로젝트 수행 계획서 상, 문제를 정의하고 분석하는 단계일 확률이 높습니다. 모두 다 비전을 정의한다고 손 놓고 있으면 고객이 불안해 할 수도 있겠죠. 그러나, 다행스럽게도 비전 정의에 전체 프로젝트 팀이 투입될 필요는 없습니다. 일정은 계획한 대로 진행하면서, 얼마든지 비전 정의를 병행으로 수행할 수 있죠. 폭포수로 짜여진 일정 계획 내에서 UP의 반복 개발을 성공적으로 적용하는 사례가 수 없이 존재하 듯 말이죠. 정말 소중하고 가치가 있다고 믿는다면, 방법은 얼마든지 있습니다.

(4) 조직이 복잡할 수록, 비전은 위력을 발휘한다.
미리 결정된 듯한 문제를 잘~ 푸는 것 만으로도 월화수목 금금금.. 이라고 생각할 수도 있습니다.  그런 생각이 드신다면 자신의 경험을 잘 되살려 보시길 바랍니다. 정말 힘든 것이 야근이였을까요? 저는 사람에 치이고, 서로 협조가 안되고, 이 일을 왜 해야 하는지 모르겠고.. 그런 상황을 만나는 것이 몇 일 야근하는 것보다 훨씬 더 힘들었습니다. 잘 정의되고, 조직에 전파된 비전은 항상 일정하게 가야할 길을 가르키고 있는 나침반과 같은 역할을 합니다. 업무와 기술이 다르고, 개발과 운영의 입장이 다르고, 서로 갑/을/병/정의 복잡한 계약 관계로 얽혀있을 때, 비전은 위력을 발휘했습니다. 기술적인 위험이 높아 자기 회사의 책임으로 떠 맡기 싫어 붕 떠버린 애매한 경계의 일거리가 있을 때, 새로운 것을 익히기 싫어 공격적인 반응을 보일 때.. 그들이 원하는 TO-BE 모습이 골고루 반영된 현실적인 비전은, 그런 장벽을 넘어설 수 있게 해주는 가장 큰 힘이 되어 주었습니다.


가슴아픈 실패담

(아침에 다시 읽고, 내용이 지나치게 상세해서 수정함)
기술적으로는 더 없이 훌륭했으나, 전체 프로젝트 측면에서는 실패했던 경험이 있습니다. 잘 만들었다고 잘난척하며 자부했던 그 시스템은 결국 세상에 빛을 보지 못했습니다. 흔히 얘기하는 정치에 희생된 경우라고 볼 수도 있지만, 돌이켜 생각해보면 제 잘못도 큽니다. 프로젝트 리더로써 고객이 정말 필요한 것을 좀 더 고민하고, 그 비전을 고객과 개발팀에 전파함으로써 같은 목표를 향해 달려가도록 만드는 가장 중요한 비전 정의 과정을 너무나 소홀했고, 구현의 완성도에 개인적인 욕심을 가졌던 그런 시건방짐이 그 시스템을 묻어 버리게 만든 근본적인 원흉 중의 하나일 수 있음을 깨달았기 때문입니다. 

우리가 사는 것도 마찬가지 아닐까요?

때 마침 이웃 블로그들에서 비슷한 주제로 글이 올라왔습니다. 자기 계발을 넘어서란 글이나, 사실을 행동으로 바꿔라는 글은 모두 Why를 깊게 고민함으로써 진정한 What을 찾아내는 전략적 사고와 비전 정의의 중요성을 다루고 있습니다. 아름다운 기부 청년으로 유명한 고영 컨설턴트의 인터뷰는 이런 비전 정의가 삶과 어떻게 이어지는 지를 보다 적나라하게 드러내고 있습니다.

“비전이라는 것을 무엇으로 정의하는가가 중요합니다. 많은 사람들이 who to become으로 비전을 정의해요. 내가 어떤 존재가 되겠다라는 생각을 합니다. 그러면 계속 포지션을 중요하게 생각하게 됩니다. 가령 대통령이 되고 싶다든가, CEO가 되고 싶다는 식이죠. 물론 이런 것도 좋지만, 대통령이 되려고 하는가에 대한 고민이 먼저 이루어져야 합니다. 대통령이라면 만들고 싶은 국가의 모습, 조직의 모습을 그려보는 것이 선행되어야 합니다.”

저는 도전하고 싶은 꿈을 찾는데 오랜 시간동안 많은 고민을 해야 했습니다. 처음 꿈을 찾았을 때, 꿈의 형태는 특정한 포지션이였습니다. 그 꿈을 품에 담고 있는 시간이 길어지면서, 자연스럽게 그 꿈을 이뤄내기 위한 원칙과 확신이 하나씩 늘어났습니다. 지금은 오히려 그 원칙과 확신이 지켜지는 모습을 만들어 낼 수만 있다면 처음 생각했던 그 포지션은 중요하지 않게 느껴집니다. 전 그것을 요즘 유행하는 Buzz를 본 따 물개의 Dream 2.0이라고 부릅니다. 일을 통해 하나씩 깨달음을 얻어 갈 때 마다, 그 만큼 삶도 풍요해지는 것이 느껴집니다. 우린 정말 매트릭스에 갇혀 있는 건 아닐까요? ^^