메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

오픈소스 커뮤니티의 생명력을 유지하기 위해 커뮤니티의 연대를 측정하라

한빛미디어

|

2015-04-20

|

by 한빛

22,992

제공 : 한빛 네트워크
저자 : Jesus M. Gonzalez-Barahona
역자 : 김인범(http://revolutionist-inbum.tistory.com)
원문 : Measure your open source community’s age to keep it healthy


데이터는 당신이 회전율과 연대에 대해 알아야 한다는 것을 말하고 있다.

정말 자유/오픈 소스 소프트웨어 프로젝트를 이해하기 위해서는, 개발하고 지원하는 커뮤니티가 어떻게 진화하는지 알아야 한다. 많은 새로운 멤버들의 관심을 끄는 것은 성장중인 프로젝트의 성공을 축하하기에 좋은 이유가 될 수 있지만, 그들이 오랜 시간 프로젝트에 머물러 있는지 역시도 확인해야 한다. 하지만, 성숙 단계에 접어든 프로젝트에서, 당신이 오래된 것들을 계속 유지하고 있는 한 많은 신입 멤버들의 관심을 끌어 들일 수는 없다. 경험이 있는 오랜 기간 동안 기여해온 멤버와 새로운 멤버의 비율은 코드의 질을 말해주고, 멤버들을 지원해야 함을 알려준다.
살펴 봐야 할 많은 측면 중, 중요한 두 가지 지표는 다음과 같다.

회전율Turnover
어떻게 사람들이 커뮤니티에 들어오고 나가는지를 보여준다. 간접적으로 이는 얼마나 커뮤니티가 매력적이고 사람들이 한 번 가입하면 얼마나 그곳에서 활동을 유지하는지에 대한 암시를 준다.

연대Age
연대는 "프로젝트에서의 시간의 길이"를 의미하고, 현재의 멤버가 얼마나 오래 전부터 프로젝트에 합류했는지를 측정한다. 이는 오래된 멤버부터 신규 멤버까지, 다양한 경험을 가진 사람들이 얼마나 많은지를 보여준다.
이 두 가지 지표는 충돌을 측정하고, 미래에 변화할 커뮤니티의 구조와 크기를 예상하며, 그리고 커뮤니티의 건강한 성장을 막을 수 있는 가능성 있는 문제들을 조기에 탐지하기 위해 쓰일 수 있다.

커뮤니티 연대 차트
회전율Turnover과 연대Age 두 가지 모두의 구조는 소프트웨어 개발 저장소의 데이터로부터 측정될 수 있다.정보의 메인 원천은 소프트웨어를 제작하는 활성 개발자들에 대한 정보를 제공하는 Git과 같은 소스코드 관리 저장소이다. 이슈 추적 시스템과 메일링 리스트 저장소 역시 흥미로운 정보의 원천이다.

이러한 저장소로부터 수집한 회전율과 연대 구조 데이터를 시각화 하기 위해 단일 차트가 쓰이며, 이를 커뮤니티 연대 차트(the community aging chart)라 한다. 이 차트는 인구 연대층에 대해 파악하기 위해 사용되는 인구 피라미드를 확장한 것과 비슷하다. 이는 구조물에서 통찰력을 제공하듯이, 프로젝트에서 개발자들의 연대층을 표현한다. 예를 들어, [그림 1]은 2014년 7월 기준으로 OpenStack 프로젝트 Git 저장소의 프로젝트 기여자contributor에 대한 커뮤니티 연대 차트를 보여준다.

[그림1] 코드 제작에 대한 커뮤니티 연대 차트 


[그림 1]에서, Y축은 프로젝트 멤버의 서로 다른 "세대"를 보여준다. 차트는 6개월 단위로 나뉘어져 있고, 가장 오래된 세대는 차트의 위에, 젊은 세대는 아래에 위치해 있다. 각 세대별로 녹색 그래프 막대(Attracted)는 사람들이 합류한 횟수를 나타낸다. 다른 말로, 상응하는 기간 동안 - 말하자면 2010년 첫 학기와 같이 - 얼마나 많은 사람들이 커뮤니티에 매력을 느꼈는지를 의미한다. 한편, 파란색 그래프 막대(Retained)는 그 세대에서 얼마나 많은 사람들이 커뮤니티에서 활성 상태로 존재하는가를 나타낸다. 다른 말로, 커뮤니티에 매력을 느꼈던 이들 중 얼마나 많은 이들이 커뮤니티에 남아있는가를 의미한다.


하나의 차트, 많은 관점

연대차트는 커뮤니티의 많은 다른 측면에 대한 통찰을 제공한다. 이러한 것 중 몇 가지를 살펴보자.

각 세대에서 그래프 막대 쌍의 비율은 내부 유보율을 의미한다. 각 그래프 막대 쌍의 길이를 비교함으로써, 어떤 세대가 가장 성공적으로 유지되었는지를 볼 수 있고, 어떤 세대가 프로젝트 상에서 가장 유기되는지(버려지는지) 알 수 있다. 가장 최신 세대에서 보유율은 항상 100%인데, 이는 최근에 커뮤니티에 가입한 이들은 활성 상태(active)로 간주되어지기 때문이다(그러나 이는 비활동 기간에 달려있는데, 이에 대해서는 곧 설명하도록 하겠다). 50%의 비율은 세대의 절반이 유지되고 있다는 의미이다.

녹색 그래프 막대의 진화는 시간에 따른 매력의 진화에 대해 말해준다. 가장 성공적인 프로젝트는 적은 관심으로 시작하지만, 특정 시점에서, 매력적으로 변하며, 녹색 그래프 막대는 빠르게 증가한다. 프로젝트가 성숙단계에 접어들면, 매력도가 보통 안정적으로 변하고, 가능성 있는 새로운 멤버들에게 더 이상 "충분히 매력적이지" 않아서, 그 매력도의 수치는 심지어 감소할 수도 있다. 그럼에도 불구하고, 매력도가 감소하는 큰 프로젝트는 매우 성공적으로 남아 있을 수 있다.

파란 그래프 막대의 진화는 커뮤니티의 현재 연대 계층에 대해 말해준다. 만약 상단에 위치한 그래프 막대가 크지만, 하단에 위치한 그래프 막대가 작다면, 커뮤니티는 앞선 세대가 잘 유지되고 있지만, 새로운 멤버들은 어려움을 겪고 있음을 의미한다. 반대로, 상단에 위치한 그래프 막대가 작은 반면에 하단에 위치한 그래프 막대가 크다면, 새로운 멤버들은 안정적으로 머무르는 반면에, 기존 멤버들은 이미 떠났음을 의미한다. 파란 그래프 막대는 녹색 그래프 막대만큼 커질 수 있다(처음에 커뮤니티에 매력을 느낀 사람보다 더 많은 사람들을 커뮤니티에 머무르게 할 순 없다). 그러므로 파란 그래프 막대 상에서 "크다"와 "작다"는 항상 녹색 그래프 막대에 상대적이다.


다른 정보를 위한 다른 차트

커뮤니티 연대 차트는 다음 세 가지 매개변수를 고려하여 만들어졌다.
  • 세대기
    커뮤니티의 사람들은 이 단위를 이용하여 그들의 세대에 따라 차트에 명시될 것이다.

  • 비 활동기
    누군가가 커뮤니티를 떠나는 것에 대해 고려하기 전에 얼마나 오래 기다릴 것인지를 나타낸다. 우리는 누군가가 정말 커뮤니티를 떠날지에 대해 알 수 없다. 아마도 그들은 휴가 중일 수도 있고, 진료의 목적으로 잠시 자리를 비웠을지도 모른다. 그러므로 우리는 특정 기간을 선택해야 한다. 그리고 "만약 누군가 지난 M 개월간 비활성 상태라면, 우리는 그 사람을 커뮤니티의 시작으로 고려해야 한다." 과 같은 것을 결정해야 한다. M은 비 활동 기간을 의미하며, 보통 세대기와 동일하지만, 다를 수도 있다.

  • 스냅샷 날짜
    누가 남게 될지 결정한 날짜를 의미한다. 비록 [그림 1]은 현재 날짜를 스냅샷 날짜로 표현했지만, 누가 과거의 다양한 날짜에 남았었는지를 보여주기 위해 비슷한 차트를 만들어내는 것은 가치 있는 일이다. 다른 스냅샷 날짜간의 스냅샷 비교는 프로젝트 역량의 진화에 대해 보여주는 것과 같고 이는 멤버들의 관심을 이끌어내고 더 나아가 그들을 머무르게 하는데 도움이 된다. 과거로부터의 커뮤니티 연대 차트와 현재의 차트를 비교하는 것은 시간의 흐름에 따라 성장하기 위한 프로젝트 잠재력의 차이를 보여준다. 대부분의 개발 커뮤니티에서, 오랜 기간 동안 비활성 상태의 사람들은 다시 나타날 가능성이 거의 없다. 이는 1년 전 스냅샷 된 차트의 retention bar의 합이 1년 동안 들어오는 세대를 제외하고 커뮤니티가 1년 후에 도달하게 될 최대 인구임을 의미한다.

 

 

샘플 비교와 몇 가지 비평


시간에 따른 연대(aging)의 변화를 설명하기 위해, [그림 2]는 [그림 1]의 1년 이전의 날짜에 대한 커뮤니티 연대 차트를 보여준다. 두 차트 모두 6개월 세대(generation)를 보여주고 6개월 비활성 기간 또한 사용하였다.

[그림 2] 2013년 7월 당시의 코드 제작자에 대한 커뮤니티 연대 차트 


명백하게 충분히, 2013년 차트는 두 개의 적은 그래프 막대(bar)를 가진다. 2013년 7월 당시에 프로젝트에 참여하지 않는 마지막 두 세대에 해당하는 그래프 막대(bar)가 부족하다. 2014년 7월에 1년보다 더 오래된 세대에 해당하는 녹색 그래프 막대는 정확히 2014년 7월의 차트에 있는 사람들과 같고, 단지 1년이 옮겨진 것이다. 스냅샷 날짜를 변경했을 때 한 세대 동안 커뮤니티에 흥미를 느낀 사람들의 수는 변하지 않았다.

만약 우리가 지금 2013년 7월의 1년이 경과한 세대에 집중해 살펴본다면(아래서 세 번째 것), 1년 뒤에 표시될 결과를 볼 수 있다. 190명의 커뮤니티에 흥미를 느낀 사람 중 약 100명은 2013년 7월에도 여전히 남아있었다. 이제 테이프를 빨리 감아 미래로 이동해보자. 2014년 7월의 차트에서, (이제) 2년이 경과한 세대에서 약 70명의 멤버가 여전히 남아있다. 즉, 비록 2013년 7월 프로젝트에 여전히 남아있었던 멤버들과 관련된 후자의 경우를 더 고려하였음에도 불구하고 두 번째 해보다 첫 번째 해에서 커뮤니티는 그 세대의 더 많은 비율의 멤버를 잃었다.

이와 같은 경우는 대부분의 프로젝트에서 매우 일반적으로 발견할 수 있다. 그들은 커뮤니티에 흥미를 가진 이들 중 많은 비율을 첫 1년 동안 잃게 되지만, 그 시점 이후로는 멤버들의 많은 비율이 커뮤니티에 남아있게 된다. 이는 새로운 프로젝트 멤버의 성향뿐 아니라 프로젝트의 정책과 사람들이 어떻게 커뮤니티에 합류하게 되었는지에 달려있다. 보통 첫 해 커뮤니티에 남아있는 멤버의 비율은 무엇보다 커뮤니티에 합류하는 것이 얼마나 어려운지를 반영한다. 커뮤니티에 합류하는 것이 어려울수록, 새로운 세대의 사람들이 더욱 흥미를 가지기 어렵다. 그러므로, 다른 진입 장벽을 가진 프로젝트는 아주 다른 수의 사람들의 흥미를 끌지만, 아마 1년 후에 남아 있는 멤버의 수는 비슷해질 것이다. 물론, 커뮤니티의 자원 봉사자와 고용된 개발자는 다른 진입/퇴장 패턴을 가질 것이고 이러한 비율에 영향을 미치게 된다.

우리는 또한 미래를 조금 읽을 수 있게 된다. 각 세대당 현재의 멤버 보유율이 지속된다고 가정하면, 우리는 프로젝트에 특정 경험이 있는 커뮤니티의 총 크기로부터 미래에 대한 보유율의 그래프 막대의 크기를 추정할 수 있다. 예를 들어, 지금으로부터 1년 후에, 프로젝트에 2년 혹은 그 이상의 기간 동안 머무르게 될 모든 멤버들은 현재 1년보다 오래된 세대에 상응하는 파란색 그래프 막대와 같다. 이는 개발자 또는 숙련된 개발자의 부족함에 대한 예측을 감안한 것이다.

사실은 미래에 대한 이상적인 차트를 정의하고 이를 그 시간에 도달했을 때 실제 차트와 비교해 봄으로써, 흥미를 유발하거나 커뮤니티에 오래 머물도록 촉진하는 모든 정책이 이러한 연대 차트로도 쉽게 추적될 수 있다.

만약 당신이 커뮤니티 연대 차트의 실제 사례에 관심이 많다면, Grimoire Dashboards의 Studies | Demographics 메뉴 항목을 확인하길 바란다. Bitergia site에서 몇몇 샘플을 확인할 수 있다.

 

TAG :
댓글 입력
자료실

최근 본 상품0