Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

What Is Needed for the Sustainable Success of Open Source Software Projects: Efficiency Analysis of Commit Production Process via Git

13 views

Published on

For further details, please check https://www.mdpi.com/2071-1050/10/9/3001

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

What Is Needed for the Sustainable Success of Open Source Software Projects: Efficiency Analysis of Commit Production Process via Git

  1. 1. 오픈소스 소프트웨어 프로젝트의 효율성 분석 - 깃(Git)에 의한 커밋 생산 과정을 중심으로 SUDO팀: 서울대학교 경영학과 송재윤 한국생산관리학회 대학생경진대회 경영학과 송재윤| 1 OSS 프로젝트의 효율성 분석 [0] 연구 제목 및 연구자 소개
  2. 2. 무료로 배포된 소프트웨어 소프트웨어 자체의 사용 소스 코드에 대한 접근권 누구나 코드를 수정할 수 있음 자유로운 재배포 파생 저작물을 작성할 수 있음 OSS 프로젝트의 효율성 분석 [1] 서론  오픈소스 소프트웨어 프로젝트 - 오픈소스 소프트웨어란, 단지 무료로 배포된 소프트웨어를 말하는 것이 아니다. 소프트웨어 자체의 사용뿐만 아니라, 소프트웨어를 구성하는 소스 코드에 대한 접근권과 더불어, 누구 나 코드를 수정하고 파생 저작물을 작성할 수 있도록 자유로운 재배포를 허용하는 개념이다(Anroutellis-Theotokis et al., 2010). - OSS 라이선스에 따라 범위가 조금씩 달라지지만, 정의를 크게 벗어나는 것은 없다. 대표적으로 Apache License 2.0은 명시적 특허권까지 인정하여 허용 범위가 보다 넓고, GNU GPU 3.0은 동일한 라이선스 하에 생성되어야만 자유로운 사용이 가능하다는 조건이 붙어 상대적으로 제한적이다. 가장 많이 사용되는 MIT License는 그 사이 중간 정도 범위에 해당된다. - 본 발표에서는 편의상 ‘OSS’와 ‘OSS 프로젝트’를 혼용하고 있으나, 엄밀히 말하면 본 연구의 대상은 ‘OSS 프로젝트’의 효율성이다. (= OSS 프로젝트) 2
  3. 3. OSS 프로젝트의 효율성 분석 [1] 서론  오픈소스 소프트웨어 프로젝트 리누스 법칙 (Linus’ Law) 보는 눈이 많아지면 모든 버그가 드러난다 “ Given enough eyeballs, all bugs are shallow ” - Eric S. Raymond, <The Cathedral and the Bazaar>- - OSS 프로젝트의 성공은 보통 ‘다수의 협업’이라고 알려져 있지만, 단순히 다수의 적극적인 참여가 프로젝트의 효율성을 보장하는 것은 아니다. - 효율성의 측면에서는 적절한 권위를 부여 받은 소수 관리자가 다수의 참여를 원활히 관리할 메커니즘이 필수불가결이다. ? 3
  4. 4. OSS 프로젝트의 효율성 분석 [2] 연구 대상  깃과 깃허브 - 그렇다면 OSS 프로젝트가 효율적이기 위해서는 무엇이 필요한가? 단순히 다수의 적극적인 참여가 효율적인 OSS를 보장하는 것은 아니다. 효율적인 OSS 프로젝트를 위해서는 다수의 참여를 원활히 관리할 메커니즘이 필요하다. 즉 적절한 권위를 부여 받은 소수 관리자의 다수에 대한 규제가 일정 수준 동반 될 수밖에 없는 것이다(원인호, 2014). 본 연구에서 다루는 ‘깃(Git)’이 바로 이러한 자율적 협력을 위한 규제 장치의 일례이다. - 깃(Git)이란, 버전 관리 시스템의 일종으로, 다수의 참여자가 동일한 소스 코드를 동시에 수정해도 문제가 발생하지 않도록 코드의 모든 변화 이력을 관리 한다. 깃에서 소스 코드의 변화는 ‘커밋(Commit)’이라는 단위로 저장되는데, 이러한 변화를 바로 반영하지 않고 일련의 메커니즘을 통해 단계적 심사를 통과한 코드만을 받아들인다. 4
  5. 5. OSS 프로젝트의 효율성 분석 [2] 연구 대상  깃과 깃허브 - 본 연구는 OSS 개발을 위한 플랫폼인 ‘깃허브(github.com)’ 상의 프로젝트를 대상으로 한다. 깃허브는 2007년 만들어진 이래 기하급수적으로 성장하여 소스포지 와 구글코드 등 다양한 서비스를 제치고 세계 최대 규모의 OSS 프로젝트 저장소로 자리잡았다. 이는 깃허브가 깃을 지원하고 협업을 지원하는 다양한 기능을 무 료로 제공하기 때문이다. 브랜치 생성 Create a branch 커밋 추가 Add commits 풀 리퀘스트 Open a Pull Request 풀 여부 심사 Create a branch 브랜치로 풀 Deploy Branch 마스터로 병합 Merge 버그 제보 Issues 깃허브는 다양한 메커니즘을 제공한다. 5
  6. 6. OSS 프로젝트의 효율성 분석 [3] 선행 연구  OSS 프로젝트의 효율성을 어떻게 분석할 것인가? 많은 학자들이 OSS 프로젝트의 효율성에 관심을 가지고 나 름의 해석을 제시해왔다. 주목할 만한 10년 이내의 연구는 Ghapanchi & Aurum(2012)과 Wray & Mathiue(2008), 그리고 Koch(2009)가 있다.  모두 DEA(Data Envelopment Analysis) 모델을 사용하 여 프로젝트의 상대적 효율성을 분석  상업용 소프트웨어와 명확히 구분되는 OSS의 효율성을 새로이 정의하는 데 기여 Data Envelopment Analysis (DEA) : 다수의 투입물과 다수의 산출물을 가진 의사결정단위의 상대적 효율성을 측정하는 기법 6
  7. 7. OSS 프로젝트의 효율성 분석 [3] 선행 연구  선행 연구의 한계 1. OSS 프로젝트의 내부 처리과정을 고려하지 않았다. - [한계] 전통적인 DEA 모델은 투입과 산출 사이의 과정을 블랙박스(black box)로 간주해버려, 복합 적인 과정을 내포하고 있는 OSS 프로젝트의 효율성을 정확히 담아내지 못한다. - [개선점] 본 연구에서는 확장된 Two Stage DEA 모형을 적용하여 내적 비효율성을 포착 2. 연구 대상을 소스 포지 프로젝트로 삼아, 최신 OSS 프로젝트에 적용하기에 간극이 존재 - [한계] 과거 OSS 프로젝트의 메카였던 소스포지(sourceforge.net)는 단지 소프트웨어를 다운로드 하기 위한 용도의 웹사이트로 변질되어 더 이상 OSS 플랫폼을 대표하지 못함 - [개선점] 본 연구는 깃허브를 기준으로 하여 보다 시의 적절한 결과를 도출 * 2010년 커밋 수 비교 * 2017년 이용자 수 비교 7
  8. 8. OSS 프로젝트의 효율성 분석 [4] 연구 모형  Two Stage DEA 2단계 DEA 모형은 의사결정단위의 내부 구조를 단일 단계가 아닌 2단계로 세분화하여 효율성을 산출한다. 본 연구에서는 OSS 프로젝트의 효율성을 논함에 있어 이러한 ‘커밋’이 생성되고 마스터 브랜치로 병합되는 과정을 반영하고자, 중간산출물로 ‘커밋의 수’를 설정하였다. 1단계 – Merge Efficiency : 다수의 참여자가 얼마나 효율적으로 커밋을 생산할 수있는지를 평가 2단계 – Project Efficiency : 그렇게 생산된 커밋이 얼마나 효율적으로질적, 양적 결과물을 산출했는지 평가 8
  9. 9. OSS 프로젝트의 효율성 분석 [4] 연구 모형  투입 선정 OSS 프로젝트의 효율성을 측정할 때 투입으로 ‘개발자의 수’를 설정하곤 한다. 이때 전체 커밋은 커밋 권한자와 풀 리퀘스트 두 가지 경로로 생성된 다. 따라서 깃허브 상 (1)기여자의 수와 (2)풀 리퀘스트의 수를 투입으로 선 정하였다. -  산출 선정 결과물의 양적 지표로는 (1)프로젝트 파일의 크기를 채택하였다. Wrau & Mathieu(2008)에 따르면 양적 지표는 OSS의 성격을 온전히 반영하지 못 하므로 질적 산출물로 (2)깃허브 상 Star의 개수를 선정하였다. 9
  10. 10. OSS 프로젝트의 효율성 분석 [5] 분석 결과  효율성 분석 결과 - 1단계 효율성 : Merge Efficiency - 2단계 효율성 : Project Efficiency - 최종 효율성 : Kao(2008)에서 소개한 곱셈형 방법을 이용하 여 최종 효율성을 도출 - 블랙박스 효율성 : 전통적 DEA 방식에 따라 중간 단계를 블 랙박스로 간주한 효율성 라이선스, 활동성이 증명된 ‘웹 프레임워크’ 카테고리의 깃허브 상 OSS 프 로젝트 29개를 DMU로 선별하였다. 최종 효율성과 블랙박스 효율성을 비교하면, Two Stage 모형이 OSS 프로 젝트의 개발 프로세스를 보다 세분화하여 내부적 비효율성까지 포착하고 있 음을 알 수 있다. 10
  11. 11.  전체 커밋 대비 풀 리퀘스트의 비율이 낮을 수록 효율적 이는 풀 리퀘스트를 거치지 않고 커밋 권한자에 의해 직 접적으로 생성된 커밋이 오히려 효율성에 긍정적으로 작용 함을 의미한다.  이슈의 수가 많을 수록 비효율적 다수의 참여는 오히려 의사소통의 어려움을 가져와 프로 젝트에 부정적 영향을 미칠 수 있음을 시사한다. OSS 프로젝트의 효율성 분석 [5] 분석 결과  Kruskal-Wallis 검정 OSS 프로젝트가 효율적이기 위해서는 무엇이 필요한가? : 리누스 법칙이 외치는 ‘다수의 참여’는 때로 독이 될 수 있다. 집단의 규모가 커질 수록 비효율적 의사소통이 발생할 가능성이 늘어나고, 프로젝트의 원활한 관리가 어려워지기 때문이다. 효율적인 OSS 프로젝트를 위해 필요한 것은 일반 참여자의 단순 증가가 아닌, 오히려 다수에 대한 통제 매커니즘이다. 11

×