컴퓨터공부

파워 프로그래머 하루 일과

achivenKakao 2008. 3. 3. 22:58

파워 프로그래머의 하루 일과는 저의 하루 일과를 의미합니다. 파워 프로그래머는 회사에서 하루를 어떻게 보내는지 설명드리면서 효과적인 프로그래머의 하루 일과에 대해서 논하고자 합니다. 제가 설명드리는 프로그래머의 하루 일과는 솔루션을 개발하는 프로그래머에게만 해당되는 이야기입니다. 외주 및 SI 관련 프로젝트를 진행하시는 분들에게는 해당 사항이 없는 부분일 듯 합니다. 경험상 솔루션 개발할 때보다 외주 프로젝트에서 버그가 더 많았던 점들을 보아서는 효과적인 프로젝트 시간관리가 외주에서는 상당히 힘든 듯 합니다.


하루 일과라고 해서 초등학교 생활계획표처럼 하루를 24등분하여서 표시하지는 않습니다. 단지 회사에서 하루 일과 시간인 8시간동안 어떻게 시간을 배분하는지를 설명드리고자 합니다. 먼저 성격이 급하신 분들을 위해서 제가 설명한 프로그래머의 하루 일과를 요약하면 다음과 같습니다.


권장 프로그래머 하루 일과 시간 배분 ( 하루 일과 8시간 기준 )


1. 프로그래밍 : 50 %

2. 학습 : 20 %

3. 미래 프로그래밍 준비 : 20 %

4. 기타 회사 업무 : 10 %


프로젝트 특성 및 회사 특성별로 조정하였을 때의 프로그래머 하루 일과 시간 배분 ( 하루 일과 8시간 기준 )


1. 프로그래밍 : 50 % ~ 70 %

2. 학습 : 5 % ~ 20 %

3. 미래 프로그래밍 준비 : 5 % ~ 20 %

4. 기타 회사 업무 : 5 % ~ 20 %


이제 각각의 항목에 대해서 설명드리겠습니다.


1. 프로그래밍


프로그래머가 회사에서 가장 많은 시간을 할당해야 할 일 중에 하나 입니다. 하루에 몇 시간이나 프로그래밍을 하고 계신지요? 하루에 프로그래밍을 하시는 시간이 총 6시간을 넘어선다면 다소 무리한 일정으로 작업을 진행하고 계신 것 같군요. 일정을 조정하거나 팀내의 다른 분들과 일을 좀 더 나누어서 진행하시는 것이 좋을 것 같습니다.


하루에 너무 많은 시간 동안 프로그래밍을 하시면 자기 개발할 시간 및 미래 프로젝트에 대한 준비를 할 시간이 없으므로 조만간 자신의 체력 및 자신의 능력이 바닥날 것이고 오랜 기간 동안 프로젝트를 진행할 수 없게 되겠죠. 이에 하루에 적절한 시간만 프로그래밍에 할당하시고 그 이외의 시간에 아래에 설명드린 학습과 미래 프로그래밍 준비에 투자하세요.


외주 업무를 하시는 분들은 자신에 대해서 투자하실 만큼 충분한 시간을 회사에서 주지 않으므로 저의 주장과 환경면에서 상당히 거리가 있음을 다시 한 번 말씀드립니다.


2. 학습


현재 프로젝트에서 필요한 기술 및 관심있는 기술에 대해서 학습할 수 있는 시간을 하루에 적어도 1시간 정도 배정하세요. 하루에 1시간은 그리 긴 시간이 아니지만 이러한 학습을 1년 정도 꾸준히 하시면 많은 기술을 습득할 수 있고 이러한 기술 습득으로 현재 진행하는 프로젝트에 더 자신감을 가지게 되고 추가 프로젝트 진행을 더욱 원활하게 하여 줍니다.


꼭 현재 프로젝트에 필요한 기술만 학습하는 것이 아니라 현재 자기가 관심을 가지고 있는 기술 분야를 학습하므로 아래와 같은 효과를 가져 올 수 있습니다.


- 현재 프로젝트에서 다소 지쳐 있었을 경우, 새로운 기술의 습득은 활력소가 되어서 지친 머리에 새로운 활기를 불어 넣어 줍니다. 이러한 활기는 현재 프로젝트에 전이되어서 프로젝트 진행을 원활하게 하여 주는 윤활유와 같은 역할을 수행합니다.

- 현재 프로젝트가 재미있는 경우에는 학습하는 것이 다소 따분할 수도 있지만 새로운 기술을 익히는 것은 현재 프로젝트에 도움이 될 때가 많습니다. 학습을 꾸준히 하다 보면 프로젝트 초기의 기술력보다는 프로젝트 중간에 기술력이 더 향상되므로 현재 프로젝트의 설계 문제점 및 운영 방식의 문제점, 코드의 문제점을 깨닫게 됩니다. 학습을 하다보면 이러한 문제점들을 고치고 싶은 충동이 느껴지므로 좀 더 좋은 설계와 코드의 결과물을 내놓을 수 있는 좋은 기회가 됩니다.


