
James Long은 Mozilla의 엔지니어입니다. 이 글에서 그는 오픈소스 프로젝트의 두 가지 역할인 시작자와 유지 관리자에 대해 논의합니다. 보상 없이 얼마나 많은 오픈소스 프로젝트 유지 관리자가 지속할 수 있을까요?
시작자와 유지 관리자
지금은 금요일 밤늦은 시간, 아내는 이미 잠들었고, 마침내 작년에 GitHub에 올린 오래된 프로젝트의 풀 리퀘스트를 볼 시간이 생겼습니다. 딸은 아침 7시 반에 일어나야 하니 너무 늦게까지 깨어 있지 않는 게 좋겠습니다.
지난번 확인 이후 9개의 이슈와 2개의 풀 리퀘스트가 새로 추가되었습니다. 좋은 소식은 대부분의 이슈를 닫을 수 있고 풀 리퀘스트도 중요하지 않다는 것입니다. 어, 안 좋네요. 몇 가지 중요한 변경 사항이 있습니다. 이러한 변경 사항을 다시 고려하고 (정중한 태도로) 긴 토론에 참여해야 합니다. 이것은 획기적인 변경이지만 문서가 업데이트되지 않았으므로 모든 사용자에게 업그레이드 방법을 알려야 합니다.
프로젝트에 새로운 이슈와 풀 리퀘스트가 있다는 것을 알리는 더 나은 (푸시) 방법을 만들어야 합니다. 하지만 생각해 보니, 누구를 속이나요, 이것은 나를 더 지치게 할 뿐입니다. 이것들(이슈와 풀 리퀘스트)에 응답할 시간이 전혀 없습니다. 적어도 지금, 다른 일로 바쁠 때는 존재하지 않는 척할 수 있습니다.
왜 이렇게 자신을 몰아세우나요?
물론 제 코드가 많은 사람에게 도움이 되었지만, 그에 따른 유지 관리 부담도 매우 심각하며, 비록 그 자체는 작은 프로젝트입니다. 더 인기를 끌게 되면 (GitHub에 올린 개인 블로그는 비교적 인기가 없고 거의 사용하지 않는데도 이미 1000개 이상의 별이 있습니다, 세상에?!) 더 많은 사용자가 사용하게 될까요? 그렇다면 해야 할 일이 더 많아질 것입니다. 이제부터 매주 10시간의 업무가 될 것입니다.
저는 오픈소스 소프트웨어(OSS) 프로젝트에 많은 시간을 무료로 기여하는 사람들을 매우 존경합니다. 얼마나 많은 지루한 무료 작업이 진행되고 있는지 상상조차 하기 어렵습니다. 사람들은 다른 사람과 커뮤니티를 돕는 것을 매우 좋아하며, 이것 자체가 훌륭한 일입니다.
저도 그렇게 하는 것을 좋아하지만, 아내와 딸이 있고 (곧 둘째 딸이 생길 예정), 이미 고강도의 업무에 더해 기본적으로 불가능합니다. 그리고 Mozilla에서의 제 업무도 기본적으로 완전한 OSS 업무입니다.
지속할 수 있는 유일한 이유는 제가 무언가를 시작하는 것을 좋아하기 때문이라고 생각합니다.
모든 사람이 시작자가 되는 것을 좋아하지만, 저는 영향력을 만들고 기여하고 싶습니다. 작품을 GitHub에 올리는 것은 쉽고, 아무도 사용하지 않으면 신경 쓰지 않아도 되지만, 이렇게 해서는 어떤 영향력도 생기지 않습니다. 제가 만든 것을 사람들이 보고, 그것에서 무언가를 배우고, 심지어 사용하기를 바랍니다. 프로덕션 환경에 적용할 수 있는 라이브러리를 작성함으로써 React, React-Router, 센서, 청결 매크로, 애니메이션 등 많은 것을 배우도록 도왔습니다.
하지만 이것은 또한 부담이 됩니다.
사람들이 프로덕션에서 당신의 코드를 사용하면, 계속 유지 관리할 건가요?
아니라고 말할 수 있습니다. 그것은 당신의 권리입니다. 하지만 대부분의 경우, 당신은 당신의 아이디어가 계속 성장하고 발전하는 것을 보고 싶어 합니다. 문제는 그러한 동력을 유지하려면 배경에 많은 작업이 필요하다는 것입니다.
모든 프로젝트에는 두 가지 역할이 있습니다: 시작자와 유지 관리자. 사람들은 인생에서 이 두 가지 역할을 동시에 수행할 수 있지만, 어떤 이유에서인지 단일 프로젝트의 경우 이 두 가지 역할이 일반적으로 다른 사람에게 해당한다는 것을 발견했습니다. 시작자는 다른 각도(방향)에서 중요한 큰 발걸음을 내딛는 데 능숙하고, 유지 관리자는 코드를 살아있게 유지하는 데 능숙합니다.
또 다른 큰 차이점은 프로젝트 시작자는 보통 한 명이지만, 결국 여러 프로젝트 유지 관리자가 생긴다는 것입니다. 이것은 한 사람이 전체 프로젝트를 지탱할 수 없기 때문입니다. 인기가 높아질수록 더 많은 이슈, 풀 리퀘스트 및 기타 다양한 요청이 생기며, 이들은 선형적으로 증가하는 관계에 있습니다. 프로젝트 인기가 새로운 단계에 도달하면 새로운 유지 관리자를 추가해야 하며, 이상적인 경우는 기존의 헤비 유저 중에서 선발하는 것입니다.
한 사람이 전체 프로젝트를 지탱할 수 없기 때문에 시작자는 처음부터 절망적인 순환에 빠지기 쉽습니다. 그/그녀는 모든 좋은 아이디어를 가지고 있지만, 일부 아이디어가 점차 실현됨에 따라 점점 더 많은 (다른 사람들의) 소음 간섭을 받게 되어 미래의 아이디어를 실현하기 어렵게 됩니다. 핵심은 기존 프로젝트를 잊거나 그것들을 위한 유지 관리자를 찾는 것입니다. 후자는 일반적으로 빠르게 실현할 수 있는 작업이 아닙니다.
저本人은 확실히 시작자입니다. 저는 모든 것에 관심이 있고(호기심), 몇 가지 집중된 분야에만 전념하지 않습니다. 저는 이 라이브러리를 수년간 유지 관리해 왔지만, 금요일 밤에 밀린 이슈를 처리하는 것은 항상 저에게 큰 죄책감을 안겨줍니다.
이제부터 저는 GitHub에 올린 코드가 실험적이라는 것을 명시하고, 모든 이슈나 풀 리퀘스트에 응답하지 않을 것입니다. 제가 실제로 프로덕션 환경에 적용할 수 있는 라이브러리를 발표한다면, 누가 유지 관리할지 이미 생각해 두었다는 것을 의미합니다. 더 이상 두 번째 직업을 떠안고 싶지 않습니다. :)
이것이 모든 유지 관리자에게 하고 싶은 말입니다: 그들이 무대 뒤에서 온갖 힘든 일을 하며 코드를 살아있게 유지하고 있습니다. 여기에는 문서 작성, 버전 편집, 도메인 등록 등이 포함됩니다.
아, 오늘 밤 수정해야 할 이슈가 꽤 많네요. 아마도 README에 폐기 선언(DEPRECATED)을 추가하면 모든 것이 해결될 것입니다.
출처 명시:개발자 관계 »