Thứ Tư, 27 tháng 2, 2013

Người tài lãnh đạo, kẻ phá bĩnh và phương pháp phát triển mở: cuộc phỏng vấn với Justin Erenkrantz

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”.’
Pragmatic open source
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.
Open source in education
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.’
The future
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

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.