본문 바로가기메뉴 바로가기


카카오 개발자가 카카오스럽게 일하는 방법 – 애자일코치파트

카카오는 애자일한가요? 라는 질문을 받았을 때, 카카오는 애자일합니다.(being) 그리고 애자일을 잘하고(doing well) 있습니다! 라고 자신있게 이야기하고 싶어요.”

다양한 서비스를 만드는 수많은 개발자들이 있는 이곳 ‘카카오’에서 개발자들은 어떻게 일하고 있을까요? 카카오 개발자가 카카오스럽게 일하는 그 중심에는 애자일코치파트가 있습니다.

건강하고 성숙한 카카오 애자일 문화를 위해 끊임없이 고민하고, 더 나은 방향을 향해 나아가는 애자일코치파트의 benedict와 jazz를 만나보았습니다. 🙂

카카오는 애자일합니다.(being) 그리고 애자일을 잘하고(doing well) 있습니다! 라고 자신있게 이야기하고 싶어요.

Q1. 애자일코치파트는 어떤 업무를 하나요?

애자일코치파트의 업무는 크게 두 가지로 나누어집니다.

첫 번째는, 조직 이름에 나와 있듯이 애자일코치로서 팀을 코칭하고, 일하는 방식을 더욱더 성숙하게 하기 위한 일들을 주도적으로 수행하는 것입니다.

  • 카카오스러움과 개발 문화를 더욱더 성숙하게 변화시키기 위한 전략을 수립하고 실행합니다.
  • 카카오 크루들이 애자일 마인드셋, 가치, 원칙, 실천법들을 올바르게 이해하고 실행할 수 있도록 돕습니다.
  • SDLC(Software Development Life Cycle)를 더욱 민첩하게 하기 위한 문화, 표준, 도구, 프로세스, 실천법들을 발굴하고 적용합니다.
  • SDLC 내에 다양한 피드백 루프를 구성할 수 있도록 하고, 이를 지속해서 이어나갈 수 있도록 돕습니다.

두 번째는, 첫 번째 업무를 뒷받침하는 다양한 협업 도구들을 안정적으로 운영하고, 기민함에 날개를 달아줄 수 있는 다양한 도구의 활용법, 애자일 적용 사례들을 발굴하고 사내에 전파하는 업무를 수행합니다.

  • 협업 도구(JIRA, Confluence, GitHub Enterprise)의 안정적인 운영
  • 효율적인 플랫폼 운영을 위한 다양한 도구(플러그인, 운영툴, 자동화 도구, 시스템 간 연동 등) 개발
  • 도구에 대한 교육 업무(도구 기초 교육, 애자일 프랙티스를 적용할 수 있는 실무 교육 등)
  • 사용하고 가이드 하는 도구에 대한 깊은 이해를 바탕으로 업무 프로세스를 정립하고 개선하는 업무

단순히 이론으로만 접근하지 않고, 애자일을 실행하는데 있어서도 최대한 실용적인 방법을 제안하기 위해 코칭 업무와 플랫폼 운영업무를 병행하고 있습니다.

최근에는 애자일코치파트의 전신인 OpenTF에서 만든 OpenWork Framework 을 전사에 확산하기 위한 활동을 주로 진행하고 있습니다. OpenWork Framework에 대해서는 2020 if kakao에서 소개드릴 예정입니다. ^^

Q2. 애자일코치파트는 어떻게 일하나요?

애자일코치파트만의 특별한 일하는 방식이 있지는 않아요.

다만, 5가지 카카오스러움을 최대한 지키려고 합니다. 특히 Act for Yourself, 스스로 몰입하고 주도적으로 일하는 것을 가장 중요한 가치로 두고 있습니다.

단순히 정해진 일(Task)을 수행하는 것이 아닌 지식(Knowledge)을 기반으로 정답이 없는 문제를 지속해서 고민하고 더 나은 방향을 제시하고, 함께 고민해나가는게 애자일코치파트의 일하는 방식이라고 할 수 있습니다.

이를 위해서 끊임없이 나와 내 주변을 관찰하도록 하고, 끊임없이 왜?라는 질문을 던지도록 합니다.

자기주도성은 카카오에서 가장 중요하게 생각하는 가치 중 하나입니다.

Q3. 카카오에서 애자일코치파트의 역할은 무엇인가요?

