좋은 것은 대부분 나쁜 것의 부재에 있다 - 고대 로마의 시인 엔니우스
프로세스(process)란 일을 처리하는 과정이나 순서를 말한다. 그안에는 효율성이라는 개념이 내재되어 있다. 사실 우리는 인지하든 인지하지 못하든간에 일하는 과정을 통해 수많은 프로세스를 거치고 있다. 그중에는 명시화된 프로세스가 있고, 암묵적인 프로세스가 있다. 흔히 프로세스는 조직 관점에서 보는 개념이지만, 개인적인 프로세스 또한 존재한다. 외부로부터 도입한 거대 개발 프로세스가 있을 수 있고, 오랜 세월에 거쳐 암묵적으로 정착된 내재화된 조직 프로세스 또한 존재한다.
통상의 소프트웨어 개발 프로세스는 요구사양 취합 및 분석 - 설계 - 구현 - 테스트 - 출시 - 유지 보수 와 같은 일련의 과정으로 이루어진다. 이와 연관된 수많은 또다른 프로세스들이 존재한다. 또한 이 과정은 단방향의 일련적인 흐름이 아닌, 반복이나 심지어 역방향의 전개 또한 가능하다. 프로세스는 방법론과 연계된다. 프로세스와 방법론은 같은 것을 의미하는 경우가 많다. CMMI, 애자일(Agile), TDD 모두 방법론이자 일련의 프로세스를 내포하고 있다. 회사마다 고유의 프로세스를 가지고 있다. 제품을 제조하는 회사인 경우, 프로세스는 생산 위주로 구성되며 소프트웨어 개발 프로세스는 상위 프로세스에 맞춰 진행된다. 각자의 특성에 맞는 방법론과 개발 프로세스가 존재한다. 결론적으로 일을 하는 한 우리는 알든 모르든 수많은 내외적 프로세스에 둘러싸여 있다.
자연스럽게 좋은 프로세스는 무엇이고, 나쁜 프로세스는 무엇인가에 대한 관심이 생겨날 수 밖에 없다. 무엇보다도 프로세스 그 자체는 언제나 선善이다. 악惡을 위해서 만들어진 프로세스는 없다. 프로세스는 효율과 개선이라는 이상을 가지고 탄생하지만, 항상 그 적용이 문제일 뿐이다.
<노자> 11장에는 가장 이상적인 정치에 대해 이야기하는 대목이 나온다. 가장 이상적인 정치는 백성들이 임금이 있다는 사실을 모르는 것이다. 다시 말해, 최고의 정치는 무치다. 그 다음이 백성들이 존경하는 임금이고, 그보다 못한 것이 백성들이 두려워하는 임금이다. 여기서 가장 이상적인 정치, 즉 무치는 백성들의 관점에서 인위성이 없는 것처럼 보이는 것일뿐 정치가의 입장에서는 정말 도달하기 어려운 경지다. 프로세스 또한 마찬가지다. 좋은 프로세스란 마치 공기와도 같이 그 존재를 의식할 수는 없지만, 자연스럽게 그 흐름에 동조될 수 있는 것이어야 한다. 오차 없는 치밀한 정교함은 조직에 완벽하게 동화된 프로세스의 결과다. 프로세스에 조직을 맞추는 것은 어렵다. 프로세스의 도입은 프로세스가 아닌 조직을 먼저 생각해야만 한다. 자기 몸에 맞지 않는 옷에 몸을 맞추려는 시도는 바보스러운 짓이다. 대부분의 회사들은 좋은 프로세스랍시고 덜컥 프로세스를 도입한 이후 한동안 그것을 표준으로 밀어부치다가 결국 포기하는 전형적인 실패 과정을 반복한다. 미국의 화학회사인 듀퐁사의 매뉴얼에 따르면 표준이란 "계속되는 업무수행에 이미 사용하여 충분히 검증된 방법"을 말한다. 다시 말해 검증이란 "널리 회사 내에서 사용하여 성공적인 방법임을 인정받는" 것이고, 결과적으로 좋은 프로세스는 충분히 검증된 것일수밖에 없다.
좋은 프로세스의 또 한가지 장점은 예방효과다. 프로세스가 사후약방문이 된다면 그것은 프로세스로서 생명이 끝난 것이다 . 프로세스는 효율성만큼이나 안전성이 강조된다. 사람의 실수를 방지하기 위한 여러 안전장치들이 프로세스에 존재한다. 하지만 결국 사람이 지키지 않으면 프로세스는 무용지물이다. 지킬수 있는 프로세스는 자연스럽게 동조될 수 있는 조직문화와 프로세스의 융합으로부터 나온다.
중국 춘추전국 시대 명의였던 편작은 삼형제였다. 큰형과 둘째형 역시 의사였다. 당대에 그리고 후대에 명성을 떨치게 된 편작과 달리, 큰형과 둘째형이 알려지지 않은 이유는 다음과 같다. 편작의 큰형은 병이 생기기전에 미리 예방해서 그 동네에는 병에 걸린 사람이 없었다고 한다. 환자가 고통을 느끼기도 전에, 환자의 표정과 음색만으로 환자에게 닥칠 큰병을 감지하고 미리 치료했다. 둘째형은 병이 위급해지기 전에 병의 초기단계에서 고쳐서 또한 주위에 아픈 사람이 없었다고 한다. 편작은 왕에게 고하기를, 자신은 큰 병이 닥친 후에야 병을 고치니 사람들이 큰 병을 고쳐주었다고 그를 존경했다는 것이다. 사후에 불거지는 문제를 수습하는 것은 프로세스의 역할이 아니다. 그래서 공기와도 같은 프로세스가 필요한 것이다. 자연스럽게 조직에 녹아들어, 실수나 부작용을 원천차단할 수 있는 프로세스가 최고의 프로세스다.
프로세스가 자연스럽게 체득되기까지는 시간과 노력이 필요하다. 소프트웨어 개발이나 무엇이든 급하지 않을때는 문제가 없다. 시간에 여유가 있으니 프로세스도 잘 지킨다. 문제가 생기는 경우는 대개 상황이 급박하게 돌아갈 때다. 급하면 더더욱 실수를 하기 쉽다. 엎친데 덮친격으로 시간이 없으니 프로세스도 지키지 않게 된다. 여기에 개발담당자의 주의부족이나 책임감 결여와 같은 말단의 문제까지 끼게 되면 상황은 더욱더 심각해진다 프로세스에 융통성을 발휘할 때는 철저히 비관주의자가 되어야 한다. 프로세스를 이탈하는 상황에는 지체없이 붉은 경광등과 시끄러운 사이렌을 울려야 한다. 공든 탑도 한순간에 무너진다. 어쩔수 없이 프로세스에서 잠시 이탈해 있는 상황에서는 개발 담당자와 팀 전체가 촉각을 곤두세워야 한다.
마지막으로 프로세스의 오용誤用에 대해 이야기해보자. 옛날 중국 정나라에 차치리라는 사람이 있었다. 치치리는 자기의 발을 본뜨고 그것을 그 자리에 두었다. 그 본을 뜬 것을 탁이라고 한다. 그는 시장에 갈 때 탁을 가지고 가는 것을 잊었다. 시장의 신발 가계에 와서 신발을 사려다가 "탁을 가지고 오는 것을 깜빡 잊었구나" 하고 탁을 가지러 집으로 돌아갔다. 그리하여 다시 시장에 왔을때는 장은 이미 파하고 신발을 살 수 없었다. 사람들이 "어째서 발로 신어보지 않았소?"라고 묻자, 그는 "탁은 믿을 수 있지만 내 발은 믿을 수 없지요" 라고 답했다. 이것은 맹목적인 프로세스의 위험성을 경고하는 우화다. 프로세스가 일 자체나 결과보다 앞에 올 수는 없다. 프로세스를 '일을 더 효율적으로 안전하게 잘 하자는 그 태생의 목표'보다 우선하는 어리석음을 저질러서는 안 된다. 마찬가지 맥락으로 프로세스가 오버헤드Overhead나 장식품과 같은 존재가 되어서도 안된다. 그렇게 되는 순간부터 조직은 비효율성으로 점철된 공멸의 길에 들어선 것과 다름없다.