가역성(Reversibility)은 변경하거나 선택한 뒤 이전 상태로 돌아가거나 다른 선택으로 옮길 수 있는 성질이다. 소프트웨어 작업에서는 처음의 결정을 영구적인 것으로 고정하지 않고, 바꿀 길을 설계하는 기준이 된다. YAGNI로 아직 필요하지 않은 기능을 미루면서도 이후의 변경 경로는 살펴볼 수 있다. (실용주의 프로그래머, 조언 18)
돌아갈 길을 만들기
- 버전 관리로 원고와 코드를 기록하고, 변환 전 파일을 남겨두는 방법부터 적용할 수 있다. 백업이 있다면 실제로 복원할 수 있는지도 확인하자.
- 웹사이트 도구를 고를 때는 작성한 글과 첨부 파일을 꺼낼 수 있는지 살펴보자. 이 문서에서는 도구를 떠나는 연습을 제안한다. 자료 몇 개를 다른 프로그램으로 옮겨 열어보면 이동에 필요한 조건을 알 수 있다.
- 되돌리기 버튼이 모든 행동을 취소해주지는 않는다. 이미 다른 사람이 내려받은 파일이나 출력한 종이까지 회수할 수 있다고 가정하면 안 된다. 어떤 상태를 어디까지 복원하는지 밝혀야 한다.