Following system colour scheme Selected dark colour scheme Selected light colour scheme

Python 개선 제안 한국어 번역

PEP 8011 – 파이써니스타 삼인조가 이끄는 Python 거버넌스 모델

Author:
Mariatta <mariatta at python.org>, Barry Warsaw <barry at python.org>
Status:
Rejected
Type:
Informational
Topic:
Governance
Created:
24-Aug-2018

Table of Contents

번역·라이선스 안내

이 비공식 한국어 번역은 원문 Copyright 절의 Public Domain 조건에 따라 제공합니다. 원저자와 공식 원문은 그대로 표시합니다. 수정되지 않은 기준 원문 · 공식 최신판

초록

이 PEP는 동등한 권한을 가진 세 명의 리더가 이끄는 코어 Python 개발 커뮤니티의 거버넌스 모델을 제안합니다. 파이써니스타 삼인조(Trio of Pythonistas, ToP 또는 간단히 Trio)는 언어에 관한 최종 결정을 내리는 임무를 맡습니다. 이 PEP는 중앙의 단일 리더를 제안하지 않고, 그 대신 세 사람으로 이루어진 그룹을 리더로 제안한다는 점에서 PEP 8010과 다릅니다.

이 PEP는 또한 리더십 삼인조의 의사 결정을 돕기 위해 전문 작업 그룹을 구성할 것을 제안합니다.

이 PEP는 삼인조의 구성원을 지명하지 않습니다. 이 모델이 채택되면, 이 PEP에서 설명하는 모든 직책 보유자의 이름과 함께 PEP 13에 명문화될 것입니다.

이 PEP는 다음을 설명합니다:

  • 삼인조의 역할과 책임
  • 삼인조 구성원을 구성하는 방법에 관한 지침
  • 단일 리더 대신 세 명의 그룹을 두는 이유
  • 삼인조에 대한 Python 코어 개발자의 역할과 책임
  • 지속 가능성에 관한 고려 사항
  • 다양성과 포용성에 관한 고려 사항

PEP 거부

PEP 8011은 2018년 12월 17일 월요일에 PEP 8001에서 설명한 코어 개발자 투표로 거부되었습니다.

그 대신 PEP 8016과 그 PEP가 설명하는 거버넌스 모델이 선택되었습니다.

열린 논의 사항

거버넌스 논의 과정에서는 삼인조의 정확한 책임, 임기, 투표 절차, 삼인조 해산 등 이 PEP의 여러 매개변수를 다양하게 조정할 수 있습니다. 이러한 사항은 PEP를 투표에 부칠 준비가 될 무렵에는 명문화될 것입니다.

이 모델에 대한 경험이 쌓임에 따라 더 원활한 거버넌스 과정을 위해 이러한 매개변수를 조정하는 것이 허용되며, 어쩌면 그렇게 될 것으로 예상되기까지 합니다. 이러한 매개변수를 조정하는 절차는 일반적으로 PEP 8001에서 설명한 투표 절차와 같습니다.

리더십 삼인조의 역할과 책임

  • 개방적이고 사려 깊으며 존중하는 태도를 갖추십시오. 다시 말해, PSF의 행동 강령을 준수하십시오.
  • 팀으로서, 또는 다른 삼인조 구성원이 동의하는 경우 개인으로서 PEP에 대한 결정을 선언하십시오.
  • 프로그래밍 언어인 Python과 그 커뮤니티에 비전과 리더십을 제공하십시오.
  • 자신의 한계를 이해하고, 필요할 때마다 조언을 구하십시오.
  • 다음 세대의 리더에게 멘토링을 제공하십시오.
  • Python 코어 개발자여야 합니다.
  • PSF의 투표권이 있는 회원(Contributing / Manager / Fellow / Supporter 중 하나)이어야 합니다. [2]
  • Python은 단순한 언어가 아니라 하나의 커뮤니티이기도 하다는 점을 이해합니다. 이들은 Python의 기술적 측면뿐만 아니라 커뮤니티의 다른 문제들까지 인식하고 있어야 합니다.
  • Core Python 내에서 전문 워킹 그룹이 구성되도록 돕습니다. 아래의 “전문 작업 그룹의 구성” 절을 참고하십시오.
  • Python 커뮤니티에 행동, 문화, 어조의 좋은 본보기가 됩니다. Python이 영감을 얻기 위해 다른 커뮤니티를 살펴보고 배우듯이, 다른 커뮤니티도 Python을 살펴보고 우리에게서 배울 것입니다.