카카오는 국내 어느 기업보다도 애자일 마인드셋이 성숙한 기업이라고 생각해요.

5가지 카카오스러움은 대표적인 카카오의 일하는 문화이고, 이를 지속하기 위해 모든 크루들이 항상 노력하고 있죠.

  • 가보지 않은 길을 두려워 하지 않습니다.
  • 무엇이든 본질만 남기고 처음부터 다시 생각해 봅니다.
  • 나보다 동료의 생각이 더 옳을 수 있다는 믿음을 가집니다.
  • 스스로 몰입하고 주도적으로 일합니다.
  • 세상을 선하게 바꾸려고 노력합니다.

5가지 카카오스러움을 바탕으로 카카오 크루들은 올바른 방향으로 향하기 위해 끊임없이 상호작용하고, 결정된 내용에 대해서는 빠르게 실행하며, 정보의 공개와 맥락의 공유를 통해 서로 협력하고 상황의 변화에 빠르게 대응하고 있습니다.

카카오가 보여준 수많은 혁신은 이런 카카오의 일하는 문화에서 비롯되었다고 볼 수 있습니다.

애자일코치파트는 이런 카카오의 애자일 문화를 더욱더 성숙하게 하는데 책임이 있다고 생각합니다. 카카오의 수많은 서비스가 더 나은 가치를 더 빠르게 더 자주 사용자에게 전달하게 하기 위한 카카오의 일하는 방식, 개발 문화, 프로세스에 대한 리더십을 갖고 이에 대한 고민과 실행을 주도하는 조직입니다.

#본질에서출발 #생각에당연함없이

Q4. 애자일 문화를 위해서 가장 중요하게 고려해야 하는(또는 생각하시는) 부분이 있다면 무엇인가요? 

건물을 지을 때 기초공사가 중요하듯이 애자일에서도 기반이 되는 문화가 가장 중요하다고 생각합니다.

기초가 부실하면 아무리 잘 쌓아올려도 금세 무너지게 되죠. 애자일에서의 그것은 바로 마인드셋(MindSet)으로 볼 수 있습니다.

애자일 마인드셋 없이, 핵심 가치와 원칙에 대한 올바른 이해 없이 단순히 Doing으로써의 실천법들만 실행하는것은 실패하기 쉽습니다.

마인드셋(mindset) > 가치(4 values) > 원칙(12 principles) > 실천법(many practices)

그렇다면 애자일 마인드셋은 어떻게 만들어질 수 있을까요? 저는 조직 문화라고 생각합니다. 기초공사를 아무리 잘하더라도 지반자체가 약하다면 역시 무너지기 쉽습니다.

조직 문화는 애자일 마인드셋이 자리 잡을 수 있는 지반이라고 볼 수 있습니다. 동료들을 신뢰하고, 누구와도 대등한 관계에서 의견을 나누고, 모든 정보들이 공개/공유 되고 그 맥락 또한 그렇게 되는 문화가 갖추어졌을 때 애자일은 더욱더 그 가치를 보여줄 수 있다고 생각합니다.

마인드셋은 한순간 만들어지거나 바뀌지 않습니다. 애자일 마인드셋이 자리 잡기 위한 환경이 지속적으로 제공되었을 때 서서히 자리 잡게 된다고 생각해요.

Q5. 애자일코치파트를 만들게 된 계기와 합류하게 된 과정이 궁금해요! 

애자일코치파트는 올해 4월에 새롭게 만들었습니다.

전직 개발자에서 이제는 카카오의 공식 1호 애자일코치로서 업을 이어나가고 있습니다. 사실 공식 역할은 아니었으나, 애자일코치파트를 만들기 이전에도 비슷한 업무를 해 왔어요.

약 10년 가까이 카카오의 개발/협업 플랫폼을 담당하는 개발자였는데요, 단순히 도구를 운영하는 것을 넘어서서 개발 문화/프로세스를 성숙하게 하는데 관심이 많다보니 자연스럽게 애자일에 관심을 갖게 되었습니다.

