티스토리 뷰

Log/.daily

좋은 개발문화란 무엇일까?

가그린민트 2019. 4. 21. 01:13

많은 개발자들이 좋은 개발 문화를 원한다. 그런데 정작 좋은 개발 문화를 정의하는 이는 드물다.

아니, 무슨 신대륙을 찾아 떠나는 것도 아니고, 좋은 개발 문화가 있는 회사를 찾는다는 것은 무슨 말일까. 그저 희망 없는 현실을 도피하려는 망상인건 아닐까.

 

좋은 + 개발 + 문화

 

쪼개서 생각해보자.

우선, 문화는 개별성을 가진다기보다 상호작용의 결과이기에, 그저 표징을 따라 한다고 표상이 구성되지 않는다. 다시 말해, 우아한형제들, Line, Google 등 회사의 DR(Developer Relations) 활동을 모방한다고 그러한 문화가 발생하는 것은 아니다.

개발은 문제를 해결해나가는 과정이다. 과정의 참여자를 개발자로 한정할 경우 개발 문화는 개발 프로세스를 의미하고, 그 외연을 확장할 경우 조직문화에 대한 논의를 해야 한다고 생각한다.

그리고 좋다는 것은, 가치판단의 영역이다.

 

결국 좋은 개발 문화를 DevOps(테스트 자동화, 짧은 개발/배포 주기 등)나 코드 리뷰 등의 개발 프로세스로 한정하지 않는 한, 다양한 개별의지가 충돌하는 답 없는 문제로 귀결된다. 어쩌면 이 문제는 선험적으로 분류하기보다는 각 공동체의 정체성 내지 구성원의 페르소나가 무엇 일지를 탐구하는 방향으로 접근하는 것이 좋지 않을까 하는 생각이 든다.

문득, 소위 개발 문화가 좋다는 회사들은 이를 어떻게 정의하는지 궁금하여 검색하다, DR을 IR/PR과 비교하여 접근한 글을 보았다.

IR (Investor Relations)이란, 
투자자들을 대상으로 기업 설명 및 홍보 활동을 하여 투자 유치를 원활하게 하는 활동을 의미한다. 
... DR은 개발자들을 대상으로 회사의 문화와 기술을 알리고 기술 생태계에 회사를 홍보하고 개발자들을 모으고 기술 플랫폼을 확산하게 하는 기반활동 
... 관계는 단방향이 아니고, 양방향이어야 합니다. 
... 우아한형제들의 DR 은, 그 활동 자체가 성장의 일부분이어야 합니다.

이 기준으로 보면 좋은 개발 문화를 구성한다는 것은 (유토피아적 환상이라기보단), 시장을 형성해나가는 과정이라 할 수 있겠다. 그런데 DR에 대한 우아한형제들, Line, Google의 활동은 다소 상이하다. Line DR 팀의 활동을 보면 Funnel 분석이 연상된다.

 

Line의 기술 홍보하기(Awareness)
Line의 기술에 대한 관심 유도하기(Consideration)
Line의 기술을 이용한 개발 지원하기(Conversion)
Line에서 근무할 수 있는 기회 제공하기(Loyalty)
Line 개발자가 사내외에서 폭넓게 활약할 수 있도록 지원하기(Advocacy)

Line DR팀의 Core Benefit을 'Line의 기술'이라 할 때, 고객 세그먼트는 개발자가 될 것이고 그 충성고객을 늘려가는 과정에서 문화를 창출한다.(bot awards, connpass, Line API Expert 등) 이 흐름대로라면, Line의 개발자들 간에는 공유된 지식이 있게 되고 별도로 필요한 도메인만 익히게 되므로 부문 간 협업이 유연해진다.(정말로?)

이와 별개로 DR의 주체가 회사가 아닌 경우들도 있다. 스프링캠프, 파이콘, 데이터야놀자 등의 행사들은 개발자 스스로가 네트워킹을 하고 회사가 지원하는 형태이며, 그 외에도 이상한모임의 미경 님이나 지앤선의 지영 님처럼 개발자는 아니지만 각자의 방식으로 네트워킹을 형성해가기도 한다.

어찌 됐건 간에 일단 좋은 문화랄 것은 블로그 하나 만들어놓고, 세미나 때 샌드위치 사준다거나 스터디한다고 책 한 권 사주는 것을 의미하는 것은 아닌 것 같다.

 

