오픈소스 프로젝트는 이제 더 이상 취미생활로 하던 수준이 아니고 기업에서 목적을 가지고 운영하는 것이 대세입니다.
하지만 기업의 입장에서 보면 오픈소스 커뮤니티의 관리가 생소하고 이 때문에 프로젝트 수행 조직은 오픈소스 커뮤니티의 구축 및 성장을 어떻게 관리해야 하는지 경험이 부족해서 어려움이 많은 현실입니다.
얼마전 공개소프트웨어 연구개발 프로젝트의 관리에 대한 강의를 할 일이 있어서 강의 자료를 작성했는데 그 내용중 오픈소스 커뮤니티의 운영에서 생각해볼 만한 점을 공유합니다.
프로젝트의 메인테이너의 필요한 활동
• 프로세스 문서화 - 사용자, 기여자, 개발자를 위한 최신의 문서를 제공
• 공평하게 작성되고 집행되는 규칙 준비 – 프로젝트의 유지관리 상태를 투명하게 공유
• 커뮤니케이션 공개 – 가능한 모든 커뮤니케이션을 공개
• 멘토링 수용 – 품질이 낮은 기여를 제출하는 경우 인내심을 가지고 기여할 수 있도록 지원
• 커뮤니티의 기여자 활용 – 공개적으로 필요한 요청을 제시하고 반복적인 기여자에게 더 많은 책임을 부여
• 다른 사람이 필요한 솔루션 구축을 지원 (API)
• 자동화 도구를 적극 활용 – 모든 제출에 대해 최소 품질 표준을 설정하고 코드 품질 향상을 위한 테스트를 자동화
오픈소스 커뮤니티 매니저의 필요한 활동
• 커뮤니케이션이 공개되고 접근 가능한 경우 누구나 과거의 게시물을 읽고 참여 가능한 장소 제공 (커뮤니티 사이트, 포럼, 메일링리스트)
• 개인적인 대화를 공개 채널로 안내해서 전환하도록 유도
• 커뮤니티의 이슈에 대한 빠른 대응 - 48시간 내에 코드 검토를 받은 기여자들은 매우 높은 충성도(모질라 재단 연구)
• 인터넷 상의 다른 곳(Stack Overflow, Twitter, Reddit, Google)에서 프로젝트가 언급될 수 있기 때문에 알림을 받을 수 있도록 설정
• 공개 커뮤니케이션에 대한 보안 문제, 민감한 행동 규범 위반 등의 예외적 상황을 커뮤니티 구성원이 개인적으로 보고할 수 있는 방법 제공
• 행동 규범을 준비하여 나쁜 영향을 미치는 커뮤니티 구성원을 최소화 – 문제가 지속되면 떠나도록 요청해야 할 수 도 있음.
• 커뮤니티 내부에서 기여자를 발굴하기
• CONTRIBUTING.md 파일에서 새 기여자에게 시작하는 방법을 제시
• 기여자를 환경하는 특별한 페이지 준비
• 이슈에 다양한 유형의 제공자에서 적합한 레이블 사용 – good first issue, help wanted
• 친절한 문서를 사용해서 사람들이 모든 단계에서 환영 받는 느낌을 받도록 제공
• 커뮤니티와 최대한 소유권을 공유할 수 있는 방법을 준비 - 사람들은 소유권을 느낄 때 기쁘게 기여합니다.
• 갈등 해결 – 커뮤니케이션에 대한 기준을 설정해서 구성원간 강한 의견이 있는 경우 참여하기 보다는 중재자의 입장을 취할 것
• 투표를 통한 주요 결정을 내리기 보다는 대화를 듣고 토론을 먼저 하기 - 답변 보다는 과정에 집중하는 것이 커뮤니티를 건강하게 만듭니다.
• 커뮤니티 구성원들이 충분히 들을 수 있을 때까지 주요 관심사에 대해 논의합니다.
• 조용한 커뮤니티 사용자를 고려하는 것을 잊지 않아야 합니다.
• 커뮤니티에서 행동의 우선 순위를 식별 – 순위 결정은 최후의 수단으로 사용해야 함, 이 때는 GOVERNANCE 파일에서 순위 결정 및 관련 프로세스를 식별 한 후에 사용
• 커뮤니티 거버넌스 모델은 프로젝트 참여자가 수행할 수 있는 역할과 프로젝트 내 의사결정 프로세스를 설명하고 프로젝트 참여 및 프로젝트 팀 및 커뮤니티 내 의사소통 및 공유 프로세스에 대한 기본규칙을 설명.
오픈소스 프로젝트 관리자의 커뮤니티 관리에 필요한 활동
• 사용자들이 우리 프로젝트를 잘 찾을 수 있는가?
• 총 페이지 조회수 : 프로젝트를 조회 한 횟수를 알려 줍니다
• 총 순 방문자수 : 얼마나 많은 사람들이 프로젝트를 보았는지 알려줍니다
• 추천 사이트 : 방문자가 어디에서 왔는지 알려줍니 다. 이 측정 항목은 잠재 고객에게 도달 할 수 있는 위치와 프로모션 노력이 효과가 있는지 파악하는 데 도움이 됩니다.
• 인기있는 콘텐츠 : 방문자가 프로젝트에서 방문한 위치를 페이지 뷰와 순 방문자수로 나눕니다.
• 기여자 당 총 기여 수 및 커밋 수 - 기여자 수와 활동중인 사람 수를 알려줍니다.
• 처음 기여자, 일시적이거나 반복적인 기여자 - 새로운 기여자를 받고 있는지 여부와 그들이 다시 왔는지 여부를 추적 할 수 있습니다. 새로운 기여자가 없으면 프로젝트 커뮤니티가 정체 될 수 있습니다.
• 이슈 및 요청 수 - 이 수치가 너무 높으면 문제 심사 및 코드 검토에 도움이 필요할 수 있습니다.
• 컨트리뷰션 유형 : 예를 들어 커밋, 오타 또는 버그 수정 또는 문제에 대한 의견
• 미해결 이슈 및 풀리퀘스트 요청 수 - 누군가 프로젝트를 이슈를 관리해야 한다는 것을 의미합니다. 시간이 지남에 따라 그 수가 증가하면 사람들이 프로젝트에 관심이 있음을 나타냅니다.
• 이슈 또는 풀 요청이든 관계없이 기여자 (또는 다른 관리자)가 기여에 응답하는 데 걸리는 시간을 추적
아래 화면은 오픈소스 프로젝트 하모니카의 모니터링 시스템입니다.