3부

조엘 따라하기 : 두서 없는 생각, 하지만 놓쳐서는 안 될 이야기

29장. 릭 채프먼이 아둔함을 찾습니다.

TBD

 

30장. 이 나라에서는 개가 무슨일을 하죠?

자기 개밥을 먹는다는 말은 컴퓨터 분야에서 쓰는 기발한 표현으로, 자기회사 제품을 실제로 사용해 보는 과정을 가르킵니다.

우리는 제품 개선에 전력을 다할 생각입니다. 투자자금을 모으려고 전국을 누비는 대신, 고객 의견에 귀를 기울이고 개밥을 먹으면서 비즈니스에 집중할것입니다.

 

31장. 말단이면서도 해내기

전략1:혼자라도 하십시오.

 

전략2: 입소문의 힘을 이용하십시오.

 조엘 테스트 중 많은 항목은 팀이 비협조적이더라도 혼자 실천할 수 있습니다. 그 중 성공적인 항목은 분명히 나머지 팀원에게 퍼지게 되있습니다.

 

전략3: 우수한 인재를 모으십시오.

 우수한 인재가 여러분 팀에 합류하도록 홍보하십시오.

개선할 의지와 능력이 있는 사람을 찾아 같은 편으로 만드십시오.

 

전략4: 고문관은 봉쇄해야 합니다.

 고문관이 두 주를 꼬박 들여 맏을 수 없을 만큼 지저분한데다 절대 안 돌아갈 코드를 내놓을 때가 올 것입니다. 코드를 버리고, 15분정도 시간을 들여 처음부터 다시 짜버리고 싶은 유혹이 밀려올 테죠. 그러나 참아야 합니다. 몇달 동안 이 멍청이를 무력화할 완벽한 기회입니다. 그냥 내버려 두고, 코드에서 생기는 버그를 계속 보고하십시오. 그러면 보고할 버그가 없을 때까지, 몇달 동안은 버그 수정 작업에 매달릴 수 밖에 없겠죠. 다시 말해 몇달 동안은 다른 개발자에게 더 이상 아무런 피해도 입힐 수 없게 됩니다.

 

전략 5: 방해 받지 않는 곳으로!

하루 대부분은 텅 비어 있고 (아무도 찾아낼수 없는)회사 식당으로 토트북을 쳥겨가서 일하십시오. 회의실을 하루종일 예약하고 거기서 코드를 짜십시오. 혼자 조용히 작업하면 얻을수 있는 성과를 정확히 기록해 두십시오.

나중에 팀장이 '내일까지 반드시 끝내야 하는 업무'를 들먹이며 무엇이 필요하냐고 물으면, 그 성과 자료를 내 놓으십시오. 아마 팀장은 당장 사무실을 찾아 줄 겁니다. 그리고 머지않아 일년 내내 그 정도 생산성을 얻으려면 어떻게 해야 하는지를 궁금해 하기 시작할 겁니다.

늦게 출근해서 늦게 퇴근하십시오. 팀 전체가 늦게 출근하는 분위기라면, 일찍 출근하십시오.

다른 사람이 출근해 방해를 받기 전 2시간 동안에 훨씬 더 많은 일을 해치울수 있습니다.

아웃룩이나 메신져 클라이언트를 뛰워놓지 마십시오.

 

전략 6: 꼭 필요한 인물이 되십시오.

 조직에 긍정적으로 공헌하는 사람이 아니라면, 이제껏 제안한 전략은 어느것도 먹혀 들지 않습니다. 코드를 잘 짜지 못한다면, 코드를 '짜고 있어야' 할 시간에 보그 데이터베이스에 신경 쓴다고 욕먹기 십상입니다. 프로세스에 집착하느라 업무를 달성하지 못한다는 낙인은 개발자 경력 관리에 치명적이죠.

 

 

32장. 이야기 둘

치고 빠지기식 관리 행태 : 시시콜콜한 내용까지 간섭하다가 오랫동안 그냥 방치해 버리는 관리 행태

관리가 우수한 기술 회사와 엉망인 회사

근본적인 차이점은 직원을 신뢰하고 책임을 위임하느냐, 아니면 직원을 믿지 못하고 감시해야할 관리 통제 대상으로 여기느냐에 있습니다.

마이크로 소프트 VS 주노

 

33장. 빅맥 대 제이미는 요리사

미스터리: 세계에서 가장 큰 IT컨설팅 기업이 가장 일을 못하는 이유는?

극적인 성공으로 순식간에 두각을 드러낸 컨설팅 기업이 유성처럼 빛났다가 보통 기업으로 쪼그라드는 이유는?

 

빅맥 : 모든 체인점마다 똑같다

비밀은 두꺼운 영업 지침서

바보 멍청이라도 따라할수 있도록 자세히

 

천재 요리사 제이미 올리버

