프로그램 아키텍쳐/소프트웨어공학

개발 문서화의 필요성

본클라쓰 2010. 6. 26. 17:06

 

"코딩에 투자하는 시간을 줄이는 것이 프로젝트에 성공한다!"

 

개발에서 문서화는 매우 중요하게 인식되지만 다양한 의견을 수렴해 보면 문서화에 대해 부정적인 시각이 많은 것도 사실이다.

 

보통 설계 문서와 프로젝트가 끝난 후의 문서, 결과물의 상태가 어긋나는 경우가 대부분이다. 극단적으로 보자면 주석문과 코드가 다른 경우도 있는데 이는 프로그래머가 코드를 변경하면서 주석문을 수정하는 것을 소홀히 하기 때문이다.

 

대부분의 개발자들은 설계부터 구현까지 이르는 시간 간격이 지나치게 커 정착 코딩을 하기 시작했을 때 요구사항이 변경되어 다시 설계해야 하고, 결국 '재설계'에 투자하는 시간이 부족해 설계를 건너뛰게 되고, 그러다 보니 재설계가 부족해 코드 작성에 드는 시간이 증가하여 문서화에 실패한다.

 

하지만 프로젝트의 성공과 추후에 있을 유지보수나 확장성을 위해서는 문서화가 반드시 필요하다. 과거의 폭포수 방식이 주장하는 완벽한 문서화 및 설계는 현실 세계에서 힘든 것이 사실이고, 그렇다고 프로토타입만으로 개발을 하다보면 문서화에 소홀해지는 것도 사실이다. 하지만 완성도와 성공을 위해선 문서화는 필요하고, 어떤 방식으로 문서화를 하는가는 생각해 볼 만한 문제이다.

 

 

문서화의 실패를 방지하기 위해서는 설계와 코딩의 간격을 줄이는 방법으로 문서를 만들면서 코딩을 하는 것을 추천한다. 

 

단순히 프로젝트 전반기에 설계하고 프로젝트 후반기에 코딩하라는 말로 해석한다면 문서화에 실패하게 된다. 문서를 만들면서 코딩을 하면 '코드에 손을 대기 전에 먼저 생각을 해 본다'는 점이 가장 큰 장점이다. 설계가 충실한 코드는 코드 자체를 작성하는데 드는 시간이 짧아진다.

 

따라서 문서를 작성한 후 코드를 수정하는 것이 바람직하다. 또한 코드에 붙는 주석일 경우 배포하기 전에 수정 이력 등을 관리하는 것이 좋다.