7장 실질적인 무관용
- 버그 우선순위
제품 개발 과정 중에 버그를 보자마자 고치는 팀도 있고 개발 주기 마지막까지 미뤄두는 팀도 있다.
빠른 버그 수정은 불확실성을 줄여주기 때문에 훨씬 좋은 전략이고 다음 2가지 원칙에 따른다.
1. 개발하는 동안 버그를 찾을 수 있는 과정(테스트, 코드 리뷰, 배포)을 계속 반복
2. 무엇보다 버그 수정 우선순위가 높다.
개발 중에 계속 버그를 고쳐야 프로젝트 마감 일정을 정확하게 예측할 수 있다!
미뤄두면 버그가 얼마나 많이 남아있는지 수정에 얼마나 걸릴지 감을 잡기 힘들다.
- 디버깅할 때의 마음가짐
버그를 피할 수 없는 것으로 받아들이고 두려워하지 말자는 입장이 있고
완벽함을 위해 노력하는 버그 무관용 입장이 있다.
가장 생산성이 좋은 마음가짐은 두 양극 단의 사이인 실질적인 무관용이다. 무관용에 가깝되 실용주의를 가미한 것.
버그 없는 소프트웨어를 목표로 최대한 노력하고 도구와 기법을 전부 동원해야 한다. 버그가 빈틈 사이로 빠져나왔다면 여기에서 교훈을 얻어 다시는 재발하지 않게 할 수 있는 모든 것을 다해야 한다.
도구와 기법에는 jira 같은 이슈 관리 시스템, 코드리뷰, 페어 코딩, 로그 수집 시스템(로그를 수집해서 쉽게 검색할 수 있는) 등이 있을 것 같다.
모든 문제에 대한 원인을 가차 없이 파헤쳐야 하지만 목표에 도달하지 못했다고 자책하거나 책임 소재를 따져서도 안된다. 어떤 버그는 피할 수 없다는 것을 알고, 버그가 있더라도 소프트웨어가 최대한 견고하게 실행될 수 있게 만들어야 한다.
완벽함에는 도달할 수 없겠지만 제대로만 한다면 완벽함에 굉장히 근접할 수 있다.
98%의 완벽함에서 100%의 완벽함으로 가기위해서는 98%에 도달하기 위한만큼이 더 필요하다는 말이 있다.
- 처리해야하는 버그가 굉장히 많을 때 쓸 수 있는 방법
버그 대청소 : 하루, 1주일 혹은 한 이터레이션 동안 팀 전원이 다른 일은 제쳐두고 버그만 잡는다. 너무 길게는 좋지 않다.
특수부대 : 실력좋고 노련한 팀원들로 구성된 소규모 팀을 조직해 한정된 시간 안에 품질 문제를 해결한다.
'개발' 카테고리의 다른 글
모바일 API 디자인 참고 사항 (0) | 2018.04.04 |
---|---|
클린 코더 - 1장 프로의 마음가짐 (0) | 2017.10.20 |
실용주의 디버깅 - 1부 문제의 핵심 (2) | 2016.10.17 |
객체 지향 설계 원칙 5가지 (0) | 2016.07.10 |
리눅스 /bin/sh^M: bad interpreter 에러 (0) | 2016.07.04 |