3인조의 권한

분쟁이 생길 경우를 대비해 분명히 해 두자면, 3인조는 PEP에 대해 판정을 내리고(거버넌스 PEP는 제외), 특정 결정에 PEP가 필요한지 판단하며, 기술적 분쟁 전반을 해결하는 최종 권한을 가집니다. 3인조의 권한에는 거버넌스 자체를 변경하는 일이나 발생할 수 있는 그 밖의 비기술적 분쟁이 포함되지 않습니다. 이러한 사안은 PEP 8001에 설명된 절차를 통해 처리해야 합니다.

3인조의 역할과 책임으로 간주되지 않는 것

다음은 3인조에게 기대되는 일이 아니지만, 원한다면 할 수 있습니다.

  • 모든 아이디어, 비전, 해결할 문제 등을 항상 이들이 내놓는 것은 아닙니다. 3인조는 코어 개발자와 커뮤니티의 제안에 열린 자세로 이를 수용할 것입니다.
  • 일상적인 버그 보고에는 3인조가 개입할 필요가 없습니다. 어떤 코어 개발자든 결정을 내릴 수 있지만, 해당 분야의 작업 그룹에 판단을 맡기며, 코어 개발자 사이에 큰 의견 차이가 있을 때는 최종적으로 3인조에게 판단을 맡깁니다.
  • Python 언어 서밋과 그 운영 실무를 주관하거나 결정하지 않습니다.
  • Python 코어 스프린트와 그 운영 실무를 주관하거나 결정하지 않습니다.
  • 행동 강령(CoC) 관련 사안을 처리하지 않습니다. 이는 PSF CoC 작업 그룹의 책임이지만, 그러한 사안을 목격하면 목소리를 낼 것입니다.
  • 다른 Python 구현(Cython, IronPython 등)에 관한 결정을 내리지 않습니다.
  • Python 콘퍼런스와 그 운영 실무를 주관하거나 결정하지 않습니다.
  • Python의 전도사가 아닙니다. 삼인조가 Python을 전파하거나 홍보할 것으로 기대되지 않습니다. 원한다면 할 수 있지만, 기대되는 일은 아닙니다.
  • Python의 교육자가 아닙니다. 삼인조가 Python에 대해 가르치거나 글을 쓰는 역할을 맡을 것으로 기대되지 않습니다. 원한다면 할 수 있지만, 기대되는 일은 아닙니다.
  • 3인조에게 1년 365일, 하루 24시간 내내 대응하는 일이 기대되지 않습니다. 이들은 Python에 할애할 수 있는 시간을 스스로 자유롭게 정할 수 있습니다.
  • PEP 편집자가 아닙니다.

3인조 구성을 위한 지침

이 거버넌스 모델의 성공은 3인조 구성원들과, 그들이 서로 협력하며 원활하게 함께 일할 수 있는 능력에 달려 있습니다.

세 사람은 Python에 대해 비슷한 비전을 가지고 있어야 하며, 각자 서로를 보완하는 서로 다른 역량을 가질 수 있습니다.

이러한 팀이라면 의견 불일치와 갈등은 드물겠지만, 그래도 일어날 수는 있습니다. 우리가 선정한 사람들이 이를 자기들끼리 해결할 수 있다고 믿어야 합니다.

트리오의 구성원을 선정할 때는 여러 개인을 후보로 지명한 뒤 상위 세 명을 뽑는 대신, 코어 개발자들이 트리오를 후보로 지명하고 이 단합된 트리오를 이룰 수 있다고 믿는 3인 그룹에 투표합니다. 한 개인이 하나의 후보 명단에만 지명될 수 있다는 제한은 없습니다.

이 PEP는 누구도 트리오로 거명하거나 지명하지 않습니다.

이 PEP가 수락된 후에야 (투표 자격이 있는) 모든 활동 중인 코어 개발자가 3인 그룹 후보 지명을 제출할 수 있습니다.

