Published on

오픈 소스 커뮤니티를 통한 첫 오픈소스 기여 기록

Authors
  • avatar
    Name
    손예지(Liv)

오픈 소스 기여

개발자로서 개발생태계에 기여하는 방법 중 오픈 소스 기여가 있습니다. 사실 그동안은 오픈 소스 기여는 경험이 많은 개발자들만 참여한다고 생각해 다른 분들의 후기만 보고 있었습니다. 그러던 중 인제님이 운영하시는 오픈 소스 기여모임을 알게 되었고, 글을 읽어보니 정말 누구나 참여할 수 있을 만큼 친절한 가이드라인과 커뮤니티가 있었습니다. 그래서 8월 한 달간 기여할 오픈 소스를 찾고 PR을 올려보는 것을 목표로 오픈 소스 커뮤니티에 참여하게 되었습니다.

제가 주로 사용하는 언어는 자바, 스프링으로 스프링 하위의 프로젝트들을 살펴보는 것으로 시작했습니다. 스프링 생태계가 많은 개발자에게 사랑받는 만큼 제가 몰랐던 프로젝트들도 있었다는 것을 이번에 알게 되었습니다. 다른 분들이 찾아서 기여하는 것을 보고 저도 저에게 적합한 이슈를 빠르게 찾고 싶은 마음이 있었지만, 운명의(?) 이슈가 등장하지 않아 이슈 찾기에 조금 어려움을 겪고 있었습니다.

Research Image

이미 올라왔던 PR을 발견하지 못하고 이슈 기여를 문의했던 과거의 나

내가 잘하는 것으로 기여하기

여러 오픈 소스를 계속 검색하면서 기여할 이슈를 찾고 있던 때에 현성님께서 커뮤니티에서 책 번역을 함께할 사람을 찾으시는 글을 보게 되고 3분 만에 지원을 하는 용기를 내어 참여하게 되었습니다. 첫 회사에서 글로벌 팀에서 일한 만큼 저의 장점이 언어에 있다고 생각해 번역으로 기여하는 것도 의미 있을 것 같다는 생각을 하고 있었는데 우연히 기여할 수 있는 기회를 발견하게 되어 기쁜 마음으로 작업에 함께 참여했습니다.

Research Image

Debugging Teams 라는 책을 번역하게 되었는데, 무엇보다 개발자로서 다른 동료와 협업하는 방법을 다루고 있는 책이었기 때문에 배울 점이 많았습니다. 구어체가 아닌 영어로 된 문서를 번역하는 것은 처음이어서 최대한 기존에 번역된 챕터와 전체 문맥을 해치지 않도록 여러 번 읽어봤고, 함께 번역하는 분들이 가져가신 원칙들을 일관성 있게 지키려고 노력했습니다. 그리고 두개의 PR로 번역에 기여하게 되었습니다.

챕터2 번역 PR

Appendix B 번역 PR

결국에는 "사람"

제가 맡았던 팀 문화에 대한 챕터 중 인상깊었던 몇 가지 부분을 소개하고 싶습니다.

  1. 팀 문화의 책임은 리더 뿐만 아니라 구성원 모두가 가진다.

예를 들어, 새로운 팀원의 작업을 꼼꼼히 리뷰하며 왜 우리 팀이 그렇게 하는지 설명해 주면, 새로운 팀원은 팀이 제품에서 무엇을 가치 있게 여기는지 빠르게 깨닫습니다.

  1. 건설적인 비판을 해줄 수 있는 동료에게 감사하고 그런 동료가 되자.

여러분이 요청할 때 건설적으로 비판해 줄 수 있는 친구나 동료를 찾았다면, 그들은 ‘언옵테이니엄(unobtainium)’만큼 귀한 사람들이니 꼭 붙잡으세요.

  1. 모든 커뮤니케이션은 다른 사람의 시간을 소중히 여기는 방향으로 진행해야 한다.

커뮤니케이션의 일반적인 규칙은 회의, 통화와 같은 동기식 커뮤니케이션에는 꼭 필요한 최소한의 사람만 포함하고, 이메일, 이슈 트래커, 문서 댓글과 같은 비동기식 커뮤니케이션에는 더 폭넓은 대상을 포함하라는 것입니다...(중간생략) 누군가의 일을 방해할 때마다 다시 몰입 상태로 돌아오려면 시간이 걸립니다—여러분이 방해를 만드는 순간을 항상 의식하세요.

  1. 효율적인 회의를 위해 사이드바(sidebar)을 활용하자.

이 회의를 잘 굴리는 핵심은, 본 파트가 끝나면 사람들이 기꺼이 자리를 떠나도록 하는 것입니다. 다룰 게 없거나 이메일로 충분히 전파할 수 있으면, 주저 말고 회의를 취소하세요.

  1. 협업중에 생기는 의사결정은 모두가 언제든 볼 수 있도록 기록하자.

모든 게시물을 검색 가능한 인덱스로 보관하도록 설정하세요—오픈 소스 프로젝트는 공개 인덱스로, 폐쇄형 프로젝트는 사내망 인덱스로 말입니다. 이제 프로젝트의 역사를 기록하는 시스템이 생기고, 새로운 팀원이 과거 의사결정의 근거를 물을 때도 쉽게 참고할 수 있습니다. 이런 논의가 어딘가에 아카이브되지 않으면, 여러분은 똑같은 이야기를 반복하고 또 반복하게 될 것입니다.

  1. 제품은 사람과의 커뮤니케이션을 통해 만들어진다.

오직 제품을 만들기 위해 강한 팀을 세우는 데 이렇게 많은 커뮤니케이션—감정적 시간과 노력까지 포함해서—이 필요하다는 사실은 종종 사람들을 놀라게 하지만, 사실입니다. 제품은 결국 _사람_과의 커뮤니케이션이지, 기계와만의 커뮤니케이션이 아니기 때문입니다.

함께하고 싶은 동료가 되고 싶어요

그동안 여러번의 프로젝트를 진행하면서 협업이 어렵지만 중요하다는 사실은 인지하고 있었지만, 이번 번역 프로젝트를 통해서 '동료의 관점'에서 협업하는 방식에 대해 배우게 되었습니다. 그리고 그동안 만났던 동료들과의 소통방식을 돌아보게 되었습니다. 커뮤니케이션이 중요하니까 싱크업 미팅을 자주 가져야 한다고 생각했었는데, 동료의 가용한 시간을 충분히 고려한 후에 미팅을 요청했을까? 하는 생각이 들었고 넘치는 열정으로 브레이크 없이 질문 했던 저를 돌아보고 그럼에도 용인해주셨던 동료분들께 감사한 마음이 들었습니다. 회의를 진행할 때 또 다른 중요한 안건으로 본래의 목적을 잃어버릴 때가 종종 있었는데, 사이드바를 활용해 원 회의의 목적을 계속해서 유지하도록 해야겠다는 생각이 들었습니다.

참고문헌

Debugging Teams 원문