문서를 쓰기 시작하니 개발 속도가 오히려 빨라졌다
문서를 잘 쓰는 개발자는 아니었다.
오히려 예전에는 문서가 왜 필요한지 명확하게 설명하지 못하는 쪽에 가까웠다.
문서를 작성한다고 해서 기능이 하나 더 만들어지는 것도 아니고,
버그가 해결되는 것도 아니고,
성과가 눈에 보이는 것도 아니었다.
그래서 누군가
문서 작성하면 뭐가 좋아요?
라고 물어보면 선뜻 답하기 어려웠다.
좋은 것 같긴 한데 설명하기는 어려운 그런 느낌이었다.
그냥 기록하는 습관부터 시작했다
처음부터 거창한 문서를 작성한 것은 아니었다.
기능을 만들기 전에 간단하게 적어두는 수준이었다.
- 왜 이 기능이 필요한가
- 어떤 문제가 있는가
- 어떻게 해결할 것인가
- 예상되는 예외 상황은 무엇인가
처음에는 단순히 생각을 정리하기 위한 메모에 가까웠다.
그런데 신기하게도 문서를 작성하다 보면 머릿속에 있던 막연한 고민들이 문제로 보이기 시작했다.
생각만 할 때는 흐릿했던 것들이 글로 적는 순간 구체화됐다.
그리고 하나씩 체크리스트로 만들다 보니 해결해야 할 일들이 명확하게 보였다.
소통이 훨씬 쉬워졌다
문서가 생기고 나서 가장 크게 느낀 변화는 협업이었다.
이전에는 설명을 여러 번 해야 했다.
회의에서 이야기하고,
메신저로 다시 설명하고,
작업하다가 또 설명했다.
그런데 문서가 있으면 이야기가 달라진다.
문서를 기준으로 대화할 수 있기 때문이다.
"이 부분은 어떻게 생각하세요?"
"여기 적혀있는 예외 케이스는 고려된 건가요?"
"이 요구사항은 다른 기능에도 영향이 있을 것 같아요."
대화가 감이 아니라 기록을 기반으로 이루어지기 시작했다.
자연스럽게 의사결정도 빨라졌다.
다른 기능과의 연결이 보이기 시작했다
개인적으로 가장 좋았던 점은 인과 관계가 보이기 시작했다는 것이다.
개발을 하다 보면 기능 하나만 존재하는 경우는 거의 없다.
회원가입 기능은 인증 기능과 연결되고,
인증 기능은 권한 시스템과 연결되고,
권한 시스템은 관리자 기능과 연결된다.
코드만 보고 있으면 이런 연결 관계를 한눈에 보기 어렵다.
반면 문서는 다르다.
어떤 기능이 어떤 기능과 연결되어 있는지,
왜 이런 의사결정을 했는지,
변경 시 어디에 영향이 갈 수 있는지 정리할 수 있다.
덕분에 기능을 관리하는 것도 훨씬 수월해졌다.
물론 실패한 문서도 많았다
솔직히 말하면 모든 문서가 도움이 된 것은 아니다.
한 번도 다시 열어보지 않은 문서도 많다.
작성만 하고 방치된 문서도 있었다.
그런 문서들은 결국 쓰레기가 된다.
그래서 문서를 많이 작성하는 것 자체는 중요하지 않다고 생각한다.
중요한 것은 나중에 다시 찾아볼 수 있는 문서를 만드는 것이다.
지금도 문서를 작성할 때면 항상 생각한다.
6개월 뒤의 내가 이 문서를 읽는다면 도움이 될까?
그 기준이 생긴 이후부터는 문서를 작성하는 방식도 조금씩 달라졌다.
나중에는 기록이 되었다
시간이 지나면서 예상하지 못했던 장점도 발견했다.
예전에 작성했던 문서를 다시 읽게 된 것이다.
당시에는 별생각 없이 남겼던 기록들이 꽤 많은 정보를 담고 있었다.
왜 이런 선택을 했는지,
어떤 문제를 겪었는지,
무엇을 고민했는지.
심지어 내가 그 시기에 어떤 일을 하고 있었는지까지 보였다.
문서는 기능을 설명하는 문서이기도 했지만 동시에 나의 개발 일지이기도 했다.
돌아보면 코드보다 문서가 더 많은 기억을 남겨준 것 같다.
마무리
문서를 쓰기 시작하면서 개발이 갑자기 빨라진 것은 아니다.
하지만 고민이 정리됐고,
협업이 쉬워졌고,
놓치는 일이 줄어들었다.
그리고 시간이 지나서는 내가 어떤 문제를 해결하며 성장했는지를 보여주는 기록이 되었다.
지금도 새로운 기능을 만들기 전에는 먼저 문서를 연다.
좋은 문서는 개발을 대신해주지는 않지만,
어떤 개발을 해야 하는지 더 명확하게 보여주는 것 같다.