본문 바로가기

Process & Project/Book

[지식] 조엘 온 소프트웨어를 넘어서

MORE JOEL ON SOFTWARE(조엘 온 소프트웨어를 넘어서)
카테고리 컴퓨터/IT
지은이 조엘 스폴스키 (지앤선, 2009년)
상세보기


<목차>
첫째마당 사람다루기
둘째마당 미래 프로그래머들에게 드리는 조언
세째마당 디자인 충격
넷째마당 큰 프로젝트 관리하기
다섯째마당 프로그래밍 조언
여섯째마당 소프트웨어 사업 시작하기
일곱째마당 소프트웨어 사업 경영하기
여덟째마당 소프트웨어 배포하기
아홉째마당 소프트웨어 다듬기


"조엘 온 소프트웨어"

이 책에 대해서 주위 개발자들에게 많은 이야기를 들었었다.
개발자들의 필독서 정도는 아니더라도, 읽어보면 도움되거나 공감되는 내용들이 많다고...

"조엘 온 소프트웨어"의 2번째 판으로, "조엘 온 소프트웨어를 넘어서" 라는 책이 나왔다.

"조엘 온 소프트웨어"를 먼저 읽지 않고, 본 책을 먼저 읽고 아래와 같이 정리한다.

  1. "첫째마당 사람다루기"의 중요 포인트
    • 세가지 관리 방법
      1. 명령과 통제 - 군대와 같이 명령 및 복종을 통한 관리
      2. ECON 101 - 외인 동기를 이용한 관리(성과급...)
      3. 일체감 - 조직이 추구하는 목표와 일체감을 느끼게 하는 방법(동기 부여와 같은 내면 동기
  2. "둘째마당 미래 프로그래머들에게 드리는 조언"의 중요 포인트
    • 전산학과 항색들이 반드시 배워야 할 것
      1. 글쓰기 - 타인을 설득하기 위해서는 글쓰기가 필수!!! (문서화 능력이 필수로 요구됨. 개발만 잘해도, 남에게 어떻게 표현할 것은가? 답은 글쓰기. 즉, 문서화)
      2. C 배우기 - 언어의 강력함과 구조 이해를 위해서는 C가 필수(포인터!!!)
      3. 미시경제학 - 비즈니스의 기본을 이해해야 더 가치 인정 받음
      4. 프로그래밍 심화 과정 - 프로그래밍 심화 과정을 통해 조금이라도 고수가 되어야...
      5. 인턴 경험 - 본인의 경력과 연관된, 회사 입사전의 예비 경험
      6. 그 외 (전산학 이외 과목도 중요하게, 개발이 인도로 간다는 걱정을 버리는 것)
  3. 세째마당 디자인 충격
    • 선택 = 골치 ([리우] 선택을 많이 요구하면, 사용자가 힘들어 진다. Simple is Best)
    • 사용성이 다는 아니다  - [리우] 사용성이 좋은 것이 최고는 아니라는 말에는 공감이 가나, 비즈니스의 특성이나 분야에 따라 이것은 참이 될 수도 있고, 거짓이 될 수 있다고 본다.
  4. 넷째마당 큰 프로젝트 관리하기
    • 다대다 시장 ("세상에 표준이 단 하나 존재하는 척하더라도 아무도 표준과 비교해서 테스트할 방법이 없기 때문에 이 표준은 진짜 표준이 아님. 플라통이 꿈꾸던 이상이며 오역이 난무하는 세계."->브라우저의 웹 표준 관련 내용)
    • 상호 운영성! 정말 중요하다... 오피스 버전별 파일 개수만 봐라~ 
  5. 다섯째마당 프로그래밍 조언
    • 일정
      1. 그 일을 할 개발자만이 제대로 예측할 수 있다.
      2. 버그를 발견하면 바로잡고, 디버깅에 걸린 시간을 원래 소요 시간에 반영
      3. 초기 예측 시간을 줄이라고 관리자가 개발자를 압박하지 못하게
      4. 일정은 장난감 블록 상자 (넣을 수 있는 양이 한정되어 있으므로, 중요도로 양을 제한)
    • 헝가리언 표기법을 제대로 사용 (사용할 변수의 타입이 아닌 의미로 이용하는 것이 중요 -> 코딩 표준에... 이것을 반영해야 하는데... 대부분이 변수 선언 시, 타입으로 변수명 지정)
  6. 여섯째마당 소프트웨어 사업 시작하기
    • 개발 추상화 - 개발자가 해야 할 업무, 그 외 영업, 마케팅에서 해야 할 업무등을 명확히 구분하여 정의해야 제대로 된 사업이 가능
    • 제대로 된 사람을 뽑아서 제대로 일할 수 있는 환경을 구축
  7. 일곱째마당 소프트웨어 사업 경영하기
    • 업무 환경에 많은 고려를... [리우]: 대부분의 사람들이 이거를 투자 또는 불 필요한 비용이라고만 생각함. 제대로 된 환경이 제대로 된 peer review난 pair programming을 더욱 성공적으로 할 수 있게 한다.
    • 단순함을 좀더 심미적으로 접근 (단순하다고 성공하는 것이 아님, 결국 사용자들이 원하는 무엇인가가 제공되어야 함.)
  8. 여덟째마당 소프트웨어 배포하기
    • 제품 가격 - 제품 세분화 등으로 매출 극대화를 할 수 있으나, 고객은 단순하지 않다. 결국 고객도 구매 시, 능동적으로 사고하여 대응한다.
  9. 아홉째마당 소프트웨어 다듬기
    • 5 Why - 도요타에서 접근하는 방식으로 문제의 근본적인 원인이 무엇인지를 해결하기 위한 방법
    • 우선순위 (우선순위 정하기 게임이 상당히 재미있어 보이는군) - 개발 시, 우선순위를 관련자들끼리 모두 협의한 후, 개발을 진행 (비용과 시간은 고정되어 있으므로 모두가 공감하는 최 우선순위로 접근)

해당 블로그 내용의 일부는 현재의 IT 환경이나 한국 문화에 적합하지 않는 부분이 일부 존재한다.
그러나, 상당수 많은 부분이 매우 공감된다.

추가로, 개발자들이 개발 외적인 부분, 사업이나 경영에 관련된 내용도 상당히 담고 있어, 비즈니스에 대한 이해에도 상당히 도움이 된다.

자~ 이제 거꾸로 1편("조엘 온 소프트웨어")을 읽어 볼까~


PS) 옮긴이가, 주석을 상당히 자세히 잘 해 놓아서 이게 무슨 의미지 했던 내용들을 이해하는데 상당히 도움이 된다. 추가로 개인의 경험을 쓴 부분도 있는데, 저자의 의도를 파악하는데 조금이라도 참고가 되어, 옮기는데 고생을 많이 한 흔적을 볼 수 있었다.