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