-
-
Professional 소프트웨어 개발
스티브 맥코넬 지음, 윤준호 외 옮김 / 인사이트 / 2003년 10월
평점 :
초밥에 대해서 이야기해보자.
요리학원에서 만드는 원리를 가르치는 선생님도 있고
일식집에서 직접 초밥을 만들어 우리에게 서비스하는 요리사가 있다.
두 사람의 역량과 중요도는 어떻게 다를까?
선생님은 원리를 통해 이론적 기초를 확립하려고 노력한다.
반면 현장의 요리사는 만들면서 쌓인 경험 중심의 노하우를 통해 우리에게 맛을 제공한다.
과연 둘 중에서 누가 더 중요하다고 이야기 할 수 있을까? 쉽게 답하기는 어렵지만
나는 요리사쪽이라고 주장하고 싶다.
SW에 있어서도 컴퓨터 과학이 선생님 역할을 한다면 소프트웨어 공학은 요리사 역할이다.
학문을 놓고 보면 크게 이론이 중요한 분야가 있고 실용이 중요하게 여겨지는 분야가 있다.
특히 소프트웨어 개발은 이론 보다 실용이 훨씬 중요한 대표적인 분야다.
MIT의 컴퓨터 공학과 교수 이름을 여럿 외우고 다니는 사람은 드물어도
학문적으로 보면 대학 중퇴생에 불과한 MS의 빌게이츠의 이름을 모르는 경우는 별로 없다는
것이 좋은 증거가 된다.
소프트웨어가 세상에서 할 수 있는 일은 매우 많다.
인간을 멀리 달나라로 보내는 것에서부터 원자력발전소의 제어, 전투기에 탑재되어
정확히 상대에게 미사일을 날리는 것 등 다양하게 쓰인다.
그런데 이들을 만드는 방법에 있어서는 놀라울 정도로 많은 기법이 존재한다.
프로그래머 각자의 개성도 강하고 완성품이 원하는 목표가 다르기 때문에
소위 품질에 대해서 표준이라는 합의점을 찾기가 쉽지 않다.
먼저 달나라로 보내는 이야기를 하자면 엄청난 돈이 들었고 사람의 목숨이 걸려있기 때문에
안전한 시스템을 만들려고 노력했다. 여러대의 컴퓨터를 탑재하고 이들이 합의하는 과정을
만든 것은 분명 예술이다. 하지만 한번 완성된 이 시스템을 가지고 수십년이 지난 다음에도
거의 비슷한 하드웨어와 소프트웨어가 쓰였다는 것은 뭔가 고루한 냄새가 난다.
이렇게 안정성이 강조되는 분야는 주로 목숨과 관련된 의료, 항공 등등이다.
반면 PC용 소프트웨어 분야에서는 여러 차례 커다란 바람이 불었고 이를 통해 만들어지는 파도를
잘 탄 사람은 큰 성공을 거둘 수 있었다.
이 분야에서는 속도가 매우 중요시 된다. 새로운 기능에 개념적으로 잡고
세상에 광고를 하면서 사람들을 끌어들이는 솜씨가 중요시되는데 이 때는 말 잘하는 역량이 아마
훨씬 더 중요시된다.
아마 빌 게이츠, 스티브 잡스가 80년대의 영웅이었다면 최근 구글의 두 창립자는 2000년대의 영웅이다.
빌 게이츠의 명작, MS 워드의 초기 버전이 15만 라인 정도의 분량이라면
최근 버전은 수백만 라인이라고 한다. 이는 초기 프로토타입은 몇몇의 천재성 프로그래머의 헌신으로
가능하기에 소위 차고에서 만들어지는 것도 가능하지만 한번 제품이 출시되어
경쟁 단계로 들어서면 기업적 관리체제로 전환되어야만 지속발전이 가능하다는 점을 보여준다.
이를 놓고 저자는 골드러시와 그 이후라는 표현을 통해 우리들에게 이해를 시켜준다.
이렇게 몇몇 분야만 살펴보아도 소프트웨어 개발은 같은 방식이 될 수 없을 것이다.
품질과 비용, 기회의 중요성 등의 관계에서 사람들은 선택을 해야 하는데
그 비중에 따라 우리가 취할 방법도 다양할 수 밖에 없다.
하나의 기업에 SI라고 해서 system integration을 하는 사업부가 있고
SM이라고 해서 system maintenance를 하는 사업이 있고 더 해서
대외적으로 서비스를 제공하거나 패키지를 만드는 사업이 있다면 이들이
가져야 할 방법론은 다 다르게 되는 것이 맞다.
어설프게 하나의 방법으로 묶는다는 것은 별로 효율적이지 못한 결과를 가져오기 십상이다.
더 해서 방법이 가져다주는 효과가 무엇인지, 공학이라는 이름으로 소프트웨어 개발을 접근할 때의
효과는 또 무엇인지를 따져볼 필요가 있다.
공학기사가 물리 공식을 직접 만들지 않아도 집을 안전하게 지을 수 있듯이
다양한 기초 도구를 활용해서 생산성을 높이는 것이 공학의 큰 목적이다.
저자의 글들을 살펴보면 다양한 측면에서 고민과 해결책을 담았다는 것을 이해할 수 있다.
문제의 제기, 해결책의 모색, 좋은 방법의 제시까지 다양한 내용이 여러 꼭지로 전개된다.
개발자, 관리자, 경영자를 거치며 만들어진 탄탄한 경험에 기초한 문제의식과
꾸준한 해결의지가 함께 묶여 있기에 소프트웨어 불모지인 한국에서 보다 나은 내일을 모색하는
많은 이들에게 큰 도움이 될 책이라고 추천하겠다.