40년 세월을 견뎌낸 고전, 『맨먼스 미신』

By | 2015년 3월 13일

고전의 힘은 세월을 견뎌내고 단순히 어제의 지식이 아니라 미래를 위해 그 빛이 바래지 않는 통찰을 전달하는 데 있다고 할 수 있습니다. 인사이트의 ‘프로그램, 프로그래밍, 프로그래머’ 시리즈에서는 IT 세계의 주요 고전을 소개해 드리기도 하는데요. 2014년 『피플웨어 3판』을 소개해 드린 데 이어 2015년에도 고전 한 권을 준비했습니다. 바로 1975년 첫 출간 이래로 수십 년간 IT 세계에 꾸준한 영향을 미치고 있는 『맨먼스 미신』입니다.

이 책의 지은이 프레더릭 브룩스는 학계로 옮기기 전 IBM 재직 시절 IBM 시스템/360 컴퓨터와 그 운영 체제인 OS/360 개발 프로젝트 관리자를 맡아 일한 바 있습니다. 그 시기의 경험과 배움을 담은 여러 에세이를 엮은 책이 바로 『맨먼스 미신』으로 이번에 소개해 드리는 판본은 1995년 발간된 20주년 기념판입니다.

이 책에는 총 19편의 에세이가 실려 있고 그중 잘 알려진 것 중 한 편이 바로 이 책의 제목이기도 한 ‘맨먼스 미신’입니다. 프레더릭 브룩스는 이 책을 통해 소프트웨어 개발의 본질과 관련된 중요한 여러 주제를 제기합니다.

부족한 시간 탓에 망가진 소프트웨어 프로젝트 수는 다른 이유로 그렇게 된 경우를 모두 합한 것보다도 많다. – p.13

시스템 프로그래밍 일정 관리의 바탕을 이루는 잘못된 가정 중 첫 번째는 모든 일이 잘 될 거라는, 다시 말해 ‘모든 작업이 예정된 시간 내에 완료될 것’이라는 가정이다. – p.14

소프트웨어를 만든다는 것은 본래 조직적인 활동, 즉 복잡한 상호연관성을 가진 활동이기 때문에 의사소통에 품이 많이 들 수밖에 없으며, 작업 분할로 확보된 개별 업무 시간을 금방 잠식해 버린다. 따라서 사람을 더 투입하는 것은 일정을 단축시키기는커녕 더 늘어지게 만든다. – p.19

일반적인 방법으로 일정을 관리했던 프로젝트들을 살펴보다가 발견한 사실은, 일정의 절반을 테스트에 배정한 경우는 거의 없었지만 대부분 나중에는 그만큼의 시간을 결국 테스트에 썼다는 것이다. – p.20

나는 개념적 일관성이야말로 시스템 설계에서 가장 중요하게 고려할 사항이라 주장하고자 한다. 좋기는 하지만 연관성 없고 조율도 안 된 기능을 많이 넣기보다는, 이례적인 일부 기능이나 개선 사항을 빼더라도 일련의 설계 사상을 고수하는 편이 더 낫다. – pp.41-42

매뉴얼은 제품에 대한 ‘외부적인’ 명세로, 사용자가 보게 되는 모든 세부 사항을 기술하고 규정한다. 따라서 이것은 아키텍트의 가장 주요한 산출물이다. – p.61

공간 부족 때문에 골머리를 앓는 프로그래머라면, 스스로를 코드로부터 해방시킨 다음 한 발짝 뒤에서 데이터를 바라봄으로써 종종 최상의 결과를 얻을 수 있다. 표현 방법이 바로 프로그래밍의 정수인 것이다. – p.103

관리자의 과업은 계획을 세우고 그것을 실현하는 것이다. 그러나 오직 글로 적은 계획만이 명확하며 전달 가능하다. – p.111

“설계를 문서화함으로써 설계자는 모든 이의 비판에 스스로를 노출시키게 되며, 이제 자신이 작성한 모든 것을 방어할 수 있어야 한다. 만약 조직 구조가 어떤 면에서든 위압적인 상황이라면, 완벽한 방어가 가능해질 때까지 그 어떤 내용도 문서화되지 않을 것이다.” – p.118

기술 직군에서 해당 직급에 대응되는 관리 직군으로 재배치될 때는 결코 승급을 동반해서는 안 되며, 반드시 ‘승진’이 아닌 ‘재배치’로 공표되어야 한다. 그 역의 재배치는 항상 승급을 동반해야 한다. 그러한 과잉 보상은 문화적인 측면의 파급력을 감안할 때 필요한 일이다. – p.119

프로젝트는 어떻게 해서 1년 늦어지는가? … 한 번에 하루씩. – p.153

나는 한 발 더 나아가서, 고객들이 현대 소프트웨어 제품의 요구 사항을 완전하고 엄밀하고 정확하게 명세하는 일은, 그들이 설령 엔지니어들과 함께 일한다 해도 정말로 불가능하며, 그것은 명세하려는 제품의 실제 버전을 몇 개 만들고 시험해 본 후에나 가능하다고 주장하고자 한다. – p.210

예상되기는 하나 확실치는 않은 장래의 이익을 보고 돈을 미리 거는 행위는 투자자들이 날마다 하는 일이다. 하지만 상당수의 프로그래밍 조직에서는 이런 행위에 기술적 역량이나 행정적 능숙함보다 더 드문 덕목인 진정한 경영적 용기가 필요하다. – p.235

사용자가 인지하는 제품의 모든 측면에 개념적 일관성을 부여할 책임을 맡을 한 사람을 그 제품의 ‘아키텍트’로 임명하는 것이 가장 중요한 조치이다. – p.276

다 소개하지는 못하지만 이 외에도 여러 주제를 다루고 있습니다. 어찌 보면 당연하고 새로울 것이 없는 내용이고 그동안 많은 발전이 있어온 것도 사실이지만 IT 업계는 다른 분야에 비해 역사가 짧아서인지 이러한 질문에 대해 근본적인 답을 내지 못하거나 본질적 돌파구를 찾지도 못하고 있는 모습도 보입니다. “모두들 인용하고, 그중 일부는 읽어보기도 하지만, 거기 담긴 내용을 따르는 사람은 드물지요.”라는 브룩스의 말처럼 출간된 지 수십 년이 된 책의 내용이 여전히 다가와서 신경을 쓰이게 하는 것은 그 때문인 듯합니다.

이 20주년 기념판에는 1판에는 실리지 않았던 1986년 논문 「은 탄환은 없다」가 수록되었고 「은 탄환은 없다」 발표 이후 브룩스의 견해가 보충되었으며, 초판의 내용을 회고하고 브룩스의 주장을 재검토하는 장들이 추가되었습니다. 또 한국어판에는 이 책이 쓰일 당시의 컴퓨터 환경에 생소한 독자들의 이해를 돕기 위해 이 책에서 언급되는 옛날 컴퓨터에 대한 설명을 부록으로 실었습니다.

맨먼스 미신 발간 기념으로 작은 이벤트를 준비 중이고 인사이트 페이스북을 통해 공지할 예정입니다. 많은 관심 부탁드립니다.

다음 서점에서 구입하실 수 있습니다.

YES24 | 교보문고 | 인터파크 | 알라딘

댓글 남기기