Governance
models
By Ross Gardler, Gabriel
Hanganu, Published: 15 February 2010, Reviewed: 14 February 2012
Bài được đưa lên
Internet ngày: 14/02/2012
Lời
người dịch: Để một dự án phát triển mở thành công,
cần tới một mô hình điều hành được làm thành các
tài liệu một cách rõ ràng ngay từ khi khởi xướng dự
án để thu hút được các đóng góp từ bên ngoài phù
hợp với các mục tiêu của dự án. Có nhiều mô hình,
nổi bật nhất trong thế giới các dự án phần mềm tự
do nguồn mở là mô hình điều hành của (1) Nhà độc
tài Nhân từ và (2) Chế độ Người tài Lãnh đạo.
Nếu bạn khởi xướng một dự án nguồn mở và cần một
mô hình điều hành để dự án có khả năng thành công
trong tương lai, thì bài viết này chính là dành cho bạn.
Một mô hình điều
hành mô tả các vai trò mà những người tham gia dự án
có thể đưa vào qui trình ra quyết định trong dự án. Bổ
sung thêm, nó mô tả các qui tắc cơ bản cho sự tham gia
trong dự án và các qui trình cho việc giao tiếp và chia sẻ
bên trong đội và cộng đồng dự án. Nói cách khác thì
đây là mô hình điều hành ngăn cho một dự án nguồn mở
khỏi đi xuống thành hỗn loạn. Tài liệu này giải thích
vì sao một mô hình điều hành là cần thiết, cân nhắc
một số thách thức có liên quan tới việc áp dụng một
mô hình điều hành trong các dự án nguồn mở, và xem xét
những lĩnh vực chính như một mô hình cần phải giải
quyết. Nó cũng mô tả cách để gói mô hình điều hành
của bạn trong một tài liệu điều hành.
Vì sao một dự án
cần tới một mô hình điều hành?
Có hầu như rất
nhiều phương án trong các chiến lược quản lý nguồn mở
giống như các dự án nguồn mở. Chính vì thế là sống
còn cho một dự án để truyền đạt một cách rõ ràng
các chính sách và chiến lược của nó tới những người
sử dụng và các lập trình viên tiềm năng về đầu ra
của dự án. Một mô hình điều hành rõ ràng cũng cho
phép những người đóng góp tiềm năng hiểu được cách
mà họ sẽ tham gia với dự án, những gì được mong đợi
đối với họ và những sự bảo vệ nào được cung cấp
để đảm bảo rằng những đóng góp của họ sẽ luôn
là sẵn sàng đối với họ. Bổ sung thêm, nó mô tả các
qui trình kiểm tra chất lượng mà giúp đảm bảo cho
những người sử dụng tiềm năng về khả năng trụ vững
được của dự án. Sự phát triển và giao tieps của một
mô hình điều hành rõ ràng và súc tích là một trong
những bước quan trọng nhất mà một dự án có thể nắm
hướng tới tính
bền vững (bản
dịch tiếng Việt) thông qua sự phát triển mở.
Các mô hình điều
hành trải từ sự kiểm soát tập trung của một cá nhân
hoặc tổ chức (nhà độc tài nhân từ) cho tới sự kiểm
soát phân tán được trao trong sự thừa nhận những đóng
góp (chế độ người tài lãnh đạo). Bạn có thể thấy
các mô hình điều hành ở bất kỳ thời điểm nào trong
phổ này; cũng có khả năng đối với một mô hình điều
hành được chọn của dự án để dịch chuyển dọc theo
phổ này khi dự án chín muồi. Bên dưới là một vài ví
dụ về các mô hình chung và các dạng dự án trong đó
chúng có thể được thấy. (Bảng này có dẫn xuất từ
công việc được trình bày trong Phần
mềm Nguồn Mở: Có đáng để chuyển sang không?. Các
khái niệm như 'nhà thờ lớn' và 'cái chợ' được giải
thích trong bài viết trên Wikipedia về tiểu luận Nhà
thờ lớn và Cái chợ).
Các mô hình điều
hành chung
Dạng dự án
|
Mục tiêu
|
Dạng kiểm soát
|
Cấu trúc cộng đồng
|
Các ví dụ
|
Hướng khai thác
|
Chia sẻ sự đổi mới và tri thức
|
Kiểm soát tập trung như nhà thờ lớn
|
Lãnh đạo dự án, nhiều độc giả
|
Perl, Nhân - Kernel Linux
|
Hướng tiện ích
|
Làm thỏa mãn nhu cầu của một cá nhân
|
Kiểm soát phi tập trung như cái chợ
|
Nhiều lập trình viên bên ngoài, hỗ trợ
ngang hàng cho những người sử dụng thụ động
|
GNU/Linux (bao gồm cả nhân - Kernel)
|
Hướng dịch vụ
|
Cung cấp dịch vụ ổn định
|
Kiểm soát tập trung như Hội đồng
|
Các thành viên cốt lõi, thay vì lãnh
đạo dự án, nhiều người sử dụng phát triển các
hệ thống cho những người sử dụng đầu cuối
|
Apache, PostgreSQL
|
Các mô hình điều
hành đang sử dụng
Hãy xem xét các ví dụ
về các mô hình điều hành. Đầu tiên, xem xét mô
hình điều hành của Ubuntu. Mô hình này tập trung vào
việc mô tả cấu trúc cộng đồng và các trách nhiệm có
liên quan tới từng thành phần của cấu trúc đó. Nó
cũng phác thảo các qui trình ra quyết định được thấy
trong dự án. Dự án Ubuntu đã chọn cách tách thông tin
của các lập trình viên khỏi thông tin cấu trúc được
thấy trong tài liệu điều hành của nó, nhưng các qui
trình quản lý kỹ thuật cũng được ghi thành tài liệu
một cách rõ ràng.
Quỹ Phần mềm Apache
có 2 tập các tài liệu điều hành cho từng dự án. Tập
đầu có liên quan tới sự điều hành của quỹ, nó thiết
lập cấu trúc của tổ chức như một tổng thể. Quỹ
cũng đưa ra một tập các tài liệu về các qui trình
chính được thấy trong các dự án của nó, như việc ra
quyết định. Tuy nhiên, vì mỗi dự án là tự do, trong
những ràng buộc nhất định, để xác định các biến
thể của riêng nó về các qui trình đó, nhiều dự án có
tài liệu điều hành riêng của nó. Xem mô tả điều hành
Apache Forrest
như là một ví dụ.
Ví dụ thứ 3 và là
cuối cùng của chúng tôi về mô hình điều hành trong
thực tế được thấy trong dự án Taverna.
Đây là một ví dụ về một dự án nguồn mở đã lớn
lên trong cộng đồng hàn lâm và vì thế thể hiện một
mô hình được thấy để làm việc trong môi trường hàn
lâm. Mô hình Taverna, giống như các mô hình của Ubuntu và
ASF, tập trung vào cấu trúc và các qui trình quản lý của
dự án.
Các rào cản cho
việc áp dụng một mô hình điều hành
Bất chấp tầm quan
trọng của việc xác định một mô hình điều hành ngay
từ đầu, nhiều dự án không làm như thế. Có một số
lý do có thể cho điều này. Trong đó chung nhất là:
- qui trình được thừa nhận như là 'quan liêu'
- có sự lo ngại rằng dự án sẽ mất ý nghĩa về đường lối
- cảm thấy rằng sự kiểm soát chiến lược của dự án sẽ bị mất
- dự án được nghĩ là quá non trẻ hoặc quá nhỏ để lôi cuốn được những người sử dụng hoặc các lập trình viên tích cực
Dù từng trong 3 mối
lo đầu tiên là hợp lệ tiềm tàng, những sợ hãi đó
dẽ dàng được xua tan bằng việc sử dụng một mô hình
điều hành phù hợp. Tuy nhiên, lo ngại cuối cùng, về
tuổi của dự án, không bao giờ là hợp lệ cả. Điều
này là vì bất kỳ người đóng góp tiềm năng nào cho dự
án cũng cần biết làm thế nào để đóng góp có hiệu
quả và hiệu lực, và làm thế nào đóng góp của họ sẽ
được quản lsy. Không có chỉ dẫn rõ ràng về những
điều đó, hầu hết mọi người sẽ quay đi hơn là tham
gia vào một dự án còn chưa chín. Nhưng nếu những người
áp dụng sớm đó được chỉ ra rằng họ có thể giúp
hướng dẫn dự án khi nó chín muồi, thì họ có thể
quyết định ở lại. Một người đóng góp bên ngoài duy
nhất có thể có được tốt một hiệu ứng chủ chốt
về tính bền vững của một dự án, vì thế những người
khởi xướng dự án có thể đơn giản không đủ khả
năng để mạo hiểm đánh mất đi người đóng góp đó
như là kết quả của việc cố gắng tiết kiệm một
lượng nhỏ nỗ lực trong những giai đoạn đầu.
Là hữu dụng để
giải quyết từng trong những lo ngại ở trên càng sớm
càng tốt trong cuộc sống của dự án, sao cho chúng không
trở thành những rào cản cho việc áp dụng một mô hình
điều hành rõ ràng. Hãy khai thác chúng chi tiết hơn một
chút.
Quan liêu
Một số người lĩnh
hội được một mô hình điều hành sẽ không là gì
ngoài sự quan liêu. Nhưng điều này không nhất thiết
đúng rằng việc xác định một mô hình điều hành là
một sự thực thi quan liêu không cần thiết: nó phụ
thuộc vào cách mà mô hình đó được thiết kế thận
trọng thế nào. Mục tiêu là để làm cho mô hình đó đơn
giản nhưng hiệu quả. Nó không cần có một qui tắc cho
việc điều khiển mỗi tình huống; quả thực, nó sẽ
không định làm thế. Thay vào đó, mô hình đó sẽ cung
cấp một cách thức nhẹ nhàng trong việc chỉ dẫn quản
lý dự án theo một cách thức rõ ràng và minh bạch. Sự
minh bạch này sẽ khuyến khích các bên thứ 3 tham gia dự
án. Họ có thể thấy cách mà dự án được quản lý và
dự báo trước cách mà nó sẽ phản ứng với những đóng
góp của họ trước khi bỏ ra bất kỳ nỗ lực đáng kể
nào vào công việc đó.
Điều quan trọng để
lưu ý rằng một mô hình điều hành sẽ làm cho qui trình
thực hiện và đánh giá những đóng góp của các bên thứ
3 dễ dàng hơn, chứ không khó khăn hơn. Nó sẽ loại bỏ
sự không chắc chắn mà có thể dẫn tới mất thời gian
cho mỗi người có liên quan.
Mất phương hướng
Lo sợ rằng một mô
hình điều hành sẽ ràng buộc dự án như nó áp dụng
cho một môi trường thay đổi có thể bị qui cho thực tế
là có nhiều dự án nguồn mở được điều hành tồi mà
chúng quả thực bị hạn chế trong tính linh hoạt của
chúng. Tuy nhiên, vấn đề nảy sinh từ sự thiếu mô hình
điều hành rõ ràng hơn là có dự phòng một mô hình. Một
mô hình điều hành tốt thưc sự sẽ làm gia tăng sự
lanh lẹ của dự án, khi mà nó xác định cách mà những
người đóng góp mới có thể nắm lấy dự án theo những
đường hướng không mong đợi mà không có việc can thiệp
vào các mục tiêu cốt lõi của nó. Nó đưa ra một cơ
chế cho phép cộng đồng như một tổng thể để xác
định đường hướng họ cảm thấy dự án cần phải
nắm lấy, trong khi vẫn đảm bảo rằng đội dự án cốt
lõi không đánh mất sự kiểm soát. Vấn đề kiểm soát
được thảo luận trong phần tiếp theo; ở đây chúng tôi
sẽ tập trung vào tầm nhìn và đường hướng.
Vì không có khả năng
đối với một dự án trở thành tất cả mọi thứ cho
tất cả mọi người, mục tiêu của một dự án bền
vững nên là để cung cấp một giải pháp càng hoàn chỉnh
có thể càng tốt cho những người tham gia đóng góp cốt
lõi của nó, trong khi vẫn có lợi ích cho những người
tham gia đóng góp tiềm năng khác. Dự án cũng phải sẵn
sàng để chấp nhận đầu vào từ khắp 4 phương không
được mong đợi, và phải có khả năng, bất kỳ khi nào
có thể, dàn xếp những nhu cầu của họ theo tầm nhìn
và phương hướng trong tương lai của nó. Làm được thế
sẽ gia tăng đáng kể kho các tài nguyên mà dự án có thể
thiết kế ra theo yêu cầu của nó để trở nên bền
vững. Tuy nhiên, việc cố gắng để bao gồm được tất
cả sẽ gần như luôn tạo ra sự thất bại, khi nỗ lực
trở nên dàn trải quá mỏng qua miền các vấn đề đó.
Giải pháp là để
tùy biến một mô hình điều hành đưa ra được các cơ
chế cho việc xác định và ép tuân thủ rõ ràng các biên
giới của khả năng chấp nhận trong dự án. Mô hình đó
nên được thiết kế để cho phép những người lãnh đạo
dự án tránh được những trệch hướng không cần thiết
và hoang phí bởi những yếu tố xấu tiềm năng trong cộng
đồng. Mô hình cũng phải đảm bảo rằng những người
với các chiến lược được sắp xếp có thể thực hiện
công việc bổ sung theo một cách thức cộng tác và xây
dựng. Dạng cộng tác này mở rộng phạm vi của dự án
mà không có việc gia tăng đáng kể những đòi hỏi trong
đội dự án gốc ban đầu.
Mất kiểm soát
Có lẽ nỗi sợ hãi
lớn nhất cho tất cả là mô hình điều hành sẽ lát
đường cho các bên thứ 3 để nắm sự kiểm soát của
dự án. Sau tất cả, một mô hình điều hành khuyến
khích sự tham gia của các bên thứ 3 bằng việc trang bị
cho các bên đó trong dự án. Tuy nhiên, như với tất cả
lo ngại được đề cập tới ở đây, một mô hình điều
hành được thiết kế tốt đảm bảo rằng sự kiểm
soát vẫn nằm chính xác ở những nơi mà sự lãnh đạo
dự án muốn nó. Điều này có thể có nghĩa rằng tất
cả việc ra quyết định được tổ chức kiểm soát (như
MySQL và SugarCRM),
hoặc nó có thể có nghĩa là tất cả các quyết định
được cộng đồng như một tổng thể thực hiện (như
Apache HTTPD Server và DoJo).
Khi quyết định về
mức kiểm soát theo yêu cầu của đội dự án của bạn,
hãy cân nhắc cách mà những nỗ lực của đội đó sẽ
được duy trì liên tục. Nếu, ví dụ, dự án đang sản
xuất một sản phẩm có lợi nhuận cao mà sẽ được
khai thác một cách thương mại, thì sẽ có một số lợi
ích trong việc duy trì sự kiểm soát trong khi vẫn khuyến
khích sự cộng tác. Điều này là đúng rằng việc chọn
một mô hình tập trung hóa sẽ đảm bảo rằng sự tiến
bộ của sản phẩm được tối ưu hóa cho con đường
khai thác đã chọn. Tuy nhiên, nó giới hạn cả bề rộng
và chiều sâu của những người đóng góp có khả năng
nắm lấy một lợi ích trong dự án, khi các mục tiêu
chiến lược của họ có thể khác.
Mặt khác, nếu dự
án đang sản xuất một phần của thành phần mà, theo bản
thân nó, có giá trị thương mại thấp, thì mục tiêu
thường là để đảm bảo rằng thành phần đó càng được
sử dụng rộng rãi bao nhiều càng tốt. Trong hoàn cảnh
đó, mục tiêu có thể là tối đa hóa sự tham gia bằng
việc cho phép tất cả các đối tác có quan tâm và tích
cực tham gia vào trong việc lên kế hoạch chiến lược.
Khi các cộng đồng
chia tách (rẽ nhánh)
Một trong những điểm
mạnh của mô hình cấp phép nguồn mở là bất kỳ ai
cũng có quyền lấy mã nguồn và phát triển nó một cách
độc lập đối với người nắm giữ bản quyền. Điều
này được gọi là rẽ nhánh. Điều này có nghĩa là sự
kiểm soát được lãnh đạo dự án sử dụng chỉ là
mạnh chừng nào còn sự hỗ trợ mà cộng đồng trao cho
sự lãnh đạo đó.
Bất chấp các nội
dung của tài liệu điều hành, có khả năng cho những
người về cơ bản không đồng ý vói việc kiểm soát
các ảnh hưởng để bắt đầu một dự án mới. Đây
không phải là vài trò của một mô hình điều hành để
ngăn cản việc rẽ nhánh như vậy của dự án. Đúng hơn,
nó sẽ xác định rõ ràng ảnh hưởng mà một người
đóng góp tiềm năng có khả năng có đối với đường
lối chiến lược của một dự án. Chỉ thông qua sự
quản lý cẩn trọng của cộng đồng mà những người
lãnh đạo dự án nguồn mở vẫn còn 'nắm quyền'. Việc
thiết lập ra các qui tắc rõ ràng của cộng đồng theo
cách này là một phần quan trọng của qui trình quản lý
này.
Dự án quá trẻ
hoặc quá nhỏ
Cuối cùng, chúng ta
quay sang vấn đề của một dự án là quá trẻ để lôi
cuốn những người sử dụng và những người đóng góp
là các bên thứ 3 và vì thế không cần thiết để lo
ngại cho bản thân với cách để quản lý chúng. Rất phổ
biến đối với các dự án để cảm thấy rằng một mô
hình điều hành còn chưa cần thiết, mà điều này, theo
quan điểm của chúng tôi, là không bao giờ thế.
Không bao giờ là quá
sớm để xác định một mô hình quản lý phù hợp. Không
có một mô hình nào, thì những cơ họi của các bên thứ
3 có mong muốn đóng góp được xem là sẽ suy giảm. Điều
này là vì một số lý do:
- những người đóng góp tiềm năng sẽ không biết làm thế nào để đóng góp
- họ sẽ không chắc chắn điều gì sẽ xảy ra cho sự đóng góp của họ
- dự án sẽ không thấy nghiêm túc về việc tham gia với các bên thứ 3
- không có sự đảm bảo trực quan rằng những đóng góp sẽ được quản lý theo một cách thức mà chúng sẽ giữ được giá trị cho người đóng góp gốc ban đầu
Vì bạn không bao giờ
biết được khi nào một người đóng góp có thể sảy
chân trong dự án của bạn, điều quan trọng sẽ là sẵn
sàng từ những ngày sớm nhất có thể. Từng cơ hội bị
bỏ lỡ để lôi cuốn những người đóng góp gây thiệt
hại cho tính bền vững của dự án. Cũng hãy nhớ rằng
đây là hợp đồng đầu tiên giữa một dự án và một
người đóng góp mà nó là điều quan trọng nhất. Ví dụ,
một sự sửa lỗi được một bên thứ 3 cung cấp có thể
gây ra cho vài người có một kinh nghiệm tốt hơn của
người sử dụng, nó có thể gây ra trong nhiều người sử
dụng hơn. Điều này, tới lượt nó, có thể làm cho dự
án cuốn hút hơn cho những người sử dụng và những
người đóng góp.
Một sự hiểu sai phổ
biến khác là không có đủ những người sử dụng hoặc
những người đóng góp tiềm năng để làm cho nó đáng
tranh thủ được họ. Một lần nữa, chúng tôi muốn đấu
tranh rằng một sự đóng góp duy nhất mà cải thiện được
chất lượng và khả năng sử dụng của sản phẩm là
đáng có. Nỗ lực có liên quan trong việc tạo ra một mô
hình điều hành phù hợp thường là ít hơn so với nỗ
lực có liên quan tới tất cả nhưng là nhỏ nhất đối
với những đóng góp.
Một lo ngại cuối
cùng thường nảy sinh là dự án là quá nhỏ để vượt
qua được một sự tràn vào của những người sử dụng
và những người đóng góp của các bên thứ 3. Điều này
minh họa sự thiếu hiểu biết về cách mà sự phát triển
mở làm việc: trước hết, thậm chí lớn nhất đối với
các dự án không lôi cuốn được nhiều hơn so với một
nhúm các lập trình viên tích cực ở bất kỳ thời điểm
nào. Thứ 2, một cộng đồng được quản lý tốt phần
lớn sẽ là tự hỗ trợ. Điều này là đặc biệt đúng
đối với các cộng đồng phân tán.
Các dự án phát
triển mở ra các quyết định như thế nào?
Việc ra quyết định
trong một dự án nguồn mở dường như, từ cái nhìn đầu
tiên, sẽ là một vấn đề phức tạp và là trọng tâm
cho nhiều nỗi sợ hãi được xem xét trong phần trước.
Nhiều người biết, ví dụ, khó khăn thế nào có thể
đối với một ủy ban để đạt được một quyết định.
Việc làm thành tài liệu qui trình theo đó các quyết định
sẽ được thực hiện vì thế là một phần chủ chốt
của một mô hình điều hành, và đáng bỏ ra một chút
thời gian để khai thác các tiếp cận khác nhau được
nắm lấy để ngăn chặn những tình huống đình trệ
hoàn toàn khỏi xảy ra trong các cộng đồng phát triển
mở.
Việc ra quyết định
trong các dự án phát triển mở có thể trải từ hoàn
toàn tập trung cho tới hoàn toàn phân tán. Thông qua sự
cần thiết và quen thuộc, gần như tất cả các dự án
sẽ bắt đầu sống với một mô hình tập trung, với một
số lượng nhỏ những người đóng góp ban đầu, có lẽ
chỉ như 1. Kết quả là, tất cả các quyết định được
đội nhỏ này thực hiện. Đối với một đội nhỏ,
việt tập trung hóa ra quyết định là dễ dàng, và giống
những gì được thấy trong các dự án đóng. Tuy nhiên,
khi một dự án phát triển, ngày càng nhiều người hơn
sẽ có thiện chí đóng góp cho các mục tiêu của dự án.
Qui trình ra quyết định có thể cần phải tiến hóa một
cách tương ứng.
Những nhà độc
tài nhân từ
Những người sáng
lập dự án mà duy trì sự kiểm soát thông qua toàn bộ
cuộc đời của dự án đôi khi được gọi là các
nhà độc tài nhân từ (bản
dịch tiếng Việt). Một nhà độc tài nhân từ có
trách nhiệm xác định đường lối chung của dự án và
ra các quyết định cuối cùng khi cộng đồng là không
đồng ý kiến. Khi mà ngày càng nhiều thành viên tham gia
vào cộng đồng, nhà độc tài nhân từ đấu tranh để
đảm bảo rằng những quyết định đó là vì lợi ích
tốt nhất của dự án, hơn là những lợi ích của bất
kỳ cá nhân hoặc tổ chức đặc biệt nào. Một nhà độc
tài nhân từ tốt cần phải có khả năng cân bằng những
yêu cầu xung đột nhau của các thành viên cộng đồng.
Đây là nhiệm vụ không dễ dàng. Trước khi bạn tự
mình thiết lập như một nhà độc tài nhân từ thì bạn
nên hỏi: 'Tôi
có thể là một nhà độc tài nhân từ tốt hay không?'
Trong khi đội dự án
là nhỏ, và cộng đồng những người sử dụng là nhỏ,
thì có khả năng đối với nhà độc tài nhân từ sẽ
đưa ra tất cả các quyết định theo một cách thức từ
trên xuống dưới theo truyền thống. Tuy nhiên, khi cộng
đồng phát triển, điều này trở thành ngày càng khó
khăn. Rất ít người sẽ có khả năng hiểu đầy đủ
được tất cả các chi tiết của vấn đề đang được
giải quyết. Hệ quả là, có thể cảm thấy sự không
chắc chắn về việc ra các quyết định trong các lĩnh
vực trong đó họ ít thành thạo hơn. Khi dự án phát
triển về kích cỡ và phạm vi, những lĩnh vực không
chắc chắn đó sẽ gia tăng, và vì thế nhà độc tài có
thể cảm thấy không có khả năng ra một quyết định
một cách thường xuyên như theo yêu cầu.
Vì lý do này, một
nhà độc tài nhân từ có hiệu quả dần nắm lấy vai
trò của trọng tài và người điều phối. Như một qui
tắc, họ không theo bên nào trong bất kỳ tranh luận đặc
biệt nào. 'Tôi thà có 15 người tranh luận về thứ gì
đó còn hơn 15 người chia thành 2 phe, mỗi phe tin chắc nó
đúng và không nói cho phe bên kia', Linus
Torvalds nói. Ở đây Linus nhận thức được rằng bằng
việc theo các bên ông sẽ gây ảnh hưởng cho những người
còn lưỡng lự và vì thế lái sự phát triển đồng
thuận theo một cách thức không mong đợi. Điều này là
chấp nhận được nếu bản thân ông có một ý kiến
khẳng định chắc chắn, nhưng trong những lĩnh vực nơi
mà những người khác có đủ năng lực hơn để dẫn dắt
qui trình đó, thì có thể gây ra những quyết định không
đạt mức tối ưu.
Trong
một dự án trung bình hoặc lớn, thường sẽ tốt hơn
cho những người lãnh đạo để cho phép thảo luận để
xử lý và chỉ chỉ ra sự ưu tiên trong
trường hợp không chắc là không có sự đồng thuận có
thể nhìn thấy nổi lên. Vì thế, nhà độc tài nhân từ
cố gắn ngăn chặn tranh luận không có kết quả, nhưng
khuyến khích tranh luận có đủ thông tin. Theo cách này,
họ có thể được xem như là một chủ tọa hơn là một
nhà độc tài.
Khi viết phần về ra
quyết định của một tài liệu điều hành cho một dự
án được kiểm soát tập trung, điều quan trọng để chỉ
định rằng trong khi sức mạnh ra quyết định là tập
trung, thì cộng đồng phân tán được kỳ vọng sẽ thông
báo quyết định đó thông qua tranh luận. Không làm được
điều này có thể làm cho một số cá nhân xa lánh, những
người sợ rằng có ít cơ hội cho họ để mang sự tinh
thông của họ tới dự án.
Những người tài
lãnh đạo
Trong khi một số dự
án duy trì sự kiểm soát chặt chẽ đối với qui trình
ra quyết định, thì những dự án khác cảm thấy có hiệu
quả hơn để cho phép cộng đồng như một tổng thể ra
các quyết định. Trong trường hợp này, có một nhu cầu
gia tăng cho một qui trình ra quyết định chính thức, vì
không có người duy nhất nào có khả năng phá được sự
bế tắc hoàn toàn.
Cấu trúc thành viên
của những cộng đồng như vậy đặc thù thấy bằng
phẳng hơn so với trong những cộng đồng được nhà độc
tài nhân từ dẫn dắt. Tuy nhiên, những người đóng góp
giành được sự tôn trọng của cộng đồng thông qua
những đóng góp thường xuyên và hữu dụng có xu hướng
có một 'tiếng nói to hơn'. Điều này có nghĩa là các
nhân vật lãnh đạo sẽ vẫn nổi lên và các nhân vật
đó phải, giống như các nhà độc tài nhân từ, vận
dụng quyền được thừa nhận của họ một cách thận
trọng. Mô hình chiếm được sự ủy quyền thông qua đóng
góp thường được gọi là mô hình người tài lãnh đạo.,
Mô
hình người tài lãnh đạo (bản
dịch tiếng Việt) cố gắng đảm bảo rằng những
người mới tới cộng đồng cảm thấy được tham gia và
cam kết từ ngay ngày đầu tiên. Nó trao cho mỗi người
tiếng nói và thưởng cho những ai thực hiện được
những đóng góp có giá trị bằng việc cung cấp các cơ
chế cho sự thừa nhận, như tính trực quan gia tăng trong
dự án (điều này được thảo luận chi tiết hơn trong
ví dụ của chúng tôi về mô hình người tài lãnh đạo).
Như với mô hình nhà độc tài nhân từ, các quyết định
được đưa ra bằng việc lắng nghe cộng đồng và cuối
cùng thực hiện hành động dựa vào sự đồng thuận nổi
lên. Tuy nhiên, trong nhiều trường hợp không có nhu cầu
cho sự thảo luận, vì con đường đúng là rõ ràng. Trong
trường hợp này, đủ để đơn giản nói ra những ý
định của một người và cho phép thời gian cho ai đó
phản đối. Trong trường hợp không có sự phản đối,
được giả thiết rằng cộng đồng đồng ý với hành
động được đề xuất. Điều này đôi khi được gọi
là 'sự đồng thuận lười biếng'.
Hiệu ứng đồng
thuận lười biếng có nghĩa là, trong thực tế, hầu hết
các quyết định trong một chế độ người tài lãnh đạo
được thực hiện theo một cách thức rất tương tự như
với các dự án vận hành theo mô hình nhà độc tài nhân
từ. Đó là, một khi ai đó đã giành được giá trị để
cho phép họ xác định qui trình hành động, thì sử dụng
sự đồng thuận lười biếng cho phép họ cứ thế tiến
lên và thực hiện bất kỳ hành động nào mà họ muốn.
Chỉ giống như một nhà độc tài nhân từ có thể làm.
Trong trường hợp một sự không đồng ý không thể giải
quyết được bằng thảo luận thì 2 mô hình là khác
nhau. Trong hầu hết chế độ người tài lãnh đạo,
một tiếng nói được gọi tới để phá vỡ những bế
tắc đó; trong những cuộc biểu quyết như vậy, tất cả
các thành viên của cộng đồng có một tiếng nói, nhưng
chỉ những thành viên cộng đồng nào mà giành được đủ
giá trị sẽ có quyền phủ quyết.
Làm thế nào để
xây dựng một tài liệu điều hành
Một khi bạn đã
thiết lập được mô hình nào bạn sẽ áp dụng, thì bạn
cần xây dựng một tài liệu điều hành để chi tiết
hóa qui trình theo đó các quyết định được thực hiện
và những đóng góp được thừa nhận. Bên dưới chúng
tôi trình bày một khung công việc chung cho việc tạo một
tài liệu điều hành của dự án. Nó mô tả những lĩnh
vực chính cần được đề cập tới, và giải thích vì
sao từng phần là quan trọng. Ở cuối của tài liệu này,
bạn sẽ thấy các đường liên kết tới các tài liệu
điều hành ví dụ để minh họa cho một dải các lựa
chọn có sẵn cho bạn khi thiết kế mô hình của riêng
bạn. Cũng đáng lưu ý rằng OSS Watch là ở
đây để hỗ trợ các dự án giáo dục trung học và
cao hơn phát triển một mô hình điều hành.
Các phần chính của
một tài liệu điều hành điển hình bao gồm:
- Tổng quan
- Các vai trò và trách nhiệm
- Sự hỗ trợ
- Qui trình ra quyết định
- Qui trình đóng góp
Chúng tôi sẽ thảo
luận từng trong các phần đó ở bên dưới. Ví dụ,
chúng có thể nhìn thế nào, hãy xem ví dụ Mô
hình Điều hành của Nhà độc tài Nhân từ (bản
dịch tiếng Việt) và Mô
hình Điều hành Người tài lãnh đạo (bản
dịch tiếng Việt).
Tổng quan
Phần tổng quan của
tài liệu điều hành này sẽ cung cấp một tóm tắt ngắn
gọn về các mục tiêu của dự án và cách mà nó được
quản lý, liên kết hướng tới từng phần riêng rẽ một
cách phù hợp. Nó cũng sẽ đưa ra các thông tin chính, như
giấy phép bao trùm các kết quả của dự án, người nắm
giữ bản quyền, và cách mà những người sử dụng có
thể trở nên có liên quan tới sự phát triển của dự
án.
Tổng quan sẽ là ngắn
gọn, vì mục đích là để trao cho mọi người sự hiểu
biết ngay lập tức về những gì được kỳ vọng đối
với họ nếu họ mong muốn tham gia vào dự án.
Các vai trò và
trách nhiệm
Phần này mô tả các
vai trò chính thức và sự ủy quyền của chúng trong dự
án. Nó cũng sẽ mô tả mức cam kết theo yêu cầu và cách
mà một người tìm cách tham gia trong từng vai trò. Mục
tiêu của phần này là để làm rõ ai quản lý dự án, ai
có thể đóng góp, làm thế nào họ có thể đóng góp và
họ sẽ hành xử thế nào nếu họ muốn gây ảnh hưởng
trực tiếp tới dự án.
Các vai trò được
xác định có thể hoàn toàn chung, như 'người sử dụng',
'người đóng góp', 'người đề xuất' hoặc 'thành viên
ban quản lý', 'người quản lý cộng đồng', 'người quản
lý sản phẩm', và cứ như thế. Thông thường, càng nhiều
chi tiết được cung cấp thì càng có khả năng mọi người
sẽ có khả năng xác định được những điều họ có
thể làm để đóng góp.
Tuy nhiên, hãy cẩn
trọng không hạn chế dạng những đóng góp mà mọi người
có thể làm. Ví dụ, ai đó với chức danh 'người quản
lý phát hành' có thể cảm thấy rằng không phù hợp cho
họ để trợ giúp với việc quản lý các lộ trình của
dự án, mà dường như là một phần của vai trò của
'người quản lý sản phẩm'. Vì lý do này, nhiều dự án
chọn có nhiều chức danh để mô tả một dải rộng lớn
các hoạt động. Ví dụ, các nhiệm vụ của việc quản
lý một phát hành và việc quản lý các lộ trình có thể
nằm trong một vai trò duy nhất - có lẽ là 'người đề
xuất' - và các cá nhân trong vai trò đó sẽ tự chọn các
hoạt động mà họ muốn để đóng góp.
Ngược lại, việc
không đưa ra các trách nhiệm nhất định cho mọi người
có thể gây ra sự thiếu các đóng góp trong một lĩnh vực
hoạt động được đưa ra. Điều này cần phải được
cân bằng với thực tế là không phải lúc nào cũng có
khả năng chỉ dẫn cho các thành viên của một cộng đồng
triển khai các nhiệm vụ được xác định, khi họ có
thể không được các lãnh đọa dự án sử dụng. Các
vai trò được mô tả chi tiết trong một
tài liệu riêng rẽ (bản
dịch tiếng Việt).
Sự hỗ trợ
Phần này ghi tài liệu
các quy trình hỗ trợ trong dự án. Đối với hầu hết
các dự án nguồn mở, các kênh hỗ trợ là mối liên hệ
chính với những người sử dụng của dự án. Những
người sử dụng có thể trở thành những người đóng
góp hoặc các khách hàng trong tương lai của các nhà cung
cấp hỗ trợ thương mại, và vì thế là mấu chốt cho
sự bền vững của một dự án. Một dự án nguồn mở
phải chăm sóc những người sử dụng của mình.
Phần
hỗ trợ của tài liệu điều hành cũng mô tả các kênh
hỗ trợ sẵn sàng và cách mà mỗi kênh được sử dụng.
Rủi ro của việc trải ra quá mỏng là nó sẽ ngăn chặn
một số đông các hoạt động sống còn xảy ra tại một
địa điểm duy nhất. Kết quả là, dạng cộng đồng tự
hỗ trợ mà chúng ta tìm cách phát triển để giảm thiểu
sự hỗ trợ tổng thể của dự án trở nên gượng gạo,
thiếu tự nhiên.
Qui trình ra quyết
định
Cách thức theo đó
các quyết định được đưa ra là sống còn cho sự thành
công của một dự án phát triển mở. Một qui trình là
quá mất thời gian có thể gây ra cho các quyết định bị
đình hoãn, vì thế làm chậm dự án; còn tệ hơn, qui
trình đó có thể bị bỏ qua, vì thế tước đi quyền
công dân đối với một phần của cộng đồng. Ngược
lại, một qui trình mà không được xác định tốt có
thể làm cho những lý lẽ về việc liệu một quyết định
có là hợp lệ hay không, một lần nữa gây ra sự chậm
trễ và chia rẽ trong cộng đồng.
Tính hiệu lực và
minh bạch của qui trình ra quyết định sẽ là trọng tâm
chính của phần này của tài liệu điều hành. Chính qui
trình này đảm bảo cho những người đóng góp tiềm năng
rằng những nỗ lực của họ sẽ được dự án điều
hành một cách công bằng và sẽ giữ được giá trị
trong tương lai. Các phương pháp để tạo ra cấu trúc
kiểm soát cho đúng được phác thảo ở trên.
Qui trình đóng góp
Phần này làm các tài
liệu về cách mà mọi người sẽ đóng góp cho dự án.
Nó chi tiết hóa các dạng đóng góp khác nhau đang được
thấy và các công cụ có sẵn cho việc thực hiện và
quản lý các đóng góp đó. Phần này sẽ không đưa ra
một mô tả đầy đủ về các công cụ, mà thay vào đó
là một giải thích rõ ràng về qui trình mà các công cụ
được cung cấp để hỗ trợ.
Các qui trình rõ ràng
có liên quan tới sự đóng góp là cần thiết vì 2 lý do
chính:
- để chỉ dẫn cho những người đóng góp cho dự án
- đẻ tái đảm bảo cho những người sử dụng tiềm năng rằng sự kiểm soát chất lượng và giám sát pháp lý của tất cả những đóng góp là đủ lành mạnh để sản xuất ra một đầu ra của phần mềm tin cậy và hợp pháp
Phần này của tài
liệu điều hành vì thế sẽ mô tả những kỳ vọng mà
dự án có với sự tôn trọng quản lý các bản quyền,
các giêu chuẩn và tài liệu của việc lập trình. Nó
cũng sẽ mô tả những gì sẽ xảy ra một khi sự đóng
góp được thực hiện từ một bên thứ 3, bao gồm cả
các chi tiết về qui trình được cho phép khi một sự
đóng góp được cho rằng không phù hợp với dự án.
Kết luận
Việc
áp dụng một mô hình điều hành và xây dựng một tài
liệu điều hành dự án càng sớm có thể càng tốt là
sống còn cho sự tạo ra một dự án phát triển mở thành
công. Không gì sẽ ngăn cản được những người khởi
xướng dự án khỏi việc ghi thành tài liệu mô hình của
họ ở lúc khởi đầu dự án.
Tuy
nhiên, không cần đối với phiên bản đầu tiên của mô
hình điều hành dự án sẽ phải được chi tiết hóa đầy
đủ; một khung công việc đưa ra quan điểm ban đầu là
đủ. Tài liệu điều hành cũng không cần phải tính tới
mọi kịch bản có thể trong tương lai. Ý tưởng là để
bắt đầu với một mô hình đơn giản và có khả năng
quản lý được mà sẽ gửi đi những tín hiệu rõ ràng
cho những người đóng góp tiềm năng. Một dự án phát
triển mở thành công cần phải chào đón những người
có khả năng đóng góp theo một cách thức mà cải thiện
được tính bền vững của dự án, trong khi vẫn ngăn
chặn được những người với các nhu cầu không tương
thích khỏi việc phung phí thời gian của riêng họ và
thời gian của đội dự án trong sự tham gia không có hiệu
quả với dự án.
Để
có hiệu lực, một tài liệu điều hành cần phải ngắn
gọn súc tích, có khả năng truy cập được và dễ dàng
tham chiếu tới. Nó sẽ tập trung vào các khía cạnh chính
của cấu trúc và cơ chế ra quyết định, nhưng cần phải
là đủ mềm dẻo để giải quyết sự phức tạp ngày
một gia tăng có liên quan tới sự tăng trưởng của cộng
đồng và sự tương tác với thế giới bên ngoài của
nó.
Các
mô hình điều hành có thể trải từ kiểm soát hoàn toàn
tập trung cho tới hoàn toàn phi tập trung. Mô hình khởi
đầu lý tưởng là mô hình mà nhận thức được cấu
trúc ban đầu của dự án và đưa ra được cách thức rõ
ràng cho những đóng góp của các bên thứ 3 được thực
hiện và được quản lý trong dự án. Các độc giả
có thể tìm thấy các mẫu template về Nhà
độc tài Nhân từ (bản
dịch tiếng Việt) và Chế
độ Người tài Lãnh đạo (bản
dịch tiếng Việt) là hữu dụng trong việc hình thành
một tài liệu ban đầu. OSS Watch cũng vinh
hạnh để hỗ trợ cho các nhân sự tại các cơ quan
HE và FE để tạo ra tài liệu điều hành phù hợp với
các nhu cầu các dự án của họ.
A
governance model describes the roles that project participants can
take on and the process for decision making within the project. In
addition, it describes the ground rules for participation in the
project and the processes for communicating and sharing within the
project team and community. In other words it is the governance model
that prevents an open source project from descending into chaos. This
document explains why a governance model is necessary, considers some
of the challenges associated with adopting a governance model in open
source projects, and looks at the key areas such a model needs to
cover. It also describes how to encapsulate your governance model in
a governance document.
There
are almost as many variations of open source management strategies as
there are open source projects. It is therefore critical that a
project clearly communicates its policies and strategies to potential
users and developers of the project’s outputs. A clear governance
model also allows potential contributors to understand how they
should engage with the project, what is expected of them and what
protections are provided to ensure that their contributions will
always be available to them. In addition, it describes the quality
control processes that help to assure potential users of the
viability of the project. The development and communication of a
clear and concise governance model is one of the most important steps
a project can take towards sustainability
through open development.
Governance
models range from centralised control by a single individual or
organisation (benevolent dictatorship) to distributed control awarded
in recognition of contributions (meritocracy). You can find
governance models at any point along this spectrum; it is also
possible for a project’s chosen governance model to move along this
spectrum as the project matures. Below are some examples of common
models and the types of projects in which they may be found. (This
table is derived from work presented in Open
Source Software: Is It Worth Converting?. Terms such as
‘cathedral’ and ‘bazaar’ are explained in the Wikipedia
article on the Cathedral
and the Bazaar)
Project type
|
Objective
|
Control style
|
Community
structure
|
Examples
|
Exploration-oriented
|
Sharing
innovation and knowledge
|
Cathedral-like
central control
|
Project
leader, many readers
|
Perl, Linux
Kernel
|
Utility-oriented
|
Satisfying an
individual need
|
Bazaar-like
decentralised control
|
Many
peripheral developers, peer support to passive users
|
GNU/Linux
(excluding Kernel)
|
Service-oriented
|
Providing
stable service
|
Council-like
central control
|
Core members
instead of project leader, many users that develop systems for
end users
|
Apache,
PostgreSQL
|
Let’s
look at some example governance models. First, consider the Ubuntu
governance model. This model focuses on describing the structure
of the community and the responsibilities associated with each
component of that structure. It also outlines the decision-making
processes found within the project. The Ubuntu project has opted to
separate developer information from the structural information found
in their governance document, but the technical management processes
are also clearly documented.
The
Apache Software Foundation has two sets of governance documents for
each project. The first concerns the foundation’s governance, which
sets out the structure of the organisation as a whole. The foundation
also provides a set of documents on key processes found within its
projects, such as decision making. However, since each project is
free, within certain constraints, to define its own variations of
these processes, many projects have their own governance
documentation. See the Apache
Forrest governance description for an example.
Our
third and final example of a governance model in practice is found in
the Taverna
project. This is an example of an open source project that has grown
within the academic community and so demonstrates a model that has
been found to work in the academic environment. The Taverna model,
like the Ubuntu and ASF models, focuses on project structure and
management processes.
In
spite of the importance of defining a governance model at the outset,
many projects fail to do so. There are a number of possible reasons
for this. Among the most common are:
- the process is perceived as ‘red tape’
- there is a concern that the project will lose its sense of direction
- it is felt that control of the project’s strategy will be lost
- the project is thought to be too young or to small to attract active users or developers
Although
each of the first three concerns is potentially valid, these fears
are easily dispelled by using an appropriate governance model.
However, the final concern, regarding the age of the project, is
never valid. This is because any potential contributor to the project
needs to know how to contribute efficiently and effectively, and how
their contribution will be handled. Without clear guidance on these
matters, most people will walk away rather than join an immature
project. But if those early adopters are shown that they can help to
guide the project as it matures, they may decide to stay. A single
external contributor may well have a major effect on the
sustainability of a project, so project initiators can simply not
afford to risk losing that contributor as a result of trying to save
a small amount of effort in the early stages.
It
is helpful to address each of the above concerns as early as possible
in the life of the project, so that they do not become a barrier to
adopting a clear governance model. Let’s explore them in a little
more detail.
Some
people perceive a governance model to be nothing but red tape. But it
is not necessarily true that defining a governance model is an
unnecessary bureaucratic exercise: it depends on how carefully the
model is drawn up. The goal is to make the model simple but
effective. It need not have a rule for handling every situation;
indeed, it should not attempt to do so. Instead, the model should
provide a lightweight way of guiding the management of the project in
a clear and transparent way. This transparency will encourage third
parties to join the project. They can see how the project is run and
predict how it will react to their contributions before expending any
significant effort on that work.
It
is important to note that a governance model should make the process
of making and evaluating third party contributions easier, not
harder. It should remove the uncertainty that can lead to wasted time
for everyone involved.
The
fear that a governance model will constrain the project as it adapts
to a changing environment may be attributed to the fact that there
are many poorly governed open source projects that are indeed limited
in their agility. However, the problem is caused by the lack of a
clear governance model rather than the provision of one. A good
governance model will actually increase the agility of the project,
as it defines how new contributors can take the project in unexpected
directions without interfering with its core goals. It provides a
mechanism for allowing the community as a whole to define the
direction they feel the project should take, while ensuring that the
core project team does not lose control. The issue of control is
discussed in the next section; here we will focus on vision and
direction.
Since
it is not possible for a project to be all things to all people, the
goal of a sustainable project should be to provide as complete a
solution as it can for its core stakeholders, while still being of
interest to other potential stakeholders. The project must also be
ready to accept input from unexpected quarters, and must be able,
wherever possible, to accommodate their needs in its future vision
and direction. Doing so significantly increases the pool of resources
the project can draw upon in its quest to become sustainable.
However, trying to be all-encompassing will nearly always result in
failure, as effort becomes spread too thinly over the problem domain.
The
solution is to adopt a governance model that provides mechanisms for
clearly defining and enforcing the boundaries of acceptability within
the project. The model should be designed to allow project leaders to
avoid unnecessary and wasteful diversions by potentially rogue
elements within the community. The model must also ensure that those
with aligned strategies can undertake complimentary work in a
collaborative and constructive way. This kind of collaboration
broadens the scope of the project without significantly increasing
the demands on the originating project team.
Perhaps
the biggest fear of all is that the governance model will pave the
way for third parties to take control of the project. After all, a
governance model encourages third-party participation by empowering
those parties within the project. However, as with all the concerns
addressed here, a well-designed governance model ensures that control
remains precisely where the project leadership wants it. This may
mean that all decision making is controlled by a central organisation
(e.g. MySQL and SugarCRM),
or it may mean that all decisions are made by the community as a
whole (e.g. Apache HTTPD Server
and DoJo ).
When
deciding on the level of control required by your project team,
consider how the efforts of the team are to be sustained. If, for
example, the project is producing a high-profit product that will be
exploited commercially, there is some benefit in maintaining control
while encouraging collaboration. It is true that choosing a
centralised model ensures that product evolution is optimised for the
chosen exploitation route. However, it does limit the breadth and
depth of contributors likely to take an interest in the project, as
their strategic goals may differ.
On
the other hand, if the project is producing a component part that, in
itself, is of low commercial value, the aim is usually to ensure that
the component is as widely used as possible. In those circumstances,
the goal would be to maximise participation by allowing all
interested and active partners to participate in strategic planning.
One
of the strengths of the open source licensing model is that anyone
has the right to take the code and develop it independently of the
copyright holder. This is called forking. This means that the control
exerted by the project leadership is only as strong as the support
the community gives that leadership.
Regardless
of the contents of the governance document, it is possible for those
who fundamentally disagree with the controlling influences to start a
new project. It is not the role of a governance model to prevent such
forking of the project. Rather, it should clearly define the
influence a potential contributor is likely to have over a project’s
strategic direction. It is only through careful management of the
community that open source project leaders remain ‘in power’.
Clearly setting out the rules of the community in this way is an
important part of this management process.
Finally,
we return to the issue of a project being too young to attract
third-party users and contributors and therefore not needing to
concern itself with how to manage them. It is very common for
projects to feel that a governance model is not yet necessary, but
this, in our opinion, is never the case.
It
is never too soon to define a suitable governance model. Without one,
the chances of third parties wishing to contribute are considerably
reduced. This is for a number of reasons:
- potential contributors will not know how to contribute
- they will not be sure what will happen to their contribution
- the project will not look serious about engaging with third parties
- there is no visible assurance that contributions will be managed in such a way that they will remain of value to the original contributor
Since
you never know when a contributor might stumble upon your project, it
is important to be ready from the earliest possible date. Each missed
opportunity to attract contributors damages the sustainability of the
project. Remember also that it is the first contact between a project
and a contributor that is the most important. For example, a bug fix
provided by a third party could result in several people having a
better user experience, which could result in more users. This, in
turn, would make the project more attractive to users and
contributors.
Another
common misconception is that there are not enough potential users or
contributors to make it worth courting them. Again, we would contend
that a single contribution that improves the quality and usability of
the product is worth having. The effort involved in creating an
adequate governance model is usually less than the effort involved in
all but the smallest of contributions.
A
final concern that is often raised is that the project is too small
to cope with an influx of third-party users and contributors. This
illustrates a lack of understanding of how open development works:
firstly, even the largest of projects do not attract more than a
handful of active developers at any one time. Secondly, a
well-managed community will be largely self-supporting. This is
particularly true for decentralised communities.
Decision
making in an open development project appears, at first sight, to be
a complex issue and is central to many of the fears examined in the
previous section. Many people know, for example, how difficult it can
be for a committee to reach a decision. Documenting the process by
which decisions are made is therefore a key part of a governance
model, and it is worth taking a little time to explore the various
approaches commonly taken to prevent deadlock situations from
occurring in open development communities.
Decision
making in open development projects can range from fully centralised
to fully decentralised. Through necessity and familiarity, nearly all
projects will start life with a centralised model, with a small
number of initial contributors, perhaps as few as one. As a result,
all decisions are made by this small team. For a small team,
centralising the decision making is easy, and is akin to what is
found in closed projects. However, as a successful project grows,
more and more people will be willing to contribute to the objectives
of the project. The decision making process may need to evolve
accordingly.
Project
founders who maintain control throughout the entire life of the
project are sometimes called benevolent
dictators. A benevolent dictator is responsible for determining
the general direction of the project and making the final decisions
when the community is in disagreement. As more and more members join
the community, the benevolent dictator strives to ensure that these
decisions are in the best interests of the project, rather than the
interests of any particular individual or organisation. A good
benevolent dictator needs to be able to balance the conflicting
requirements of community members. This is no easy task. Before you
set yourself up as a benevolent dictator you should ask: ‘Can
I be a good benevolent dictator?’
While
the project team is small, and the community of users is small, it is
possible for the benevolent dictator to make all decisions in a
traditional top-down manner. However, as the community grows, this
becomes more and more difficult. Very few people will be able to
fully understand all the details of the problem being addressed.
Consequently, may feel uncertain about making decisions in areas in
which they are less expert. As the project grows in size and scope,
these areas of uncertainty will grow, and so the dictator may feel
unable to make a decision as frequently as required.
For
this reason, an effective benevolent dictator gradually takes on the
role of arbitrator and coordinator. They do not, as a rule, take
sides in any particular debate. ‘I’d much rather have 15 people
arguing about something than 15 people splitting into two camps, each
side convinced it’s right and not talking to the other,’ says
Linus Torvalds. Here Linus recognises that by taking sides he
will influence those who are undecided and thus steer the development
of consensus in an unintended way. This is acceptable if he himself
has a firm opinion, but in areas where others are more qualified to
lead the process, it could result in sub-optimal decisions.
In
a medium to large project, it is usually better for leaders to allow
discussion to proceed and only indicate a preference in the unlikely
event that there is no visible consensus emerging. Thus, the
benevolent dictator tries to prevent fruitless debate, but encourages
informative debate. In this way, they can be seen as a chairperson
rather than a dictator.
When
writing the decision making section of a governance document for a
centrally controlled project, it is important to indicate that while
the decision making power is centralised, the distributed community
is expected to inform that decision through debate. Failure to do
this may alienate some individuals, who fear that there is little
opportunity for them to bring their expertise to the project.
While
some projects maintain tight control over the decision making
process, others feel it is more effective to allow the community as a
whole to make decisions. In this case, there is an increased need for
a formal decision making process, since there is no single person
able to break a deadlock.
The
membership structure of such communities typically looks flatter than
in those led by a benevolent dictator. However, contributors who have
earned the respect of the community through frequent and useful
contributions tend to have a ‘louder voice’. This means that
leadership figures will still emerge and those figures must, like the
benevolent dictators, wield their perceived authority with care. This
model of earning authority through contribution is often called the
meritocratic model.
The
meritocratic
model tries to ensure that new entrants to the community feel
engaged and involved from the very first day. It gives everyone a
voice and rewards those who make valuable contributions by providing
mechanisms for recognition, such as increased visibility within the
project (this is discussed in more detail in our example meritocratic
model). As with the benevolent dictator model, decisions are made by
listening to the community and eventually taking action based on the
consensus that emerges. However, in many cases there is no need for
discussion, since the correct path is obvious. In this case, it is
sufficient to simply state one’s intentions and allow time for
someone to object. In the absence of an objection, it is assumed that
the community agrees with the proposed action. This is sometimes
called ‘lazy consensus’.
The
effect of lazy consensus means that, in practice, most decisions
within a meritocracy are made in a way that is very similar to that
of projects operating under a benevolent dictator model. That is,
once someone has earned the merit to allow them to define a course of
action, the use of lazy consensus allows them to just go ahead and
take whatever action they want. Just as a benevolent dictator could
do. In the case of a disagreement that cannot be resolved by
discussion the two models differ. In
most meritocracies, a vote is called in order to break these
deadlocks; in such votes, all members of the community have a vote,
but only those community members who have earned enough merit will
have a veto.
Once
you have established which model you will adopt, you need to draw up
a governance document that details the process by which decisions are
made and contributions are recognised. Below we present a general
framework for creating a project governance document. It describes
the main areas that need to be addressed, and explains why each
section is important. At the end of this document, you will find
links to example governance documents that illustrate the range of
options available to you when designing your own model. It is also
worth noting that OSS Watch is here
to assist UK higher and further education projects developing a
governance model.
The
main sections of a typical governance document include:
- Overview
- Roles and responsibilities
- Support
- Decision making process
- Contribution process
We’ll
discuss each of these sections below. For examples of how they might
look, see our example Benevolent
Dictator Governance Model and Meritocratic
Governance Model.
This
overview section of the governance document should provide a brief
summary of the project objectives and how it is managed, linking
forward to each individual section as appropriate. It should also
provide key information, such as the licence covering the project
outputs, who the copyright holder is, and how users can become
involved with the development of the project.
The
overview should be short, as the objective is to give people an
immediate understanding of what
is expected of them if they wish to engage with the project.
This
section describes the formal roles and their authority within the
project. It should also describe the level of commitment required and
how one seeks to engage in each role. The goal of this section is to
make it clear who manages the project, who can contribute, how they
may contribute, and how they should behave if they wish to directly
influence the project.
The
defined roles may be quite general, such as ‘user’,
‘contributor’, ‘committer’ or ‘project management committee
member’, or they may be very specific, such as ‘release manager’,
‘bug manager’, ‘community manager’, ‘product manager’,
and so on. Generally, the more detail provided, the more likely it is
that people will be able to identify things they can do to
contribute. However, be careful not to limit the kind of
contributions people can make. For example, someone with the title
‘release manager’ may feel that it is not appropriate for them to
assist with managing project roadmaps, which appears to be part of
the ‘product manager’ role. For this reason, many projects opt
for broad titles that describe a wide range of activities. For
example, the tasks of managing a release and managing roadmaps might
fall within a single role - perhaps ‘committer’ - and individuals
within that role will self-select the activities they wish to
contribute to.
Conversely,
failing to give specific responsibilities to people can result in a
lack of contributions in a given area of activity. This needs to be
balanced against the fact that it is not always possible to instruct
members of a community to carry out defined tasks, as they may not be
in the employ of the project leaders. Roles are described in more
detail in a
separate document.
This
section documents support processes within the project. For most open
source projects, the support channels are the main contact with users
of the project. These
users may become future contributors or customers of commercial
support providers, and are therefore key to the sustainability of a
project. An open source project must look after its users.
The
support section of the governance document also describes the
available support channels and how each is used. It also provides a
means for preventing support from being spread too thinly across
multiple channels. The risk of spreading too thinly is that it
prevents a critical mass of activity occurring in a single location.
As a result, the kind of self-supporting community we seek to develop
in order to reduce the support overhead of the project is inhibited.
The
way in which decisions are made is critical to the success of an open
development project. A process that is too time consuming may result
in decisions being deferred, thus delaying the project; worse still,
the process may be ignored, thus disenfranchising part of the
community. Conversely, a process that is not well defined may result
in arguments about whether a decision is valid or not, again
resulting in delays and splits within the community.
The
efficiency and transparency of the decision making process should be
the main focus of this section of the governance document. It is this
process that assures potential contributors that their efforts will
be handled fairly by the project and will remain of value in the
future. Methods for creating the right control structure are outlined
above.
This
section documents how people should contribute to the project. It
details the various types of contribution being sought and the tools
available for making and managing those contributions. This section
should not provide a full description of the tools, but rather a
clear explanation of the process the tools are provided to support.
Clear
processes relating to contribution are necessary for two key reasons:
- to guide contributors to the project
- to reassure potential users that the quality control and legal oversight of all contributions is sufficiently robust to produce a reliable and legally sound software output
This
section of the governance document should therefore describe the
expectations the project has with respect to copyrights management,
coding standards and documentation. It should also describe what
happens once a contribution has been made by a third party, including
details of the process that is followed when a contribution is deemed
unsuitable for the project.
Adopting
a governance model and drawing up a project governance document as
early as possible are critical for the creation of a successful open
development project. Nothing should prevent the project initiators
from documenting their model at project inception.
However,
there is no need for the first version of the project’s governance
model to be fully detailed; a framework setting out the starting
position is sufficient. Nor does the governance document need to
account for every possible future scenario. The idea is to start with
a simple and manageable model that will send clear signals to
potential contributors. A successful open development project needs
to be welcoming to those who are likely to contribute in a way that
improves project sustainability, while preventing those with
incompatible needs from wasting their own time and that of the
project team in fruitless engagements with the project.
In
order to be effective, a governance document needs to be concise,
accessible and easy to refer to. It should focus on the main aspects
of the decision making structure and mechanism, but needs to be
flexible enough to address the increasing complexity associated with
the growth of its community and interaction with the external world.
Governance
models can range from fully centralised control to fully
decentralised. The ideal starting model is one that recognises the
initial structure of the project and provides a clear way for
third-party contributions to be made and managed within the project.
Readers may find our Benevolent
dictator and Meritocratic
templates helpful in formulating an initial document. OSS Watch
is also happy to
assist staff in UK HE and FE institutions to create a governance
document to suit their projects needs.
Dịch: Lê Trung Nghĩa
Không có nhận xét nào:
Đăng nhận xét
Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.