logo MSJO.kr

프로젝트 PM, 간섭과 관리

2020-03-22
MsJ

소프트웨어 개발에 있어서 PM의 역할은 팀원의 관리가 가장 중요한 데 문제는 간섭과 관리를 잘 구분하지 못하는 데 있다. 즉 최대의 자유를 보장하되 적절한 방법으로 프로젝트팀원을 잘 관리하는 것이 프로젝트 성공의 비결이라고 할 수 있다. 그러나 개인적인 경험에 의하면 대부분 PM(Project Manager)이 간섭을 관리로 착각하는 경우를 자주 보아왔다. 실제적인 프로젝트 관리를 하는 것이 아닌 PM 자신만의 스타일로 간섭을 한다는 것이다. 더욱 심각한 것은 PM이 프로젝트 및 팀원을 관리해야 하는데 이 행위를 PM 스스로 간섭으로 생각하고 실제 개발에 무관심으로 일관하는 경우이다.

PM은 프로젝트의 시작과 끝을 동시에 볼 수 있어야 한다. 이것은 실력 있는 프로그래머만 가능한 일이다. 기간의 제약은 있겠지만 PM은 팀원의 도움 없이도 혼자서 최종 실행 파일을 만들어 낼 수 있어야 한다. 실제 레퍼런스가 없는 PM은 프로젝트를 결코 성공적으로 이끌지 못한다. 즉 PM은 모든 것이 가능하나 현 프로젝트에서 관리에 집중하고 있을 뿐 이여야 한다. 프로젝트팀원의 3분의 2 이상이 실제 프로그래머로 구성되어야 한다. 제안서에 나열한 팀원은 의미가 없다. 모든 역량을 실행 파일에 집중해야 한다. 어떠한 건물이 무너지고 난 후에는 그 외형적인 디자인에 대하여 궁금한 사람은 없다.

데이터베이스에서 3초 이상 걸리는 결과를 애플리케이션에서 아무리 튜닝해봐야(코딩을 잘해봐야) 3초 미만으로 줄이지는 못한다. 수학적인 모델도 중요하지만, 업무용 애플리케이션은 데이터베이스 설계가 프로젝트의 성패를 좌우한다고 봐도 무방하다. 이런 경우 PM이 데이터베이스에 무지하다면 다른 것을 가지고 관리의 화두로 삼아 간섭으로 이어진다. ‘MySQL은 소형, SQL Server는 중형, Oracle은 대형 시스템에 적용한다.’라고 생각하는 구석기 시대의 개발자가 지금도 주변에 너무 많다. 필자의 경험으로 본다면 현시점에서 SQL Server에 최고의 점수를 주고 싶다. 막연하게 Oracle과 Java에 올인하는 국내 개발환경은 미래를 위해서라도 개선할 필요가 있다.

또한 개발자라는 타이틀을 얻기 위해서는 수학적 능력이 뒷받침되어야 한다. 아이디어와 실제 구현이 이어지기 위해서는 기본적으로 자료구조와 알고리즘, C/C++(메모리와 운영체제)를 기반으로 하는 로직 훈련이 기초 선형대수학과 더불어 갖추어야 할 기본 덕목이어야 한다. 포장기술로 덮는 것은 한계가 있으며 언젠가는 드러나기 마련이다. 갈수록 프로젝트 발주자는 어려운 과제를 던질 것이며 이것을 수주하는 개발자 그룹은 당연히 이러한 고난도의 문제를 해결할 때만 살아남을 것이다. 예를 들면 빅데이터 시대에 데이터베이스 기술자는 기존의 RDBMS, NoSQL뿐만 아니라 시계열 데이터베이스를 다루는 실력도 충분히 갖추어야 한다.

세상에는 자신의 실력을 객관적으로 볼 수 있는 개발자는 거의 없다. 개발자는 풍부한 레퍼런스와 더불어 이론적 지식도 충분히 갖추고 있어야 한다. 어느 하나라도 치우치거나 부족하면 사기꾼이 될 가능성이 매우 높다. 특히 PM 중에 이러한 사기꾼이 많다. 능력이 안 되면 프로젝트를 수주하면 안 되는 것이다. 자신 또는 자신이 관리하는 팀원에게서 프로젝트 결과물(실행 파일)이 나와야 하며 이 기반이 될 때만 이 그룹은 성공할 수 있다. 시작과 끝을 매 순간 실행 파일과 더불어 같이 볼 수 있어야 한다. 일단 프로젝트를 수주하는 데 목적이 있는 건지 이 프로젝트를 완성해야만 하는 건지 PM은 자신의 태도를 분명히 밝혀야 한다.

프로젝트의 시작 단계를 보면 이미 성패는 정해져 있다. 결국 경제와 양심의 문제이겠지만….

Reference

Prεv   Nεxt
Content
Search     RSS Feed     BY-NC-ND