나는 개발자 로서 커뮤니케이션 능력을 향상시키기 위해 이런저런 노력을 해왔다. 사람 이 아닌 컴퓨터와 하는 커뮤니케이션 말이다.
더 좋은 소프트웨어를 만들기 위해 CPU, 주기억장치, 보조기억장치 같은 하드웨어부터 OS, 프로그래밍 언어, 웹 프레임워크 같은 소프트웨어, 요즘은 ChatGPT 같은 AI 툴까지 '컴퓨터'와 효과적인 커뮤니케이션을 하기 위한 기술 역량 개선에만 주로 힘써왔다.
컴퓨터와의 커뮤니케이션 능력만이 개발자의 최고의 덕목이라고 생각했고 처음 개발자로서 일을 시작했을 때도 그 능력만을 키우기 위해 달려왔다. 이 생각이 틀렸다는 걸 깨닫게 된건 오랜시간이 걸리지 않았다. 점차 연차가 늘어나면서 기획자, 디자이너 같은 다른 직군과 커뮤니케이션을 해야하는 일들이 늘어났고 사람과의 커뮤니케이션은 나에게 새로운 도전과제로 다가왔다.
회사에서 혼자, 혹은 개발자끼리만 팀을 구성해서 모든 소프트웨어를 만드는 일은 극히 드물다. 프로젝트의 성공은 단순히 훌륭한 소프트웨어 아키텍처를 설계하고 예쁜 코드를 작성하는 것 이상의 것이 필요하다고 느꼈다.
내가 생각하는 개발자가 단순히 '기술적인 문제 해결사'가 아닌 팀 플레이어, 혹은 올바른 리더로서 성장하기 위해서 가장 중요한 4가지 능력은 다음과 같다고 생각한다.
- 타인의 감정에 대한 공감 능력
- 기획자들과 의사소통하며 그들의 샘솟는 아이디어에서 본질적인 요구사항을 이해하고 그것들을 소프트웨어로 구체화할 수 있는지 기술적인 가능성을 검토해야한다.
- 어려운 용어나 복잡한 논리를 누구나 이해할 수 있도록 설명하는 능력이 필요하다.
- 기술적으로 혹은 시간적으로 요구사항을 반영하지 못한다고 판단했을 때 "협상"을 위한 능력이 필요하다.
나는 이론적으로 1, 2, 3번이 중요하다는걸 알고있다. 그리고 이것들은 소프트웨어 공학 학문에서도 자주 나오는 문장들이다. 하지만 그에 앞서 '공감 능력' 이 우선되어야 한다고 생각한다. 개발팀 내적으로도 타 직군과의 관계에서도 상호 이해와 신뢰를 형성하는게 건강한 협업 문화를 구축하는데 도움이 된다. 공감 능력은 상대의 관점에서 문제를 바라보고, 공감적 접근을 통해 프로젝트에 대한 보다 깊은 이해를 가능하게 하며, 더 나은 결정과 혁신적인 해결책을 도출하는데 도움을 준다고 생각이 든다.
공감은 팀원들의 동기부여와 만족감을 증진시키는 데에도 중요한 역할을 한다. 팀원들이 자신의 의견과 감정이 존중받고 있다고 느끼면, 그들은 더 적극적으로 참여하고, 창의적인 기여를 하게 된다. 이는 전체 팀의 성과와 분위기에 긍정적인 영향을 미치고, 프로젝트 성공으로 이어질 가능성을 높여준다.
결국, 공감 능력은 개발자가 팀 내에서 효과적인 커뮤니케이터이자, 팀 동료들과 긍정적인 관계를 구축하는 데 필수적이고 이것은 기술적인 문제 해결 능력과 더불어, 개발자가 올바른 팀 플레이어이자 리더로 성장하는 데 있어 가장 중요한 기초가 된다고 생각한다.
일반화 할 수는 없겠지만 개발자들 중에는 소위 너드 들이 많다. 나 또한 너드 이고 공감 능력을 더 키워야겠다는 생각을 많이하는 편이다. 이 글을 쓰는 지금까지도 사람과의 대화보다는 컴퓨터와의 대화가 더 편한 사람이다. 하지만 '사람'과의 소통 능력은 PC 화면을 보고 키보드를 두드리며 키울수는 없다는걸 알고 있다. 앞으로 기술적인 능력을 키우는 노력만큼 '사람'과의 커뮤니케이션 능력을 키우기 위한 노력을 해야한다고 크게 느꼈다. 그리고 진정한 의미의 팀 플레이어가 되고 싶다면 해야만한다. 이 노력이 나의 진정한 성장
이 될 것이라고 생각한다.