2012년 8월 23일 목요일

소프트웨어 회사에서의 관리란?



소프트웨어 회사가 경쟁력을 가지려면 전통적인 관리와는 좀 다른 관리 방법이 필요하다.

첫째, 상하관계 탈피이다.

전통적으로 관리자는 윗사람이고 팀원들은 관리자의 지시를 따르고 관리자가 거의 모든 것의 결정권을 가지고 있다. 하지만 소프트웨어 회사에서 관리자는 기술적인 결정을 할 수 없다. 개발자 출신이라고 기술적인 결정도 하려 하는 경우도 있지만, 기술적인 결정은 개발자의 몫이다. 그리고 전사적인 중요한 기술적인 결정은 CTO나 회사의 최고 개발자들이 하는 것이다.

관리자는 위에서 지시하는 사람이 아니고 개발자들이 개발에 매진할 수 있도록 회의, 보고서 작성, 보고, 의견 조정 등 힘든 일을 도와주는 역할을 해야 한다. 물론 경험이 많은 사람들이 잘할 수 있는 일이기 때문에 평균 개발자보다는 나이가 더 많을 수는 있다. 그렇다고 하더라도 상하 관계보다는 개발자를 지원하고 경영자를 보좌하는 역할로서의 관리자가 더 필요하다.

둘째, 투명한 관리이다.

소프트웨어는 인류가 만들어낸 가장 복잡한 지식산업이다. 너무 복잡하고 이슈가 많기 때문에 모든 이슈를 시스템에 저장해서 관리하고 모두 투명하게 오픈하지 않으면 감당하기 어렵다. 버그, 기능, 프로젝트 일정, 개발 현황 등 모든 것은 한눈에 볼 수 있도록 해야 한다. 내용을 채우는 것은 개발자 및 전직원이지만 관리자는 이런 모든 정보가 빠짐없이 시스템화 되어서 제대로 공유가 되는지 확인을 해야 한다. 

경영자도 이런 시스템을 통해서 개발현황을 훤히 볼 수 있어야 하고 관리자는 시스템을 이용하여 보고서를 작성하여 시간을 절약할 수 있다.

셋째, 자율이다.

소프트웨어 개발은 관리자가 하나하나 시켜서 진행하기에는 너무 복잡하다. 그렇게는 일이 진행되지 않는다. 큰 그림에서는 PM이나 관리자가 파악하고 도와주지만 자세한 일은 개발자 스스로가 해야 할 일을 정하고 일정을 조정하고 해나가야 한다. 이렇게 일을 진행하더라도 혼자서 알아서 진행하는 것이 아니고 모두 이슈관리시스템에 기록을 하고 진행해야 한다.

개발자들이 윗사람이 일을 시키기만 기다리고 있다면 개발 프로젝트는 효율적으로 진행되지 않는다. 이슈관리시스템은 이런 자율적인 개발진행에 큰 도움을 준다. 일단 이슈가 등록되면 전사 이슈가 되어서 수많은 사람들의 의견을 더해서 이슈의 우선순위가 정해지고 진행 상황을 훤히 파악할 수 있다.


물론 전통적인 관리자의 모습에서 하루아침에 바뀌기는 어렵다. 하지만 소프트웨어 개발문화와 충돌이 있는 부분은 엄연히 존재하며 조금씩 바꿔나가야 할 부분이 있다. 큰형님처럼 보살펴주고 모든 것을 무한 책임지며 진행하고 도전적인 일정을 달성하기 위해서 무조건 쪼는 모습에서 조금씩 바꿔보자.



댓글 없음:

댓글 쓰기