NEW 기획 디자인 개발 프로덕트 아웃소싱 프리랜싱

개발

개발자 경험(Dex)이 주목받는 시대

몇 년간 차디차게 얼어붙었던 취업시장과 다르게 유독 뜨거워진 곳이 있습니다. 바로 개발자 채용 시장입니다. 구직자는 몰리고 기업은 채용을 늘리고 있습니다. 프로그래머 혹은 개발자라는 직업은 이제 더 이상 생소하지 않습니다. 이처럼 개발자에 대한 인식이 빠르게 변화하면서 덩달아 ‘개발자 경험(Developer Experience, Dex)의 중요성도 주목받고 있습니다. 이번 글에서는 왜 우리가 개발자 경험을 관리해야 하는지 알아보겠습니다.

 

취업시장을 뜨겁게 달군 개발자

개발자 구글 트랜드
(출처: Google Trends)

 

2020년도부터 현재까지 COVID19로 인한 비대면 활동이 강요되면서 IT 기반 서비스의 수요가 극대화되었습니다. 통계청 자료에 따르면, 이커머스 시장은 2012년도 약 34조 원 규모에서 2020년도 133조 원 규모로 성장했습니다. 올해는 200조를 바라볼 정도로 성장 중입니다. 매출액의 증가는 시스템 사용량의 증가로 이어집니다. 시스템을 운영하고 개선하려면 개발자가 필요합니다. 자연스레 기업의 개발자 수요 증가로 이어졌습니다.

 

IT 외의 산업군에서도 IT 개발자의 수요가 늘어났습니다. 교육, 부동산, 금융 등 비대면 서비스를 요구하는 곳이 많아지면서 개발자의 수요로 이어졌습니다. 4차산업혁명과 미래 먹거리 등을 이유로 제조업과 유통업에서도 IT 서비스를 주요 전략 방향으로 정하면서 개발자 인력 수급에 적극적으로 나서고 있습니다.

 

사실 과거에는 기업에서 전산 시스템을 구축할 때 자체적으로 구축하기보다는 전문성을 가진 SI(System Integration) 기업을 통해 외주 형태로 프로젝트를 진행하는 사례가 많았습니다. 반면 서비스나 플랫폼 기업은 개발자를 직접 채용하고자 노력합니다. 또한 많은 개발자는 서비스 기업에서 근무를 희망합니다. IT 서비스 기업과 개발자 사이의 우호적 관계는 서비스를 운영하며 파생되는 개발 문화가 개발자의 경험에 큰 영향을 끼치기 때문이라고 생각됩니다. 이에 따라 가장 많이 개발자 영입에 열을 올리는 기업은 일명 ‘네카라쿠배(네이버, 카카오, 라인, 쿠팡, 배달의민족)’라고 불리는 소프트웨어 기반의 플랫폼 사업을 하는 기업들입니다.

 

 

개발자 경험이란?

개발자들 사이에서 종종 기업의 좋고 아쉬운 점을 말할 때 ‘개발 문화’를 주제로 할 때가 있습니다. 문화는 정의하기가 어렵지만, 일반적으로는 한 사회의 주요한 행동 양식이나 상징체계를 말합니다. 개발자 사회에서의 행동 양식이라고 한정 지으면 개발 문화를 뜻하는 것으로 이해가 됩니다.

 

‘문화가 좋다’는 말은 너무나도 추상적입니다. ‘대중문화가 무엇인가?’라고 물어보면 막상 설명하기가 애매모호합니다. 그렇다면 직장인들 사이에 제법 익숙한 ‘사내 문화’는 어떨까요? 잡플래닛에서 조사한 사내 문화가 좋은 기업의 예를 보면 자유롭고 수평적인 분위기와 성장, 동료, 존중 등을 ‘좋은’ 사내 문화의 항목으로 말하고 있습니다. 좋은 사내 문화는 근로자에게 ‘긍정적인 경험’을 주었기에 ‘좋은’ 사내 문화의 항목으로 삼았다고 생각됩니다. 만약 수평적인 분위기의 사내 문화 경험이 좋지 않았던 사람이 대부분이었다면 좋은 사내 문화의 항목으로는 ‘수평적'이 포함되지 않았을 겁니다.

 

그렇다면 좋은 개발 문화와 개발자 경험은 어떤 것들이 될 수 있을까요?

 

