Open dellabee opened 7 years ago
또한, 국내(?) 커뮤니티 관련해서는 다음 리파지토리를 참조하세요 !
고생많으십니다. 논문 리뷰가 끝나시면 위키에 올려주시면 감사하겠습니다^^
분석 대상 선정과 관련하여 논문 리뷰하여 정리한 결과를 다음과 같이 공유합니다.
여러 논문들을 검토해본 결과 오픈소스 프로젝트의 성과에 대한 지표는 다양하고 주관적이기 때문에, 정의되기 힘들다는 의견이 대부분이지만, 저희 프로젝트의 경우 Github라는 한정된 플랫폼에서의 오픈소스 프로젝트를 검토하기 때문에 이 플랫폼의 특징을 최대한 고려하며, 이 플랫폼에 가장 적절한 저장소 선정 기준을 정하면 좋을 것 같다고 생각했습니다.
먼저, OSS의 성공지표로서는 프로젝트 결과, 개발 과정, 참여자들이 얻는 결과물, 상업적인 성공 등이 있습니다.[1][2][3][4][5][6][7]
이중 여러 논문들에서 반복적으로 선정되고 고려되었던 성공지표는 개발과정에서의 활동성과 상업적인 성공이었습니다. 그리고 이를 측정하기 위한 요소들인 commit과 star는 일정하지 않고 저장소에 따라 달라지는 release, issue 같은 요소들과는 달리 안정적인 값들이기 때문에, 이들을 선정하였습니다.
단, 컨트리뷰트는 프로젝트 크기 따라 달라질 수 있어서 정확하게 반영하지 못 할 수 있고, (그런데, commit의 경우, 작은 프로젝트라도 활동성이 계속 있다면, 계속해서 늘어날수있다. 또는, size와 함께 고려하는 방법도 있다.)
활동성의 경우는 보통 commit수와 contributor수를 통해 많이 측정을 하고, 어떤 논문에서는 commit수를 지식 산출의 결과로 보기도 했습니다.[1] 그렇기 때문에, 미리 예정되었던 것처럼, 저희 과제에서도 commit수를 활동성의 지표로 보는 것이 좋을 것 같습니다.
상업적인 성공의 기준이 모호하긴 하지만, 보통 인기도와 다운로드 수를 사용합니다. 이에 대해선 Github의 star수를 사용해서 인기도를 측정하는 것이 저희 플랫폼에서는 가장 이상적이라고 생각합니다. star 수가 Github에서 인기도를 측정하는 지표라는 것을 논문에서 확인하였고,[9]
fork와 watcher 같은 요소들도 사용할 수 있다고 생각했지만, star,fork,watcher 들의 Pearson 상관계수가 높게 나오기 때문에 [10] 한 가지 요소만을 고려해도 된다고 생각합니다.
디운로드 수로 성공을 가늠하기도 하지만, 깃허브 상에서 측정이 가능한 유사한 것은 'fork' 밖에 없으며, 정확하게는 다운로드가 아닌 수정을 위한 기능입니다.
분석범위에 대해서는 기존 연구들을 보면, 명확한 기준이 없기 때문에, 우리가 가지고 있는 연구 데이터에서 적용 가능한 방법을 도입하는 것이 첫번째라고 생각합니다.
다운로드 수를 세는 것은 Github에서 불가능하고, issue 보고와 pull requst는 모든 저장소에 대하여 특정 기간 내의 발생 수를 조사 및 카운팅해야 되며, 추후 SPRi의 재분석을 고려하면 시간적 측면에서 비효율적입니다.
그래서, 기존 연구들을 참고하면, Github 플랫폼에서는 인기도의 지표를 보는 star수를 보는 것이 현재 가능한 방안인 것 같습니다. 빠른 연구 진행을 위해서, 다음과 같은 기준으로 분석 대상을 선정하고 데이터베이스를 분석하려고 합니다. 추후에는, 분석한 데이터에서 활동성과 다른 지표들이 어떤 관계가 있는지 살펴볼 것입니다.
다음과 같은 검색 기준을 설정하여 저장소들을 선정할 예정입니다.
2번 검색 + language 로 검색해서 소프트웨어가 아닌 저장소를 거른 저장소 수: 493159
ActionScript: 403
C 18433
C# 21334
C++ 24807
Clojure 2059
CoffeeScript 1887
CSS 15533
Go 17421
Haskell 3009
HTML 26046
Java 58644
Javascript 126601
Lua 3791
Matlab 1910
Objective-C 14572
Perl 1661
PHP 32087
Python 63965
R 4620
Ruby 14015
Scala 4281
Shell 19823
Swift 13919
TeX 2292
Vim script 46
총합: 493159
[1]: Singh, Param Vir, Yong Tan, and Vijay Mookerjee. "Network effects: The influence of structural social capital on open source project success." (2008).
[2]: Crowston, Kevin, Hala Annabi, and James Howison. "Defining open source software project success." ICIS 2003 Proceedings (2003): 28.
[3]: Grewal, Rajdeep, Gary L. Lilien, and Girish Mallapragada. "Location, location, location: How network embeddedness affects project success in open source systems." Management Science 52.7 (2006): 1043-1056.
[4]: Stewart, Katherine J., and Sanjay Gosain. "The impact of ideology on effectiveness in open source software development teams." Mis Quarterly (2006): 291-314.
[5]: Maqsood, Junaid, Iman Eshraghi, and Syed Sarmad Ali. "Success or Failure Identification for GitHub's Open Source Projects." Proceedings of the 2017 International Conference on Management Engineering, Software Engineering and Service Sciences. ACM, 2017.
[6]: Istiyanto, Jazi Eko, et al. "Success Factors of Open Source Software Projects using Datamining Technique." Proceeding of Information Technology and Communication International Seminar (ITIS). 2009.
[7]: Midha, Vishal, and Prashant Palvia. "Factors affecting the success of Open Source Software." Journal of Systems and Software 85.4 (2012): 895-905.
[8]: Kidane, Yared H., and Peter A. Gloor. "Correlating temporal communication patterns of the Eclipse open source community with performance and creativity." Computational & Mathematical Organization Theory 13.1 (2007): 17-27.
[9]: Simon Weber and Jiebo Luo. "What Makes An Open Source Code Popular on GitHub?" 2014 IEEE International Conference on Data Mining Workshop
[10]: Junaid Maqsood, Iman Eshraghi, Syed Sarmad Ali. "Success of Failure Identification fo Github's Open Source Projects"
성과 지표로 star수를 사용하여, 전체 repository 440만개 중(star 0 인 것은 제외) 10만개를 분석 대상으로 선정.
• 데이터베이스 구축 후 추출한 데이터 저장 • 차후 scale up 하는 방향으로 협의 • 우선적으로 분류는 시행하지 않음 • 2015년 1월1일 이전에 생성 된 repository도 분석 • 다른 독립변수들에 대해서는 추후 논의하도록 함
회의 시간에 일단 10만개 정도로 하자고 한 것이지, 샘플링 기준을 "10만개로" 지정하는 것은 그다지 좋아보이지 않습니다.
그래서 다음 두 가지 기준
(2017년 7월 31일 8:15 PM 기준)
star 5개 이하 제외: 780578개
언어가 null인 것 제외 & star 5개 이하 제외: 676261개
선정한 repository 수를 퍼센트로 추리면 다음과 같이 나오고, 20%로 했을 시, 10만개에 가장 가까운 수가 나와, 위에서 선정한 조건의 20% 저장소로 샘플링 기준을 정하는게 좋을 것 같습니다.
일단, 이 선정 기준으로 샘플링 데이터를 모아보겠습니다.
star 5개 이하 제외: 780578개
언어가 null인 것 제외 & star 5개 이하 제외: 676,261개
언어가 null인 것만을 제외하기가 어려워서 Github에서 선정한 Popular Language 25개의 합산한 값으로 카운트합니다.
선정한 repository 수를 퍼센트로 추리면 다음과 같이 나오고, 20%로 했을 시, 10만개에 가장 가까운 수가 나와, 위에서 선정한 조건의 20% 저장소로 샘플링 기준을 정하는게 좋을 것 같습니다.
상위 135252번째 저장소의 star수를 찾기 위해, star수 별 저장소의 값을 검색해봤는데, star수 50일 때, 저장소수가 136692 입니다. 따라서, 다음과 같은 기준으로 데이터를 수집합니다.
star수 5이상, language가 아닌 것들을 제외한 저장소들의 20%라는 기준은 다음과 같다고 볼 수 있습니다.
star수 50이상, popular language인 저장소
언어별로 star수 5개 이상인 상위 star수 1000번째 저장소의 star수를 확인합니다. 2017-07-31 오후 9:36 기준
언어별로 1001번째 star수 부터 star수 50까지 star 수별로 데이터를 요청하여 데이터를 모으고 합산하였습니다.
데이터 요청은, Github-API의 search기능을 사용해서, 다음과 같이, language와 star 필터로 언어별 star수 마다 검색되는 데이터들을 수집했습니다.
단, 이 방법의 한계점은 star수나 language 같은 필터를 사용하기 위해 search(조건 검색)를 사용했지만, 조건에 따라, 1000을 초과한 데이터는 받을 수 없습니다. 총 결과값의 수는 알려줍니다.
다른 리포지토리에서 Mirror 된 경우, start 수가 적어 데이터선정 기준에 들지 않더라도 산업별로 어떤 Actor 들이 협업해서 혁신하고 있는지 볼 수 있는 좋은 CASE 들 입니다.
GENIVI
OSHERA
OpenMAMA
Allseen Alliance
Polarsys
Android Community
*기존자료에 github 리포지토리를 찾아 추가함
(2017-08-11 01시 기준) search 시작...
Star 5개 이상 모든 저장소 수 = 787,291 지난번 search 시기인 7월 31일 때 보다 저장소가 약 7,000개 정도가 증가함
Star 5개이상 & all language 저장소 수 = 701,833 Popular Language만 포함시켰을 때는 약 100,000개 정도가 걸러졌으나, Other Language까지 포함시켰을 때, 약 85,000개 정도가 걸러짐
20%로 할 경우 star가 51개 이상인 저장소들을 모두 포함
Other Language
star 50개이상, Programming Language가 아닌, 분석 대상에 선정된 언어 = 234개
기업이 참여한 성공적인 사례의 하나로 분석을 하자는 말씀이지요? 전에 시스트란 인터내셔날 대표가 최창남 대표이셨는데, 보내주신 zdnet 기사를 보니 지금은 바꾼 것 같네요. 최창남 대표님은 한양대 저희 트랙에서 MBA를 하셔서 제가 개인적으로 잘 압니다.
네, @jongkim3 교수님. 사례분석으로 요청드리는 것 맞습니다.
아직 '성공'사례인지는 모르겠지만, 자연어 처리연구가 오픈소스 방식에 적합한 것 같아 시스트란에서 의미있는 시도를 하고 있다고 생각합니다.
전임 대표님을 잘 아신다니 사례분석을 하게 되면 기분이 남다르시겠네요^^
이 회사 말고도 사례분석 대상이 별견되는 대로 올리도록 하겠습니다.
이러한 사례분석 대상을 무한정 늘릴 수 없어 어느시점이 되면 freezing을 해야겠지만 아직은 추가해도 괜찮을 것 같아 요청드립니다.
Openhub의 기준을 참조하면 좋을것 같습니다. Openhub에서 관련 API를 공개하고 있으며, 코드라인수와 커밋을 가지고 활성화 정도를 측정하고, 인기도는 기여하는 사람수로 하는 것 같군요.
Star수를 성과지표로 사용하는 것에 대해서, 제 개인적인 의견은 Star 수는 일반사용자의 관심도이지, 실제 사용현황도 아니고, 성과로 보기는 어려울 것 같습니다.
분석대상을 추출하는 데 있어 성과지표는 코드라인수와 커밋수, 다운로드수 등을 복합적으로 고려하는 것이 좋겠다는 의견입니다.
또한, SW분야별로 층화 추출이 되면 좋을것 같습니다.