개발만 잘하는 개발자, 괜찮은걸까요?

by 멘토사피엔스

개발을 잘하는 개발자는 어떤 개발자일까요? 개발을 잘한다고 칭하는 사람들이 가진 몇 가지 기본적인 소양이 있습니다. 저는 아래와 같이 5가지로 말하고 싶습니다.


“정말 개발 잘하는 사람은 어떤 사람일까?”


많은 이들이 ‘개발을 잘한다’는 말을 쉽게 씁니다. 그런데 막상 “무엇을 기준으로?”라고 물어보면, 대답은 모호해집니다. 빠른 코딩? 높은 알고리즘 점수? 새 기술에 빠르게 적응하는 능력?


하지만 현장에서 진짜로 인정받는 개발자는, 단순히 코드를 잘 짜는 사람만은 아닙니다.


이 글에서는 조직에 오래도록 기여할 수 있는 ‘함께 일하고 싶은 개발자’를 만드는 본질적인 역량에 대한 이야기를 해보고자 합니다.


잘하는 개발자의 5가지 능력


1. 문제 해결 능력


가장 중요한 능력이라고 생각합니다. 좋은 개발자는 복잡한 문제를 분석하고 해결책을 찾는 데 능숙합니다. 문제의 핵심을 파악하고, 해결책을 체계적으로 설계하고 구현할 수 있습니다. 이는 특히 설계를 하거나 코드의 구조를 개선할 때, 디버깅을 할 때 두드러지게 나타납니다.


2. 논리적 사고


코딩은 기본적으로 논리적 사고를 바탕으로 이루어져야 합니다. 복잡한 로직을 간결하고 이해하기 쉽게 만들기 위해서는 구조적인 사고가 필요합니다.


3. 코드 품질


코드의 가독성, 유지보수성, 재사용성을 고려한 깨끗하고 효율적인 코드를 작성하는 것이 중요합니다. 좋은 네이밍, 일관된 스타일, 모듈화 등을 적절하게 사용하는 역량이 요구됩니다.


4. 학습 능력


기술은 빠르게 변화하기 때문에 새로운 언어나 프레임워크, 도구 등을 빠르게 학습하고 적용할 수 있는 능력이 중요합니다. 스스로 학습하고, 기술 트렌드를 파악하며, 새로운 기술을 습득하는 데 열정이 필요합니다. 이는 기본적으로 개발을 천성적으로 좋아하는 사람에게 나타나는 자질이라고 생각합니다.


5. 책임감


프로젝트의 성공을 위해 책임감을 가지고 일하며, 마감 기한을 지키고 자신이 맡은 작업의 품질을 보장하려는 자세가 중요합니다.


위 다섯 가지 능력을 갖춘 사람은 경험이 쌓일수록 상대적으로 높은 개발 실력을 갖추게 되며, 프로덕트를 만들 때 양과 질적인 측면 모두에 있어 큰 도움이 될 수 있습니다. 그러나 스타트업에서 여러 제품을 만들어오면서 다양한 개발자들을 만나본 결과, 개발만 잘하는 것만이 회사에 전적으로 도움이 되지는 않는다는 점을 깨닫게 되었습니다.


머리가 매우 좋고, 학습 속도가 빠르며 스스로에 대한 자부심이 매우 높은 개발자 분들도 몇 분 만난 적이 있습니다. 이들 대부분은 초기에는 공통적으로 회사에 큰 기여를 해주었습니다. 빠르고 질 좋은 코딩 생산 능력을 보여주었으며, 말 그대로 이들과 함께 일하는 것 자체로 매우 든든했습니다.


하지만 이 개발자들도 2~3개월 정도가 지나면 두 가지 유형으로 나뉘게 되었습니다. 그 차이의 기준은 다른 구성원들에 대한 인정과 배려였습니다. 이는 개발자뿐만 아니라 모든 조직 구성원에게 공통적으로 중요한 소통 능력과 직결된 문제였으며, 결국 소통 능력이 부족한 사람들은 조직에 적응하지 못하거나, 결과적으로 회사에 큰 타격을 주는 경우도 있었습니다. 반대로 다른 구성원들을 존중할 줄 아는 사람은 점점 더 회사의 구심점이 되어 갔고 말 그대로 대체 불가능한 인적 자원임을 스스로 증명해 냈습니다.


