Joys and Woes, 50년 후
『The Mythical Man-Month』의 첫 장 제목은 "The Tar Pit"입니다.
브룩스는 이 장에서 프로그래밍이 왜 즐거운지를 묻고, 다섯 가지 이유를 제시합니다.
"왜 사람들은 이렇게 고통스럽고 복잡한 소프트웨어 개발이라는 늪에 스스로 빠져드는가?"
그가 내놓은 대답은 다음과 같습니다.
Joy (기쁨) — 무언가를 창조하는 순수한 즐거움
Usefulness (유용성) — 다른 사람에게 도움을 주는 실용성
Complexity (복잡성의 매력) — 정교한 시스템의 조립이라는 퍼즐
Learning (배움) — 매번 새롭고 반복되지 않는 문제 해결
Imagination (상상력) — 머릿속 상상을 현실로 구현하는 창작
2025년의 프로그래머로서도 이 다섯 가지는 여전히 유효합니다.
오히려 몇 가지 이유를 더 덧붙이고 싶습니다.
세상을 바꾸는 힘. 소프트웨어는 이제 거의 모든 산업의 기반이 되었습니다. 단순한 도구를 넘어서, 사회 구조와 인간 행동을 재구성하는 힘을 갖고 있죠.
높은 보상과 유연한 삶. 비교적 좋은 대우, 유연한 근무 환경, 국경 없는 이직 가능성은 이 직업의 큰 장점입니다.
무에서 유를 만드는 감각. 손에 잡히는 재료 없이, 단지 텍스트로 새로운 세계를 만드는 이 경험은 매우 중독적입니다.
브룩스는 즐거움과 더불어, 프로그래밍이 고통스러운 이유도 정확히 짚어냅니다. 그의 시대와 지금을 비교하며 하나씩 살펴보겠습니다.
“하나의 문자, 하나의 쉼표가 잘못되어도 전체가 망가진다.”
이 문제는 IDE, 정적 분석기, 자동완성 기능 등으로 많이 완화되었습니다. 하지만 여전히 중요한 구조나 흐름 상의 오류는 자동화 도구가 다 잡아주지 못합니다. 특히 동적 타이핑 언어나 비동기 로직, 이벤트 드리븐 구조에서는 여전히 사람의 주의가 중요합니다.
“내가 작업의 목표나 조건을 통제하지 못하는 경우가 많다.”
지금도 마찬가지입니다. 기능 요구사항이 애매하거나, 프로젝트 방향이 수시로 바뀌는 경우, 개발자는 기획과 현실 사이에서 끊임없이 조율해야 합니다. 특히 스타트업에서 이 문제는 매우 흔합니다.
“다른 사람이 만든 프로그램에 의존하는데, 그것들은 종종 부실하다.”
이건 오히려 더 악화되었을지도 모릅니다. 지금은 수십, 수백 개의 라이브러리와 프레임워크를 조합해서 시스템을 구성합니다. npm, pip, docker 등으로 쉽게 의존성을 가져올 수 있지만, 그만큼 예기치 못한 충돌, 보안 이슈, 문서 부족 문제도 빈번합니다.
“창의적인 작업에도 반드시 따분한 순간이 있다.”
배포 자동화, CI/CD, 코드 생성기 같은 도구로 반복 작업은 줄었지만, 테스트 작성, 문서화, 코드 리뷰, 성능 최적화 같은 지루하지만 필수적인 작업은 여전히 존재합니다.
“디버깅은 선형 수렴이 아니라 느린 진전이다.”
이 역시 여전합니다. 특히 고수준 프레임워크일수록 내부 동작을 파악하기 어렵고, 비동기, 멀티스레드 환경에서는 재현 자체가 어렵습니다. 브레이크포인트, 로그, 테스트 등을 활용한 추론 능력이 여전히 중요합니다.
“출시했을 때 이미 새로운 기술이나 경쟁자가 등장해 있다.”
이 부분은 Lean MVP와 DevOps 문화 덕분에 나아졌습니다. 더 이상 수년간 준비한 제품을 한 번에 내놓기보다는, 빠른 반복을 통해 시장 반응을 살피는 문화가 자리 잡았습니다. 하지만 기술 변화 속도가 너무 빨라 따라가기 어렵다는 점은 여전히 과제로 남아 있습니다.
브룩스의 시대와 다른 오늘날의 고충은 다음과 같은 것들입니다.
선택의 피로: 언어, 프레임워크, 클라우드 옵션이 너무 많아 무엇을 써야 할지 결정하는 데 에너지를 많이 씁니다.
지식의 반감기 단축: 한 번 배운 기술이 몇 년 안에 쓸모없어지기도 합니다. 이는 커리어 유지에 대한 불안으로 이어집니다.
팀 간 복잡성: 마이크로서비스, 분산 시스템 환경에서는 팀 간 의사소통 문제가 더욱 증폭됩니다.
지속적인 맥락 전환: Slack, Jira, 이메일, 미팅… 집중해서 몰입하기 어려운 환경이 늘어납니다.
브룩스는 첫 장의 마지막에서 이렇게 말합니다:
“많은 이들에게 있어, 프로그래밍의 기쁨은 그 고통을 능가한다.”
저 역시 동의합니다.
문제를 해결했을 때의 희열, 남들이 어려워하던 이슈를 풀었을 때의 쾌감,
내가 만든 제품이 실제 사람들에게 사용되는 경험...
이 모든 것이 다시 개발을 시작하게 만드는 원동력이 됩니다.
『The Mythical Man-Month』가 특별한 이유는, 이런 이중성을 너무나 솔직하게, 그리고 명확하게 짚어냈기 때문입니다. 그리고 우리는 그로부터 50년이 지난 지금도, 여전히 그 기쁨과 고통 사이에서 일하고 있습니다.
→ 3편: 구조가 아닌 관계의 문제 — Brooks의 아키텍처론 재해석