Meritocrats,
cluebats and the open development method: an interview with Justin
Erenkrantz
By Paul Anderson,
Intelligent Content, Published: 06 January 2009, Reviewed: 15
February 2012
Bài được đưa lên
Internet ngày: 15/02/2012
Lời
người dịch: Ngoài những đoạn hội thoại lòng thòng
của tác giả với nhân vật chính, bài viết cho chúng ta
biết những khái niệm cơ bản của 'nguồn mở' và
'phương pháp phát triển mở' và lịch sử đi lên của
Quỹ Phần mềm Apache từ lúc bắt đầu cho tới sự thành
công ngày nay. Một tham khảo rất tốt cho những ai quan
tâm tới việc xây dựng các cộng đồng nguồn mở.
Nếu bạn đang đọc
điều này trên Web thì thậm chí là tốt hơn có một cơ
hội các trang được phân phối cho bạn có sử dụng máy
chủ web Apache, một trong những dự án nguồn mở nổi
tiếng nhất nền công nghiệp máy tính. Kể từ khi tái
phát hành của nó từ tro tàn của công việc phát triển
web trước đó tại Trung tâm Quốc gia về các Ứng dụng
Siêu máy tính – NCSA (National Center for Supercomputer
Applications) tại Illinois, Dự án Máy chủ HTTP của Apache
(để đưa ra cái tên đầy đủ) đã thường xuyên định
giờ cho các số liệu thị phần giữa 60%-70%và nó từ
lâu được xem như là đầu cầu cho sự chấp nhận rộng
rãi hơn của phần mềm nguồn mở (PMNM) trong các tập
đoàn doanh nghiệp và các tổ chức nhà nước.
Tình trạng đáng kính
đó có nghĩa là những ai có liên quan tới sự phát triển
mã nguồn của Apache và quỹ phi lợi nhuận đó mà bây
giờ giám sát nó được nằm trong sự tôn trọng cao. Có
lẽ không nhiều hơn so với Justin Erenkrantz, chủ tịch
của Quỹ Phần mềm Apache. Mặc dù sự thoải mái, kiểu
cá nhân của người ở Nam California, Erenkrantz thật bận
rộn như một trong những người của các máy chủ siêu
thông hơi nhất của Quỹ, xoay xở để kết hợp các
nhiệm vụ tự nguyện của Quỹ với công việc như một
nhà thiết kế phần mềm tại công ty khởi nghiệp về TV
trực tuyến của châu Âu Jooost, và làm Tiến sĩ khoa học
tại Đại học California, Irvine (UCI), cộng với một sự
trợ giúp nhỏ cho sự phát triển nguồn mở tại Google.
Như ông âm thầm nói bớt đi: 'Tôi có một vài cái mũ
khác nhau'.
Bất chấp nhịp độ
điên rồ này (ông đã bay tới châu Âu 12 lần vào năm
ngoái) ông vẫn tìm được thời gian để tới Oxford và
giúp OSS Watch với một dự án giám sát giáo dục. Trong
khi ông ở đó, tôi đã vồ được ông cho một cuộc
phỏng vấn 1-1 về Apache và tầm quan trọng của phương
pháp phát triển cộng đồng mở của nó.
Tất cả đã bắt đầu
từ cuối những năm 2000, khi Justin kết thúc các nghiên
cứu của học sinh chưa tốt nghiệp đại học tại Đại
học California, Irvine, một cao đẳng với một nền tảng
mạnh trong nghiên cứu phần mềm liên quan tới Internet.
Justin nói: 'Tôi đã đi qua một ông gọi là Roy Fielding.
Roy từng hoàn thành luận án Tiến sĩ của ông ta tại UCI
và ông ta đã vừa mới bắt đầu làm việc cho một công
ty gọi là e-Build'. Chúng tôi giữ liên hệ với nhau. Tôi
đã bắt đầu làm việc cho các khách hàng khác nhau và
Roy từng là một trong những lãnh đạo kỹ thuật và nói:
“Ô, chúng ta sẽ làm một module của Apache”. Và điều
này từng là sự giới thiệu chính thức của tôi cho máy
chủ web Apache. Nó từng là sự kết thúc của qui trình
phát triển của phiên bản v2.0 - nó vẫn làm việc nhưng
đã không được trơn tru cho lắm. Justin đã tham gia vào
việc viết các bản vá cho máy chủ, làm việc với các
danh sách thư có liên quan và tương tác với các lập
trình viên chủ chốt của Apache. Điều này đã phục vụ
như là sự giới thiệu của ông cho cộng đồng phát
triển và đã dẫn dắt tới một cam kết sâu đậm hơn,
và, cuối cùng, cho vị trí hiện hành của ông.
Phương pháp phát
triển mở
Quỹ Phần mềm Apache
- ASF (Apache Software Foundation) là một tổ chức bảo trợ
và hỗ trợ cho Dự án Máy chủ HTTP và một số lượng
ngày một gia tăng các dự án phát triển nguồn mở khác.
Nó vận hành thông qua một số Ủy ban
Quản lý Dự án – PMC (Project Management Committees), mỗi ủy
ban quản lý các dự án hiện đang được phát triển.
Cuối cùng thì mỗi PMC báo cáo cho Ban quản trị, nó triển
khai sự quản lý và giám sát chung và chịu trách nhiệm
về tư cách thành viên và cộng đồng rộng lớn hơn của
ASF như là một tổng thể. Cấu trúc của ASF được thiết
kế để càng mở có thể càng tốt, với khá nhiều mọi
thứ đi ra công khai, và manh mối cho sự hiểu biết vì
sao điều rất quan trọng này nằm trong lịch sử cách mà
ASF ra đời.
Gốc gác của ASF, sản
phẩm lá cờ đầu là máy chủ web, một mẩu phần mềm
điều khiển sự tương tác giữa một trình duyệt máy
trạm và máy chủ có lưu trữ các trang web. Mã nguồn của
Apache dựa vào công việc gốc từng được thực hiện
trên một daemon HTTPd dựa vào Unix từng được Rob McCool
phát triển vào giữa những năm 1993-1994 tại NCSA. Điều
này là trong những ngày khó khăn ban đầu của web, và
McCool đã sớm ra để lại công việc với Netscape mới
được thành lập. Điều này có nghĩa
là máy chủ web từng được để lại không có sự hỗ
trợ cho tới khi một nhóm những người sử dụng có quan
tâm, bao gồm cả Brian Behlendorf và Roy Fielding đã bắt đầu
chính thức chia sẻ các vấn đề và sửa các lỗi bằng
thư điện tử. Justin nói: 'Họ đã bắt đầu trao đổi
các bản vá và mọi thứ. Một cách độc lập tất cả
những người này đã cố duy trì dạng quả bóng bùn này,
Vì thế họ nói hãy làm việc cùng nhau sao cho chúng ta có
thể làm thứ gì đó tốt hơn so với từng người một
trong chúng ta có thể tự làm'. Những sửa đổi của họ
từng được biết tới như 'các bản vá' và từng được
chơi chữ thành 'apache' khi nhóm liền thành một cấu trúc
chính thức hơn.
Vì thế động lực
cho cách thức làm việc này đã tới, một phần, từ hoàn
cảnh của sự khởi đầu của tổ chức. Justin nhớ lại:
'Nếu bạn nhìn vào cách mà nó đã bắt đầu thì bạn đã
có 8 người đã đóng góp mã nguồn vì những người từng
duy trì nó đã đi khỏi. Họ từng là dạng có động lực
không thấy điều này xảy ra một lần nữa. Đây chính
là sức mạnh của nguồn mở'.
Nhưng
nó không phải chỉ là nguồn mở, mà còn là một phương
pháp phát triển mở đã giúp cho sự thành công của dự
án. Các quyết định đã và tiếp tục được thực hiện
công khai và được xem là rất quan trọng mà các dự án
và các PMC của chúng, những người có trách nhiệm cho
những hành động của riêng họ, nên tiếp tục truyền
thống này. Justin lưu ý rằng: 'Apache là sự phát triển
mở. Chúng tôi rất hăng hái về điều đó, chắn chắn
điều đó là nhất quán xuyên khắp tất cả các dự án
của Apache'. Mặc dù nó không thường xảy ra thì Justin
cam kết rằng: 'Mỗi một lần trong một
thời gian một trong các dự án bắt đầu làm những việc
theo sự riêng tư và chúng tôi giống như nói “Ôi không
không không!” Và chúng tôi tới đó với kẻ phá bĩnh
[và nói] không, bạn sẽ phải làm mọi thứ công khai và
chúng tôi sẽ không chống lại vì điều đó!'.
Nguồn mở so với
sự phát triển mở
Justin tin tưởng sự
phát triển mở là quan trọng sống còn cho thành công lâu
dài và lưu ý rằng 2 'vị ngon' của nguồn mở đang nổi
lên. Ông nói: 'Chúng tôi đang thấy sự
khác biệt giữa nguồn mở và phát triển mở. Vì thế
những gì chúng tôi đang thấy là một số dự án và thực
thể, những người đang nói đây là mã nguồn, thì nó là
theo giấy phép Apache hoặc GPL hoặc bất kể thứ gì ngoại
trừ những quyết định về cách mà mã nguồn mà trạng
thái là đằng sau một số bức tường - nó không là công
khai'. Điều này có nghĩa là một lập trình viên có tất
cả các quyền cần thiết để soạn thảo, sửa đổi và
phân phối lại mã nguồn, nhưng không có bất kỳ sự
hiểu biết thực tế nào bằng cách nào và vì sao mã
nguồn được phát triển theo cách đó ngay từ đầu.
Justin nói: 'Vì thế bạn bạn gặp một số lỗi và bạn
đang nói vì sao mã nguồn lại theo cách này? Không có ngữ
cảnh lịch sử hay việc lưu trữ hay lý do cơ bản... Vì
thế, [với phương pháp phát triển mở] những gì chúng
ta đang thấy là, điều bổ sung thêm cho “đây là mã
nguồn” chúng ta đang thấy “đây là tất cả các quyết
định đang được làm công khai”'.
Sức mạnh khác của
phương pháp phát triển mở là cách như doanh nghiệp mà
ASF phát triển phần mềm và các qui trình rà soát lại
ngang hàng đang diễn ra. Như Justin lưu ý, 'Chúng
tôi thấy ở đây với sự thành lập của ASF, tất cả
công việc được thực hiện trong một cách thức mở,
mọi thứ được rà soát lại ngang hành và điều này đã
dẫn tới chất lượng rất cao'. Sự tập trung này
vào công việc của lập trình viên và nhu cầu thực hiện
tới các tiêu chuẩn cao nhất, một cách công khai, được
phản ánh trong cấu trúc của tổ chức.
Ngay
giai đoạn đầu tiên cho một lập trình viên trong mô hình
phát triển của Apache sẽ là một 'Người sử dụng' đơn
giản - sử dụng các phần mềm và đưa ra các phản hồi,
các báo cáo lỗi và các ý tưởng. Sự tiến hóa sang giai
đoạn tiếp sau là bằng việc chứng minh giá trị của
bạn và có được sự tham gia nhiều hơn trong qui trình
phát triển đó. Justin mô tả nó như là: 'Việc chứng
minh qua thời gian. Có khả năng để nói bạn có thể làm
việc với cộng đồng, bạn có thể giử vào các bản
vá, bạn có thể bổ sung tài liệu hoặc bất kỳ thứ gì
có'. Mọi người ở mức này được biết như là 'các
lập trình viên' và họ có thể gợi ý những sửa đổi
cho mã nguồn. Tuy nhiên, họ không thể sửa trực tiếp mã
nguồn của lõi trong kho phần mềm, một công việc mà
được phân bổ cho những người với kinh nghiệm nhiều
hơn, họ được biết như những 'người đề xuất'
(committer). Cuối cùng, sau khi được những người khác
bầu chọn, bạn có thể trở thành một 'thành viên'. Điều
này kéo theo việc trở thành một 'cổ đông' của quỹ từ
thiện ASF phi lợi nhuận và có các quyền biểu quyết về
các thành viên mới và Ban Giám đốc.
Như một cách thức
cung cấp một số ý tưởng về phạm vi của tổ chức,
Justin nói: 'Có khoảng 260 thành viên của Quỹ và 1.700
người đề xuất mà họ có thể đóng góp trực tiếp
cho một số phần của kho mã nguồn. Nếu những người
đó gắn với nó thì sau đó tại thời điểm nào đó họ
sẽ trở thành các thành viên'.
Lòng tin, tài năng và
lao động cật lực là những nét cốt lõi của Apache và
website của ASF gần đây từng tái gắn nhãn với khẩu
hiệu Chế độ nhân tài trong Hành động (Meritocracy
in Action). Trong thực tế, khái niệm 'chế độ
nhân tài' ban đầu được nhà lý thuyết xã hội học
người Anh là Michael Young đưa ra trong cuốn sách nổi
tiếng, Sự nổi lên của chế độ nhân tài (The
Rise of the Meritocracy). Tầm nhìn của ông về một
xã hội dựa thuần túy vào giá trị từng thực sự là
một cảnh báo đen tối. Khi tôi chỉ ra điều này, Justin
cười to và nói: 'Tôi tin vào Roy Fielding, người từng là
một trong những chủ tịch đầu tiên của Apache, có một
nền tảng trong khoa học xã hội và sắc sảo nhận thức
được về điều đó. 'Justin viện lý rằng khái niệm đó
tóm tắt gọn gàng toàn bộ tiếp cận của họ, nói:
'Thực sự đây là một đại diện tốt và về cơ bản
nói”Nếu bạn muốn làm thứ gì đó và bạn đã trình
bày cho cộng đồng mà bạn tin tưởng và bạn có được
giá trị đó thì bạn sẽ cố gắng và trao cho bạn môi
trường để bản làm những điều mà bạn muốn làm”'.
Nguồn mở thực
dụng
Sự khác biệt khác
giữa nguồn mở và phát triển mở tới khi Justin nói về
phần mềm sở hữu độc quyền. Điều này động chạm
tới xương cốt được tranh luận gay gắt về sự bất
hòa giữa 'tự do' (như được minh họa từ Richard Stallman
và Quỹ Phần mềm Tự do, hoặc FSF) và phong trào phần
mềm nguồn 'mở', và bản thân tuyên ngôn trong các tiếp
cận khác nhau được đưa ra cho sự phát triển mã nguồn.
Ví dụ, FSF hoàn toàn
rõ ràng rằng phần mềm 'tự do' tôn trọng sự tự do của
một người sử dụng cá nhân. Một
chương trình chỉ có thể được phân loại như phần mềm
tự do nếu giấy phép của nó đưa ra cho người sử dụng
với 4 quyền tự do cơ bản: tự do chạy chương trình khi
họ muốn; tự do nghiên cứu cách chương trình làm việc
và tùy biến nó; tự do phân phối lại các bản sao; tự
do cải tiến chương trình và phân phối lại các cải
tiến cho công chúng. Tuy nhiên, giấy phép Apache License
Version 2.0 làm nó rõ rằng mã nguồn có thể được sửa
đổi và sau đó được kết hợp vào một sản phẩm sở
hữu độc quyền. Điều này có nghĩa là trong khi mã nguồn
được cấp phép Apache đủ phẩm chất như là phần mềm
tự do, thì các sản phẩm được xây dựng có sử dụng
mã nguồn đó có thể không phải là phần mềm tự do.
Justin
viện lý rằng điều này đơn giản là thực dụng và
phản ánh những gì các lập trình viên muốn, và nói:
'Phần lớn bạn sẽ thấy rằng các dự án của Apache có
xu hướng sẽ được tập trung vào các lập trình viên.
Các lập trình viên đó ban đầu là khán thính phòng đích
của chúng tôi. Một trong những điều với quan điểm của
Richard Stallman là ông muốn những người sử dụng sẽ
được tự do. Thái độ của chúng tôi trong Apache là
chúng tôi đang tìm kiếm các lập trình viên sẽ có sự
tự do. Họ đang nói: “Bạn biết không, nếu bạn muốn
biến điều này thành một thứ nguồn đóng hoặc nếu
bạn muốn làm cho nó thành một thứ nguồn mở thì điều
đó là tốt thôi”'. Và ông bổ sung: 'Chúng tôi thực sự
không nhất thiết quan tâm làm thế nào và ở đâu bạn
sử dụng nó, miễn là bạn tuân thủ giấy phép của
chúng tôi, rằng bạn trao cho chúng tôi lòng tin, …Nhưng
chúng tôi không nhất thiết sẽ nói “này bạn phải sử
dụng nó trong một sản phẩm tự do và nguồn mở”'.
Một số khác biệt
tập trung xung quanh vai trò của các bằng sáng chế phần
mềm, một vấn đề vẫn còn gây tranh cãi trong giới công
nghiệp phần mềm. Justin nói rằng 'FSF nói “chúng tôi
thậm chí không nói về các bằng sáng chế”. Apache
License Version 2.0 có dạng tập hợp tiêu chuẩn theo nhiều
cách thức cho cách mà bạn nghĩ về bảo vệ bằng sáng
chế và dạng những thứ đó. Quan điểm của chúng tôi
là các bằng sáng chế đang có ở đây và chúng tôi phải
làm việc với chúng và chúng tôi phải thực dụng. Nó là
thứ gì đó mà một số các giấy phép khác đã làm,
nhưng tôi nghĩ rằng khi mà một quỹ nguồn mở lớn [có
quan tâm] thì chúng tôi từng có hiểu biết
sâu sắc bằng việc nói rằng chúng tôi sẽ đối phó
được với điều này'.
Cũng từng có nhiều
thảo luận trong cộng đồng phát triển phần mềm về
việc gia tăng sử dụng các dịch vụ phần mềm dạng Web
2.0, còn được biết tới như là Phần mềm như một dịch
vụ (SaaS) hoặc 'Đám mây dịch vụ'. FSF đã trả lời cho
các quan ngại về cách mà một người đi xung quanh việc
cấp phép mã nguồn mở khi nó đang chạy trong một máy
chủ ở xa và cung cấp một dịch vụ thông qua một máy
trạm có trình duyệt, bằng cách làm việc về một giấy
phép mới, gọi là Affero.
Justin liên kết điều
này với các cách thức khác trong đó ASF và FSF xem xét sự
phân phối: 'Nó nằm trong câu hỏi “sự phân phối là
gì”. Thách thức là: liệu tôi có trao cho bạn phần mềm
bằng việc phơi nó ra trên một website hay không? Và ngoại
lệ của Affero, hoặc dù nó có câu cho tới nay... [nói
rằng] đặt nó lên một website là việc phân phối và vì
thế bạn cần trao nguồn'. Điều này nhất định là cách
mà Richard Stallman nhìn nó, nhưng Justin nói: 'Điều đó
thường không có xu thế sẽ là cách mà hầu hết mọi
người nhìn nhận sự phân phối. Họ có dạng nhận thức,
“Ồ tôi đang chạy mã nguồn trên Google Docs nhưng nó
không nhất thiết có nghĩa là tôi nhận được phần mềm,
tôi chỉ sử dụng nó”'. Apache vì thế không có các kế
hoạch làm việc trong một giấy phép dạng Affero.
Nguồn mở trong
giáo dục
Sự thực dụng như
vậy cũng tuyên ngôn cho bản thân nó trong quan điểm của
Justin đối với vai trò của PMNM trong các cơ sở giáo dục
như các trường học và cao đẳng. Ngược lại với
Stallman, người tin tưởng các trường học và cao đẳng
nên chống lại việc sử dụng phần mềm sở hữu độc
quyền, Justin nói: 'Các trường học nên sử dụng phần
mềm phù hợp cho nhiệm vụ. Hy vọng của chúng tôi, mong
muốn của chúng tôi, là nguồn mở phù hợp các mục tiêu
đó nhưng có thể không phải là trường hợp như vậy'.
Justin cảm thấy rằng điều quan trọng
hơn là các trường học và cao đẳng thể hiện cho các
sinh viên một dải rộng lớn các hệ thống khác nhau, cả
đóng và mở, nói: 'Một trong những điều về đại
học là nó được cho là mở ra cho mọi người tới các
ý tưởng khác nhau. Nó không nên chỉ là làm cái hộp cho
chim bồ câu nên nó nói, “Ồ mọi người ở đây sẽ sử
dụng Microsoft” và nó trở thành mặc định. Mở
ra cho sinh viên tới những lựa chọn thay thế. Hãy nghĩ
tới bên ngoài cái hộp'.
Tương lai
Cuối cùng, chúng tôi
hướng tới tương lai và nơi kế tiếp cho Apache, Justin
phác thảo công việc của vườn ươm Apache (
Apache
incubator), một qui trình chính thức cho việc thiết lập
và kết hợp các ý tưởng và dự án mới. Ông xem công
việc này là rất quan trọng cho sự phát triển dài hạn
của Quỹ và một ví dụ về khái niệm phát triển cộng
đồng là quan trọng thế nào. Ông nói: 'Chúng tôi gọi
điều đó [các dự án phôi thai], và sau một thời gian họ
tốt nghiệp và làm nở và trở thành các dự án hàng
đầu. Có 20-30 dự án xếp hàng. Chúng có thể không phải
tất cả đều thành công, chúng có thể không phải tất
cả đều lôi cuốn được cộng đồng, nhưng điều này
là cách mà các dự án tới Apache'.
Và luận án Tiến sĩ
của ông là gì? Ông viện lý rằng công việc nghiên cứu
là phù hợp cho sự phát triển dài hạn của Apache về
web khi ông đang xem xét các mô hình theo khái niệm mà có
thể mô tả cách thức các thực thể khác nhau (máy trạm,
máy chủ...) giao tiếp và tương tác trên web. Ông đang
được Giáo sư Richard Taylor dẫn dất (Giám đốc Viện
Nghiên cứu Phần mềm), người cũng đã dẫn dắt luận
án tiến sĩ nổi tiếng của Roy Fielding, lần đầu tiên
đã trình bày kiểu kiến trúc Truyền Trạng thái Đại
diện (còn được biết như là REST). Điều này tập trung
vào việc mô tả, theo cách thức chính thống, cách thức
trong đó tài liệu dựa trên web phân phối các công việc
thông qua qui trình của HTTP và URIs.
Tuy nhiên, web ngày nay
có một sự thừa thãi các công nghệ đang nổi lên và sử
dụng những gì có thể được mô tả như là các cách
thức làm việc tính toán nhiều hơn, liên quan tới các
script như AJAX, Web 2.0, mashup dữ liệu và các dịch vụ
web. Những gì Justin đang làm việc là thứ gì đó ông gọi
là CREST - REST tính toán - nó liên quan tới sự tới với
các cách thức mới của việc mô tả một cách chính thức
cách thức làm việc mới này trên web mà sẽ mở rộng
phạm vi được. Theo Justin: 'Dạng của REST được nói tới
này là những gì web đang có. Nó từng có từ 10 năm nay
và điều này sẽ nói những gì web sẽ tới trong 10 năm
tới'.
Trên tất cả, đây
là một sự pha trộn và Justin thừa nhận ông rất bận
rộn. Việc hướng dẫn và phát triển các cộng đồng
phần mềm là một nhiệm vụ mất thời gian và ông lưu
ý: 'Khi Quỹ Apache đã phát triển từ 5 hoặc 6 dự án lên
thành 70 dự án hàng đầu hoặc tương tự, thì việc quản
lý nó mất nhiều nỗ lực'. Một trong những ưu thế của
hệ thống người tài của Apache là có nhiều người tài
đẻ thiết kế và Justin thừa nhận rằng ông gần đây
đã biết ơn vì những chào mời giúp đại diện cho một
số vai trò của ông. 'Nó thực sự là về việc sử dụng
năng lượng', ông nói.
Cuối ngày, dù, những
gì tiếp tục dẫn dắt ông là cách mà ở đó các ý
tưởng về cách thức mà web nên làm việc có thể được
kết hợp, với tốc độ tốt, trong mã nguồn của Apache
và tương tự được làm cho sẵn sàng cho khoảng 60%-70%
các máy chủ web. Để quay lại điều này ông nhớ tới
một câu chuyện khôi hài về bằng tiến sĩ của Roy
Fielding, trong đó ứng viên từng được hỏi làm thế nào
ông biết rằng đồ của ông đã làm việc. Câu trả lời
quay về: 'The World Wide Web'. Các giám khảo đã nghĩ một
lúc và sau đó trả lời: 'OK, chúng tôi chấp nhận điều
đó'. Đối với Justin, việc tiếp tục cố thử vượt
qua những phương pháp mà sẽ điều khiển dạng mở rộng
phạm vi này là một thách thức giữ cho ông tiến lên.
Như ông nói: 'Đây là khía cạnh hay trong sự liên quan của
tôi với nguồn mở'.
If
you are reading this on the Web then there is a better than evens
chance that the pages were delivered to you using an Apache web
server, one of the computer industry’s most famous open source
projects. Since its re-launch from the ashes of earlier web
development work at the National Center for Supercomputer
Applications (NCSA) in Illinois, the Apache HTTP Server Project (to
give it its full name) has regularly clocked up market share figures
in the order of between 60% and 70% and it has long been regarded as
a bridge head for the wider acceptance of open source software within
corporate businesses and public organisations.
This
venerable status means that those associated with Apache code
development and the not-for-profit foundation that now oversees it
are held in high regard. Perhaps none more so than Justin Erenkrantz,
who is the Apache Software Foundation’s president1.
Despite a laid-back, southern Californian personal style, Erenkrantz
is as busy as one of the Foundation’s most hyperventilating
servers, managing to combine his voluntary Foundation duties with
work as a software designer at European online TV start-up Joost, and
undertaking a PhD at the University of California, Irvine (UCI), plus
a stint helping open source development at Google. As he quietly
understates: ‘I have a number of different hats.’
Despite
this frantic pace (he flew to Europe twelve times last year) he still
found time to come to Oxford and help OSS Watch with an educational
mentoring project. While he was here I caught up with him for a
one-to-one interview on Apache and the importance of its open
community development method.
It
all began back in late 2000, when Justin was finishing his
undergraduate studies at the University of California, Irvine, a
college with a strong background in Internet-related software
research. Justin says: ‘I ran across a guy called Roy Fielding. Roy
was completing his PhD at UCI and he had just started working for a
company called e-Built. We kept in touch. I kind of got started
working for different clients and Roy was one of the technical
leaders and said: “Oh we are going to do an Apache module.” And
this was my formal introduction to the Apache web server. It was
[the] tail-end of the Version 2.0 development process—it kind of
worked but didn’t have that coat of polish.’ Justin got involved
in writing patches for the server, working the associated
mailing-lists and interacting with the key Apache developers. This
served as his introduction to the development community and led to a
deeper commitment, and, eventually, to his current position.
The open development method
The
Apache Software Foundation (ASF) is an umbrella organisation that
supports the HTTP Server Project and a growing number of other open
source development projects. It operates through a number of Project
Management Committees (PMC), each of which manages the projects that
are currently in development. Ultimately each PMC reports to the
Board, which carries out general management and oversight and is
answerable to the membership and the wider ASF community as a whole.
The ASF’s structure is designed to be as open as it possibly can
be, with pretty much everything going on in public, and the clue to
understanding why this is so important lies in the history of how the
ASF came about.
The
ASF’s original, flagship product is the web server, a piece of
software that handles the interaction between a client’s browser
and the server that stores the webpages. The Apache code is based on
original work that was undertaken on a Unix-based HTTPd daemon which
was developed by Rob McCool between 1993 and 1994 at the NCSA. This
was during the heady days of the early web, and McCool soon left to
work with the newly founded Netscape. This meant that the web server
was left unsupported until a group of concerned users including Brian
Behlendorf and Roy Fielding began to informally share problems and
fix bugs by e-mail. Justin says: ‘They started trading patches and
stuff. Independently all these guys were trying to maintain this kind
of ball of mud. So they said let’s work together so that we can
make something better than each one of us individually could make on
our own’. Their modifications were known as ‘patches’ and was
punned to ‘apache’ as the group coalesced into a more formal
structure.
So
the motivation for this way of working came, in part, from the
circumstances of the organisation’s inception. Justin recalls: ‘If
you look at how it started you had these eight guys who had the code
dropped in their lap because the guys who were maintaining it had
walked away. They were kind of motivated to not see this happen
again. This was the strength of open source.’
But
it was not only open source, but also an open development
method that helped with the success of the project. Decisions were
and continue to be made in public and it is seen as very important
that projects and their PMCs, who are responsible for their own
actions, should continue this tradition. Justin notes that: ‘Apache
is open development. We are very aggressive on that, making sure it
is consistent across all the Apache projects.’ Although it doesn’t
happen very often Justin admits that: ‘every once in a while one of
the projects starts to do things in private and we are like “Oh no
no no!” And we kind of go in there with the cluebat2
[and say] no, you’re going to do everything in public and we will
not stand for this!’
Open source versus open
development
Justin
believes open development is crucially important for long-term
success and notes that two ‘flavours’ of open source are
emerging. He says: ‘We are seeing a difference between open source
and open development. So what we are seeing is some projects and
entities who are saying here is the source code, it is under Apache
licence or GPL or whatever but the decisions about how the code got
to that state are behind some wall—it is not in public’. This
means that a developer has all the requisite rights to edit, modify
and redistribute the code, but doesn’t have any real understanding
as to how or why the code developed that way in the first place.
Justin says: ‘So you run into some bug and you are saying why is
the code this way? There is no historical context or archiving or
rationale…So, [with the open development method] what we are seeing
is, that in addition to “here is the code” we are seeing “here
are all the decisions being made in public”.’
The
other strength of the open development method is the business-like
way the ASF develops software and the peer review processes that are
in place. As Justin notes, ‘We see here with the establishment of
the ASF, all the work [is] done in the open, everything is
peer-reviewed and this [has] led to very high quality’. This focus
on the work of the developer and the need to perform to the very
highest standards, in public, is reflected in the structure of the
organisation.
The
very first stage for a developer in the Apache development model is
to be a simple ‘User’—making use of the software and offering
feedback, bug reports and ideas. Evolution to the next stage is by
proving your worth and getting more involved in the development
process. Justin describes it as: ‘Proving over time. Being able to
say you can work with the community, you can send in patches, you can
add to the documentation or whatever it is.’ People at this level
are known as ‘developers’ and they can suggest modifications to
the code. They cannot, however, directly edit the core code in the
software repository, a job that is allocated to those with more
experience who are known as ‘committers’. Finally, after having
been elected by others, you can become a ‘member’. This entails
becoming a ‘shareholder’ of the not-for-profit ASF charitable
foundation and acquiring voting rights on new members and the Board
of Directors.
As
a way of providing some idea of the scale of the organisation Justin
says: ‘There are around 260 or so members of the Foundation and
1,700 committers who can contribute directly to some part of the code
base3.
If these guys stick with it then at some point they will become
members.’
Loyalty,
talent and sheer hard work are core Apache traits and the ASF website
was recently retagged with the slogan Meritocracy
in Action. In actual
fact, the term ‘meritocracy’ was originally coined by British
social theorist Michael Young in a famous book, The
Rise of the Meritocracy.
His vision of a society based purely on merit was actually a
dystopian warning. When I point this out, Justin laughs loudly and
says: ‘I believe Roy Fielding, who was one of the first chairs of
Apache, has a background in social science and was keenly aware of
that.’ Justin argues that the term neatly sums up their overall
approach, saying: ‘Actually it is a good representative and [is]
basically saying “If you want to do something and you have
demonstrated to the community that you are trustworthy and you have
this merit then we will try and give you the environment to let you
do the things you want to do”.’
Another
distinction between open source and open development comes to light
when Justin talks about proprietary software. This touches on a hotly
debated bone of contention between the ‘free’ (as exemplified by
Richard Stallman and the Free Software Foundation, or FSF) and ‘open’
software movements, and manifests itself in the different approaches
taken to the development of code.
For
example, the FSF is quite clear that ‘free’ software respects an
individual user’s freedom. A program can only be classified as free
software if its licence provides the user with four essential
freedoms: the freedom to run the program as they wish; the freedom to
study how the program works and adapt it; the freedom to redistribute
copies; the freedom to improve the program and release improvements
to the public. The Apache License Version 2.0, however, makes it
clear that the source code can be modified and then incorporated into
a proprietary product. This means that while Apache-licensed code
qualifies as free software, products built using that code may not be
free software.
Justin
argues that this is simply being pragmatic and reflects what the
developers want, and says: ‘By and large you’ll see that Apache
projects tend to be focused on developers. These developers are
primarily our target audience. One of the things with Richard
Stallman’s view is that he wants the users to be free. Our attitude
within Apache is that we are looking for the developers to have the
freedom. They are saying: “You know what, if you want to make this
into a closed source thing or if you want to make it into an open
source thing then that’s fine”.’ And he adds: ‘We don’t
really care necessarily how or where you use it as long as you abide
by our licence, that you give us credit etc. But
we are not necessarily going to say “hey you have to use it in a
free and open source product”.’
Some
of these differences centre around the role of software patents, an
issue that remains controversial in the software industry. Justin
says that ‘the FSF said “we don’t even talk about patents”.
Apache License Version 2.0 has kind of set the standard in a lot of
ways for how you think about patent protection and that kind of
stuff. Our attitude is patents are going to be here and we have to
deal with them and we have to be pragmatic. It was something that
some of the other licences had done, but I think that as far as a
large open source foundation [is concerned] we were very much on the
cutting edge by saying that we are going to deal with this.’
There
has also been much discussion in the software development community
over the increasing use of Web 2.0-style software services, otherwise
known as Software as a Service (SaaS) or the ‘Service Cloud’. The
Free Software Foundation has responded to concerns over how one goes
about licensing open source code when it is running on a remote
server and providing a service through a browser client, by working
on a new licence, called Affero.
Justin
links this to the different ways in which the ASF and FSF view
distribution: ‘It gets into [the question of] “what is
distribution”. The challenge is: am I giving you the software by
exposing it on a website? And the Affero exception, or however it
gets phrased nowadays … [says that] putting it on a website is
distributing and so you need to give the source.’ This is certainly
how Richard Stallman sees it, but Justin says: ‘That doesn’t
generally tend to be the way most people view distribution. They kind
of realise, “Oh I am running the code on Google Docs but it doesn’t
necessarily mean that I receive the software, I’m just using it.”’
Apache therefore has no plans to work on an Affero-style licence.
Such
pragmatism also manifests itself in Justin’s attitude to the role
of open source software in educational settings like schools and
colleges. In contrast to Stallman, who believes schools and colleges
should resist using proprietary software, Justin says: ‘Schools
should use the software that is appropriate for the task. Our hope,
our wish, is that open source fits those goals but that might not be
the case.’ Justin feels that what is more important is that schools
and colleges expose students to a wide range of different systems,
both closed and open, saying: ‘One of the things about university
is that it is supposed to expose people to different ideas. It
shouldn’t be just pigeon-holed so that it is said, “Oh everyone
here will use Microsoft” and it becomes the default. Expose
students to the alternatives. Think outside the box.’
Finally,
we turn to the future and where next for Apache. Justin outlines the
work of the Apache incubator,
a formal process for setting up and incorporating new ideas and
projects. He views this work as very important to the long-term
development of the Foundation and an example of how important the
concept of a developing community is. He says: ‘We call these
[embryonic projects] podlings, and after a time they graduate and
hatch and become top-level projects. There are 20 or 30 in the
pipeline. They may not all succeed, they may not all attract the
community, but this is how projects come into Apache.’
And
what of his PhD? He argues that the research work is relevant to
Apache’s long-term development of the web as he is looking at
conceptual models that can describe the way different entities
(clients, servers etc.) communicate and interact on the web. He is
being supervised by Professor Richard Taylor(Director of the
Institute for Software Research) who also supervised Roy Fielding’s
well-known PhD, which first presented the Representational State
Transfer (also known as REST) architectural style. This focuses on
describing, in a formal way, the manner in which web-based document
delivery works through the process of HTTP and URIs.
Today’s
web, however, has an abundance of emerging technologies and uses what
might be described as more computational ways of working, involving
scripts such as AJAX, Web 2.0, data mash-ups and Web Services. What
Justin is working on is something he calls CREST – Computational
REST – which involves coming up with new ways of formally
describing this new way of working on the web that will scale.
According to Justin: ‘REST kind of said this is what the web is.
It’s been that way for 10 years and this [mine] will say what the
web is going to be in another 10 years.’
All
in all, it’s a heady mix and Justin admits he’s very busy. The
mentoring and development of software communities is a time-consuming
task and he notes: ‘As Apache [Foundation] has grown from five or
six projects to 70 top-level projects or so, running [it] takes a lot
more [effort].’ One of the advantages of Apache’s meritocractic
system is that there are plenty of talented people to draw on and
Justin admits that he has recently been grateful for offers of help
to delegate some of his role. ‘It is really about harnessing the
energy’, he says.
At
the end of the day, though, what continues to drive him is the way in
which ideas about the way the web should work can be incorporated, at
great speed, into the Apache code and so be made available to perhaps
60% or 70% of the servers on the web. To back this up he recounts an
anecdote about Roy Fielding’s PhD viva, in which the candidate was
asked how he knew that his stuff worked. The answer came back: ‘The
World Wide Web.’ The examiners thought for a moment and then
replied: ‘OK, we’ll accept that.’ For Justin, continuing to try
to come up with methods that will handle this kind of scaling is the
nub of the challenge that keeps him going. As he says: ‘This is the
nice aspect of my involvement
with open source.’
Dịch: Lê Trung Nghĩa