개발자 세계를 여행하는 히치하이커를 위한 안내서

Developer Experience 와 함께

Featured image

개발자 세계를 여행하는 히치하이커를 위한 안내서

Developer Experience 와 함께


대상독자


들어가며

2021년 신축년이 밝았다. 올해도 소프트웨어에 관한 일투성이다. 작년에 이어서 오늘까지 연일 주위에서는 가파르게 오르고 내리는 주식과 더불어 블록체인 기반의 가상화폐 소식이 심심치 않게 들린다. 현대자동차의 Boston Dynamics 인수, AI 기반 챗봇 이루다의 사용자와 제공자의 도덕성 문제 등 끊이지 않고 여러 가지 사건과 말들이 우리 주위를 맴돈다.

소프트웨어가 우리 삶의 많은 부분을 물들이고 채우고 있다. 개발자의 세계로 여행을 준비하는 사람, 세계를 만드는 것을 꿈꾸는 사람들이 많아진다. 이미 여행을 하는 사람들도 있다.


나는 어디로 가고 있는가? 왜 가는가? 히치하이커?

나는 개발자 세계로 여행을 떠난 지 얼마 되지 않았다. 스스로 가끔, 아니 빈번하게 묻는다. ‘나는 이 바닥의 어디로 가고 있나?, 왜 가고 있나?’ 물론 답을 내지는 못했다. 그래도 더 나은 개발자 세계로 향해 가려고 하는 사실은 분명하다. 다만, 나의 의지와는 다르게 개발자 세상이 너무나도 빠르게 진화한다. 이에 맞춰 조금씩 배우고, 수정해나가는 우리의 모습은 여행 중에 지나가는 차를 얻어 타고 목적지 중간에 내리는 ‘히치하이커’ 와 다르지 않다.

개발자 세상이 너무나도 빠르게 진화한다. 이에 맞춰 조금씩 배우고, 수정해나가는 우리의 모습은 여행 중에 지나가는 차를 얻어 타고 목적지 중간에 내리는 ‘히치하이커’ 와 다르지 않다. - 본문 중


개발자 세상을 여행하는 히치하이커를 위하여

소프트웨어 개발은 지적 활동으로 정신 능력에 의존하는 활동이다. 임마누엘 칸트처럼 이성과 감성을 분리하여 사고하고 앎에 대해 접근하고자 한다면 철학으로의 여행일 것이다. 하지만 이번에 우리는 개발자 세상으로 향한다.

소프트웨어 개발은 정신의 능력에 의존하는 지적 활동이며, 수행하는 데 생각과 동기가 모두 필요하다. - Developer Experience: Concept and Definition IEEE, ICSSP 2012

지적 활동을 하기 위해서는 생각과 동기가 필요하다. 즉 소프트웨어를 개발에는 생각과 동기를 필요로 한다. 생각과 동기를 분석하여 디자인하는 분야는 대표적으로 UX(User Experience)가 있다. 여기서 파생된 개념으로 소프트웨어 개발자에 대한 Developer Experience(이하 DEx) 개발자 경험이 있다.

심리학 분야에서 사고방식에 대한 개념은 일반적으로 인지(Cognition), 능동적의지 (Conation), 정서(Affect)으로 범주를 나눈다.

조금 더 개발자 관점에서 구체적으로 말한다면 다음과 같다.

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

능동적의지(Conation)는 나의 기여가 얼만큼의 가치가 있는지를 느낄 수 있는 경험을 말한다. 나의 참여가 서비스, 제품의 성공과 가치 창출에 얼만큼의 기여를 했는지를 말한다. 오픈소스의 커미터로서 기여도 등도 포함된다.

정서(Affect)는 소프트웨어 개발 작업을 수행할 때 느끼는 감정이다. 협업을 하고 있다는 느낌, 존경심이 동료나 선배개발자에게 느낌, 애착 감이 느낌 등 능동적으로 업무를 하고 싶은 의욕을 말한다.


Summary


Developer Experience를 써먹자

개발자를 위하여

개발자의 길을 걷고 있거나, 걷고 싶은 사람이라면 DEv를 이용하자. 입사를 희망하는 기업에서 개발자로 일을 할 때의 경험이 만족스러운지를 판단하는 시금석으로 사용 할 수 있다.

Bigtech 로 불리는 기업들과 국내에서 흔히 ‘네카라쿠배’ 로 불리는 네이버, 카카오, 라인, 쿠팡, 배달의민족 등은 DEv에 신경을 많이 쓰고 있는 것으로 비친다.

Bigtech 기업들

