해당 포스트는 회사에서 진행한 컨퍼런스에서 발표된 내용 중 '좋은 개발자의 역할' 일부를 정리한 글입니다.
백지장도 맞들면 낫다!?
한국에는 '백지장도 맞들면 낫다'라는 속담이 있습니다. '아무리 쉬운 일이라도 협력하여 하면 훨씬 더 효과적이다' 라는 뜻으로 협력의 효과에 대해 전달하는 속담입니다.
그러나 분석/개발 업무를 하면서 공동 작업자가 많아질 수록 반대의 상황을 많이 보게 됩니다. 아이러니하게도 여러 명이 작업할 수록 구조는 복잡해 지고 단계도 많아지게 되면서 문제 본질의 해결이 아닌 주어진 태스크 수행/완수를 목표로 하게 되는 경우가 많았습니다.(물론 좋은 PM이 있다면 상황이 다를 수 있습니다.^^)
그럼 좋은 개발자가 되려면 위와 같은 상황에서 어떻게 해야 할까요?
개발자의 역할 : 문제의 본질을 찾자!
분석/개발 업무를 하려면 개인적으로는 구조 설계, 클린 코딩, 심플한 인터페이스 등을, 공동 협업자가 있는 경우, R&R 조율, 커뮤니케이션 등을 고려해야 합니다. 그러면서도 내가 작성하는 코드가 어떠한 배경으로 어떠한 문제 해결을 위해 어떤 결과를 만들어야 하는지에 대해 끊임없이 고민해야 하는데, 가장 중요한 것은 문제의 본질을 찾아 근본 원인 해결을 위해 노력해야 한다는 것입니다.
TMI지만.. 제가 주니어 시기에는 맡겨진 업무를 완벽히 수행하는 것에만 집중을 했었는데(시야를 고정시킨 경주마 같이..^^;), 시니어가 되고 나무가 아닌 숲을 보는 연습을 하면서 프로젝트의 성공률과 효율성이 많이 올라갔습니다!
문제 본질을 해결한 사례 : 비누 공장 빈 박스 출고율 문제
어느 한 비누 공장의 빈 박스 출고율이 높아 문제가 생겼습니다. 이를 해결하기 위해 어떻게 접근하면 될까요?
일반적인 접근으로는 관련 담당자들로 구성된 TF를 발촉하고 비전 검사 프로젝트를 만들어 진행할 수 있을 것 같습니다. 비용과 기간이 소요되겠지만 문제 해결을 위한 합리적인 접근법으로 생각됩니다.
다른 접근을 생각해 보겠습니다. 문제가 드러나고 한 직원이 출력이 쎈 선풍기를 가져와 라인 끝에 설치하였습니다. 선풍기의 강풍으로 인해 라인 마지막 단계에서 빈 박스가 걸러졌고, 빈 박스 출고율을 낮출 수 있었습니다.
위에서 소개한 두 사례 모두 당면한 문제를 해결하는데 문제가 없었습니다. 혹시 후자의 접근법이 문제는 해결했지만 단순한 접근이라 인정하지 못하시는 분도 계실까요?
후자의 경우, 근본적인 문제를 가장 단순하게 해결하였으며 전자 대비 비용/시간을 모두 단축하였습니다. 전자의 방식이 틀린 것은 아니지만 근본 문제 해결의 효율을 따졌을 때에는 후자의 접근이 더 좋다고 판단됩니다.
위 사례의 직원과 같이 개발자는 프레임에 갇히지 않고 항상 문제 본질을 찾고 해결하는데 집중해야 하며, 그 외 부분에 시간과 노력을 뺏기지 않도록 주의해야 합니다.
관련 링크
[1] [자료조사] LG그룹 AI연구원과 DT추진전략
[2] [도서리뷰] 한빛미디어 '학교에서 알려주지 않는 17가지 실무 개발 기술'
[3] [도서리뷰] 한빛미디어 '개발 7년, 매니저 1일차(The Manager's Path)