결정 기록(Decision Record)은 무엇을 선택했는지와 그때의 조건, 선택의 결과를 함께 남기는 짧은 문서다. 소프트웨어에서는 중요한 설계 결정을 개별 문서로 기록하는 아키텍처 결정 기록(Architecture Decision Record, ADR)이 널리 참고된다. 마이클 나이가드는 한 결정마다 맥락, 결정, 상태, 결과를 적는 형식을 제안했다. (마이클 나이가드의 ADR 설명)
- 맥락에는 선택지를 제약한 조건을 적는다. 예를 들어 작은 전시 웹사이트에서 CMS를 쓰지 않기로 했다면 담당 인원, 수정 빈도, 서버 운영 여건을 함께 적어야 나중에 판단을 다시 살필 수 있다.
- 결과에는 얻은 것과 감수한 것을 모두 적는다. ‘파일로 관리해 이전하기 쉽다’와 ‘비개발자의 수정에는 별도 절차가 필요하다’는 같은 결정의 서로 다른 결과일 수 있다. 기각한 대안도 이유가 남아 있으면 같은 논의를 처음부터 반복할 필요가 줄어든다.
- 제안된 결정과 채택된 결정은 상태로 구분한다. 나중에 판단을 바꿀 때는 이전 기록을 지우기보다 새 기록과 연결해 무엇이 달라졌는지 드러낸다.
- 버전 관리가 파일의 변화 자체를 보관한다면 결정 기록은 그 변화의 이유를 설명한다. 작은 마크다운 파일로 코드나 디자인 원본 곁에 둘 수 있으며, 인수인계 때는 당시 조건이 지금도 유효한지 확인하는 자료가 된다.