작성자:기터
_앤드류 피셔(Andrew Fisher)는 아름다운 조명 효과를 만들기 위해 하드웨어와 소프트웨어를 병합하는 프로젝트를 진행하고 있습니다. 그는 자신의 프로젝트와 관련하여 오픈 소스 커뮤니티를 육성하고 관리하는 방법에 대해 이야기했습니다. 그가 말하는 내용을 알아보고 Node-Pixel Gitter 채널을 확인해보세요._
귀하와 Node-Pixel 커뮤니티에 대해 간략하게 소개해주세요. 노드 픽셀이란 무엇입니까? 이 모든 일은 어떻게 시작되었나요?
저는 20년 경력의 웹 개발자이자 현재 LUXE City Guides의 CTO입니다. 저는 항상 다양한 형태로 오픈소스 커뮤니티에 참여해 왔으며 지난 몇 년간 JavaScript Robotics(nodebots) 커뮤니티에 깊이 참여해 왔습니다.
Node-Pixel은 이를 바탕으로 하드웨어와 소프트웨어(JavaScript)를 매우 구체적으로 병합하여 아름다운 조명 효과를 만드는 프로젝트로 성장했습니다. 역사적으로 JS 하드웨어 세계에서는 그렇게 하는 쉬운 방법이 없었고 저는 예쁜 조명을 좋아해서 그것을 할 수 있는 무언가를 만들기로 결정했기 때문에 시작되었습니다.
커뮤니티는 분명히 하드웨어 조명에 특히 관심이 있는 사람들이 포함된 Johnny-Five 및 NodeBots 커뮤니티의 하위 집합입니다(다른 그룹은 기존 로봇 공학이나 홈 자동화 등에 더 관심이 있습니다). 이 프로젝트에는 JavaScript에서 하드웨어 조명을 제어하는 간단한 방법이라는 목표를 실현하는 데 도움을 준 전 세계의 놀랍도록 재능 있는 일부 개발자들의 헌신이 있었습니다.
커뮤니티로서 어떤 공통 목표를 갖고 있습니까?
위에서 설명한 것과 마찬가지로 사람들이 JavaScript로 하드웨어를 사용하고 특히 이를 수행하는 간단한 방법을 사용하여 매우 정교한 하드웨어로 작업할 수 있기를 바라는 것이 실제로 필요합니다.
요즘 Node Pixel 프로젝트와 관련하여 가장 관심이 가는 이슈는 무엇인가요?
확실히 제가 참여하고 있는 프로젝트인 Interchange와의 광범위한 통합이 가능합니다. Interchange는 pip와 npm이 Python 및 javascript 모듈에 대해 해결하는 하드웨어 펌웨어, 즉 특정 대상에 대한 패키지 관리를 해결합니다. Node Pixel 프로젝트는 JS 하드웨어 세계에서 이에 대한 필요성을 설명하고 Interchange가 발생하도록 하였으므로 Interchange와 완벽하게 호환되도록 만드는 것이 큰 목표입니다.
그 외에도 다음으로 큰 추진 사항은 라이브러리에서 애니메이션 등의 기능을 더욱 강화하고 매우 정교한 조명 효과를 생성하고 NodeJS에서 또는 잠재적으로 브라우저에서 직접 트리거되도록 하는 것입니다.
커뮤니티를 만들고 유지하면서 고려한 가장 중요한 요소는 무엇입니까? 커뮤니티의 성공에 영향을 미치는 요소는 무엇입니까?
제가 생각하는 가장 큰 것은 투명성이었습니다. 우리는 지리적으로 떨어져 있는 사람들 간의 협업을 촉진하기 위해 Gitter와 GitHub 문제를 큰 부분으로 사용합니다. 토론 등의 로그가 있으면 커뮤니티로 돌아가서 어떤 것의 근거를 쉽게 설명할 수 있습니다. 특히 프로젝트 사용자이지만 프로젝트에 기여하지 않는 경우에는 더욱 그렇습니다.
이와 관련하여 우리는 프로젝트 기여에 대한 행동 강령을 준수하며 처음부터 개방적이고 신뢰할 수 있으며 안전하고 책임감 있는 커뮤니티를 조성하기 위해 항상 노력해 왔습니다. 사람들이 그것을 단지 "현재의 방식"으로 설정하면 사람들이 참여할 때 해당 표준을 채택하는 데 도움이 된다고 생각합니다. Node Pixel은 그 점에서 훌륭했지만 안전한 장소를 보장하기 위해 Johnny-Five와 일반적인 javaScript가 JS 하드웨어 세계에서 수행하는 광범위한 작업에 실제로 많은 빚을 지고 있습니다.
커뮤니티를 관리하면서 직면하는 주요 과제는 무엇입니까?
시간대!!!!
저는 호주에 있고 대부분의 공동 작업자는 미국과 EU에 있으므로 건물 기능 등을 작업할 때 겹치는 부분을 얻는 것이 정말 어려울 수 있습니다. 태평양이나 인도양을 절반 크기로 만들어야 합니다.)
Gitter의 Node Pixel 프로젝트 채널에서 논의되는 주요 문제는 무엇입니까?
일상적인 일의 대부분은 프로젝트를 사용하는 사람들에 대한 지원을 중심으로 이루어집니다. 우리는 Gitter를 기본 지원 채널로 사용하는 것에 대해 매우 적극적이므로 사람들이 들러서 질문하도록 권장합니다. 이는 사람들이 매우 신속하게 프로젝트를 시작하고 실행하는 데 도움이 됩니다.
그 외에도 우리가 기능을 구축할 때 접근 방식, 코드 검토에 대한 참고 사항 등에 대해 많은 논의가 있었습니다. GitHub가 이를 지원하지만 접근 방식에 도달한 후 GH를 사용하여 문제와 해결 단계를 문서화하는 동안 보다 자유로운 대화의 두 번째 부분으로 GH를 사용하는 경향이 있습니다.
귀하의 경험을 토대로 지난 몇 년간 오픈소스 커뮤니티가 변화하고 발전했다고 생각하시나요? 그렇다면 어떻게?
확실히. 여기에는 좋은 점과 나쁜 점이 있습니다. 한편으로 오픈 소스는 우리가 소프트웨어를 구축하는 방식의 상당 부분을 "승리"했습니다. 개발자로서 우리는 자신의 프로젝트에서 실행 중인 코드를 보고, 검증하고, 변경할 수 있기를 원합니다. 이런 방식으로 소프트웨어 개발은 모든 사람에게 훨씬 더 개방적이며 미래의 개발자가 정보 부족으로 인해 과거의 실수를 반복하지 않고 학습하는 데 도움이 되기를 바랍니다.
나쁜 부분은 프로젝트 소비자가 수정이 즉시 발생하거나 요청했기 때문에 새로운 기능이 추가되기를 기대하는 무료 및 오픈 소스 소프트웨어의 "무료" 부분을 많이 소비할 수 있다는 것입니다. 이러한 접근 방식을 완화하기 위해 사람들과 소통하는 도구를 사용할 수 있다는 것은 매우 중요합니다. 누군가가 기여하도록 장려하고 잠재적으로 프로젝트의 일부로 보고 싶은 기능을 구축할 수 있기 때문입니다.
전반적으로, 저는 이제 커뮤니티가 커뮤니티에 더 가깝다고 생각하며 긍정적인 측면이 부정적인 측면보다 확실히 더 크다고 믿습니다. 하지만 우리는 항상 모든 프로젝트가 더 나은 경험을 할 수 있도록 돕기 위해 무엇을 할 수 있는지 살펴봐야 합니다.
온라인 오픈소스 커뮤니티를 처음부터 시작하려는 사람에게 어떤 조언을 해주고 싶나요?
자신에게 말해보세요.
이상하게 들리겠지만, 프로젝트에 혼자만 참여하는 경우에는 종종 부담스럽습니다. 아이디어가 있으면 거기에 코드를 던지고 사람들이 그것을 선택하기를 기다립니다. 잠재적인 비판에 자신을 개방하기 때문에 매우 어려울 수 있습니다.
이 문제를 극복하는 방법 중 하나는 내 GitHub에 문제를 제기하고 이를 나 자신에게 할당하는 것입니다. 나는 내 코드에 대한 코드 검토를 수행하고 이에 대해 메모를 작성하며 코드 수정을 위한 티켓을 모집합니다. 나는 또한 아무도 읽지 않을 것이라고 생각함에도 불구하고 Gitter에서 현재 상태 등을 꽤 자주 기록합니다.
그러나 이 접근 방식의 재미있는 점은 나중에 다른 사람에게 프로젝트에 대해 이야기하는 방식을 더욱 세련되게 하는 데 도움이 되며, 프로젝트에 대한 일련의 문서, 근거 및 "생동감"을 구축하고 다른 사람이 더 쉽게 기여할 수 있게 한다는 것입니다. 비록 그들이 혼잣말을 하는 미친 사람과 협력하고 있다고 생각하더라도(어차피 우리 모두 그렇게 합니다).
그래서 내 조언은 자신과 대화하는 것입니다. 이는 귀하의 프로젝트를 명확하게 설명하는 데 도움이 되고, 귀하에게 다가가기 쉽게 하며, 커뮤니티는 사람으로 시작해야 하므로 그렇게 시작하는 사람입니다.
감사합니다!
무료로 코딩을 배우세요. freeCodeCamp의 오픈 소스 커리큘럼은 40,000명 이상의 사람들이 개발자로 취업하는 데 도움을 주었습니다. 시작하세요