인정과 배려가 부족할 때


다른 구성원에 대한 인정과 배려는 그들에 대한 진심 어린 존중을 의미합니다. 이 부분이 부족한 사람들과 업무를 하면서 다음과 같은 사례들이 있었습니다.


1. 기존 개발 산출물에 대한 불신


새로 조직에 합류한 개발자들이 기존 레거시 코드를 바라볼 때 공통적으로, 가능하다면 기존 코드를 수정하기보다는 새로 만들기를 원했습니다. 특히 자신만의 코드 철학이 있는 사람일수록 기존 코드를 자신의 기준에 맞지 않는 것으로 간주하고, 새로 작성하려는 성향이 강했습니다. 여기에 기존 코드의 품질을 낮게 평가하는 개발자들은 기존 코드의 유지보수보다 새로 만드는 것이 낫다는 주장을 강하게 하였습니다.


이러한 주장 가운데에서도 회사의 비즈니스를 먼저 고려해야 한다는 점, 그리고 기존 개발자들이 왜 그렇게 코드를 작성했는지에 대한 이해 없이 전적으로 자신의 관점에서 기존 코드를 맡을 수 없다고 말하는 ‘잘하는 개발자’들을 보았습니다. 이 과정에서 기존 개발자들에 대한 존중이 점차 줄어드는 모습도 관찰되었습니다. 결과적으로 이런 접근은 생산적인 면이나 비즈니스적인 면 모두 좋은 결과를 만들지 못했습니다.


2. 업무에 벽을 세우고, 개인 사일로화


보통 사일로 현상은 부서 간 이기주의에서 나타나는데, 개인 차원에서도 발생할 수 있습니다. 회사의 중요한 미션을 해결하기 위해 능동적으로 움직이기보다, 자신에게 맡겨진 태스크만 수동적으로 처리할 때 특히 두드러집니다. 어떤 안건이 논의될 때 이들이 자주 하는 말은 ‘이건 제 소관이 아니라서 말씀드릴 수 없습니다’입니다. 사실 상황에 따라서는 자신의 소관이 아니더라도 질문자보다 더 잘 처리할 수 있는 경우도 많습니다. 질문자 역시 그걸 알기 때문에 질문을 했겠지만, ‘내가 더 잘 해결할 수 있지만 내 일이 아니기 때문에 하지 않겠다’는 태도를 보이는 경우입니다. 이러한 현상은 업무에 어느 정도 익숙해지는 2~3개월 차에 특히 자주 보였습니다.


3. 기존 조직 문화에 대한 반발


어느 정도 시간이 흐른 개발 조직은 나름의 관습과 문화를 형성하게 됩니다. 이것이 좋든 나쁘든 간에 해당 회사의 개발 문화를 이룹니다. 다른 개발자들을 존중하지 않는 개발자는 회사의 규칙 역시 존중하지 않는 경향이 있었습니다. 예를 들어, 모든 업무에 대한 기록을 문서화하는 조직 문화가 있었는데, ‘저는 문서 정리를 잘 하지 않고 구두로 설명하는 게 더 편합니다’라며 조직 문화를 따르지 않는 경우도 있었습니다.


정리하면, 잘하는 개발자들은 회사에 합류한 후 약 2개월 정도가 지나면 스스로가 잘한다는 사실을 인지하게 됩니다. 이 시점에서 이들이 기존 구성원들에 대해 존중과 배려를 보이는지에 대한 검증이 매우 중요하다고 생각합니다. 회사는 한 명의 슈퍼 개발자만으로 운영될 수 없습니다. 존중과 배려심이 없는 개발자는 시간이 지날수록 본인의 주장을 더 강하게 어필하고, 개발 문화나 회사 문화를 따르지 않는 모습을 보입니다. 그리고 이는 좋은 결과로 이어지지 않았습니다.


