조엘 온 소프트웨어

예전에 한 번 읽었던 책을 다시 읽어 봤다.

소프트웨어 개발/관리 및 소프트웨어 기업 운영에 대한 조엘의 생각을 알 수 있는 책이다.

몇가지 재미있고 도움이 되는 시각들이 있었다.

 

하위 호환성 제공

조엘은 MS가 성공한 가장 큰 이유가 하위 호환성이라는 평가를 한다.

MS-DOS가 성공했던 중요한 이유중 하나는 CP-M이라는 기존 운영체제에 대한 호완성을 제공했기 때문이고, 윈도우즈는 DOS에 대한 호완성을 제공했기 때문에 경쟁에서 이길 수 있었다는 것이다.

이런 호환성을 제공하기 위한 노력중 하나로서 도스 버전의 심시티를 윈도우에서 돌리기 위해서, 심시티에서 실수로 들어간 dangling pointer문제를 우회하는 심시티 전용 호완 실행 환경을 만들었다는 얘기도 있다.

 

결국 개발자가 아닌 일반 사용자에 있어서 OS의 선택의 가장 중요한 기능은 많은 어플리케이션이며 이것은 하위 호완을 통해서 확보할 수 있다는 것이다.

내 생각에도 윈도우 3.0이 나오던 시대에 나왔던 OS2나 Apple에서 DOS용 프로그램을 그대로 돌릴 수 있는 기능을 제공했다면 그 성패는 달라졌을지도 모른다.

 

이런 MS가 최근에는 하위 호완성을 포기하고 있다. 

Window API를 새롭게 만들고 있으며 (롱혼에서), .Net 1.1은 1.0과 호완되지 않는다.

 

조엘은 이것이 MS의 두진영 중 호완성 보다는 개발 편의성을 중시하는 진영이 이겼기 때문이라고 진단하며 이것 때문에 MS에 심각한 위협이 올 수 있다고 보고 있다.

나도 이런 생각에 많은 부분 동의를 한다.

 

대체재와 보완재

조엘은 미시경제에 대한 얘기를 통해서 소프트웨어 개발 사들의 정책을 분석하고 있다.

 

모든 시장 재품에는 대체재와 보완재가 있다.

대체재는 원래 제품 대신 쓸 수 있는 다른 제품을 의미하며, 보완재는 제품의 판매에 따라 같이 팔리게 되는 다른 제품을 의미한다.

특정 제품에 대한 보완재의 가격이 낮아지면 그 제품의 수요는 늘게 된다.

컴퓨터 하드웨어와 OS가 전형적인 보완재 관계인데, 하드웨어 가격이 싸지면 하드웨어가 많이 팔리게 되고 OS의 수요가 늘게 된다.

반대의 경우도 마찬가지이다.

 

조엘은 똑똑한 회사는 자신의 제품에 대한 보완재를 일반 재화로 만들려고 해야 한다고 말한다.

여기서 일반 재화는 이론적인 최저 가격을 갖는 제품을 말한다.

일반재화는 공짜로 구할 수 있는 제품일 수도 있고, 많은 회사의 경쟁을 통해서 충분히 낮은 가격으로 공급될 수 있는 제품일 수도 있다.

만약 이렇게만 된다면 그 제품은 성공할 수 밖에 없게 된다.

 

이것에 기반해서 조엘은 커다란 여러 회사들의 정책을 분석한다.

'IBM이 오픈소스 소프트웨어 개발에 수백만 달라를 투자했다.'는 글을 보면 많은 사람들이 IBM이 도덕적인 문제때문에 이런 결정을 했다고 생각한다.

하지만 실재는 IBM이 판매회사에서 컨설팅 회사로 변했기 때문이라는 것이다.

컨설팅에 있어서 기업용 소프트웨어라는 것은 보완재이다.

그렇기 때문에 소프트웨어의 가격을 떨어뜨려서 일반재화로 만들면 자신의 회사에 이득이 되는 것이다.

 

결국 비즈니스 세계에서 이루어지는 일은 도덕에 따라서 이루어지는 것이 아니라 이익(가까운 미래든 먼 미래든)에 따라서 움직인다는 것이다.

물론 가끔 정말 삽질을 하는 곳도 있긴 하지만 말이다.