Chapter 15 밀레니엄
2000년: XP 리더십
마틴 파울러와 시카고의 한 커피숍에서 다시 만나 그간 몇 년간 ‘가벼운(lightweight)’ 개발 프로세스라고 불렀던 여러 방법론, 즉 XP, 스크럼(Scrum), DSDM3, FDD4 등과 관련된 사람들을 한자리에 모으자는 뜻을 모았습니다.
2001년 2월에 카리브해 앵귈라(Anguilla)섬에서 열릴 ‘가벼운 개발 프로세스 회담(The Lightweight Process Summit)’을 제안하는 이메일을 작성하여 여러 인사에게 발송했습니다.
몇 시간 만에 앨리스테어 코버른(Alistair Cockburn)이 전화 연락을 해 왔습니다.
본인도 비슷한 이메일을 보내려고 했는데, 우리가 보낸 초대자 명단이 더 마음에 든다고 했습니다.
장소만 솔트레이크시티(Salt Lake City)로 바꾸어 준다면 본인이 회의 준비를 전담하겠다고 제안했습니다.
우리는 그의 제안에 흔쾌히 동의하고는 회의 장소를 바꾸기로 결정합니다.
2001년: 애자일과 닷컴 붕괴
그렇게 소프트웨어 전문가 17명이 2001년 2월, 스노버드 리조트(Snowbird Resort)에 모여서 애자일 선언문(Agile Manifesto)을 작성했습니다.
우리는 이 선언문이 업계에 그렇게 큰 파장을 일으킬 줄은 전혀 예상하지 못했습니다.
곧이어 시카고 근교의 오브젝트 멘토 사무실에서 애자일 얼라이언스(Agile Alliance)의 첫 모임이 열렸습니다.
그렇게 새로운 조직이 결성되어 본격적인 활동을 시작했습니다.
애자일은 단숨에 ‘새로운 대세(Next Big Thing)’가 됩니다.
우리는 문자 그대로 호랑이 꼬리를 잡은 느낌이었습니다.
하지만 동시에 좋지 않은 징후도 보이기 시작합니다.
2001년 봄 우리는 이미 닷컴 버블이 흔들리고 있음을 체감했습니다.
모든 교육 과정 수강생 수가 조금씩 줄기 시작했고, 컨설팅 수요도 감소하고 있었습니다.
2002년 중반, 약 800쪽 정도로 작성했던 원고를 500쪽으로 대폭 줄여서 최종 원고를 제출할 수 있었습니다.
그렇게 해서 2003년에 <Agile Software Development: Principles, Patterns, and Practices(애자일 소프트웨어 개발: 원칙, 패턴, 그리고 실천)>가 출간되었습니다.
2002~2008년: 광야를 헤매다
닷컴 버블과 뒤이은 붕괴가 소프트웨어 판 전체를 쥐고 흔들면서 IT 업계는 전반적으로 위축된 느낌이었습니다.
새로운 소프트웨어 기술이나 혁신적 아이디어도 거의 보이지 않았습니다.
어디에선가 정체가 생겨 더 이상 앞으로 나아가지 못하는 듯했습니다.
클린 코드
저는 한동안 누군가가 ‘좋은 코딩’과 관련된 책을 내야 하지 않을까 하고 생각해 왔습니다.
프로그래머들에게 좋은 코드와 나쁜 코드를 가르친다는 것은 대단한 뻔뻔함이 필요한 일이라 생각했으며, 제 스스로 그런 책을 쓰기에는 자격 미달이라 여겼습니다.
하지만 곰곰이 생각해 보니, 저는 거의 40년 가까운 시간 동안 프로그래밍을 해 온 사람입니다.
내가 그런 책을 쓰지 않는다면 누가 쓸까 하는 생각이 들었습니다.
또 부족하더라도 내가 가진 경험과 여러 가지 기법을 최소한 공유할 수는 있겠다는 생각이 들었습니다.
그렇게 해서 저는 <Clean Code(클린 코드)> 집필을 시작했습니다.
그러던 와중 2008년 글로벌 금융 위기가 닥치면서 회사의 마지막 숨통마저 끊어지게 됩니다.
이제 더 이상 버틸 방법이 없었습니다. 회사는 결국 문을 닫았습니다.
2009년: SICP와 크로마키
어떤 사람이 트윗으로 <Structure and Interpretation of Computer Programs(SICP: 컴퓨터 프로그램의 구조와 해석)> 책을 읽어 보라고 추천했습니다.
그 당시 중고로 책을 사 놓고 책상에 올려 둔 채 오랫동안 잊고 있었습니다.
그렇게 트윗을 보고 언젠가부터 그 책을 펼쳐 읽어 보기 시작했습니다.
저는 그 책에 완전히 매료되었습니다! 책을 읽으며 엄청난 영감을 느꼈고, 페이지를 넘길 때마다 흥분이 가시지를 않았습니다.
그야말로 책에 흠뻑 빠져들었습니다.
이는 제가 함수형 프로그래밍이라는 흥미진진한 세계로 들어간 계기가 되었습니다.
동영상
파일럿으로 15분짜리 영상을 만들어 보았습니다.
편집 과정을 포함해서 1분 영상을 만드는 데 약 한 시간이 필요했습니다.
즉, 15분 영상을 완성하는 데 15시간이 걸린 셈입니다!
그러나 그렇게 만든 15분 분량의 영상은 보는 이들에게 훨씬 재미있고 유익했습니다.
지루하지 않았고, 정보를 전달하는 데 효과적이었습니다.
마치 마법을 부린 것 같았죠.
cleancoders.com
당시 제 아들인 마이카(Micah)는 자신만의 소프트웨어 회사를 운영하고 있었습니다.
저는 아들에게 “내가 한 시간 분량의 영상을 여러 편 만들 테니, 이걸 유료로 판매할 웹 사이트와 호스팅 시스템을 구축해 볼 의향이 있느냐?”라고 제안했습니다.
즉, 서로 절반씩 투자하는 형태의 비즈니스를 제안했습니다.
마이카는 제 제안에 흔쾌히 동의했고, Clean Coders Inc.가 탄생했습니다.
2010~2023년: 동영상, 장인 정신, 그리고 프로페셔널리즘
2011년 말 무렵에는 매출이 10만 달러에 달했고, 저희는 이 사업 모델의 성공 가능성이 높다는 것을 확신했습니다.
그래서 저는 딸 안젤라(Angela Brooks)까지 고용하여 촬영과 편집 작업을 맡겼고, 다시 한 번 새로운 형태의 전성기를 맞이하게 되었습니다.
애자일의 탈선
한편 애자일 운동(Agile movement)은 본래의 궤도에서 벗어나는 듯했습니다.
애초에는 프로그래머들이 주도했지만, 점차 프로젝트 매니저들이 주도하는 형태로 흐름이 바뀌면서 프로그래머들이 배제되기 시작했습니다.
저는 이런 상황이 매우 안타까웠습니다.
지난 10년간 애자일 운동이 프로그래머의 수준을 높여 줄 것이라 기대했기 때문입니다.
프로그래머들을 보다 더 높은 기준과 원칙, 윤리를 갖춘 진정한 전문가 집단으로 이끌어 줄 원동력이 될 줄 알았지만 그렇지 못했습니다.
그 외의 책들
그 10년 동안 저는 책을 몇 권 더 집필했습니다.
- < The Clean Coder >: < Clean Code >에서 다루지 않았던 비기술적인 요소, 즉 전문적인 태도와 행동 양식을 다룬 첫 번째 책입니다.
- < Clean Craftsmanship >: 소프트웨어 프로페셔널의 기술·비기술적 원칙, 기준, 윤리를 심층적으로 다룬 책입니다.
- < Clean Architecture >: 대규모 소프트웨어 구조와 설계 원칙, 문제, 해결책을 집중 조명한 매우 기술적인 책입니다.
- < Clean Agile >: 애자일 운동의 기원을 다시 살펴보고, 그 뿌리로 돌아가자는 메시지를 담은 책입니다.
- < Functional Design >: 함수형 프로그래밍 환경에서 시스템 설계 원리, 패턴, 응용 방법을 다룬 고급 기술서입니다.
2023년: 정체
대부분 경력 초반에는 거의 ‘인풋 모드(input mode)’로 살게 됩니다.
배울 것이 너무 많기 때문에 새로운 아이디어를 내놓기보다는 기존 지식과 아이디어를 습득하는 데 주력하게 되죠.
이후 경험이 쌓이면 계속 배우면서도, 점차 자신만의 아이디어를 제시하기 시작합니다.
이 시점은 30~50대 사이에 최고조에 달하며, 배움과 아이디어 배출 간 상호 작용이 강력한 시너지를 만들어 내게 됩니다.
그러나 시간이 흐르면서 서서히 아이디어를 배출하는 양이 배움의 양을 앞지르게 되어 시너지와 피드백이 줄어드는 시기가 도래합니다.
그리고 은퇴 시점이 가까워지면 주로 본인이 여태껏 쌓아 온 아이디어를 내놓고, 새로운 아이디어를 흡수하는 비중은 낮아집니다.
또는 저뿐만 아니라, 소프트웨어 업계 전체가 같은 길을 걷고 있는 것일 수도 있습니다.
프로그래밍 자체가 예전 같은 혁신을 활발히 내놓지 않고 있는 것 같기 때문입니다.
정확한 수치가 다를 수 있어도 매번 새 언어가 등장할 때마다 얻는 생산성 이점은 계속 줄어들어 거의 0에 가까워지는 추세로 여겨집니다.
마치 어떤 한계치(asyptote)에 다다른 것처럼 보입니다.
무어의 법칙은 2000년 무렵부터 사실상 멈추었습니다.
클럭 주파수는 더 이상 급격히 올라가지 않고, 메모리 용량도 매년 두 배씩 늘어나지 않고 있습니다.
반도체가 원자적 한계에 가까워지면서 칩 밀도 증가 폭도 둔화되었습니다.
결국 하드웨어와 소프트웨어 양쪽 모두 일정한 정체 상태(plateau)에 도달했다고 볼 수도 있습니다.
Chapter 15 밀레니엄
2000년: XP 리더십
마틴 파울러와 시카고의 한 커피숍에서 다시 만나 그간 몇 년간 ‘가벼운(lightweight)’ 개발 프로세스라고 불렀던 여러 방법론, 즉 XP, 스크럼(Scrum), DSDM3, FDD4 등과 관련된 사람들을 한자리에 모으자는 뜻을 모았습니다.
2001년 2월에 카리브해 앵귈라(Anguilla)섬에서 열릴 ‘가벼운 개발 프로세스 회담(The Lightweight Process Summit)’을 제안하는 이메일을 작성하여 여러 인사에게 발송했습니다.
몇 시간 만에 앨리스테어 코버른(Alistair Cockburn)이 전화 연락을 해 왔습니다.
본인도 비슷한 이메일을 보내려고 했는데, 우리가 보낸 초대자 명단이 더 마음에 든다고 했습니다.
장소만 솔트레이크시티(Salt Lake City)로 바꾸어 준다면 본인이 회의 준비를 전담하겠다고 제안했습니다.
우리는 그의 제안에 흔쾌히 동의하고는 회의 장소를 바꾸기로 결정합니다.
2001년: 애자일과 닷컴 붕괴
그렇게 소프트웨어 전문가 17명이 2001년 2월, 스노버드 리조트(Snowbird Resort)에 모여서 애자일 선언문(Agile Manifesto)을 작성했습니다.
우리는 이 선언문이 업계에 그렇게 큰 파장을 일으킬 줄은 전혀 예상하지 못했습니다.
곧이어 시카고 근교의 오브젝트 멘토 사무실에서 애자일 얼라이언스(Agile Alliance)의 첫 모임이 열렸습니다.
그렇게 새로운 조직이 결성되어 본격적인 활동을 시작했습니다.
애자일은 단숨에 ‘새로운 대세(Next Big Thing)’가 됩니다.
우리는 문자 그대로 호랑이 꼬리를 잡은 느낌이었습니다.
하지만 동시에 좋지 않은 징후도 보이기 시작합니다.
2001년 봄 우리는 이미 닷컴 버블이 흔들리고 있음을 체감했습니다.
모든 교육 과정 수강생 수가 조금씩 줄기 시작했고, 컨설팅 수요도 감소하고 있었습니다.
2002년 중반, 약 800쪽 정도로 작성했던 원고를 500쪽으로 대폭 줄여서 최종 원고를 제출할 수 있었습니다.
그렇게 해서 2003년에 <Agile Software Development: Principles, Patterns, and Practices(애자일 소프트웨어 개발: 원칙, 패턴, 그리고 실천)>가 출간되었습니다.
2002~2008년: 광야를 헤매다
닷컴 버블과 뒤이은 붕괴가 소프트웨어 판 전체를 쥐고 흔들면서 IT 업계는 전반적으로 위축된 느낌이었습니다.
새로운 소프트웨어 기술이나 혁신적 아이디어도 거의 보이지 않았습니다.
어디에선가 정체가 생겨 더 이상 앞으로 나아가지 못하는 듯했습니다.
클린 코드
저는 한동안 누군가가 ‘좋은 코딩’과 관련된 책을 내야 하지 않을까 하고 생각해 왔습니다.
프로그래머들에게 좋은 코드와 나쁜 코드를 가르친다는 것은 대단한 뻔뻔함이 필요한 일이라 생각했으며, 제 스스로 그런 책을 쓰기에는 자격 미달이라 여겼습니다.
하지만 곰곰이 생각해 보니, 저는 거의 40년 가까운 시간 동안 프로그래밍을 해 온 사람입니다.
내가 그런 책을 쓰지 않는다면 누가 쓸까 하는 생각이 들었습니다.
또 부족하더라도 내가 가진 경험과 여러 가지 기법을 최소한 공유할 수는 있겠다는 생각이 들었습니다.
그렇게 해서 저는 <Clean Code(클린 코드)> 집필을 시작했습니다.
그러던 와중 2008년 글로벌 금융 위기가 닥치면서 회사의 마지막 숨통마저 끊어지게 됩니다.
이제 더 이상 버틸 방법이 없었습니다. 회사는 결국 문을 닫았습니다.
2009년: SICP와 크로마키
어떤 사람이 트윗으로 <Structure and Interpretation of Computer Programs(SICP: 컴퓨터 프로그램의 구조와 해석)> 책을 읽어 보라고 추천했습니다.
그 당시 중고로 책을 사 놓고 책상에 올려 둔 채 오랫동안 잊고 있었습니다.
그렇게 트윗을 보고 언젠가부터 그 책을 펼쳐 읽어 보기 시작했습니다.
저는 그 책에 완전히 매료되었습니다! 책을 읽으며 엄청난 영감을 느꼈고, 페이지를 넘길 때마다 흥분이 가시지를 않았습니다.
그야말로 책에 흠뻑 빠져들었습니다.
이는 제가 함수형 프로그래밍이라는 흥미진진한 세계로 들어간 계기가 되었습니다.
동영상
파일럿으로 15분짜리 영상을 만들어 보았습니다.
편집 과정을 포함해서 1분 영상을 만드는 데 약 한 시간이 필요했습니다.
즉, 15분 영상을 완성하는 데 15시간이 걸린 셈입니다!
그러나 그렇게 만든 15분 분량의 영상은 보는 이들에게 훨씬 재미있고 유익했습니다.
지루하지 않았고, 정보를 전달하는 데 효과적이었습니다.
마치 마법을 부린 것 같았죠.
cleancoders.com
당시 제 아들인 마이카(Micah)는 자신만의 소프트웨어 회사를 운영하고 있었습니다.
저는 아들에게 “내가 한 시간 분량의 영상을 여러 편 만들 테니, 이걸 유료로 판매할 웹 사이트와 호스팅 시스템을 구축해 볼 의향이 있느냐?”라고 제안했습니다.
즉, 서로 절반씩 투자하는 형태의 비즈니스를 제안했습니다.
마이카는 제 제안에 흔쾌히 동의했고, Clean Coders Inc.가 탄생했습니다.
2010~2023년: 동영상, 장인 정신, 그리고 프로페셔널리즘
2011년 말 무렵에는 매출이 10만 달러에 달했고, 저희는 이 사업 모델의 성공 가능성이 높다는 것을 확신했습니다.
그래서 저는 딸 안젤라(Angela Brooks)까지 고용하여 촬영과 편집 작업을 맡겼고, 다시 한 번 새로운 형태의 전성기를 맞이하게 되었습니다.
애자일의 탈선
한편 애자일 운동(Agile movement)은 본래의 궤도에서 벗어나는 듯했습니다.
애초에는 프로그래머들이 주도했지만, 점차 프로젝트 매니저들이 주도하는 형태로 흐름이 바뀌면서 프로그래머들이 배제되기 시작했습니다.
저는 이런 상황이 매우 안타까웠습니다.
지난 10년간 애자일 운동이 프로그래머의 수준을 높여 줄 것이라 기대했기 때문입니다.
프로그래머들을 보다 더 높은 기준과 원칙, 윤리를 갖춘 진정한 전문가 집단으로 이끌어 줄 원동력이 될 줄 알았지만 그렇지 못했습니다.
그 외의 책들
그 10년 동안 저는 책을 몇 권 더 집필했습니다.
2023년: 정체
대부분 경력 초반에는 거의 ‘인풋 모드(input mode)’로 살게 됩니다.
배울 것이 너무 많기 때문에 새로운 아이디어를 내놓기보다는 기존 지식과 아이디어를 습득하는 데 주력하게 되죠.
이후 경험이 쌓이면 계속 배우면서도, 점차 자신만의 아이디어를 제시하기 시작합니다.
이 시점은 30~50대 사이에 최고조에 달하며, 배움과 아이디어 배출 간 상호 작용이 강력한 시너지를 만들어 내게 됩니다.
그러나 시간이 흐르면서 서서히 아이디어를 배출하는 양이 배움의 양을 앞지르게 되어 시너지와 피드백이 줄어드는 시기가 도래합니다.
그리고 은퇴 시점이 가까워지면 주로 본인이 여태껏 쌓아 온 아이디어를 내놓고, 새로운 아이디어를 흡수하는 비중은 낮아집니다.
또는 저뿐만 아니라, 소프트웨어 업계 전체가 같은 길을 걷고 있는 것일 수도 있습니다.
프로그래밍 자체가 예전 같은 혁신을 활발히 내놓지 않고 있는 것 같기 때문입니다.
정확한 수치가 다를 수 있어도 매번 새 언어가 등장할 때마다 얻는 생산성 이점은 계속 줄어들어 거의 0에 가까워지는 추세로 여겨집니다.
마치 어떤 한계치(asyptote)에 다다른 것처럼 보입니다.
무어의 법칙은 2000년 무렵부터 사실상 멈추었습니다.
클럭 주파수는 더 이상 급격히 올라가지 않고, 메모리 용량도 매년 두 배씩 늘어나지 않고 있습니다.
반도체가 원자적 한계에 가까워지면서 칩 밀도 증가 폭도 둔화되었습니다.
결국 하드웨어와 소프트웨어 양쪽 모두 일정한 정체 상태(plateau)에 도달했다고 볼 수도 있습니다.