왜 이런 태도를 가지게 되었을까?


그렇다면 왜 일부 개발자들은 뛰어난 실력에도 불구하고, 협업과 조직문화에 적응하지 못하는 태도를 보이게 될까요?


이러한 모습은 단순히 ‘자부심이 높아서’, 혹은 ‘자신만의 코드 철학이 강해서’라는 말로는 충분히 설명되지 않습니다. 조금 더 얘기를 나눠보고 몇 가지 심리적·경험적·환경적 요인들이 함께 작용하고 있음을 알 수 있었습니다.


먼저 심리적인 요인으로는, 높은 자부심이 자신도 모르게 타인을 판단하는 기준이 되면서, 타인의 코드나 업무 방식에 대한 불신으로 이어질 수 있습니다. 이는 때때로 자신의 가치를 지키기 위한 방어 기제로 작용하기도 합니다. 조직 안에서 스스로의 유능함을 증명하려는 압박감 속에서, 타인의 방식이나 결정이 자신의 전문성을 위협한다고 느낄 수 있기 때문입니다.


또한 경험적인 요인도 무시할 수 없습니다. 과거의 성공 경험은 자신만의 방식이 ‘정답’이라는 확신으로 연결되기 쉽습니다. 특히 빠르게 결과를 냈던 경험이 강하게 남아 있을수록, 타인의 방식이나 팀워크에 대한 신뢰보다는 자기 방식의 반복을 우선시하게 되는 경향이 생깁니다. 이 과정에서 ‘다른 방식도 충분히 의미가 있다’는 시야를 갖기 어렵게 됩니다.


마지막으로 환경적인 요인도 큽니다. 조직 내에 충분한 온보딩 절차나 멘토링 체계가 미비한 경우, 새로 합류한 개발자는 조직문화나 커뮤니케이션 방식에 적응하지 못하고, 자기 기준에 따라 문제를 정의하고 해결하려는 경향이 강해집니다. 또한 리더가 초기에 이들의 과도한 독자적 행동을 제지하거나 조율해주지 못한 경우, 이러한 태도가 오히려 강화되는 악순환이 발생할 수 있습니다.


진정으로 잘하는 개발자는?


개발자는 ‘개발 실력’만으로 평가되기 쉽습니다. 실제로 복잡한 문제를 빠르게 해결하고, 높은 수준의 코드를 생산해내는 사람은 조직 내에서 쉽게 ‘잘하는 개발자’로 불리곤 합니다. 하지만 실무에서의 경험을 돌아보면, 단순히 개발 실력이 뛰어나다고 해서 진정으로 ‘잘하는 개발자’라고 단정짓는 것은 섣부른 판단일 수 있습니다.


개발 실력은 중요합니다. 하지만 그것만으로는 부족합니다. 실력을 뒷받침하는 것은 함께 일할 수 있는 태도, 즉 동료를 존중하고, 조직의 문화를 이해하며, 팀워크 안에서 가치를 만들어내려는 자세입니다. 이 두 가지가 균형을 이룰 때, 비로소 그 사람은 팀에 지속적인 신뢰를 주는 진정한 의미의 ‘잘하는 개발자’가 됩니다.


개발 실력은 시작점이고, 함께 일하는 태도는 지속 가능성을 결정짓는 힘입니다.


개발을 잘하는 것과 함께 일하기 좋은 사람이라는 것은 서로 다른 능력입니다. 하지만 이 두 가지를 동시에 갖춘 사람은 팀 내에서 가장 큰 시너지를 만들어냅니다. 그러므로 실력이 뛰어난 사람일수록, 자신의 태도와 관계 맺음의 방식에 대해 스스로 돌아보는 자세가 필요합니다.


회사는 코드만 잘 짜는 사람을 원하는 것이 아닙니다. 함께 일할 수 있는 사람을 원합니다. 그것이 ‘진짜 잘하는 개발자’를 결정짓는 기준입니다.