소프트웨어 개발은 정신 능력에 의존하는 지적인 활동이고, 수행하는 데 생각과 동기가 모두 필요합니다. 생각과 동기를 분석하여 다루는 대표적인 분야가 사용자 경험(User Experience, UX)입니다. 여기서 파생된 개념으로 소프트웨어 개발자에 대한 개발자 경험(Developer Experience, Dex)이 있습니다. 개발자 경험에 대해 Thoughtworks의 Jacob Bo Tiedemann과 Tanja Bach는 다음과 같이 말합니다.

 

“좋은 개발자 경험은 개발자에게 도움이 될 뿐만 아니라 효율성을 높이고 조직의 성과를 높이는 데 필수적입니다. 
개발자 경험은 개발자가 조직, 도구 및 시스템과 상호 작용하는 모든 측면을 포함합니다.”

 

개발자 경험의 구성은 Fabian Fagerholm, Jürgen Münch가 발표한 ‘Developer Experience’ 논문에서 비교적 잘 분류하고 있습니다. 해당 논문에서는 개발자 경험을 인지(Cognition), 능동적 의지(Conation), 정서(Affect)로 3가지 범주를 나눠 설명하고 있습니다.

 

개발자 경험 구성
(출처: Developer Experience: Concept and Definition IEEE, ICSSP 2012)

 

  • 인지(Cognition): 주의, 기억, 언어 생성 및 이해, 문제 해결, 의사 결정 등 지식을 습득하고, 판단하고, 기억하고, 배우고, 생각하고, 문제 해결 과정에서 쌓은 것들을 바탕으로 인지하는 영역
  • 능동적 의지(Conation): 충동, 욕망, 의지, 노력 등 변화하고자 하는 경향을 나타내는 적극적인 사고방식의 영역
  • 정서(Affect): 느낌, 감정 등 주어진 그때 사람의 마음속 느낌. 인간의 감정 즉 쾌감, 불쾌감, 슬픔, 분노, 미움을 말하며 어느 순간 인간의 감정 상태를 총체적으로 가장 잘 나타내는 정신 현상

 

해당 연구를 기반으로 개발자 경험을 정리하면 다음과 같습니다.

 

인지(Cognition)는 개발 인프라와 관련된 것을 말합니다. IDE, 언어, 라이브러리, 프레임워크 등을 문제 해결을 위한 것들을 말합니다. 또한 Waterfall, Agile 등 개발 방법론 등의 프로세스도 포함이 됩니다.

 

능동적 의지(Conation)는 나의 기여가 얼마큼의 가치가 있는지를 느낄 수 있는 경험을 말합니다. 즉, 나의 참여가 서비스와 제품의 성공과 가치 창출에 얼마나 기여를 했는지 알 수 있어야 합니다. 오픈소스의 기여도 등도 포함됩니다.

 

정서(Affect)는 소프트웨어 개발 작업을 수행할 때 느끼는 감정입니다. 협업하고 있다는 느낌과 동료 개발자와의 존경심 및 애착 등을 포함한 능동적으로 업무를 하고 싶은 의욕을 말합니다.

 

 

개발자 경험을 관리하는 사례

개발자 경험은 개발자 채용을 희망하는 기업과 좋은 개발 문화를 가지고 있는 기업에 입사하고 싶어 하는 개발자들에게 도움이 될 수 있는 방법이라고 생각됩니다. 이미 기존의 많은 기업이 개발자 경험을 관리하고 있습니다. 그렇다면 어떤 방식으로 관리하고 있는지 앞에서 살펴본 인지(Cognition), 능동적 의지(Conation), 정서(Affect)로 범주를 나눠 설명해 드리고자 합니다.

 

인지(Cognition)를 관리하는 사례

인지는 개발 인프라와 관련된 것들을 말합니다. 개발자들은 해당 기업의 기술 스택을 살펴보고, 어떤 개발 방법론을 사용하는지 살펴봅니다. 기업은 개발 장비 지원에 관한 내용을 내세워 개발자 경험을 관리하는 좋은 문화가 있다고 마케팅을 합니다. 해외의 경우에는 Stackshare.io 등의 사이트를 이용해 기업에서 사용하는 기술을 공개하고 있습니다. 개발자는 해당 기업의 기술 스택을 보고 본인이 사용 가능한 기술인지, 앞으로 다뤄보고 싶은 기술인지를 확인할 수 있습니다.

 