이 PEP가 수락되고 코어 개발자들이 후보 지명을 제출하면 투표를 시작할 수 있으며, PEP 8001에 설명된 투표 방식을 사용합니다.

트리오에게 요구되는 자질:

  • Python 코어 개발자여야 합니다.
  • 투표권이 있는 PSF 회원(Contributing / Manager / Fellow / Supporter 중 하나)이어야 합니다. [2]
  • 커뮤니티에서 좋은 평판을 가진 구성원이어야 합니다.
  • PSF의 행동 강령(개방적이고, 사려 깊으며, 존중하는 태도를 가지십시오)을 준수해야 합니다. [1]
  • 앞서 말한 역할과 책임을 기꺼이 받아들여야 합니다.
  • 자신의 생각을 효과적으로 전달하고 명확하게 표현할 수 있어야 합니다.

다음은 누군가를 트리오로 고려할 때의 요구 사항이 아닙니다:

  • “무언가의 BDFL이었던 경험”은 요구 사항이 아닙니다.
  • “천재일 것”은 요구 사항이 아닙니다.

다양성과 포용성

Python 코어 개발 팀은 Python Software Foundation의 다양성 선언문을 전적으로 지지하며, 다양한 배경을 가진 사람들의 참여와 기여를 환영합니다. 삼인조의 일원이 될 사람을 지명할 때, Python 코어 개발자는 과소 대표된 집단의 구성원을 포함하는 것을 고려하기 위해 모든 노력을 기울일 것입니다.

이상적으로는 지명이 Python 코어 기여자의 다양성을 포함하고 반영해야 합니다.

지속 가능성

누가 트리오에 들어가야 하는지 판단할 때, 고용주의 지원 부족이나 여유 시간의 부족이 고려 요소가 되어서는 안 됩니다. 코어 개발자들이 트리오의 구성원이 되는 데 필요한 역량을 갖추었다고 판단한 사람이 있지만, 그 사람이 시간 부족이나 재정 지원 부족 때문에 이를 맡을 수 없다면, 우리는 필요한 지원을 제공하는 것에 대해 PSF나 다른 관계자들과 논의를 시작해야 합니다.

추가 지침

자신이 아닌 다른 사람을 지명할 때는 먼저 그 사람에게 지명되어도 괜찮은지, 그리고 해당 3인 그룹으로 지명되어도 괜찮은지 비공개로 물어보십시오. 이는 지명이 공개적으로 이루어진다는 이유만으로 사람들이 지명을 수락해야 한다는 압박을 느끼지 않도록 하기 위함입니다.

다른 거버넌스 모델을 택하지 않는 이유

Core Python 커뮤니티는 20년이 넘도록 단일 BDFL 모델에 익숙해져 있으며, 이 모델은 Python에서 “효과가 있었던” 모델입니다. 갑자기 완전히 다른 모델로 전환하면 커뮤니티의 안정성을 해칠 수 있습니다. 하지만 커뮤니티는 앞으로도 계속 발전해 나갈 수 있습니다.

이 PEP가 채택되더라도, 앞으로 Python의 유일한 거버넌스 모델이 되려는 의도는 아닙니다.

이 PEP는 (비록 소수이지만) 여러 사람으로 구성된 그룹이 이끄는 커뮤니티로의 전환을 제안했으며, 추가적인 전문 작업 그룹이라는 개념도 도입했습니다.

왜 세 명을 넘지 않는가

사공이 많으면 배가 산으로 갑니다.

리더십 팀을 두는 목적은 Python 코어 개발자 팀이 합의와 결정에 이를 수 있도록 하는 것입니다. 리더십 팀의 규모가 클수록 결정을 내리기가 더 어려워집니다.

이는 트리오 구성원들에게도 이익이 됩니다. 팀 안에서 다른 사람들과 협업하는 법을 배우는 일은 자연스럽게 이루어지지 않으며 많은 노력이 필요합니다. 트리오 구성원들은 장기간 팀의 일원으로 활동할 것으로 예상됩니다. 다른 두 사람과 함께 일하는 것만으로도 아마 충분히 어려울 것입니다. 우리는 트리오가 자신의 의무와 책임을 가능한 한 효율적으로 수행할 수 있기를 바랍니다.

그룹에 사람이 많을수록 만나서 논의하고 결정을 내릴 시간을 마련하기가 더 어려워집니다.