조직 차원에서 ‘인정과 배려’ 문화를 촉진하려면?


개인의 태도는 분명 중요하지만, 그것이 지속 가능하고 조직 전체에 확산되기 위해서는 회사의 문화적 기반과 구조적 지원이 필요합니다. 존중과 배려는 ‘개인의 성향’이기 이전에, 조직이 그것을 얼마나 자연스럽게 촉진하느냐의 문제이기도 합니다.


첫째, 건강한 코드 리뷰 문화를 정착시키는 것이 중요합니다. 리뷰어는 비판보다 개선에 초점을 맞추고, 작성자는 피드백을 성장의 기회로 받아들일 수 있도록 가이드라인과 교육이 필요합니다. 이를 통해 기술적 소통이 자연스럽게 이루어지며, 서로의 관점을 존중하는 기반이 마련됩니다.


둘째, 체계적인 온보딩과 멘토링 프로그램을 통해 새로운 개발자가 조직의 기술 환경뿐 아니라 문화적 가치까지 이해할 수 있도록 돕는 것이 필요합니다. 초기 온보딩 단계에서부터 ‘기존 구성원을 존중하는 태도’가 조직의 기본 전제임을 명확히 전달해야 합니다.


셋째, 리더의 역할은 결정적입니다. 존중과 배려를 실천하는 리더의 태도는 구성원에게 강한 시그널이 됩니다. 반대로, 문제 행동을 방치하거나 암묵적으로 용인할 경우, 조직의 신뢰 기반은 빠르게 무너질 수 있습니다. 리더는 문화의 방관자가 아니라 기준을 명확히 설정하고 솔선수범하는 사람이어야 합니다.


넷째, 정기적인 팀 빌딩 활동과 긍정 피드백 문화도 효과적입니다. 서로의 강점을 발견하고 자연스럽게 인정하는 분위기를 조성하면, 구성원 간의 신뢰가 깊어지고, 비판보다는 제안 중심의 커뮤니케이션이 자리 잡게 됩니다.


존중과 배려는 조직이 전략적으로 설계하고, 지속적으로 실천하고, 꾸준히 강화해야 할 문화적 역량입니다. 기술만 뛰어난 개발자보다, 기술과 태도를 함께 갖춘 개발자가 오래 남고, 더 많은 영향을 미칩니다. 이를 가능하게 하는 토양은 결국 조직 전체가 함께 만들어가야 할 환경입니다.


함께 성장하는 개발자


단지 개발을 잘한다고 해서, 다른 사람에게 피해를 주거나 개발 문화 및 회사의 조직 문화를 존중하지 않는 것을 용인해서는 안 됩니다.


결국 우리가 진정으로 지향해야 할 것은 ‘잘하는 개발자’가 아니라 ‘함께 성장하는 개발자’입니다. 뛰어난 실력은 분명 큰 자산이지만, 그것만으로는 조직 안에서 지속적으로 긍정적인 영향을 주기 어렵습니다.


진정으로 가치 있는 개발자는 자신의 기술을 통해 팀 전체를 더 나은 방향으로 이끄는 사람, 주변 동료의 역량을 끌어올리고 함께 성장하려는 사람입니다.


“내가 잘하는 것”을 넘어서, “우리 팀이 잘되도록 만드는 것”이야말로 개발자가 조직 안에서 발휘할 수 있는 최고의 역량입니다.


협업의 태도, 존중과 배려의 자세, 그리고 팀 전체의 시너지를 고려하는 관점은 지금보다 훨씬 더 복잡해질 미래의 개발 환경에서 반드시 요구되는 역량이기도 합니다. 기술력은 기본, 태도는 지속할 수 있는 경쟁력입니다. 이제 우리는 “혼자 잘하는 사람”이 아닌, “함께 잘하는 문화를 만드는 사람”을 ‘진짜 잘하는 개발자’로 다시 정의해야 합니다.

이전 15화올바른 회고 문화가 조직의 성장을 이끕니다