인지 관리 사례
(출처: Stackshare)

 

개발 장비 및 환경 지원, 세미나, 스터디, 도서 지원 등도 인지를 관리하는 사례로 볼 수 있습니다. 당근마켓을 포함한 여러 서비스 기업들의 채용 페이지에서는 자사의 개발자를 위한 인프라 지원 항목들을 알리고 있는 모습을 볼 수 있습니다.

 

당근마켓 채용 페이지
(출처: 당근마켓 기술 블로그)

 

개발 프로세스 또한 인지를 관리하는 사례 중에 하나입니다. 토스(Toss)의 경우에는 애자일(Agile)한 소프트웨어 개발 프로세스를 가지고 있는 것으로 업계에서 유명합니다. 이런 애자일 정책을 토스는 ‘Toss feed’라는 웹사이트를 통해서 널리 알리고 있습니다. 애자일 프로세스를 선호하는 개발자에게는 좋은 경험을 줄 수 있다는 인상을 남깁니다.

 

토스 피드
(출처: Toss feed)

 

능동적 의지(Conation)를 관리하는 사례

능동적 의지(Conation)는 나의 기여가 얼마큼의 가치가 있는지를 느낄 수 있는 경험입니다. 나의 참여가 서비스와 제품의 성공과 가치 창출에 얼마큼의 기여를 했는지를 말합니다. 네이버의 경우에는 오픈소스를 운영하며 개발자가 개발자 생태계에 기여하도록 하고 있습니다. 이 과정에서 가치를 느낄 수 있도록 노력하여 개발자의 능동적 의지를 관리하고 있습니다.

 

네이버 오픈소스
(출처: 네이버 오픈소스)

 

오픈소스의 경우, 해당 프로젝트의 Fork나 Star의 개수나 기여(Contributors) 숫자로 성공과 가치 창출의 기여도를 눈으로 확인할 수 있습니다. 덕분에 긍정적인 개발자 경험을 만드는 데 도움이 됩니다.

 

깃허브 프로젝트 기여도
(참고: 프로젝트 기여도)

 

세미나를 통해 개발자 본인이 작업했던 내역을 다른 개발자들에게 공유함으로써 관리하기도 합니다. 개발자는 해당 내역을 발표하면서 나의 기여가 타 개발자들의 동기부여에 도움이 됨을 느낄 수 있고, 개발자 생태계에 기여하는 사실에 보람을 가질 수 있습니다. 정량적으로는 나의 기여가 얼마나 영향이 있는지를 세미나 참석자 수를 보면서 직접 느낄 기회가 될 것입니다. 이런 세미나는 네이버를 포함하여, 카카오, 라인, 쿠팡, 배달의민족 등 IT 서비스 기업에서 거의 매년 진행하고 있습니다.

 

네이버 개발 세미나
(출처: 네이버 개발 세미나)

 

블로그를 통해 능동적 의지를 관리하는 사례도 있습니다. 오픈소스 활동이나 세미나 주최가 현실적으로 어려운 경우에도 쉽게 관리하는 방법입니다. 개발자는 본인이 했던 개발 프로젝트를 글로 외부에 공유하면서 회고하는 시간을 가지며 본인의 의지와 변화를 확인할 수 있습니다. 또한 글의 ‘좋아요’ 개수나 ‘조회수’로 자신의 기여를 간접적으로 확인할 수 있습니다.

 

카카오 기술 블로그
(출처: 기업 블로그 Dex 관리)

 

오픈소스, 세미나, 블로그는 대외 활동으로만 한정된 것은 아닙니다. 기업 내 활동으로 운영하는 사례도 포함됩니다. 오픈소스는 사내 SDK, 라이브러리, Framework 등의 프로젝트로 운영될 수 있고, 세미나는 사내 세미나 운영으로 생각해 볼 수 있습니다. 블로그는 사내 블로그, 뉴스나 사내 Wiki 시스템을 포함할 수 있습니다.

 

기업 내 자체 위키
(출처: 기업 내 자체 운영 위키 시스템)

 

정서(Affect)를 관리하는 사례