저의 경험상 서버 프로그램을 개발 완료하여 베타 버전을 출시한 후 개발된 서버 프로그램과 전혀 다른 분야에 대해서 학습을 하는 중에 갑자기 개발된 서버의 문제점이 머리에 떠오른 경우가 종종 있습니다. 물론 이러한 점은 사람의 무의식의 역할 때문에 수행된 경우이기도 하겠지만 현재 프로젝트와 연관되지 않은 기술로 의식적인 전환이 있을 때에 무의식이 프로젝트에 있어서 더 많은 관심을 보이게 만들어 주는 듯 하기도 합니다. - 다소 난해하죠. 무의식을 활용하면 의식만 활용하였을 때보다 더 큰 일을 수행할 수 있습니다. -


3. 미래 프로그래밍 준비


학습과 동일한 이야기로 생각하실 수도 있지만 다소 다릅니다. 학습은 프로젝트와 관련이 없을 수도 있지만 "미래 프로그래밍 준비"는 다음 프로젝트와 관련이 있습니다. 다음 프로젝트를 진행하기 전에 어떤 기술을 사용하여야 할지 사전 학습 및 테스트, 그리고 스파이크 솔루션 등을 개발하는 작업이 "미래 프로그래밍 준비"에 포함되어야 합니다.


회사의 일과의 50% 이상은 현재 프로젝트 진행에 투자하고 나머지 중에서 20%는 미래 프로젝트 진행에 투자하라는 의미와 같습니다. 미래 프로젝트를 전혀 알지 못 하는 경우에는 "미래 프로그래밍" 준비를 프로그래밍과 학습에 50% 씩 배분하여 버리면 됩니다.


어느 정도 일정을 계획하는 회사에서는 하나의 프로젝트만 진행하지 않는 경우가 많이 있습니다. 또한 프로젝트 진행 계획이 년별, 분기별로 되어 있어서 프로그래머가 향후 어떤 개발을 해야 할지 어는 정도 알고 있는 경우가 있습니다. 대부분의 프로그래머가 프로젝트가 시작할 때 관련 기술 습득을 하는데 이러한 방법은 프로젝트 지연 요소로 작용합니다. 즉, 잘 알지 못 하는 기술을 프로젝트에 적용하여서 해당 프로젝트 일정에 맞추지 못 하는 경우가 많이 발생합니다.


이에 프로젝트를 진행하기 전에 관련 기술을 습득하고 테스트하여서 프로젝트를 준비하여야 합니다. 이러한 시간이 현재 프로젝트에 무리수가 될 수 있지만 한 번 이러한 진행을 하다 보면 미래에 대한 투자를 계속 할 수 있고 새로운 프로젝트에 대한 위험요소도 상당히 줄어들기 때문에 다음 프로젝트를 준비할 시간을 벌게 됩니다.


"미래 프로그래밍 준비"에는 각종 문서 정리도 포함될 수 있습니다. 새로운 기술을 단순히 습득하는 것이 아니라 이를 정리하여서 다른 분들에게 발표할 수 있는 자료를 만드세요. 그리고, 세미나를 개최하여서 자신이 습득한 기술을 발표하시면 그 기술이 그냥 사라지지 않고 회사의 프로젝트에 활용될 수 있는 가능성이 높아 집니다.


4. 기타 회사 업무


프로그래머가 회사에 소속되면 프로그래밍 이외에 다양한 추가 업무가 존재하게 됩니다. 즉, 회의, 주간업무보고, 결제, 월말결산 등과 같은 비 프로그래밍 일들을 수행하여야 하므로 이러한 시간도 프로젝트 기간에 잘 녹아 들어가 있어야 합니다. 하루에 8시간 일과가 있다고 해서 8시간을 모두 프로젝트에 투자할 수 없는 경우가 많으므로 기타 회사 업무 시간을 잘 계산하여서 프로젝트 스케줄에 반영하여야 합니다.


이상 제가 솔루션 개발하는 회사에 소속되었을 때의 개인 일과를 말씀드렸습니다.


프로그래머는 개인 작업을 주로 많이 하기 때문에 하루 일과 분배는 개인의 능력에 따라서 좌우됩니다. 다른 분들보다 좀 더 훌륭한 시간 분배를 하여서 현재 프로젝트를 원활하게 진행하고 미래에 대한 준비도 함께 하여야 회사와 프로그래머 모두가 윈윈하는 전략을 만들 수 있습니다. 이러한 일정을 잡지 못 한다면 회사의 책임도 있겠지만 프로그래머 자신의 책임도 있음을 간과해서는 알 될 것 같습니다.