본문 바로가기
Homo Architect

항상 청결을 유지하라

by javauser 2010. 11. 17.

소프트웨어 프로젝트가 어려운 부분은 기술의 난이도에 좌우되는 것보다는 기존에 가지고 있던 것들을 어떻게 관리하느냐에 따라 달라집니다. 예를 들어, 많은 프로젝트에서는 전체 상황을 보여주는 현황판을 벽면이나 화이트보드에 붙여서 관리를 합니다. 여기에는 일정과 주요한 현황들을 깔끔하게 정리하여 적어놓습니다. 하지만, 이러한 작업은 프로젝트 초반에 한번만 발생되며, 이후 프로젝트를 진행하면서 변경이나 추가가 되지 않는 경우를 많이 보았습니다. 일단 현황판이라고 만들어놓으면 이에 대한 지속적인 관리와 갱신이 이루어져야 그 자체로 의미가 있습니다. 한달 전이나 몇 개월 전의 상태를 그대로 둔다는 것은 이에 대해 아무도 관심을 가지지 않는다는 증거입니다.
 

Cubicle worker FAIL.  For the FDT (Face Down Tuesday) group.  Today this pose is known as planking.
Cubicle worker FAIL. For the FDT (Face Down Tuesday) group. Today this pose is known as planking. by slworking2 저작자 표시비영리동일조건 변경허락



이와 같이 처음에는 의욕을 가지고 많은 노력을 들여 만들어 놓은 영역들이 시간이 지남에 따라서 아무도 거들떠보지도 않고, 서서히 보기 좋지 않은 불필요한 장식으로 변해가는 것들이 프로젝트 내에는 많이 있습니다. 이러한 것들이 하나 둘씩 쌓이다 보면 이를 바라보는 사람 역시 이것에 대해 무시하거나 그 위에 전혀 다른 모습들을 추가하여 최종적인 모습은 처음에 의도했던 것과는 사뭇 다른 형태로 나타나게 됩니다. 이러한 상황을 잘 설명한 것이 깨진 유리창의 법칙입니다.

깨진 유리창의 법칙은 어느 빈민가 아파트에 유리창이 깨져있는 것을 본 지나가는 사람들이 그 아파트가 관리안되는 모습을 보면서 아무도 살지 않는다고 생각하여 돌을 던져 점점 그 아파트의 유리창들을 깨어서 사람이 살고 있음에도 불구하고 망가지는 모습을 보여주고 있습니다. 이는 우리의 일상 생활에서도 얼마든지 볼 수 있습니다. 거리에서 전봇대의 한 귀퉁이에 쓰레기가 놓여있으면 지나가던 사람들은 그 장소가 쓰레기가 위치하는 장소라고 인식하여 어느새 수북한 쓰레기 봉투가 놓여있는 것을 목격한 적이 있을 것입니다. 누가 쓰레기를 버리는 장소라고 말하지도 않고 써붙이지도 않았지만 많은 사람들은 이곳을 쓰레기가 위치하는 장소라고 인식해버립니다.


진행 중인 프로젝트나 유지보수가 진행중인 시스템에 접근해서 소스를 형상관리 서버로부터 받았을 때 해당 코드가 깨어져 있거나, 컴파일이 되지 않는 경우를 종종 경험합니다. 이러한 프로젝트에서 형상관리는 단지 소스의 집합소로만 사용될 뿐입니다. 소스를 변경하거나 작성한 사람은 자신의 컴퓨터에서 실행되는 것을 해당 구현에 대한 완성의 기준을 갖습니다. 통합은 이 프로젝트에서 고통이고, 코드에 대한 변경은 모든 신경을 곤두서게 하는 작업이 됩니다. 코드가 깨지는 현상은 프로젝트 관리에서 너무나도 위험하며, 관리자로서 가장 신경을 많이 써야 되는 부분입니다. , 가장 깨끗한 상태를 계속해서 유지해야 하는 지점입니다.


이러한 청결 상태를 유지시키는 방법은 다음과 같은 것들이 있습니다.

  • 처음부터 많은 노력을 들여서 만들기보다는 지속적으로 반복하여 완성하도록 하라.
  •  한 사람 이상이 공동으로 사용하는 영역에 대해서는 늘 관심을 쏟고 청결 상태를 점검하라.
  •  청결 상태가 유지되지 못하고 있다면, 그 원인과 해결 방법에 대해서 고민하고 공유하라.
  • CI(Continuous Integration) 도구와 같은 자동화 도구를 도입하여 사람의 노력을 최소화시켜라.
  • 자동화 도구를 도입했다고 하더라도 그 결과에 대해서는 항상 모니터링하라.
  • 쉽게 접근하고 사용할 수 있는 방법에 대해서 늘 고민하고 찾아라.
  • 사각지대에 위치한 영역에 대해서 관심을 쏟고 모두가 알 수 있게 노출하라.


항상 프로젝트에서는 새로운 것들을 만드는 영역이 더 급하고 크게 보일 수 있습니다. 하지만, 기존 것을 깨끗하게 유지하고, 개선시키는 작업은 더 급하지 않을 수 있지만, 더 중요합니다. 왜냐하면, 기존 것에는 그 동안의 프로젝트에 투입된 노력과 지식이 그 안에 담겨져 있기 때문에 이를 기반으로 새로운 가치와 기능을 더 빠르고 손쉽게 부가할 수 있기 때문입니다. 전혀 없는 상태에서 새로운 것을 만드는 노력보다는 기존 것이 있는 상태에서 그 위에 가치를 키우는 노력이 더 적게 들게 마련입니다. 그래서 항상 청결을 유지하는 것은 프로젝트 관리자의 중요한 역할 중의 하나입니다.

 

 

반응형