소프트웨어 개발 조직은 프로세스와 시스템에 의한 자율적이고 투명한 방법이 필요합니다. 그런데 전통적이고 관료적인 관리 방법도 사용하지 않고 효율적인 프로세스와 시스템도 사용하고 있지 않는 조직에서는 개발자들이 어떻게 일을 하고 있는지 잘 파악안되곤 합니다.
물론, 놀고 있는 개발자를 찾아내고자 이 글을 쓰는 것은 아닙니다. 개발자들은 스스로 자신이 해야할 일을 찾아내고 스스로 관리해야 합니다. 물론 개발자에게 업무와 이슈가 할당되고 자신에게 주어진 일을 해야 하지만 이것이 다가 아니고 많은 일들은 스스로 해야만 회사가 경쟁력을 갖출 수 있습니다.
그러기 위해서는 효율적인 프로세스와 시스템을 갖추고 있어야 하고 문서화도 잘 해야 합니다. 그러다보면 누가 얼마나 많은 일을 했는지 자연스럽게 드러나게 됩니다. 거꾸로 들키지 않고 일을 하지 않기도 어렵습니다.
개발자들이 얼마나 많은 일을 했는지 다음을 보면 알 수 있습니다.
- SCM 사용기록 통계
- 소스코드 라인수
- 문서 갱신 기록
- 다른 개발자의 코드를 리뷰한 기록
- Bug Track System 사용 통계
- 보고한 이슈
- 할당된 이슈
- 해당 기간 동안 해결한 이슈
- 댓글 수
- 리뷰 기록
- 리뷰 실시 기록
- 리뷰 참석 기록
- Wiki 작성 기록
- 문서관리시스템 업데이트 기록
물론 이 기록들을 점수를 매겨서 누가 더 열심히 일했는지 절대로 알 수는 없습니다. 같은 소스코드 라인수라고 해도 서로 난이도가 다르고 버그를 똑같이 고쳐도 10분 걸리는 버그가 있는가 하면 한달동안 고쳐야 하는 버그가 있기 때문입니다. 따라서 평가에 직접적인 기준으로 삼는 것도 위험합니다.
개발자들은 이러한 시스템을 통해서 자신이 하는 작업들이 항상 기록에 남고 별도의 관리를 하지 않아도 항상 모니터링할 수 있습니다. 이러한 방법이 매일 해야 하는 일을 일일이 관리하는 것보다 훨씬 효율적입니다.
일안하고 숨어서 딴짓하는 개발자를 찾아내는 것은 그냥 부수적인 효과일 뿐입니다.
다르게 말하자면, 개발자는 항상 스스로 일을 찾아서 더 많은 일을 해야 한다는 느낌이 들기도 해요.
답글삭제결국에는 회사를 위해서 개발자는 희생하라 그런 느낌도 많이 들구요.
안녕하세요. 구차니님
답글삭제제 생각에는 회사와 개발자들은 희생하고 이용하고 하는 관계라기 보다는 서로에게 의지하고 돕고 같이 나아가야 하는 동반 관계라고 생각합니다. 누가 일을 열심히 하나 감시하기도 어렵고, 자율적으로 스스로 해나갈때 가장 효율이 높습니다. ^^