공식적인 역할은 아니었지만 애자일에 대해서 공부하고 사내에 전파하기 위해 다방면으로 활동을 해왔습니다.

  • 코드리뷰 문화를 확산하기 위해 노력(https://www.slideshare.net/pioneerhjlee/code-review-devon2013)
  • 전사 모바일앱 CI/CD 플랫폼 개발(https://tech.kakao.com/2016/04/21/mobil/)
  • GitHub Enterprise 도입
    (https://github.com/customer-stories/kakao)
  • 카카오는 애자일한가요?(https://www.slideshare.net/pioneerhjlee/ss-184759993)
  • 다양한 애자일 프랙티스, 도구, 개발문화를 주제로 다양한 형태로 사내 전파
  • 30+ 종류의 강의 주제
  • 전사 세미나, 조직단위 교육, 워크샵, 1:1 레슨, 온라인 강의 제작 등 다양한 방식   
  • 칸반교육, 워크샵 진행시 자기주도적 학습을 위해 추천도서 선정 및 배포
  • 추정과 계획 교육시 추정 활동에 필요한 플래닝 포커 실물을 제작하여 전사에 배포

애자일코치파트를 만들게 된 시발점은 2019년 여름에 시작된 TF였습니다.

카카오는 자기 주도적으로 일하고 권한과 책임이 위에서 아래로 많이 위임되어 있기 때문에 조직별로 일하는 방식이나 도구 등이 각각의 조직에 최적화된 상태였어요.

물론 이대로도 충분할 수 있으나, 사실 여러 불편한 부분들도 발견되고 있었습니다. 부분의 최적이 전체의 최적은 아닐 수 있고, 우리는 지금 충분히 잘하고 있지만 더 잘 할수 있는 방법은 없는지에 대한 고민이 필요한 시기였다고 생각해요. 카카오 전체 크루들의 일하는 방식에 대한 고민과 새로운 일하는 체계를 만들기 위해 OpenTF를 시작하게 되었습니다.

약 8개월 동안 OpenTF에서 카카오의 일하는 방식 OpenWork를 만들게 되었는데, 이후 이를 전사에 다시 확산해야 하는 과제가 주어졌습니다. 보다 전문적이고 지속적으로 이 업무를 수행하기 위해 TF에서 정규조직을 신설하게 되었고 그것이 애자일코치파트의 시작입니다.

카카오는 애자일한가요? – 2019 애자일 코리아 컨퍼런스

Q6. 애자일코치로서 보람을 느끼는 순간과 힘든 순간이 있다면 언제일까요?

코치로서는 이제 막 시작하는 단계라 코칭 역량은 아직 많은 배움이 필요하다고 생각해요.

코치로서라기 보다 지금까지 업무를 해오면서 가장 보람을 느꼈던 순간은 크루들의 마인드셋이나 프랙티스를 실천하는 것들이 어느새 자연스런 활동으로 자리 잡고 있는것을 발견했을 때 라고 생각해요.

2013년에 사내에 코드 리뷰 활동을 전파하려고 했을 당시와 요즘을 비교해보면 너무나도 큰 인식차이가 있어요. 예전에는 “해야 됩니다.” 라고 열심히 떠들고 다녔었는데, 지금은 굳이 말하지 않아도 당연한 활동으로 여겨지고 있죠. 그리고 스크럼을 하지는 않았지만 자연스럽게 데일리미팅을 통해 서로의 업무를 공유하는 활동이 자연스럽게 자리 잡기도 했구요.

최근에는 OpenWork의 행동 모델 중에 완료조건을 정의하도록 하는 항목이 있었는데, 사무실을 지나다니다 보면 심심치 않게 완료조건이라는 용어가 들려올 때마다 뿌듯한 마음이 느껴져요.

힘든점은.. 결국 사람을 설득시키고 이해하게 하고 행동하게 하고 변화하게 하는 활동이 대부분이라 그 부분은 여전히 가장 어렵고 힘든것 같아요.

“크루들이 좋은 방향으로 변화하고 있다고 느낄 때, 이 일에 대한 보람을 느낍니다.”

Q7. 카카오 애자일 문화 중 가장 자랑하고 싶은 문화가 있다면요?

애자일 문화라기 보다 카카오의 문화 중에서 가장 자랑하고 싶은 것은 위에서도 많이 이야기했지만 아래 두 가지라고 생각해요.

수평적 커뮤니케이션과 공개/공유(결과뿐만 아니라 그 맥락까지)

개인적으로 이 두 가지가 성숙하지 못하다면 그 어떤 애자일 문화도 자리 잡을 수 없다고 생각해요.

  • 누구와도 자유롭게 의견을 나눌 수 있고, 그것이 힘든 일이 아닌 문화
  • 일을 왜 해야 하는지? 어떤 목적으로 해야 하는지를 알고 일하는 것과 단순히 정해진 일만 하는 것은 천지차이라고 생각해요.

이 두 가지가 뒷받침되면 자연스럽게 자기주도적으로 일할 수 있는 환경이 만들어진다고 믿습니다.

그렇게 되면 자연스레 Self Organizing Team이 만들어지게 되고 굳이 애자일~ 애자일 외치고 다니지 않아도 팀은 스스로 항상 더 나은 방향을 찾아갈 테구요.

Q8. 애자일코치파트가 앞으로 이루고 싶은 목표를 말씀해 주세요!

카카오는 애자일한가요? 라는 질문을 받았을 때 “카카오는 애자일합니다.(being) 그리고 애자일을 잘하고(doing well) 있습니다.” 라고 자신있게 이야기하고 싶어요.

우선 올해는 모든 개발 조직에 OpenWork를 확산하는 것이 목표에요. 그리고 내년에는 개발 조직뿐만 아니라 기획, 디자인, 비즈니스 조직에까지 OpenWork를 확산을 목표로 하고 있어요.

그 이후에는 카카오의 문화와 OpenWork라는 기반 위에 기둥을 세우고 지붕을 올리는 일들을 해나가게 될 것 같아요. 쉽지 않은 여정이겠지만, 블럭을 쌓아가듯 하나씩 이뤄내다 보면 언젠가 좋은 성과가 날 거라고 생각합니다.

kakao tech
kakao tech Developer Relations at kakao corp.
Top Tag
2021
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
applicative
Architecture
arena
async
aurora
Backend
bgp
ble
blind-recruitment
block
blockchain
bluetooth
brian
cahtbot
cd
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
couchbase
COVID-19
cpp
Data
DB
deep-learning
developer
developers
devops
digitalization
digitaltransformation
dns
docker
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
go
graphdb
graphql
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
json
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocon
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KCDC
khaiii
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
programming-contest
pycon
python
quagga
react
reactive-programming
reactor
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly
All Tag
2021
2021-new-krew
adaptive-hash-index
adt
agile
agilecoach
ai
Algorithm/ML
Algorithm/Ranking
almighty-data-transmitter
android
angular
anycast
applicative
Architecture
arena
async
aurora
Backend
bgp
ble
blind-recruitment
block
blockchain
bluetooth
brian
cahtbot
cd
ceph
certificate
certification
cgroup
ci
cite
client
clojure
close-wait
cloud
cloudera-manager
clustered-block
cmux
cnn
code-festival
code-review
codereview
coding
competition
component
conference
consul
container
contents
contest
couchbase
COVID-19
cpp
Data
DB
deep-learning
developer
developers
devops
digitalization
digitaltransformation
dns
docker
employeecard
eslint
Feature List
Featured
friendstime
front-end
frontend
functional-programming
funfunday
fzf
garbage-collection
gawibawibo
GC
github
go
graphdb
graphql
growth
ha
hadoop
hbase
hbase-manager
hbase-region-inspector
hbase-snashot
hbase-table-stat
hbase-tools
hri
id
ifkakao
infrastructure
innodb
internship
ios
item
Java
javascript
json
kafka
kakao
kakao-commerce
kakao-games
kakaoarena
kakaocon
kakaok
kakaokey
kakaokrew
kakaomap
kakaotalk
KCDC
khaiii
kubernetes
l3dsr
l4
links
load-balancing
machine-learning
marathon
meetup
melon
mesos
Messaging
microservice
mobil
monad
mtre
mysql
mysql-realtime-traffic-emulator
nand-flash
network
new
new-krew
nfc
nomad
ocp
open
opensource
openstack
OpenWork
page
parallel
PBA
planning poker
programming-contest
pycon
python
quagga
react
reactive-programming
reactor
recommendation
recruitment
redis
redis-keys
redis-scan
related-blind
rest
rubics
ruby
rxjs
s2graph
scala
scalaz
server
service
sharding
shopping
socket
spark
spark-streaming
SpringBoot
ssd
Statistics/Analysis
Stomp
storage
storm
style-guide
support
System
talk
talkchannel
tcp
tech
test
Thread-Debugging
time-wait
tmux
typescript
update
User Story
vim
vim-github-dashboard
vim-plugin
vue
vue.js
web-cache
webapp
WebSocket
weekly

위로