The Mythical Man-Month까지

1931년, 미국에서 태어난 프레더릭 브룩스(Frederick Brooks)는 듀크대학교를 졸업하고 1956년, 하버드대학교에서 컴퓨터 응용 수학(Applied Mathematics)을 전공하여 박사 학위를 받았다. IBM의 하버드 마크1 (Harvard Mark 1) 컴퓨터의 핵심 개발자인 하워드 아이켄(Howard Aiken)이 그의 스승이었다. 그의 영향으로 브룩스는 1956년, IBM에 입사하게 되고, 거기서 스트레치(Stretch)와 하비스트(Harvest)라는 컴퓨터의 아키텍처를 설계하는 일을 맡게 되었다. 그는 곧 System/360 시리즈에서 동작하는 운영체제인 OS/360을 개발하는 프로젝트의 관리자가 되었다. 이 시스템을 개발하는 과정에서 얻은 통찰력으로 소프트웨어 공학 분야에 길이 남는 명저를 저술하였다.

System/360(S/360) 시리즈는 아키텍처와 구현이 깔끔하게 분리된 최초의 메인프레임 컴퓨터 시리즈였다. 시리즈의 아키텍트는 진 암달(Gene Amdahl)이었다. 이 시리즈에 속하는 컴퓨터들은 낮은 사양에서 높은 사양으로 업그레이드가 가능하였기 때문에 기업으로부터 많은 인기를 얻게 되었다. IBM은 이 시스템에 50억 달러라는 엄청난 비용을 투자했다. 당시 미국에서 가장 높은 비용을 투입한 프로젝트는 아폴로 달 탐사 프로젝트였고, 2위가 IBM의 System/360 프로젝트였다고 하니 IBM이 이 프로젝트에 얼마나 관심이 있었는지 알 수 있다.

System/360의 하드웨어가 완성되자 이제는 운영체제가 필요했다. 따라서 OS/360 이라는 운영체제가 배치 처리의 용도로 개발되었다. 그런데 이 운영체제는 예상 기간보다 늦게 개발되었다.

기술적인 어려움 외에 IBM이 소프트웨어 분야에 대규모로 프로젝트를 진행한 경험이 부족했고 개발 조직 간에 불협화음이 있었기 때문이었다. 원래 1966년에 간단한 버전이 출시되어야 했으나 1967년 까지 릴리즈 1.0은 생산되지 못했다. 1년 이상 프로젝트가 지연된 것이다. 따라서 IBM은 임시로 BOS(Basic Operating System), TOS(Tape Operating System), DOS(Disk Operating System)을 개발하고 System/360 시리즈에 탑재시킨다.

OS/360 프로젝트가 지연되면서 프로젝트 관리자인 프레더릭 브룩스는 큰 교훈을 얻게 되었다. 그리고 자신이 기존에 경험한 프로젝트의 지식들과 OS/360에서 얻는 통찰력을 기반으로 1975년에 [The Mythical Man- Month] (Addison-Wesley, 1995)라는 명저를 저술하였다. 1

Computer architecture 단어를 만들다

프레드 브룩스의 에세이에 의하면, 그가 속해 있던 집단이 "Computer architecture"라는 단어를 처음 사용한 것으로 보인다.

좁지만 상당히 정확한 컴퓨터 아키텍처(Computer architecture)에 대한 정의로 작업 범위를 유지한다. 우리가 이 단어를 1962년에 만들어 냈고 1964년에 상당히 정확하게 정의했지만, 이 단어는 훨씬 느슨한 의미로 폭넓게 사용되게 되었다. 2

Ted Codd 와의 관계

IBM의 관리자로서 내가 했던 가장 생산적인 행동은 제품 개발과는 아무런 상황이 없는 것이었다. 그것은 IBM의 정규직 직원이 될 장래가 촉망되는 엔지니어를 정력 도중에 미시간 대학(Universty ofMichigan)에 보내 박사 학위를 취득하도록 한 것이었다. 그 당시에는 바쁜 컴퓨터 아키테처 관리자의 꽤나 우발적인 개인적 행동으로 보였던 이 조치는 IBM에 내가 꿈꿨던 무모함을 넘어서는 보상을 해 주었다. 테드 코드(Ted Codd)는 박사 학위 취득을 통해 연구원으로서의 경력을 준비할 수 있게 되었고, 그는 연구를 통해 관계형 데이터베이스 개념을 발명하여 튜링 상(Turing Award)을 받게 되었다. 관계형 데이터베이스는 25년간 IBM의 컴퓨터 사업에서 가장 이익 을 많이 낸 주요 애플리케이션이었다. 3

IBM OS/360 프로젝트

비용 초과는 이런 문제들과 밀접한 관련이 있었다. 필요한 프로그래밍 인력에 대한 추정(결국은 프로젝트의 기간과 비용)은 나중에 가면 종종 낙관적이었음이 드러났는데 그 오차가 "2.5~4배"일 때가 흔했다. 또다시 가장 유명한 사례가 IBM의 OS/360이었다. 이 프로젝트는 1965년에 150명의 프로그래머로 구성된 팀을 데리고 시작했다. 얼마 지나지 않아 예상보다 일정이 6개월 밀렸고 그래서 더 많은 프로그래머들이 투입되었다. 이런 일은 계속 반복되었다. 결국에 가서는 이 프로젝트에서 일한 프로그래머가 천 명에 이르렀다. 프로젝트의 관리자였던 프레드 브룩스는 그 일이 끝난 후에 이렇게 적고 있다. "이것은 마치 휘발유를 부어 불을 끄려는 것과 같다. 일을 더욱더 심하게 악화시킨다. 불이 커지면 더 많은 휘발유를 쏟아부어야 하는 식이다. 그래서 계속 반복되다가 재앙으로 끝난다." 모두 합쳐서 OS/360에는 5000 맨-이어 공수가 들어갔다. 결국 예정보다 1년 늦은 1967년 중반에 발표되었지만 참을 수 없을 정도로 느렸고 많은 에러들이 남아 있었다. (후에 릴리즈가 이어지면서 효율이 10배는 좋아졌다.) OS/360과 다른 시스템/360용 소프트웨어들을 합쳐서 원래 예산보다 4배가 더 들었고 이것은 "컴퓨터 역사상 가장 큰 단일 지출"이었다. 4

참고문헌

  • 누가 소프트웨어의 심장을 만들었는가 / 박지훈 저 / 한빛미디어 / 초판발행 2005년 03월 18일
  • 디자인 오브 디자인 / 프레더릭 브룩스 저/조인중 역 / 제이펍 / 초판 1쇄 발행 2017년 11월 09일 / 원제 : The Design of Design: Essays from a Computer Scientist
  • 소프트웨어는 어떻게 밥벌이가 되었나 / 마틴 캠벨-켈리 저/이재범 역 / 지식함지 / 초판 1쇄 2021년 06월 22일 / 원제: From Airline Reservations to Sonic the Hedgehog: A History of the Software Industry by Martin Campbell-Kelly

함께 읽기

주석

  1. 누가 소프트웨어의 심장을 만들었는가. 9장 152쪽. 

  2. 디자인 오브 디자인. 26장. 413쪽. 

  3. 디자인 오브 디자인. 20장. 298쪽. 

  4. 소프트웨어는 어떻게 밥벌이가 되었나. 4장. 156쪽.