실용주의 프로그래머 (The Pragmatic Programmer)
2022.04.06
9장. 실용주의 프로젝트
실용주의 팀은 작다. 구성원이 대략 10 ~ 12명 이하여야 하고, 구성원이 추가되거나 빠지는 일은 드물어야 한다. 모두가 서로 잘 알고, 신뢰하며, 의존해야 한다. (p.387)
팀 전체에 실용주의 기법들을 어떻게 적용시킬 수 있는지 ?
맥락의 중요성 : 유행하는 것이 아니라 실제로 잘 맞는 것을 사용하라. 잘 맞는 것 같은 좋은 부분만 유지하고 나머지는 낭비나 비용일 뿐이므로 버리면 된다. (p.388)
만병통치약은 아무 병도 못 고친다 : 어떤 특정한 방법론에서 가장 좋은 부분만 가져다가 적절히 조정하여 사용해야 한다. 인기 있는 방법론만 좇지 말고, 다른 것들로도 눈길을 돌려야 한다. (p.389)
진짜 목표 : 진짜 목표는 작동하는 소프트웨어를 제공함으로써 사용자가 즉각적으로 새로운 일을 할 수 있게 되는 것이다. 모든 목표가 그렇듯 계속 올바른 방향을 바라보는 것이 중요하다. 사용자가 필요로 할 때마다, 사업적으로 배포가 의미 있을 때마다 배포하는 것이다. (p.391)
버전관리, 회귀 테스트, 전체 자동화
단위테스트, 통합테스트, 유효성 평가 및 검증, 성능테스트, 테스트를 테스트하기, 철저한 테스트
마지막으로 테스트에서 가장 중요한 개념을 밝히고자 한다. 인간 테스터가 버그를 찾았다면 더는 인간 테스터가 그 버그를 만나서는 안 된다. 해당 버그를 확인할 수 있게 자동화 테스트를 수정해야 한다.
왜냐햐면 그런 일은 앞으로 다시 일어날 것이기 때문이다.
(~ p.400)
버전관리, 가차 없는 테스트, 전체 자동화라는 세 기둥이 있다면 여러분의 프로젝트에 필수적인 견고한 기반이 생긴 것이다. (p.401)
개발자로서 우리의 목표는 사용자를 기쁘게하는 것이다.
소프트웨어는 사업 가치를 달성하기 위한 수단일 뿐이다. (p.402)
여러분의 직함이 명목상으로는 "소프트웨어 개발자"나 "소프트웨어 엔지니어" 비슷한 이름일지 몰라도 진정한 여러분의 직함은 "문제 해결사"다. 우리는 문제를 해결한다. (p.404)
자신의 코드만 좋게 보고 동료들의 코드는 깎아 내리는 편견을 갖게 된다. 다른 사람의 코드를 존중해야 한다. 개발자 사이의 황금률("남에게 대접받고자 하는 대로 너희도 남에게 대접하라.")과 상호존중이라는 기반이 꼭 필요하다. (p.405)
사람들이 코드에 붙은 여러분의 이름을 보고 그것이 튼튼하고 잘 작성되었으며 제대로 테스트되었을 뿐 아니라 훌륭히 문서화되었을 것이라고 기대하도록 만들자. (p.406)