자신의 기술에 관심과 애정을 가져라소프트웨어 개발을 잘하려는 관심과 애정이 없다면, 그 일을 하는 것에 아무 의미도 없다자신의 일에 대해 생각하면서 일하라모든 개발 과정에서 매일, 자신이 내리는 모든 결정을 지속적이고 비판적으로 평가해보는 것이다.절대로 기계적으로 일하
어설픈 변명을 만들지 말고 대안을 제시하라!우리는 자신의 능력에 대해 자부심을 가질 수 있지만 실수나 무지 같은 단점에 대해서도 정직해져야 한다.누구나 실수는 한다! 실수를 저지르거나 잘못된 판단을 내렸다면 변명을 하지말고 정직하게 인정하고 해결안을 제안하도록 노력하라
프로그램을 개발하는 중에 지식을 중복해 넣는 경우가 많다 그렇게 된다면 애플리케이션이 완성되기 전부터 유지보수의 악몽이 시작될 것이다.소프트웨어를 신뢰성 높게 개발하고 개발을 이해하고 유지보수하기 쉽게 만드는 유일한 길은 DRY원칙을 따르는 것이다DRY - 반복하지 마
모든 장인들은 기본적인 훌륭한 도구들을 몇 개 갖고 자신의 여정을 시작한다.실용주의 프로그래머로서 우리의 기본 재료는 나무나 철이 아니고 지식이다.우리가 지식을 저장하는 최고의 포맷은 \*\*일반 텍스트\*\*라고 믿는다사람이 직접 읽고 이해할 수 있는 형태의 인쇄가능
완벽한 소프트웨어는 만들 수 없다.길지 않은 컴퓨터 역사를 통틀어 어느 누구도 완벽한 소프트웨어를 만들지 못했다.여러분이 최초가 될 것 같지도 않다.정직한 거래를 보장하는 최선의 해법 중 하나는 계약이다.버트란드 마이어는 아이펠이라는 언어를 만들면서 계약에 의한 설계
삶은 멈추지 않는다. 우리가 작성하는 코드도 마찬가지이다.현대의 미친 듯이 빠른 변화 속도에 맞추기 위해서는 가능한 느슨하고 유연한 코드를 작성하기 위해 노력해야한다. 그렇지 않으면 코드는 금세 낡고 수정하기 어려워져 기억 저편으로 사라져 버릴 것이다.이 챕터에서는 되
코딩은 기계적인 작업이 아니다.프로그램이 정확하고 생산적으로 작동하기 위해 사려 깊은 생각과 판단을 통한 결정이 필요하다.그렇지 않은 코드는 우연에 맡기는 프로그래밍으로 생산된 코드이다. 코드가 작동은 하지만 왜 작동하는지 설명을 못한다.이 챕터에서는 프로그래머가 코딩
프로젝트를 시작하기도 전에 기본원칙을 정하지 않는다면 망할 수도 있다.요구사항을 수집하지 말고 채굴하라.요구사항은 대게 프로젝트의 초기에 이뤄진다.요구사항이 지면에 놓여져 있는 경우는 드물다.요구사항은 최대한 일반적 진술로 만들고 나머지 정책에 대한 정보는 개발자에게
이 챕터는 팀 전체에게 실용주의 기법들을 어떻게 적용할수 있는지에 이야기한다.팀 전체가 깨진 창문을 용납하지 않아야 한다.단단히 통제되는 팀이라도 자기네 프로젝트가 심각하게 변화하는 것에 대해 둔감할 수 있다.모든 사람이 적극적으로 환경변화를 감시해야 한다.애초에 합의