Joel on Software

joel_on_software.jpg
조엘 온 소프트웨어
유쾌한 오프라인 블로그

Joel Spolsky
박재호 이해영 옮김
에이콘

참 많은 정보들이, 재미있게 구성되어 있는 책이다. 이런 것들이 가능한 것은 조엘이 가진 통찰력과 분석력이 글솜씨와 경제/경영 등의 비공대적 감성과 조화를 이루었기 때문이다. 읽으면서 이것저것 기억해 두고 싶고 더 알아보고 싶은 것들이 많아서 엄두가 안 났었는데, 드디어 읽은지 몇달이 지난 오늘에서야 이 책을 정리하게 되었다.

번역서의 장점을 최대한 살린 책이다. 번역서가 이 정도의 꼼꼼함과 퀄리티를 보여준다면 원서보다도 더 메리트가 있겠다는 생각을 했다. 책 중간중간에 실린 역자의 생각과 풍부한 배경지식은 블로그라는 환경에서 작성되었기 때문에 다분히 개인적이고 문화적 색채가 짙은 Joel on Software의 놓치기 쉬운 작은 부분까지 이해할 수 있도록 도움을 주었다.

‘Advice for Computer Science College Students’라는 포스트에 소개된 7가지 항목 중 가장 와닿는 것은 ‘졸업 전에 미시 경제학을 공부하라는 것이다. 공대생도 경제, 경영 지식 없이는 세상을 읽는 시야가 좁아질 수밖에 없을 것이다. 요즈음 경제학에 관심이 생겼는데, 좀더 제대로 배워보고 싶어졌다. 이러한 생각을 가진 저자의 경제 관련 언급 중 기억에 남는 것은 ‘시장에서는 부가가치가 더해진 만큼 대가를 지불한다’는 것이다. 미국에서 극명하게 느낄 수 있었다. 수퍼마켓에서 사는 음식은 아주 싸지만 레스토랑에서의 음식은 끔찍하리만큼 비싸다. 또한 직접 운전할 때 기름값은 싸지만 택시는 엄청 비싸다. 눈에 보이는 것만큼의 가치가 아닌, 부가가치야말로 더 큰 가치를 가지고 있는데, 나는 보이는 쪽에만 너무 치중했던 것 같다.

버그 데이터베이스에 포함되어야 할 필수 요소
– 버그를 재현하기 위한 완벽한 단계
– 예상 수행 결과
– 관찰한 (버그로 간주되는) 실제 수행 결과
– 수정을 맡을 개발 책임자
– 수정했는지 여부

종이로 프로토타입을 작성하라

시간 인터럽트 관리하기
– 인터럽트 당하는 시간과 일에 복귀하는 시간을 기록하라
– 사람이 일에 몰입하기까지는 15분이 소요된다
– 보통 11분을 못 넘기고 인터럽트를 받는다

오픈소스 경제학
보완재는 특정 제품과 함께 구매하게 되는 제품이다. (컴퓨터+OS, 항공권+호텔숙박)
보완재 가격이 하락하면 제품 수요가 증가한다.
(항공권 가격이 하락하면 호텔 수요가 증가한다 / 컴퓨터 가격이 떨어지면 OS 수요가 증가한다)
똑똑한 회사는 자사 제품의 보완재를 일반 재화로 만들려고 애쓴다.

1. IBM이 오픈소스 소프트웨어 개발에 수백만 달러를 투자한다
-> IT 컨설팅 회사로 변모하려는 IBM의 입장에서 IT 컨설팅은 기업용 소프트웨어의 보완재이다.
기업용 소프트웨어를 일반재화로 만들어야 한다.

2. CPU 회사인 트랜스메타 사가 리누스를 고용해서 리눅스를 손보다

3. 썬과 HP가 지미안을 고용해 그놈을 손보다

4. 애플이 무료 소프트웨어인 iTunes를 더더욱 강화시키기 위해 투자한다
-> 하드웨어인 iPod의 수요를 늘리는 데에서 그치는 것이 아니라 iTunes와 연동되는 음악/영화/게임의 수요까지 증가시킬 수 있다. 애플로서는 iTunes에 더 투자하는 것이 일석이조의 전략이 될 것이다. 이렇게 복합적인 이익을 이끌어내는 능력을 애플이 갖추었기 때문에 승승장구하는 것이다. 맥에서도 마찬가지로 Intel 코어로 바꾸고 Bootcamp를 지원함으로써 비슷한 효과를 얻을 수 있다.

5. 썬 사는 자바를 개발한다
-> 자바의 바이트코드 시스템은 한번 작성하면 어디서나 실행이 가능하다. 얼핏 생각하면 이를 통해 운영체제가 일반 재화가 될 것 같다. 그러나 운영체제 뿐이 아니라 하드웨어 자체가 일반재화가 되어 버린다. 하드웨어 회사인 썬 사가 자바를 개발함으로써 하드웨어를 일반 재화로 만든다. 뭔가 이상하지 않은가? 하드웨어 회사가 하드웨어를 일반재화로 만드는 것은 무덤을 파는 일이다!! 또한 썬 사는 스타오피스, 리눅스, 아파치, 그놈 등 무료 소프트웨어 개발을 장려해서 소프트웨어를 일반 재화로 만든다. 이렇게 두 가지 전략으로 모든 제품을 일반 재화 가격으로 팔 수밖에 없게 될 수 있다.

소프트웨어 입장에서 하드웨어를 일반 재화로 만들기는 쉽다.
그러나 하드웨어 입장에서 소프트웨어를 일반 재화로 만들기는 어렵다.
하드디스크를 뽑아서 다른 컴퓨터에 장착하는 것은 쉽다.
그러나 익스플로러를 쓰던 사람이 파이어폭스로 옮기는 비용이 0이 아니라는 이야기이다.

API는 왜 중요한가? 사람들이 윈도우를 사용하는 이유를 생각해 보면 알 수 있다. 리눅스/맥이 아닌 윈도우가 (아직) 세상을 지배하는 건 윈도우에 응용프로그램이 훨씬 많기 때문이다. 따라서 이러한 응용프로그램의 개발을 장려하는 것이 OS 회사의 입장에서는 매우 중요하며, 이에 필수적인 API는 MS의 중요한 자산이다. API는 운영체제에게 일을 시킬 수 있는 인터페이스 집합이다. 이를 통해 손쉽게 복잡한 기능을 해당 운영체제 상에서 구현할 수 있다. 조엘은 MS가 효율성을 위해 하위호환성을 포기하면서, 또한 웹과 HTML의 시대에 맞는 API를 제공하지 못하면서 API 전쟁에서 패배할 것이라 경고하고 있다. ‘새 API는 HTML 입니다. 응용 프로그램 개발 시장에서 새로운 승자는 HTML을 빛내는 기업일 것입니다.’

나에게 적용할 점:
Eddy는 하드웨어를 팔아야 한다. Eddy의 보완재는 무엇인가? SDK와 API, Web Interface, Linux Library 등이다. SDK는 무료로 배포해도 상관 없다는 이야기이다. 마구 뿌려서 최대한 많은 사람이 써야 하드웨어가 많이 팔린다. DK의 가격은 더더욱 낮추고, 아니 무료로 더 주어도 될 것 같다. 손해를 보더라도. 또한 SDK의 보완에 집중해야 한다. 어쩌면 하드웨어 자체보다 더 중요할 수도 있겠다는 생각을 한다.