2018.02.24

소프트웨어의 미신

프레더릭 브룩스, 『맨먼스 미신』을 읽고

"I bought my boss two copies of The Mythical Man Month so that he could read it twice as fast." - @rkoutnik

우리는 소프트웨어라는 마법의 원리는 모르지만 그 결과는 자연스럽게 받아들이는 시대에 살고 있다.

프로그래머의 작업은 시인과 마찬가지로 순수한 사고의 산물에 가깝다. 그는 허공 위에다 허공으로 만든 성을 상상의 힘으로 짓는다. (...) 하지만 프로그램은 실재하는 결과물을 만들어낸다는 점에서 시인의 시구와 달리 현실에 닿아있다.

프로그래밍은 결국 물리적인 현실을 개념화하여 다시 현실에 물리적인 결과물을 만든다는 점에서 상당히 변태스럽다. 다만 소프트웨어는 개념적인데, 구체적으로는 건축을 위해 철근을 박고 콘크리트를 넣는 것보다는 그러하다. 따라서 소프트웨어 공학은 전통적인 엔지니어링과는 다름이 있다. 그러나 이런 다름이 미신과 오해, 환상을 불러일으킨다.

우리는 개조한 차고에서 두 명이 만들어낸 프로그램이 대규모 팀의 성과를 뛰어넘었다는 신문 기사를 가끔 접하곤 한다. 그리고 프로그래머라면 다들 이런 이야기를 믿을 준비가 되어 있는 것이, 어떤 프로그램이라도 1년에 1000 문장을 작성한다는 업계의 팀들보다야 자신이 훨리 빨리 짤 수 있음을 알기 때문이다. 그렇다면 왜 업계의 모든 프로그래밍 팀이 2인조들로 대체되지 않았을까? 우리는 여기서 '무엇'이 만들어지는지에 주목할 필요가 있다. 4 page

'늦어진 작업에 맨먼스를 더 투입하는 것이 오히려 더 큰 지연을 만들 수 있다', '부족한 시간 탓에 망가진 프로젝트는 다른 이유로 그렇게 된 경우를 모두 합한 것보다 많다.' 등 소프트웨어공학에 관련한 여러 생각들을 읽을 수 있었다.