Joel on Software

지난주에 갑자기 인터넷 서점에서 책을 질렀다.
그 중에 꼭 보고 싶었던 조엘 온 소프트웨어를 한참 보고 있다. 볼 시간이라곤 출근, 화장실 정도지만 벌써 2/3정도는 읽었다.
소문대로 재미있는 내용이 많다. 주로 소프트웨어 관리에 집중되어 있는데 원본이 개인 블로그이다 보니 이야기를 정말 스스로 원하는 대로 풀어나간다.(양키 센스나 유머는 아직 100% 이해하기 어렵지만 말이다.)



특히 인상에 남는 부분이 Eric Raymond의 Art of Unix Programming에서의 내용과 자신의 생각을 말하는 부분이었는데, 뭐, 둘의 출발이나 현재 하고 있는거나 이것저것 완전히 다른 환경에 있는 사람이니 생각이 같기는 어렵겠지.

난 Raymond의 책에서 정말 감명받았다. 유닉스의 철학인 '작은 것이 아름답다'나 대학 때 배웠던 'Divide & Conquer', '한가지 목적에만 충실하라', 그리고 '데이터에 집중하라' 등등의 멋진 통찰들이 내가 평소 하던 프로그래밍의 사고나 방법을 더욱 튼튼하고 유연하게 했다.
물론 joel도 그러한 것들에는 충분히 동의하고 raymond의 통찰에 찬사를 보냈지만 이미 그 둘은 말했듯이 너무 다른 상황에 있었던지라 유닉스의 간결함이 독선이나 특정 사용자층(특히 프로그래머)에게만 있다는 joel의 생각이 조금은 씁쓸했다.
옆집 할머니가 사용할 수 있는 프로그램이 필요하다는 joel의 생각도 맞다. 물론 나 또한 그런 프로그램이 더더욱 많아야 한다고 생각한다. 그렇다고 raymond의 글을 문장 그대로 해석해야 하나 싶다. 예를 들면 '침묵은 금이다'라는 unix에서의 신조는 아무 메세지를 내보내지 않고 결과가 나오기까지 기다리는(cp *.tar ~/ 와 같이) 방법을 꼭 아니다라고 할 것은 아니고, 해당 사용자가 납득할만한 간결한 메세지만을 보여주는 것으로 이해할 수 있지 않나 싶다. Windows환경에서 돌아가는 프로그램 중에서 정말 승질나게 메세지를 자꾸 내보내는 프로그램들을 심심치 않게 찾을 수 있다. 요새 내가 하고 있는 일(거의 끝났지만)중에 한국 K모 사에서 쓰는 WinCE Application이 있는데 프로그램 동작 도중 서버에 업데이트할 새 프로그램이 발견되면 메세지를 내보낸다. 종전 방법은 "새 프로그램이 발견되었습니다. 업데이트하시겠습니까?"라는 메세지와 yes, no를 선택할 수 있는 Dialog를 내보내고 yes면 또 "종료합니다. 다시 시작하세요"라고 메세지를 보내며 창이 닫힌다. 사용자는 프로그램을 끝내고 다시 시작해야 한다. 그렇다고 종료 안하고 다른 부분을 사용할 수 있는 것도 아니다. 그래서 바꾼 내용은 업데이트할 것이 발견되면 "업데이트 할 내용이 있어 프로그램을 다시 시작합니다." 라는 메세지와 함께 프로그램을 종료하고 업데이트를 진행한다. 다른 것은 도대체가 필요한 것을 모르겠다. 결국 가는 길을 하나이고 별다른 선택을 주지 않는다면 사용자는 실수 하고 싶어도 할 수도 없으니까. 간단한 예지만 사용자의 실수를(No를 선택해서 업데이트를 하지 않고 이후를 진행하고 업데이트는 잊어버리는) 시스템(프로그램 동작)으로 막는 것을 바란다.
뭐, Raymond의 책에선 Windows를 비아냥대는 부분이 여럿있으나 누구나 그렇지 않나 싶다. Raymond가 무슨 성인군자도 아니고. ㅎㅎ (그렇지만 Unix freak들 사이에선 unix가 불교의 선과 같은 깨닭음의 경지가 있다는 식의 유머들이 있다. 재미있는 문화다.)
joel이야 처음부터 지금까지 Packaging programming이어서 특정 회사만을 위한 프로그래밍이 정말 궁금하다고 하면서도 나름대로 정리, 언급하는데, 딱 그 분야인 SI에서 일하고 있는 나로서는 우울함이 울컥울컥.. OTL..


P.S 블로그를 다시 시작한지 얼마 되지 않아 글쓰는 것이 예전같지 않고 매끄럽지 않은게 자꾸 끊기고 하는데, 요새 글을 쓸 때 좀 더 쉽고 편한 표현을 사용하려고 하다보니 더더욱 그렇다. 음... 쉬운 표현이 꼭 좋지는 않다는 생각이 방금 이 글을 다시 읽어보면서 느꼈다. 그냥 예전 감각을 살려서 써야지.. =_=

댓글 없음:

댓글 쓰기