더북(TheBook)

3.1.2 가치

소프트웨어는 목적을 달성하기 위해 존재합니다. 가치를 제공해야 하죠. 종종 가치를 외면하는 소프트웨어 전문가들을 만나곤 합니다. 자신이 작성한 코드가 가치를 제공하지 않는다면, 코드를 작성해야 할 이유가 있을까요?

가치에 우선순위를 두는 건 당연해 보입니다. 그리고 자신에게 어떤 일이 주어졌을 때 프레임워크를 직접 만드느라 몇 시간씩 허비하는 엔지니어를 만난 경험도 적지 않습니다.

이런 일은 회사에서도 마찬가지입니다. 리처드 P. 가브리엘(Richard P. Gabriel)에게 루시드(Lucid)라는 회사의 흥망성쇠에 대한 이야기를 들어봅시다[38]. 루시드가 Common Lisp를 상업적으로 완벽하게 구현하려고 고심하는 동안 C++가 등장해 다양한 플랫폼(cross-platform)에서 돌아가는 소프트웨어 개발용 프로그래밍 언어 시장을 장악해버렸습니다.

루시드는 C++보다 Common Lisp가 훨씬 좋다고 생각했지만, 고객들이 C++를 선택한 이유를 가브리엘은 명확히 이해했습니다. C++는 일관성이 떨어지고 더 복잡했지만 정상적으로 동작하고 고객들이 사용할 수 있었습니다. 루시드의 제품은 그렇지 않았죠. 결국 루시드는 폐업했습니다. 가브리엘은 이 예에서 “부족한 것이 더 좋다(worse is better)1라는 격언을 만들었습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.