올리버가 어느날 요리 TV프로에 싫증이 나서 레스토랑을 연다라고 상상

-> 음식이 맛있어 레스토랑은 연일 만원

-> 매출을 올리기 위해 요리사를 더 고용 -> 분점도 몇개 낸다

-> 여기서 부터 문제가 발생. 기술 용어로 확장성 문제

-> 이익을 더 남기기 위해 싼 요리사를 고용해서

-> 음식맛을 유지하기 위해 정확한 규칙을 준다.

-> 전체적으로 맛이 떨어지는 음식

 

1. 재능이 있어야만 잘 할 수 있는 일이 있습니다.

2. 재능을 확장하기는 어렵습니다.

3. 재능을 확장하려는 시도로 평범한 사람이 따라할 수 있게 비범한 자가 규칙을 미리 세워둡시다.

4. 결과로 얻어지는 제품은 품질이 매우 낮습니다.

 

 

34장. 세상에 쉬운일은 없습니다.

구현에 없서 설계를 해야 합니다.

 

 

35장. NIH신드롬을 옹호하며

NIH : Not Invented Here 자신이 직접 개발하지 않은 기술에 대해 배타적인 성향을 보이는 행태

NIH 신드롬을 보이는 사람은 조직 이익을 추구하기 보대는 개인성과를 과시하려는 편협한 인간임에 틀림없습니다.

 

but 마이크로소프트 엑셀팀은 "의존성을 찾아서 없애라"

진짜 정말로 우수한 팀에서 뛰어난 프로그래머와 일한다면, 사실 따 사람 코드는 버그투성이인 쓰레기에 불과하며, 이런 코드로는 정시 출시가 불가능합니다.

 

무슨 일이 있어도,핵심 비즈니스 기능은 직접수행하라.

핵심 비즈니스 기능과 목료를 파악한 수 직접 수행하십시오. 소프트웨어 회사에서는 우수한 코드가 성공하는 길입니다.

 

 

36장. 전략 메모 I : 벤 앤 제리 대 아마존

벤앤제리 : 수익을 창출하면서 유깆거으로 천천히 설장

아마존 : 대규모 자금을 투자해 빅뱅식 급속 성장, 몸집 부풀리기

 

두 모델간 차이점 : '경쟁업체가 있는 사업인가?'

네트워크 효과 : 고객이 많을 수록 더 많은 고객을 확보할 수 있는 상황,  ICQ, AOL 메신져 채팅등

감금효과 : 사용자가 다른 서비스나 제품으로 전환하지 못하게 하는 비즈니스 특성, 메일 주소, 새로운 워드 프로세서로의 변경등

 

벤엔 제리                                                      아마존

탄탄한 기존 경쟁 업체가 많음,                          신기술, 초반에는 경쟁업체가 없었음

네트워크 효과 없음, 감금효가 약함                    네트워크효과큼, 감금효과 강함

자금의 거의 필요하지 않음                               자금이 엄청나게 많이 필요함

단기간에 손익분기점에 도달함                         손익분기점에 도달하기까지 수년이 걸릴수도있음

기업 문화가 중요함                                          기업문화 정립이 불가능함

실수는 귀중한 교훈이 됨                                   실수를 간과하기 쉬움

성장하는데 오래 걸림                                       매우 급속하게 성장함

성공할 가능성이 충분함                                    백만장자가 될 가능성은 있으나 아주 작음

크게 손해볼 확률은 적음                                   실패할 확률이 큼

 

최악의 실수

최악의 실수는 벤 앤 제리식 회사로 갈지 아마존식 회사로 갈지 결정하지 못하는 겁니다.

 

 

37장. 전략 메모 II : 닭이 먼저냐, 달걀이 먼저냐

플랫폼용 소프트웨어가 많지 않으면 아무도 플랫폼을사지않고, 플랫폼 사용자가 많지않으면 아무도 소프트웨어를 만들지 않죠. 이런 고르디우스의 매듭과 비슷합니다.

IBM-PC 나왔을때 운영체제는 3가지나 됬다

PC-DOS, XENIX, UCSD P 시스템

기존 CP/M운영체제가 유일, CP/M은 비쌋지만 워드 프로세스를 쓰기위해 구입

DOS 1.0은 CP/M하위 호환성 모드를 내장하고 있었다.

즉 DOS가 인기 있었던 이유는 처음부터 소프트웨어가 있었기 때문이다.

 

왜 우리는 윈도우3.x으로 바꿨는가, 1.0, 2.0도아닌 왜 3.x인가?

기능1: 화면을 메모리 위치에 직접 써 -> 80386에 가상 메모리 블럭사용

기능2:DOS프로그램은 칩을 독점한다고 가정 -> 80386에 가상86모드를 이용

