개발자, 엔지니어, 리더



  관리자(2005-04-26 17:43:14, Hit : 1314, Vote : 303
 "조엘 온 소프트웨어"를 읽고



"조엘 온 소프트웨어"라는 블로그를 알게 된 것은 우연히 조엘테스트 라는 것을 들어보고
조엘의 홈페이지를 찾아감으로써 알게되었다.
조엘테스트 외에 몇가지 글들을 읽어보면서 공감에 공감을 더하는 것을 느꼈다.
사실 시간을 들여서 자신의 지식과 느낌을 나누는 사람이 있다는 것은 감사하게 느껴야
할 일이다. 영어를 한글처럼 편안하게 읽지 못하는 관계로, 그리고 생활에 바쁜 관계로
잊어버리고 살다가 "조엘 온 소프트웨어"의 한글화 소식을 듣고 출판되기만을 기다려왔었다.
출판되자마자 사서 읽어내려갔는데, 역시나 많은 훌륭한 이야기들을 접할 수 있게 되었다.

아래 내용은 "조엘 온 소프트웨어" 책에 대한 스포일러입니다.
책을 사서 처음부터 천천히 음미하며 읽으실 분들은 읽지 마세요.

--------------------------------------------------------------------------------------

* "더 나은 코드를 위한 12단계" - 조엘테스트
1. 소스코드 관리시스템을 사용하고 있습니까 ?
2. 한 방에 빌드를 만들어낼 수 있습니까 ?
3. 일일빌드를 하고 있습니까 ?
4. 버그추적시스템을 운영하고 있습니까 ?
5. 코드를 새로 작성하기 전에 버그를 수정합니까 ?
6. 일정을 업데이트하고 있습니까 ?
7. 명세서를 작성하고 있습니까 ?
8. 조용한 작업 환경에서 일하고 있습니까 ?
9. 경제적인 범위 내에서 최고 성능의 도구를 사용하고 있습니까 ?
10. 테스터를 별도로 두고 있습니까 ?
11. 프로그래머 채용 인터뷰 때 코딩 테스트를 합니까 ?
12. 무작위 사용편의성 테스트를 수행하고 있습니까 ?

* 명세서 작업의 중요성
기능 명세(Functional Specification) : 완전히 사용자관점에서 제품이 어떻게 동작할지를 기술
어떻게 구현했는지는 신경도 쓰지 않음. 기능에 대해 이야기하고, 화면, 메뉴, 대화상자와 같은
사용자 인터페이스 부품을 명세
기술 명세(Technical Specification) : 프로그램의 내부 구현을 기술, 자료구조와 관계형 데이타베이스 모델
과 프로그래밍 언어, 도구, 알고리즘 선택과 같은 항목을 다룸
--> 명세는 지속적으로 개정되어야 함

* 품질은 대상 소프트웨어의 속성에 따라 달라진다.
  사내용 소프트웨어는 적당한 정도의 품질만 만족시키면 된다.

* "쏘면서 움직여라"
  보병 전투에서 전략은 단 한가지다. 쏘면서 움직여라. 개인 화기를 쏘면서 적진을 향해 달려드는 겁니다.
  날아드는 총알 때문에 적이 머리를 들지 못하므로, 당신을 향해 발포할 수 없습니다.
  --> 매일 조금씩 움직여야만 합니다. 코드가 엉성하고 버그 투성이고 아무도 원하지 않는다는 사실은
  문제가 되지 않습니다. 늘 움직이면서 코드를 쓰고 버그를 지속적으로 잡아낸다면, 시간은 당신 편입니다.
  마이크로소프트사의 미래 방향을 알아내기 위해 차 잎으로 점치는데 온 시간을 다 쏟아붓는 회사는
  비틀거리게 마련이지요. 사람들은 .NET에 대해 너무 염려한 나머지 전체 아키텍처를 .NET으로 다시
  작성해야겠다고 결정합니다. 마이크로소프트 사는 당신을 향해 엄호사격 하면서 슬슬 접근해 올 수
  있지만 당신은 옴짝달싹할 수 없습니다.
  작은 회사를 운영한다면 쏘면서 움직이는 방법은 두 가지 사항을 의미합니다. 장기적인 안목을
  키워야 하며, 매일 조금씩 앞으로 나아가야 합니다.

* "자동으로 충돌보고서를 수집하세요"

* "결코 하지 말아야 하는 일 -- 코드를 모두 뒤집고 새로 작성하고자 하는 유혹"

* "회사를 처음 시작할 때 내려야 할 결정"
수익을 창출하면서 유기적으로 천천히 성장해 갈지(벤 앤 제리 사), 아니면 대규모 자금을 투자해
빅뱅식 급속 성장을 이룰지(아마존 사)에 대한 결정
벤 앤 제리 사 모델 : 목표를 제한하고 소규모로 출발하며, 오랜 시간을 들여 비즈니스를 구축
경쟁업체가 있는 상황
기업문화가 중요함
직원을 모집하기 위해 일하기 좋은 환경을 제공(과정 자체가 보상이 되도록 업무환경 개선)하거나
벼락 부자를 만들어준다고 약속하면 됨
일이 잘 풀릴 때도 있고 궂은 날도 있지만 크게 손해볼 일이 없음. 애초에 크게 투자하지 않았음.
아마존 사 모델 : 몸집 부풀리기(또는 땅 따먹기), 투자금을 가능한 많이 끌어 모아 몸집을 최대한
빨리 키운다, 경쟁업체가 없어서 고객을 최대한 많이 그리고 빨리 확보해 버리면 시장 진입장벽이
높아지므로 후발 경쟁업체가 뛰어들기 어렵다.
기업문화 정립이 불가능함
매우 급속하게 성장

* 닭이 먼저냐, 달걀이 먼저냐
플랫폼용 소프트웨어가 맍지 않으면 아무도 플랫폼을 사지 않고, 플랫폼 사용자가 많지 않으면
아무도 소프트웨어를 만들지 않죠.
--> 마이크로소프트의 DOS : 기존의 CP/M상의 많은 어플리케이션 존재, DOS는 CP/M 하위호환성 모드를
내장. 그러므로 DOS는 처음부터 소프트웨어가 있었음. 윈도우 3.x용 심시티에는 메모리 관련 버그가
있었는데, 윈도우 95 베타버젼에서 심시티가 돌아가지 않는 문제 발생함. 마이크로소프트 사는 버그를
찾은 후, 윈도우 95에서 심시티를 처리하기 위한 특별 코드를 추가.
--> 어떻게 하든 역호환성을 지원 --> 고객이 가려운 것을 수단과 방법을 가리지 않고 해결해 줌.
PayMyBills.com : 인터넷 대금 결제 시스템. 전기고지서가 아닌 회사것도 모두 받아서 스캐너로
읽어서 웹에 올림으로써 문제 해결. 사용자가 커지면 해당 회사에게 말해서 전기고지서로 시스템을
바꾸도록 종용.





공지   한 마디 [6]  관리자  2004/04/23 1316 508
34   고객지원을 하면서 느끼는 기쁨은...  관리자 2007/03/16 1625 507
33   프로젝트 리더로써 기쁨을 맛 보았을때.  관리자 2007/03/16 1622 494
32   이것만 해결하면 될 것 같은 마약  관리자 2006/10/01 1560 486
31   안정적이지 못한 조직에서는  관리자 2006/08/06 1204 473
30   "비굴클럽"을 읽고  관리자 2006/03/03 1103 369
29   혹시 IEToy에서 스마트로그인 기능이 안되면  관리자 2005/12/20 1953 491
28   코칭기법 : 하소연들어주기.  관리자 2005/11/26 1187 428
27   갑 또는 을  관리자 2005/11/26 1159 418
26   모듈의 독립성과 CallBack 함수  관리자 2005/10/19 1492 428
25   될때까지~~ 정신  관리자 2005/09/26 1204 458
24   자기 입맛에 꼭 맞는 리더를 기대해서는 안된다.  관리자 2005/09/08 1182 432
23   디버깅할 때 최적화 옵션과 어셈블러코드  관리자 2005/08/24 1224 409
22   소스코드가 나의 제어하에 있다고 느낄 때  관리자 2005/08/17 1273 465
21   팀장의 역할  관리자 2005/07/25 1496 436
20   코딩 중에 드는 개선사항 기록하기  관리자 2005/06/17 1287 428
19   사람 봐가면서 작동하는 보드  관리자 2005/06/08 1229 404
18   05' ETC Korea 전시회에 다녀와서  관리자 2005/05/20 1177 366
17   Embedded Target Board 자동 테스트하기  관리자 2005/05/02 1398 386
  "조엘 온 소프트웨어"를 읽고  관리자 2005/04/26 1314 303

1 [2]
 

Copyright 1999-2017 Zeroboard / skin by zero