실용주의 프로그래머 1
실용주의 철학
- 실용주의 프로그래머는 직면한 문제 너머를 고려한다.
- 실용주의 프로그래머는 자신이 하는 모든 일에 책임을 지며, 프로그젝트가 방치된 채로 끝장나는 것을 지켜보지 않는다.
- 실용주의 프로그래머는 변화를 두려워하지 않는다.
- 실용주의 프로그래머는 자신이 일하는 맥락을 이해하며, 자신의 소프트웨어를 훌륭하게 만들고자 한다.
- 실용주의 프로그래머는 넓은 기반 지식과 경험을 가지기 위해 끊임없이 배운다.
- 실용주의 프로그래머는 타인과 유연하게 소통하고자 한다.
당신의 인생이다.
이 업계는 매우 다양한 기회를 준다. 주도적으로 행동해서 그 기회를 잡아라
고양이가 소스 코드를 삼켰어요
약점을 보이는 것에 대한 두려움이 가장 큰 약점이다.
자신의 행동에 책임을 지며, 전문가답게 정직하고 솔직하게 처리해라. 자신의 능력에 자부심을 가져도 좋지만 실수나 무지 같은 단점도 인정해야 한다. 팀원들에게 신뢰를 받아야 하며, 책임을 지고 대책을 세워서 제시해라.
소프트웨어 앤트로피
깨진 유리창 이론은 소프트웨어에도 적용된다. 나쁜 설계, 잘못된 결정, 형편없는 코드를 방치하지 마라. 일단 고칠 시간이 없더라도 주석 처리하거나, 메시지를 표시해라. ‘깨진 창문은 없어야 한다.’
돌맹이 수프와 삶은 개구리
무언가를 처음부터 크게 시작하려면 여러 절차와 자원이 필요하며, ‘시작 피로’가 발생한다. 무언가를 만들고, 사람들에게 보여주고 그들이 경탄하게 해라. 계속되는 성공에 합류하기란 쉽다. 미래를 살짝이라도 보여주면 사람들은 도와주기 위해 모여들 것이다. 큰 그림에 주의를 기울이며 주변에서 무슨 일이 벌어지는지 늘 살펴보라.
적당히 괜찮은 소프트웨어
실제로 완벽하게 품질을 통제하기는 어렵다. 소프트웨어는 사용자나 미래의 유지 보수 담당자 아니면 자기 자신이 마음의 평화를 유지하기에 괜찮을 정도면 된다.
‘적당히 괜찮은’ 이라는 표현이 너절하거나 형편없는 코드를 의미하지는 않는다. 사용자의 요구사항, 기본적인 성능, 보안 기준을 모두 충족하되 사용자가 만족스러운지를 직접 판단하게 해야 한다. 그러니 품질을 요구사항으로 만들어라. 멋지고 휘황찬란한 제품을 1년 뒤에 만드는 것보다, 조금 부족해도 오늘 당장 만들어지는 편이 낫다. 사용자는 이를 직접 만져보고 더 나은 해결책에 도달할 수 있을 것이다.
완벽하게 훌륭한 프로그램을 과도하게 장식하거나 지나칠 정도로 다듬느라 망칠 필요는 없다.
지식 포트폴리오
지식에 대한 투자가 언제나 최고의 이윤을 낸다.
지식과 경험이야말로 가장 중요하고 날마다 쓰이는 전문가 자산이다. 지식 포트폴리오 관리는 투자 포트폴리오 관리와 매우 유사하다.
- 주기적인 투자
- 다각화
- 리스크 관리
- 싸게 사서 비싸게 팔기
- 검토 및 재조정
모르는 것을 발견하면, 답을 찾기 위해 도전해라. 다른 사람과 이야기하면서 개인 네트워크를 구축할 수 있을 것이다. 그리고 가장 중요한 것은 읽거나 듣는 것에 대해 비판적으로 생각하는 것이다. 자신의 지식과 도그마가 유일한 답이라고 주장하는 광신도를 조심하라.
- 왜냐고 다섯 번 묻기
- 누구에게 이익이 되나
- 어떤 맥락인가
- 언제 혹은 어디서 효과가 있을까
- 왜 이것이 문제인가
소통하라
여러 입장에서 소통해야 한다. 소통을 잘하기 위해서는 청중을 알아야 한다. 피드백을 모아야 한다. 질문을 기다리지 말고 먼저 물어보라. 말하고자 하는 것이 정확히 무엇인지 생각해 내라. 상대가 무엇을 원하는지 알았다면 원하는 것을 이루어 주자.
때와 전달하는 스타일을 골라야 한다. 그리고 멋지게 전달하기 위한 수단을 준비해야 한다. ‘보기 좋은 떡이 먹기도 좋다.’ 독자가 문서 초안에 참여하도록 하며, 다른 사람들의 말을 경청하고 그의 말에 응답해라.