새 프로젝트를 만들었는데 소프트웨어에 대해서 설명하는 문서가 없다면, 이 소프트웨어는 과연 제대로 동작할 수 있을까?

소프트웨어 엔지니어가 어떤 문제에 직면했을 때 사용하는 workflow 를 들여다보면 아래와 같다.

  1. 문제를 이해하려고 시도한다.
  2. 찾아볼 만한 모든 곳에서 기존 해결책을 검색한다.
  3. 운 좋게 해결책을 찾는다면, 그 해결책이 효과가 있음을 직접 검증한다.
  4. 찾은 해결책을 운영 환경에 반영한다.

이것을 개발자 루프(devloper loop) 라고 하며,

성공적인 프로젝트에는 이러한 각 단계에 따라 개발자를 안내해 주는 문서가 있다.

이는 문서가 곧 하나의 기능이기 때문이다.

실제로 문서는 프로젝트에서 대부분의 사용자가 상호작용 하는 첫 번째 기능이다.

왜냐면 우리가 가장 먼저 찾는 기능이기 때문이다.

그렇다면 왜 우리는 업무 우선순위에서 문서화를 누락하는 경우가 생길까?

개발자 루프만큼이나 중요한,

문서 작성자 루프(writer loop)가 있다는 사실을 이해하지 못할 때가 많기 때문이다.

문서 작성자 루프는 우리가 코드를 작성하는 방법과 비슷하다.