협업의 시대에 살아남기
개발자들이 가장 싫어하는 일 중에서 하나가 '문서 작성'이라고 생각됩니다. 저는 개발자 출신이기는 하지만 중간에 영업/마케팅 분야 경력도 가지고 있어서 문서 작성에 대해서 거부감이 많지 않지만 많은 개발자들이 좋아하지는 않는 것 같습니다.
회사에서 가장 많이 사용하는 SW가 워드, 액셀, 파워포인트 등의 오피스 프로그램인데, 이는 회사 업무의 많은 부분이 정보의 공유와 의사소통 그리고 이를 기반으로 의사 결정을 하고 실행에 옮기는 일들이고 이를 위해서 정보나 데이터를 정리하기 위하여 오피스 프로그램이 많이 사용되기 때문입니다.
요즘 개발자를 채용하면서 많이 확인하는 부분 중 하나도 의사소통인데요. 이는 개발자들에게도 의사소통이 매우 중요하기 때문입니다. 특히나, 요즘 개발 체계나 개발 문화를 들어보면 예전과 가장 많이 다른 부분 중 하나가 더 이상 슈퍼 개발자 한, 두 명에 의지하여 개발이 이루어지지 않고 여러 명의 개발자가 협업과 소통을 통하여 빠르게 개발이 이루어지는 것 같습니다.
애자일(Agile)이나 CI(Continuous Integration) / CD(Continuous Deployment/Delivery)를 가능하게 하는 각종 도구와 이의 확산이 협업과 소통이 가능한 개발 환경을 만들어내는 것 같습니다.
Jira와 같은 이슈 트래킹 시스템을 사용하거나 Git과 같은 분산 버전 관리 시스템을 통하여 소스를 관리하고 Jenkins와 같은 CI 환경에서는 기본적으로 제대로 된 문서 작성이나 코딩 컨벤션 준수 등과 같이 다른 개발자들과의 협업을 위한 업무를 잘해 낼 수 있어야 합니다.
이런 일련의 과정에서 기본이 되는 것인 다른 사람들과의 정보 공유, 의사소통이 원활해야 한다는 점입니다. 얼굴을 보고 대화를 잘해야 된다는 것이 아니라 적어도 내가 개발한 결과물에 대해서 다른 개발자들이 나의 도움 없이도 해당 모듈이나 라이브러리를 가져다가 잘 사용하고 재활용이 가능해야 합니다.
SW 개발자로서 의사소통에서 중요한 것은 전달입니다. 상대방이 기술에 대한 이해가 깊지 않거나 없는 사람인데, 의사 결정을 해야 하거나 관리를 맡은 사람이라면, 제대로 된 의사 결정이 가능하고 관리자로서 역할을 제대로 할 수 있도록 기술적인 부분을 잘 설명할 수 있어야 합니다.
저는 이 부분이 외국인과 의사소통하는 것과 비슷하다고 자주 말하는데요. 왜냐하면 외국인과의 의사소통은 단순한 번역의 수준으로는 간단한 이야기만 할 수 있습니다. 좀 깊은 이야기나 원활한 소통을 하려면 적어도 해당 문화권의 이해나 방식을 알고 있어야 합니다.
대부분의 개발자는 이 부분에서 의사 결정권자나 관리자가 기술을 알아야 한다고 이야기합니다. 하지만, 개발자 출신이어도 쉽지 않은 일을 비 개발자가 할 수 있을까요? 오히려 개발자가 상대방이 이해하고 받아들일 수 있도록 설명해주는 것이 훨씬 나은 경우가 더 많습니다.
어떻게 하면 잘할 수 있을까요? 회사에서 업무 외에 비개발자와의 소통을 자주 할 필요가 있습니다. 어떤 개발자는 회사에 출근하면 말을 한마디도 안 한다고 하는 경우도 있습니다. 슬랙이나 메신저를 통해서 필요한 이야기를 공유하고 심지어 점심은 어디서 먹을지까지도 슬랙이나 메신저로 하는 경우가 많다고 하는데요.
커피 한잔을 하거나 점심 먹고 산책을 하면서 이야기를 나누면서 비개발자들과의 접촉을 늘리고 소통을 하는 겁니다. 그리고 상대방의 스타일이나 일하는 방식 등을 살펴봅니다. 개발자들의 업무는 상당히 체계적이라고 할 수 있습니다. 특히나 위에서 말씀드린 CI/CD처럼 시스템까지 받쳐지는 경우 더욱 체계적입니다.
하지만, 회사의 일은 언제나 돌발적인 변수가 있고 우선순위가 늘 뒤 바뀌어 버립니다. 이런 일들이 왜 생기나 싶지만 대부분 고객이나 사업적인 이슈 때문입니다. 회사에서 매출을 올리기 위해서 일을 진행하다 보면 자주 생기는 일들인데, 개발자들은 이런 이슈나 해프닝에 익숙하지 않습니다.
루틴하게 계획대로 돌아가는 일에 갑자기 인터럽트가 걸리는데요. 짜증도 나고 스트레스받는 상황입니다. 그래서 더욱 비개발자와 자주 소통하고 상대방의 컨텍스트를 미리 파악해 놓는 것이 좋습니다. 어떤 이유와 배경으로 이런 상황이 되었는지 알고 있다면 좀 더 유연한 소통이 가능합니다.
소통을 잘하기 위해서 여러 가지 노력을 해야 하겠지만, 딱 한 가지만 들자면 공감 능력을 키워야 합니다. 대부분의 개발자들은 복잡한 논리나 기술적인 개념을 설명하고 이해시키는 데는 익숙하지만, 상대방과 공감하는 것은 익숙하지 않습니다.
공감능력은 상대방이 무엇을 원하는지, 어떤 감정 상태인지, 어떤 생각을 하고 있는지를 아는 것입니다. 이를 키우기 위해서는 소설 등을 통해서 다양한 경험을 쌓거나 심리나 대인관계에 대한 책을 읽는 등의 노력이 필요합니다.
코딩 실력만큼 중요한 것이 커뮤니케이션 능력인데요. 토이 프로젝트도 좋지만 가끔은 소설이나 영화도 보면서 공감 능력을 키워보시면 좋을 것 같습니다.
개발자의 경력 관리, 전문성 개발, 이직/전직 등과 관련된 도움이 필요하시면 연락해 주세요. (무료)
신청서 : https://forms.gle/DEcPDcRmUHjDhMLp9