즉 80386상에서 돌아가는 윈도우 3.x는 여러 "DOS프로그램"을 동시에 실행할 수 있는 첫 버전이었습니다.

 

PayMyBills.com

인터넷 대금 청구와 결제 문제

기존 프린트된 고지서를 웹상에 올려야 하는 시스템 설비 투자 필요

-> paymybills가 그 중간 단계를 해결

-> 비자 가맹은행이 고지서를 프린터해서 paymybills로 전달

-> 내용 스캔 웹사이트에 올려

-> 고객은 어떤 업체 고지서라도확인할수 있으므로 서비스에 만족

-> 조만간 비자 가맹은행에서 '시스템에 바로 접근할수 있게' 제안

-> 하위 호환성 모드는 결국 사라질것

 

액티브 네임즈 activeNames

세상 사람 전부가 메일 클러이언트에 작은 프로그램을 추가한다는데서 출발

사용자 이름으로 자기네 중앙서버에서 주소 검색-> 메일 전송

but 뭐가 먼저인가...

 서비스를 이용하려면 프로그램을 설치해야 하고 그 서비스를 사용하려면 다른 사람들이 activenames에 가입되어 있어야 한다. 근데 내가 왜 프로그램을 설치해야 하는거지? 어디서 부터 시작해야 하는거야....

 

 

38장. 전략 메모 III : 나 다시 돌아갈래!

경쟁사에서 고객을 빼앗아 오려면, 진입장벽을 이해해야 한다.

기존 경쟁업체가 있다는 사실 때문에 지레 겁먹을 필요는 없습니다.

사용자가 제품을 바꾸게 하는 유일한 전략은 걸림돌 제거 입니다.

걸림돌 목록을 검토한 후 전 항목에 대한 해결책을 강구

흔히 기존 독점에서 새 독점으로 넘어가는 과정에는 '전환점'이라는 놀라운 순간이 있습니다.

 

 

39장. 전략 메모 IV : 블로트웨어와 80/20 미신

블러트웨어 bloatware : 제공하는 기능에 비해 상대적으로 많은 디스크 공간과 메모리를 요구하는 소프트웨어

메모리 값은 떨어진다.

기능을 더 추가할수있다.

 

80/20 법칙

사용자중 80%는 기능중 20%만을 사용한다.

 

하지만 자신이 결정적으로 중요하게 여기는 기능이 없으면 구매하지 않는다.

기기능이 20%안에 있다고 할수 있는가

 

40장. 전략 메모 V : 오픈소스 경제학

거시 경제학과 미시 경제학

대체재 substitutes와 보완재 complements

대체제는 한 제품이 너무 비쌀때 소비자가 사게되는 다른 제품

닭고기는  쇠고기의 대체제입니다.

보완제는 특정 제품과 함게 구매하게 되는 제품입니다. 기름과 자동차는 보완재입니다.

컴퓨터하드웨어와 운영체제는 보완재입니다.

모든 조건이 동일할 경우 보완재 가격이 하락하면 제품 수요가 증가합니다.

컴퓨터가격이 떨어지면 구매자가 는다. 컴퓨터를 쓰려면 운영체제가 필요하다.

운영체제 수요가 는다. 즉 운영체제는 가격이 상승할 수도 있다는 의미

 

보완재 가격이 하락하면 제품 수요는 증가합니다.

 

따라서 똑똑한 회사는 자사 제품의 보완재를 일반 재화로 만들려고 애씁니다.

 

 IBM사는 PC아키텍처를 설계하면서 특수 부품이 아니라 기성 부품을 사용했습니다. 그리고는 부품 사이 인터페이스를 IBM PC 기술 참조 매뉴얼에 자세하게 기록했습니다. 왜냐구요? 다른 제조 업체 참여를 유도하기 위해서입니다. 인터페이스만 잘 맞추면 PC부품으로 쓰일수 있었습니다.

IBM은 PC시장의 보완재인 애드인시장을 일반 재화로 만들려고 했습니다. 이런 노력은 매우 성공적이었죠. 저렴한 애드인 부품은 PC수요증가를 의미합니다.

 

 마이크로 소프트사가 PC-DOS운영체제를 IBM에 라이센스할  때, 마이크로소프트 사는 독점사용권을 빼앗기지 않으려고 매우 주의를 기울렸습니다. 마이크로소프트사는 PC시장을 일반재화로 만들려는 목적이었습니다. PC수요증가는 보완재인 MS-DOS 의 수요 증가로 이어지죠.

 

 올해 마이크로소프트 사는 XBox로 같은 시도를 하고 있습니다. XBox는 전용 하드웨어가 아니라 일반 재화인PC하드웨어를 사용합니다. 매년 하드웨어 가격은 떨어지므로, XBox도 가격 하락 흐름에 등승할거라는 계산이지요. 하지만 불행하게도 이런 의도가 오리려 화가 딘듯합니다. PC하드웨어 가력은 이미 떨어질 만큼 떨어져서, XBox제조 가역이 마이크로소프트 사가 기대한 만큼 빠르게 떨어지지 않았습니다. 또한 XBox전략중에 하나로 한번 작성한 코드를 모든 비디오칩에서 돌릴 수 있는 그래픽 라이브러리인 DirectX를 썼습니다. 여기서 목표는 비디오칩을 일반재화로 만드는것입니다.

 