삼인조에 대한 Python 코어 개발자의 역할과 책임

  • 개방적이고 사려 깊으며 존중하는 태도를 가지십시오. 다시 말해, PSF의 행동 강령을 준수하십시오
  • 트리오의 개별 구성원이 내린 결정과 선언은 권위 있는 것이며 트리오에서 나온 것으로 간주됩니다.
  • 트리오가 결정을 선언하면 핵심 개발자들은 처음에는(트리오가 그 결정을 내리기 전에는) 지지하지 않았더라도 그 결정을 지지합니다
  • 버그 트래커에서 일상적인 의사 결정을 계속하고, 큰 의견 불일치가 있으면 트리오의 판단에 따르십시오
  • Python 코어 개발자는 CoC 사안을 처리하지 않으며, 이는 CoC 워킹 그룹의 책임이지만, 그러한 사안을 목격하면 목소리를 냅니다
  • 자신이 기술적 측면만이 아니라 더 큰 Python 커뮤니티의 일부임을 인식합니다.
  • 투표권이 있는 PSF 회원(Contributing / Manager / Fellow / Supporter 중 하나)이 되십시오.
  • Python 커뮤니티에 행동, 문화, 어조의 좋은 본보기가 됩니다.

임기 제한

트리오가 종신으로 활동할 것을 기대하지는 않지만, 비교적 긴 임기가 바람직합니다. 긴 임기로 활동하는 목적은 “선출”을 해야 하는 불필요한 교체를 피하고, 언어와 커뮤니티에 안정성과 일관성을 제공하는 것입니다.

현재 Python 릴리스 관리자는 5년(릴리스 주기 한 번) 동안 직위를 유지하며, 지금까지는 이 방식이 잘 작동하는 것으로 보입니다. 따라서 이 PEP는 트리오가 5년 동안 직책을 맡을 것을 제안합니다.

트리오의 승계 계획(논의 가능)

트리오는 다음 세대의 후계자를 적극적으로 멘토링하고 훈련할 수 있도록, 그리고 권력 공백을 피할 수 있도록 해산/은퇴/사임하려는 의사를 최소 1년 전에 핵심 개발자들에게 알려야 합니다.

다음 리더를 반드시 트리오가 직접 선택해야 하는 것은 아닙니다.

이 PEP는 다음 세대에도 같은 거버넌스 모델을 선택하도록 강제하지 않습니다. 언어이자 커뮤니티로서의 Python은 계속 발전할 수 있습니다. 트리오는 해산 1년 전에 미리 알림으로써, 핵심 Python 커뮤니티에 이 거버넌스 모델의 성공과 실패를 되돌아보고 필요하다면 다른 거버넌스 모델을 선택할 기회를 줍니다.

다만 다음 거버넌스 모델과 지도자는 트리오가 해산 의사를 발표한 뒤 1년 안에 선택되거나 선출되어야 합니다.

이 거버넌스 모델을 유지하기로 결정한다면, 다음 세대 트리오는 첫 트리오가 추천되고 선택된 방식과 비슷하게 추천되고 선출됩니다.

트리오는 적어도 X개월 동안 새로 선택된 다음 세대 지도자의 조언자이자 멘토 역할을 해야 합니다.

향후 삼인조는 Python 코어 개발자 중에서 선출되므로, 향후 Python 코어 개발자가 이 PEP에서 제시한 삼인조의 자질을 전부는 아니더라도 일부 갖추는 것이 타당합니다.

따라서 삼인조 구성원을 선출하는 지침은 향후 Python 코어 개발자를 발굴할 때의 지침으로도 사용할 수 있습니다.

트리오 구성원 한 명이 물러나야 하는 경우의 시나리오

효과적인 거버넌스 모델은 물러나거나 지도자 역할을 잠시 쉬어야 하는 지도자를 위해 퇴로나 일시적인 휴식을 마련합니다.

선택된 트리오 구성원 한 명이 예상치 못한 이유로 물러나야 한다면 어떻게 합니까?

가능한 선택지는 여러 가지입니다.

  • 남은 두 사람이 그 역할을 채울 다른 구성원을 선정할 수 있습니다
  • 삼인조는 해산을 선택할 수 있으며, 코어 개발자는 다른 삼인조를 지명할 수 있습니다
  • 코어 개발자는 다른 거버넌스 모델을 선택할 수 있습니다

