프로젝트는 개발자 혼자 진행하는 외로운 싸움입니다.
무릇 개발자는 결과를 예상하고 그 결과가 나오지 않으면 여타 다른 것은 보이지도 들리지도 않고 그 문제를 해결하기 위해 모든 감각을 쏟기 마련입니다. 이러한 개발자의 본성을 지키고 높이는 방향으로 프로젝트를 진행하면 당연히 성공의 방향으로 가게 될 것입니다.
개발자는 차별성을 지닌 creator의 본성을 가지고 있습니다.
일반적으로 creator라고 하면 독특한 아이디어로 새로운 형태의 사물이나 콘텐츠, 지식등을 만드는 사람들을 일컫습니다. 개발자도 그러한 creator의 본성을 지니고 있습니다. 새로운 프로세스를 만들거나 기존 프로세스 또는 코드를 새롭게 바꾸는 것에 자신이 가지고 있는 능력을 최대한 발휘하고 부족할 시 필요한 지식을 습득하려 합니다.
또, 추가로 차별성을 추구하려고 합니다. 다른 사람들과는 다른 방식을 찾고 접근하려고 무던히 시도합니다. 만약 실패로 돌아간다면 동일한 방식으로 구현하겠지만 ,한 켠에 남아 또 다른 방식을 찾아보려고 합니다.

물론, 모든 개발자가 동일한 수준의 이러한 본성을 가지고 있지는 않습니다. 아주 높은 수준의 개발자도 있고 낮은 수준의 개발자도 있고 아예 이러한 본성을 따르지 않는 개발자도 있습니다.
이러한 본성이 아주 높은 수준으로 발현되는 개발자는 새로운 아이디어로 프로젝트의 내용을 풍부하게 만들고 오랬동안 해결되지 않는 문제들을 새로운 접근법으로 해결할 수 있습니다. 다만, 프로젝트 원래의 목적을 벗어나서 어렵게 만들기도 하고, 기존 규칙에 반기를 드는 경우도 있습니다. 대부분, 자기 주장이 뚜렷하여 팀간의 마찰이 생기기도 합니다.
이러한 본성이 중간 수준으로 발현되는 개발자는 정해진 범위 내에서 자신의 능력을 최대한 발휘합니다. 추상적인 프로세스를 구체화할 능력이 있고, 코딩시 막히는 부분은 스스로 알아서 헤쳐 나갑니다. 흔히 얘기하는 알아서 말없이 잘하는 스타일입니다. 하지만, 고객의 요구사항이 추상적일 경우 구체화하지 못하고, 심지어 고객과의 대화를 멀리합니다. 자신이 맡은 부분은 잘 하지만 타 팀에 대한 고려가 적어 가끔 스스로 찾아서 일을 하는 부분이 부족할 수 있습니다. 대체적으로 PM,PL 들이 선호하는 스타일로 정말 말없이 프로젝트를 문제 없이 끝내는 개발자입니다.
이러한 본성이 없는 개발자는 설계 문서에 대한 스스로의 재해석 없이 그대로 진행합니다. 그래서 설계담당자 또는 프로젝트 기획자 심지어 고객과 마찰이 발생하기도 합니다. 개발과정에서 막히게 되면 타 팀, 프로젝트 개발 툴, 개발 진행방식등에 대해 핑계를 댑니다. 스스로 방법을 찾으려 하지 않고 설계 문서를 탓하거나, 개발 툴의 문제점을 지적하거나, 다른 팀의 개발 일정과 능력을 탓하거나, 프로젝트 자체를 탓하기도 합니다. 이럴 때 PM은 고객과 인력 구성을 협의한 상태에서 이 개발자를 정리해야 할 지 고민을 하게 됩니다. 없는 것 보다는 낫지 않을까? 바로 개발자를 구할 수 있을까? 고객이 승인을 할까? 혹시 나에게 잘못이 있는 건 아닐까? 많은 고민을 하게 되지만 결론은 이러한 개발자에 대한 정리는 빠르면 빠를 수록 좋다 입니다.
개발자의 이러한 본성을 최대한으로 발현되게 하는 방향으로 프로젝트를 진행해야 합니다.
이 프로젝트 너 혼자 하는 거 아니잖아. 서로서로 협업해야지. 회의를 하던지, 대화를 해서 서로서로 조금씩 양보하고 도와주면 되잖아.
PM, PL이라면 누구나 개발자에게 했던 말일 것입니다. 하지만 이 말은 차별성을 지닌 creator의 본성에 반하는 말입니다. 프로젝트는 개발자 혼자 하는 것이 맞습니다. 혼자서 모든 것을 책임지는 것이 맞습니다. 혼자서 방법을 찾고 테스트를 하고 최종 산출물을 만드는 것이 맞습니다. 위와 같은 말이 필요한 시점은 개발 단계 진입 전까지입니다. 개발 단계에서도 이 말이 필요하다면 두 개발자에게 해야할 말이 아니라 PM,PL 스스로 조직 구성을 제대로 했는지, 빈 틈은 없었는지 돌아보고 직접 한 개발자에게 롤을 맡기고 지시해야 합니다. 개발자는 절대로 자신의 개발영역을 다른 사람에게 넘기려고 하지 않고, 다른 사람의 개발영역에 참견하려고 하지 않습니다. 만약 개발자가 협업이라는 명목으로 서로 서로의 개발영역에 참견한다면 모든 곳에서 마찰이 발생하게 될 것입니다.

프로젝트는 개발자 각자 혼자 진행하는 것입니다.
이 부분을 명심하고 개발자를 대해야 합니다.