기사1. IBM이 오픈소스 소프트웨어 개발에 수백만 달러를 투자하다.

IBM은 IT컨설팅 회사로 변모를 시도하기 때문, IT컨설팅은 기업용 소프트웨어의 보완재입니다. 따라서 IBM은 기업용 소프트웨어를 일반재화로 만들 필요가 있으며 최선의 방법으로 오픈소스를 지원하는 겁니다.

기사2. 넷스케이프가 웹브라우저 소스를 공개한다.

브라우저와 서버는 보완재 관계, 서버판매를 늘리기위한 방편

기사3. 트랜스메타 사가 리누스를 고용해서 리눅스를 손보다.

트랜스메타사는 CPU회사입니다. CPU의 전형적인 보완재는 운영체제입니다.

기사4. 썬사와 HP사가 지미안을 고용해 그놈을 손보다.

썬사와 HP사는 하드웨어 회사입니다. 둘다 유닉스 계열 장비를 만드는 회사죠. 테스크탑에서 돈을 볼기 위해서는 테스크탑 컴퓨터의 보완재인 윈도우 운영체제를 일반 재화로 만들어야 합니다.

썬사는 스타오피스를 사서 소스를 공개했습니다. 소프트웨어를 일반재화로 만든후 하드웨어를 팔아 돈을 벌기 위해서죠.

기사5. 썬사 자바를 개발하다 새 바이트코드 시스템은 한번 작성하면 어디서나 실행이 가능하다.

 

 

41장. 머피의 법칙이 난무했던 한 주

TBD

42장. 마이크로소프트 사가 API전쟁에 진 이유

개발자, 개발자, 개발자, 개발자

 사람들이 운용체제를 사는 이유는 응용프로그램을 돌리기 위해서입니다. 따라서 가장 쓸모 있는 운영체제는 가장 쓸모있는 응용프로그램이 많은 운영체제입니다.

따라서 운영체제를 팔아야 한다면, 소프트웨어 개발자가 해당 운영체제 상에서 돌아가는 소프트웨어를 개발하도록 독려하는 일이 가장 중요하다는 결론이 나옵니다.

 

애플사와 썬 사가 컴퓨터를 못 파는 이유

기업용 테스크탑과 가정용 켐퓨터 시장에소는 명합도 못내밀고 있다.

왜? 애플과 썬 컴퓨터에서는 윈도우 프로그램을 돌릴수 없기 때문입니다. 맥에 비해서 윈도우용 테스트캅 소프트웨어가 훨씬 많습니다. 상대적으로 맥 사용자가 겪어야 하는 불편함은 매우 큽니다.

그래서 윈도우 API는 마이크로소프트 사의 중요한 자산입니다.

 

마이크로소프트사에 존재하는 양대 세력

레이먼드 첸 진영과 MSDN매거진 진영

 레이먼드 첸 진영은 하위 호환성을 지상목표로 삼은듯하다.

응용프로그램이 바보같은 짓을 하거나 문서화되지 않은 현상을 이용해 구현했더라도 OS를 업그레이드 할때 문제가 생기기지 않도록 한다.

레이몬드 첸진영은 한번 작성한 프로그램은 어디서나 돌게 만들어서 개발자 편의성을 추구해야 한다고 믿습니다.

레이몬드 첸 진영은 모조건 통합입니다.

 

 MSDN진영은 항상 사용자에게 복잡한 신기술을 권합니다.

MSDN진영은 개발자가 활용할 수 있는 강력한 코드 기반을 제공해서 개발자 편의성을 제공해야 한다고 믿습니다.

 

하위호환성 신념을 포기한 마이크로소프트 사

MSDN진영 이겨

결과로 비주얼 베이직 .NET이 VB60과 하위호환성이 없습니다.

.NET 1.1 과 1.0은 하위호환성이 없다.

Windows API=> WinFX로 대체

 

"벤처가 웹 기반 소프트웨어를 짜는 데는 그만한 이유가 있습니다. 데스크탑 소프트웨어는 재미가 없으니까요. 테스크탑 소프트웨어를 짜려면, 마이크로소프트 사를 위해 시장 조사를 대신하고 있었다는 사실을 깨달게 됩니다. T.T

 

자동 변속기가 최고

자동화된 메모리 관리=>생산성 향상

 

런타임 하나로 만사 해결

 

EOF

 

Posted by 영웅기삼
,