트리오는 하나의 후보단으로 선출되었으므로, 한 명이 빠지면 선출된 그 단위가 깨집니다. 따라서 새로운 선거를 치러야 합니다.

작업 그룹/전문 분야/소유권의 구성 (이전의 BDFL 대리인)

(논의 중인 사안입니다.)

핵심 Python과 Python 커뮤니티의 특정 분야와 주제에는 특정한 전문 역량을 갖춘 지도자가 필요합니다. 트리오의 의사 결정을 돕기 위해, 해당 특정 분야에서 더 큰 권한을 가진 작업 그룹을 여러 개 두는 것을 권장합니다.

이러한 “전문 작업 그룹/위원회”의 역할은 각자의 분야에서 생기는 논쟁적인 논의에 대해 최종 결정권자가 되는 것입니다.

이러한 작업 그룹은 지도부 트리오가 작은 그룹인 것과 비슷한 이유로 작게(3~5명) 유지해야 합니다.

이러한 작업 그룹은 Python 코어 개발자와 외부 전문가 모두로 구성되어야 합니다. 이는 내려진 결정이 Python 코어 개발자에게만 유리하지 않도록 하기 위함입니다.

Python 코어 개발자는 각 주제에 관한 결정을 해당 작업 그룹에 위임합니다. 다만 이 그룹들은 트리오에 보고하고 트리오의 결정을 따릅니다.

이러한 작업 그룹은 이 PEP가 수락된 뒤에야 선정하고 구성원을 투표로 뽑을 수 있습니다.

이 PEP가 수락된다면, 작업 그룹은 PEP 수락 후 1~2년 안에 정할 수 있습니다.

이러한 전문 작업 그룹의 구성원을 선정할 때, 트리오는 과소 대표된 집단의 구성원을 포함하는 것을 고려하도록 모든 노력을 기울입니다. 이상적으로는 작업 그룹 구성원이 더 넓은 Python 커뮤니티의 다양성을 포함하고 반영해야 합니다.

이 작업 그룹의 구성원이 Python 코어 개발자일 필요는 없지만, 적어도 PSF의 기본 회원이어야 합니다 [2].

이 워킹 그룹은 트리오가 활동하는 동안 활동합니다.

처음 시작할 워킹 그룹으로 다음 몇 가지를 제안합니다.

  • CPython 문서화
  • CPython 보안
  • CPython 성능

워킹 그룹은 예전의 “BDFL-delegate(BDFL 위임자)” 또는 PEP 차르(czar)와 비슷한 역할을 맡는다고 볼 수 있습니다. 차이점은 한 사람을 의사 결정자로 임명하지 않고 의사 결정자로 이루어진 소규모 팀을 둔다는 점입니다.

예전의 “BDFL-delegate” 역할과 다른 점이 하나 더 있습니다. 워킹 그룹은 전문 지식이 필요한 PEP가 있을 때만 활동하지 않고, 트리오가 활동하는 동안 계속 활동할 수 있습니다.

트리오가 해산하면 이 워킹 그룹도 해산합니다.

이 워킹 그룹이 필요한 이유

이는 이전 Python BDFL이 맡았던 ‘큰 역할을 리팩터링’하려는 노력입니다.

PSF 회원임을 확인

이 PEP는 코어 개발자와 트리오 구성원이 PSF 회원임을 스스로 인증할 것을 제안합니다.

PSF의 일원이 된다는 것은 Python 커뮤니티의 일원이 되어 PSF의 사명과 다양성 선언을 지지한다는 뜻입니다.

Python 코어 개발자는 PSF 회원이 됨으로써 Python을 지지한다고 선언하고 커뮤니티 행동 강령에 동의합니다.

PSF 회원 자격에 관한 자세한 내용은 PSF 회원 FAQ [2]를 참고하십시오.

트리오라는 이름을 고른 이유

Python trio(비동기 라이브러리)와 혼동하지 마십시오.

“트리오(trio)”는 짧고 발음하기 쉽습니다. 반면 triad, trinity, triumvirate, threesome 같은 다른 단어는 길고 부정적으로 해석될 수 있습니다.

참고 문헌