정서(Affect)는 소프트웨어 개발 작업을 수행할 때 느끼는 감정입니다. 협업하고 있다는 느낌과 동료 개발자와의 존경심 및 애착 등 능동적으로 업무를 하고 싶은 의욕을 말합니다. 정서를 관리하는 방법으로는 회고를 예로 들 수 있습니다. 회고는 이전 시점에서 현재 시점까지 발생한 일을 되돌아보며 좋고 나쁜 일들을 목록으로 나열하고, 어떻게 개선할 수 있을지를 논의하고, 개발 프로젝트에 활력을 불어넣는 것을 목표로 합니다.

 

정서 관리
(출처: Agile Ken)

 

라인(Line) 경우, 정기적으로 ‘장애 회고 미팅’을 진행하고 있습니다. 문제 해결뿐 아니라, 개발자 경험의 정서 부문의 긍정적인 관리 사례로 살펴볼 수 있습니다.

 

“장애 회고 미팅은 실수나 책임을 묻는 자리가 아니라, 왜 문제가 발생했는지에 대한 사실 관계를 찾아가는 과정이다. 문제가 발생한 원인부터 확인된 배경, 문제가 된 설정을 반영한 이유 등에 대해 논의하고, 추후에 개선점까지 발굴한다. 이 과정은 각국의 라인 개발자들이 참석하며, 전문 통역사가 배석해 영어로 작성된 장애 보고서를 토대로 질의응답을 주고받는다.”

(출처: 라인의 경쟁력과 안정성, '함께 회고하는 개발 문화가 토대')

 

‘코드 리뷰’도 정서를 관리하는 사례 중 하나입니다. 코드 리뷰란 개발자가 작성한 코드를 동료 개발자가 읽고, 검토하여, 피드백을 주고받는 과정을 말합니다. 이 과정을 통해서 비즈니스적, 기술적인 부분의 공유 및 습득이 가능하고 일관된 컨벤션과 아키텍처 스타일을 유지하여 동료 개발자들과 관점과 호흡을 맞출 수 있습니다. 뱅크샐러드를 비롯하여 많은 IT 기업에서 코드 리뷰를 도입하여 운영하고 있습니다.

 

뱅크샐러드 블로그
(출처: 뱅크샐러드 코드 리뷰)

 

정서에 보다 적극적으로 개입하여 관리하는 사례도 있습니다. 바로 ‘Niko-Niko 캘린더’입니다. 매일 팀원의 정서를 직접 물어보고 기록하고 관리하는 방법입니다. 업무 기간 동안 팀원의 행복도를 확인하고 동기부여의 상태를 확인하는 방법의 하나입니다.

캘린더 관리
(출처: Niko-Niko 캘린더 관리)

 

 

마무리하며

사용자 경험(UX)을 고민하여 만들어진 서비스나 제품은 고객에게 긍정적인 경험을 제공합니다. 충성 고객도 비례하여 늘어날 것으로 기대합니다. 개발자들 또한 유사합니다. 개발자 경험을 균형 있게 고려하여 채용을 준비한다면, 개발자들도 앞다투어 오고 싶은 기업이 될 수 있다고 생각합니다.

 

이번 기회에 개발자 경험의 각 항목 인지(Cognition), 능동적 의지(Conation), 그리고 정서(Affect)에 해당하는 항목을 보고, ‘우리 회사와 팀은 얼마나 준비가 되어있는지’를 확인하는 계기가 되었으면 합니다.

 

만약 없더라도 어떻게 적용할 의지와 계획이 있는지 충분히 표현한다면 개발자들에게 긍정적인 경험을 부여하고, 나아가 좋은 개발 문화가 있는 기업으로 성장할 수 있을 것입니다. 또한 이번 글을 통해 취업을 준비하고 있는 개발자들이 좋은 개발 문화를 가지고 있는 회사를 선정하고, 추후 긍정적인 경험을 하는 데 도움이 되었으면 합니다.

 

요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.

댓글 0

Jay Ahn

IT 컨설턴트 출신으로 지금은 백엔드 개발자로 일하며 경험을 쌓고 있습니다. 아주 작은 기업부터 외국계 글로벌 기업까지의 조직문화 경험이 있습니다. 건강한 문화를 전파하고, 개인의 성장에 자극이 될 수 있는 글과 이야기를 좋아합니다.

같은 분야를 다룬 글들을 권해드려요.

요즘 인기있는 이야기들을 권해드려요.

일주일에 한 번!
전문가들의 IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.

일주일에 한 번! 전문가들의 요즘IT 이야기를 전달해드려요.

[구독하기] 버튼을 누르면 개인정보 처리방침에 동의됩니다.