UX(User Experience)는 고객이 이용하는 서비스에 대한 사용자 경험의 만족도를 의미함
UX 개선 작업을 통해 고객들의 서비스 만족도를 개선하고 이는 곧 더 많은 사용자 유입으로 이어지며 나아가 해당 비즈니스의 수익 증진으로 이어지게 됨
DX는 이러한 UX에서 U(User)를 D(Developer)를 대입한것으로 개발자들이 본인의 업무 환경에서 서비스를 개발하며 느끼는 경험의 만족도이며, 이를 개선하는 작업을 통해 팀과 프로젝트에 지속적으로 긍정적인 영향을 미치는 것을 말함
SW 개발은 결국 사람(개발자)들의 지적 활동이기 때문에 사람들이 어떤 생각을 가지고 일하고 있으며 동기를 부여하고 더 나은 참여도를 이끌어내는 것이 중요함
심리학의 관점에 따라 개발자 경험(DX)을 세가지 분류로 나눌 수 있음
https://core.ac.uk/download/pdf/14926209.pdf
▶ 인지영역(cognition)
개발자가 경험하는 인프라적 요소
주로 개발과 관리 도구, 개발 언어 및 라이브러리, 개발 플랫폼과 업무 방식 등이 포함됨
인프라 및 기업 문화 공개
개발자들은 본인의 강점을 살릴 수 있고, 관심있는 기술들을 이용하는 업무환경에서 일하고 싶어함
요즘 개발자 채용 사이트를 살펴보면 대부분의 회사가 자신들의 기술 스텍을 소개하고 나아가 어떤 개발 방법론을 적용하여 업무를 진행하는지 알리고 있음
또한 당근마켓, 토스 등 다양한 회사들이 블로그나 유튜브 등에서 컴퍼런스 발표를 통해 자신들의 업무 환경들을 적극적으로 소개하며 알리고 있음
어떤 조직에서 어떻게 일하는지가 가장 중요한 사람들에게 이러한 정보는 새로운 팀에 합류하고자 함에 있어 가장 중요한 지표가 될 수 있음
개발 환경 인프라 개선
지속적인 개발과 테스트, 그리고 배포를 위한 쾌적한 환경을 구성하는 것은 개발자가 본인의 업무에 좀더 집중하도록 불필요한 시간과 노력을 단축시켜줌
이러한 것들은 주로 테스트 자동화, 자동배포, E2E테스트, 지속적인 배포, CMS, 에러 로그 시스템 등을 통해 개선 가능함
DXE 운용
일부 IT 기업에서는 위에 언급한 인프로 개선을 위해 DXE(Data Exchange Engine)를 운영하는 곳도 있음
개발자의 생산성과 비즈니스 서비스 요구사항 보다 빠른 구현 등을 지원함
국내에서는 몇몇 기업에서 이러한 역할을 수행하는 엔지니어들을 운영하고 있음
직방과 카카오의 경우 인프라 엔지니어를 통해서 서비스 개발자들이 필요한 개발 환경이나 패키지를 지원하고 해외에서는 트위터의 enginnering effectiveness group과 구글의 engineering productivity team 등이 있음
좋은 코드, 좋은 문서
다수의 개발자가 함께 작업하는 프로젝트에서 좋은 코드를 작성하기 위한 노력들도 중요함
코딩 컨벤션, 사내 Lint패키지 등을 통해 일관적인 코드 작성에 도움을 받을 수 있음
좋은 코드만큼이나 문서화도 중요한데 개발 문서는 포괄적이고 빠르게 살펴볼 수 있으며 가능한 친절하게 구술되어야 함
최근 MSA가 주류로 잡히면서 작은 비즈니스 단위의 프로젝트들이 생겨나고 있는데 이들에 대한 적절한 문서화가 부재한다면 신규 입사자 온보딩시나 오랫돈안 방치된 프로젝트들에 대한 유지보수에서 불리할 수 있음
화해 프론트엔드 팀에서는 이러한 문제 해결을 위해서 전체 서비스 구조를 UI 다이어그램으로 도식화하는 프로젝트를 진행했음(https://blog.hwahae.co.kr/all/tech/tech-tech/8586)
▶ 정서영역(affect)
개발자가 일하며 느끼는 감정의 영역
동료 개발자들과의 유대감과 존경심 등이 안정감을 주는 요인들이며 능동적인 업무 참여를 이끔
회고하기
현재 업무 방식을 점검하고 앞으로 일 잘하는 방법을 찾는 회고는 정서관리의 대표적인 사례
여러가지 회고 방법들이 있는데 대표적인 방법으로는 AAR, KPT, YWT등의 회고 방법론들이 있음
코드리뷰
자신의 작성한 코드의 미흡한 부분에 대한 피드백을 받는 것을 넘어서서 다른 리뷰어들의 비즈니스 도메인에 대한 이해, 그리고 기술적인 영역에 대한 습득이 가능함
동기부여 관리
https://www.agilealliance.org/glossary/niko-niko/
Niko-Niko 달력을 이용하면 구성원들의 정서를 시각적으로 파악하는데 도움이 됨
매일마다 그날의 업무를 마치고, 오늘 하루 어땠는지 돌아보며 감정을 기록함
팀의 규모가 커질수록 구성원들이 어떤 마인드셋을 가지고 일하는지 파악이 어려운데 달력을 통해 한눈에 현재 상태를 파악할 수 있음
▶ 의지영역(conation)
개발자 본인이 작업한 것들이 어떤 가치를 가지고 나아가 팀에 기여하게 되는 것인지 인지하는 영역
오픈소스 프로젝트
네이버의 경우 자사 오픈소스를 공개하여 많은 사람들의 참여를 독려하고 동기를 부여함
이렇게 특정 비즈니스 도메인과 밀접한 연관이 없어 외부 공개가 가능한 기술들을 오픈소스화하여 외부 참여를 유도하고 자신들이 작성한 코드의 가치를 높임
사내 & 외부 컨퍼런스
자신들이 겪은 이슈, 혹은 새로운 기술에 대한 인사이트 등 다양한 주제를 가지고 사내 혹은 외부에서 진행하는 컨퍼런스를 진행하거나 참여한는 것으로도 관리 될 수 있음
다양한 IT 기업들이 컨퍼런스를 진행하며 기술 교류 및 네트워킹을 진행함
이를 통해 평소에 관심이 있었거나 흥미로운 신기술들의 동향을 파악하고 자신들의 업무에 어떤 방식으로 적용해 볼 수 있는지 고민해볼 수 있음
우아한 형제들에서는 자사 유튜브 채널을 통해 사내에서 진행한 다양한 세미나들을 공개하고 있으며 개발 뿐만 아니라 테크니컬 라이팅, 협업, 성장 등 다양한 주제들에 대한 이야기들을 담고 있음
기술 블로그
개발자 본인이 했던 프로젝트나 이슈를 해결한 경험 또는 공부한 내용들을 공유하고 피드백, 댓글, 좋아요 등을 받으면서 부족한 점을 채우고 성장하고자 하는 동기 부여를 받을 수 있음
개발자 행사
일부 회사들은 크고 작은 개발자 행사등을 통해 아이디어를 만들고 발전시키기도 함
회사 내외부에서 다양하게 참겨 가능한 행사들을 통해 기술적인 역량도 발전시킬수 있음
기술 스터디
개인적으로 관심있는 기술들을 찾아 공부해보는 것도 좋지만 사내에서 주제를 선정해서 관심있는 인원들끼리 스터디를 진행하고 사내 프로젝트에도 적용해보는 것도 좋음
메쉬코리아(부릉)에서는 마틴 파울러의 리팩토링 서적으로 스터디를 진행한 뒤 이를 바탕으로 실제 서비스 코드에도 적용시켜 개선한 사례들을 공유하고 있음(https://github.com/meshkorea/front-end-engineering/blob/main/study/refactoring/index.md)
일부 회사에서는 아예 특정 요일을 이러한 활동을 위해 지원해주는 경우 있음
와챠(Watcha)에서는 짬데이 문화를 통해 평소에 하고 싶었던 공부나 업무에 반영해보고 싶은 것들을 진행하는 날을 가지며 개발자 스스로 성장할 수 있는 기회를 제공해주고 있음
😉🤔
개인적으로 DX는 개발자에게 매우 중요한 요소라고 생각함. 좋은 DX를 제공하는 것은 개발자에 생산성을 높이고 프로젝트의 품질을 향상시키는데 도움이 됨. 또한 좋은 DX는 개발자들의 만족도를 높이고 기술 커뮤니티를 활성화시키는 데에도 도움이 됨. 사이드프로젝트를 하면서 DX의 정서관련으로 어떻게 하면 같이 프로젝트 하는 사람들이 동기부여를 이끌어 낼수 있을까 고민하였는데 회고와 Niko-Niko달력을 활용해 사람들이 참여를 향상시킬 수 있겠다는 생각을 함
'CS > 프로그래밍' 카테고리의 다른 글
JS, StructuredClone() (1) | 2024.05.01 |
---|---|
[Typescript] Generic과 forwardRef (0) | 2024.04.17 |
useLayoutEffect의 활용 (2) | 2024.04.02 |
Zustand란 무엇인가? (0) | 2024.03.23 |
MSA(마이크로서비스 아키텍처) (0) | 2024.03.23 |