빅테크는 미국내 IT 산업에서 가장크고 지배적인 기업들을 말한다. Amazon, Apple, Google, Facebook, Microsoft, Netflix, Tesla 등이 있다. - Wikipedia

기술 블로그, 컨퍼런스 등을 통하여 개발 환경에 관해 확인 할 수 있고, 어렵지 않게 작업수행 시 느꼈던 경험에 대한 내용은 블로그 등에서 조금만 검색하면 찾아볼 수 있다. 오픈소스 활동이나 컨퍼런스 발표 등의 영향력 있는 활동 또한 마찬가지로 쉽게 찾을 수 있다.

하지만 현실은 Bigtech, 네카라쿠배등에서 일하는 개발자보단, 그 외의 환경에서 일하는(일 할 수 밖에 없는) 개발자들이 더욱 많다. DEx를 시금석으로 삼아서 입사 지원하려는 회사가 지원하는 DEx 경험들을 다양한 채널을 통해서 얻어보자. 블로그, 언론정보, 유튜브, Github 등 온라인채널부터 커뮤니티활동, 스터디활동, 컨퍼런스 등 오프라인 채널도 가능하다. 서류통과 이후 면접 과정에서도 확인 할 수도 있다. https://stackshare.io/ 등 채용 및 기업홍보 사이트를 통해서도 확인 할 수 있다.

아직도 아리송한 개발자를 위하여

아는 것을 안다고 하고, 알지 못하는 것을 알지 못한다고 하는 것, 이것이 앎이다 (知之爲知之, 不知爲不知, 是知也) - 논어 위정편 17장

그럴 수 있다. ‘무엇을 어떻게 묻고, 찾아야 하는가?’ 라는 생각이 떠오를 수 있다. 개발자 세계로 막 여행을 떠나는 이들이라면 더욱 그럴 수 있다. 조금 넘겨짚어 말하자면, 아마도 당장 떠오르는 질문은 특정 언어, 프레임워크로 제한될 것이다. 조금 더 나아가면 IDE나 클라우드 환경 정도라고 생각된다. (마지막 신입사원 면접 당시 이런 질문이 많았기 때문에 더욱 기억이 난다.)

아마도 개발자 세계로 여행을 막 시작하는 이들은 이런 질문들을 주로 할 것이다.

개발자 환경에 관한 내용들로 가득 찬 질문들로 예상된다. 대부분이 인지(Cognition)와 관련된 내용이다. 아무래도 개발자는 기술기반 직업이니 당연한 말이다. 개발자로서 기술 스택을 학습하는 걸음마다 질문의 개수가 늘어날 것이다. 자신이 개발자로서 얼마나 성장했는지를 알 방안이기도 하다.

https://github.com/kamranahmedse/developer-roadmap 등 SLDC(Systems development life cycle)의 모든 내용이 인지(Cognition)의 질문의 재료가 될 수 있다.

하지만, 이제 DEx를 알게 되었다. 질문의 범위를 인지(Cognition)을 포함하여 능동적의지(Conation), 정서(Affect) 까지 확장해서 구성해보자. 능동적의지(Conation)를 확인하는 방법으로는 오픈소스 진행 유무, 해당 기업 소속으로 커뮤니티 활동 지원 유무 등이 되겠다. 정서(Affect)는 주기적으로 회고는 진행하는지, 일감은 어떻게 선택하는지, 개발용어 등은 협업은 어떻게 정리하고 있는지, 브랜치 관리는 어떻게 하는지 등이 될 수 있다.

예)

개발자를 채용하고 싶은 이에게

제발, 간식이나 야근 없음으로 개발자를 유혹하는 회사가 되지 않기를 기원합니다.

최근 많은 기업이 아래와 같은 사항들을 조합하여 개발자를 채용하고자 한다.

이외에도 더 많은 항목과 조건이 있겠지만, 개발자 경험을 고려한 항목들도 늘어났으면 하는 소망이 있다.

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

사람들과 관련된 제품을 만들고 싶다면, 스스로 그 사람의 입장이 되어야만 한다. - Jack Dorsey, Programmer, entrepreneur, co-founder of Twitter & founder of Square

모든 것을 준비 할 수 있다면 좋으련만 그렇지 않은 경우가 많을 것으로 예상한다. 하지만 개인적으로는 연민이 아닌 공감하는 회사와 일하고 싶다. 잘 모르는 부분은 개발자와 대화하고 공감하며, 부족한 부분은 인정하고 함께 채워 나갈 수 있는 여행 파트너가 되길 기원한다.


참고