그런데 정말 개발자가 원하는 것은 무엇일까?

 

프로그래머스의 통계 자료를 보면 재밌는 해석이 가능하다.

가령, 코드 리뷰/TDD를 하고 싶지만 못하고 있는 사람이 많다. 그럼에도 이는 구직시 중요한 요인은 되지 않는 것으로 보인다. 자유로운 업무환경과 팀의 개발 스택/개발 환경이 상위 랭크를 차지했다. CI에 대한 업계 간의 인식 차이와 개발자 채용 프로세스에 참여하는 사람들의 우선순위 간에도 나름의 상관관계가 있어 보인다.

 

많은 개발자들은 사실 (자주 언급되던 그런 회사들의) 좋은 개발 문화를 원하지 않았던 것일까?

아니면 좋은 개발 문화란 유연하게 내가 만들고 싶은 것들을 적절한 일정에 맞춰서 개발하고 이에 대한 지원과 상여금이 두둑한 그런 것인데 테크 리더들이 오판하고 있는 걸까?

그런데 업무환경, 개발환경과 같은 것들은 구성원들 간의 합의의 과정을 거쳐 도출되어야 하는 것이지 않나?

혹시 소통과 성장 이런 것들은 부차적일 뿐인 걸까?

이 와중에 소프트웨어의 가치가 시장에 어떻게 반영되고 평가되는지는 그다지 유의미해 보이지 않는다.

구인난과 구직난이 공존하는 역설은 이 간극에서 발생한 것은 아닐까

그리고 이런 논의는 결국 일에 대한 관점으로 귀결된다. 개개인은 일을 통해 자신의 존엄성과 자유를 찾으려는 노력을 해야 한다던가(성공하는 프로그래밍 공부법), 그 구성원들이 스스로 하는 성찰의 정도에 따라 조직의 문화가 만들어진다거나(포스팅)..

 

 

그렇다면 내가 생각하는 좋은 개발 문화는 무엇인가?

 

Core Benefit: 서비스의 핵심가치를 모두 인지하고 있으며, 도메인 지식을 서로 공유하고 그 근간이 되는 기술 개발에 대해 능동적인 문화
DevOps: 짧은 개발 주기와 장애 내성, 고품질의 코드를 위한 리뷰/테스트 등의 필요성을 공감하는 문화
Professional: 결과물에 대한 책임감과 일에 대한 자부심, 전문성 등을 서로 고취시킬 수 있는 문화

 

백엔드 엔지니어(junior) 시각에서 본..

 

이 글을 쓰면서도 아직 불분명한 것이 많다. 그리고 어쩌면 앞으로도 그럴지 모른다. 당장 위에 언급한 세 가지를 위한 실천계획의 밑바탕을 그리자니 아득해진다.
그래도 롤모델이자 스승이며, 좋은 형이고 동료인 재성(자바지기)님과 팀원들로부터 많은 영향을 받고 있고, 더 나은 방향으로 가고 있다고 믿는다. 이번 테크코스 과정을 통해 이 부분에 대해 내 나름대로의 생각을 좀 더 구체화해보는 것도 좋겠다.


애자일 선언문을 인용하며 이 글을 마무리하고자 한다.

Agile Manifesto

우리는 소프트웨어를 개발하고, 
또 다른 사람의 개발을 도와주면서 소프트웨어 개발의 더 나은 방법들을 찾아가고 있다. 
이 작업을 통해 우리는 다음을 가치 있게 여기게 되었다.

공정과 도구보다 개인과 상호작용을
포괄적인 문서보다 작동하는 소프트웨어를
계약 협상보다 고객과의 협력을
계획을 따르기보다 변화에 대응하기를
가치 있게 여긴다. 

이 말은, 왼쪽에 있는 것들도 가치가 있지만,
우리는 오른쪽에 있는 것들에 더 높은 가치를 둔다는 것이다.

'Log > .daily' 카테고리의 다른 글

190804 일상  (0) 2019.08.04
2019년 상반기 회고  (6) 2019.07.07
190216 일상  (0) 2019.02.16
190201 일상  (0) 2019.02.02
2018년 회고  (2) 2018.12.17
댓글
링크
최근에 달린 댓글
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Total
Today
Yesterday