Chủ Nhật, 10 tháng 3, 2013

Mô hình phát triển nguồn cộng đồng

The community source development model
By Gabriel Hanganu, Published: 22 August 2008, Reviewed: 12 March 2012
Bài được đưa lên Internet ngày: 12/03/2012
Lời người dịch: Có khả năng không chỉ có các mô hình phát triển nguồn đóng và nguồn mở, mà còn có cả nguồn cộng đồng. Nếu theo thước đo của Eric Raymond với mô hình phát triển nguồn đóng như nhà thờ lớn, nguồn mở như cái chợ, thì nguồn cộng đồng là cái quán trọ nằm giữa nhà thờ lớn và cái chợ. Nó phản ánh nhận thức chưa đầy đủ và/hoặc những lý do bất khả kháng, thường xảy ra trong những giai đoạn đầu của một dự án 'nguồn mở'. Thường thì ở những giai đoạn sau, các dự án nguồn cộng đồng cũng sẽ phải tìm tới mô hình phát triển chính thống của nguồn mở - cái chợ. Mọi người còn cần phải cảnh giác với cái gọi là 'nguồn cộng đồng đóng', một dạng trá hình của 3 loại trên mà đặc trưng của nó rất dễ nhận ra - giấy phép cho loại này “không tương thích với các yêu cầu của Định nghĩa Nguồn Mở (như được OSI chỉ đinh), mà trong số những điều khác, nó yêu cầu sự tự do truy cập tới mã nguồn và phân phối phần mềm một cách tự do”.
Theo truyền thống, phần mềm được sản xuất và phân phối tuân theo hoặc các mô hình phát triển nguồn đóng hoặc nguồn mở. Nguồn cộng đồng là một mô hình phát triển có ý định tìm một cách thức nửa vời ở giữa 2 con đường trên bằng việc mượn các yếu tố từ cả 2. Nguồn cộng đồng và nguồn mở được so sánh chi tiết hơn trong lưu ý ngắn gọn của OSS Watch về Nguồn cộng đồng vs nguồn mở (bản dịch tiếng Việt). Tài liệu này thảo luận các tính năng chính của phát triển nguồn cộng đồng, và gợi ý rằng, trong khi là hữu dụng cho việc điều phối những đóng góp xuyên khắp các nhóm cơ quan, xu hướng của việc ưu tiên mã hơn cộng đồng có thể có một tác động lên tính bền vững tiềm tàng của mô hình này. Cùng lúc, việc giải quyết những căng thẳng vốn có của nguồn cộng đồng có thể là bước rất hữu dụng hướng tới một sự hiểu biết sâu hơn về nguồn mở và về một sự triển khai chín muồi hơn của phát triển mở khắp các cơ quan giáo dục.
Phát triển và mua sắm lai
Trong các dự án nguồn cộng đồng, một số đối tác giáo dục đồng ý đóng góp tài chính, hoặc với thời gian của các nhân viên, cho sự phát triển của phần mềm. Trong khi sự truy cập tới mã lúc ban đầu bị hạn chế đối với các thành viên của nhóm, và thời gian của các nhân viên được đóng góp như là công việc được trả tiền, thì việc mở mã ra sau đó cho phép sự truy cập tự do công khai và những đóng góp cá nhân của những người tình nguyện nằm phân tán khắp toàn cầu. Vì lý do này, nguồn cộng đồng được nói sẽ là một mô hình lai, hoặc, áp dụng phương pháp luận kinh điển của Eric Raymond, 'quán trọ giữa nhà thờ và cái chợ'. Mô hình này kết hợp các thực tiễn điều hành mở và đóng, pha trộn các yếu tố của phát triển nguồn đóng, theo nghĩa kinh điển của một tổ chức sử dụng các nhân viên và tài nguyên để làm việc trong một dự án, với tính mở và bản chất tự nhiên không bắt buộc của các dự án nguồn mở truyền thống.
Ban đầu, những đầu tư về thời gian, thiết kế và điều hành dự án của các lập trình viên được các trường cao đẳng, đại học và các công ty thương mại cung cấp hơn là từ các lập trình viên độc lập. Những đóng góp đó được thực hiện như là pha đầu tiên của một dự án, sau đó công việc bổ sung được đóng góp trên cơ sở liên tục, tự nguyện từ các cá nhân và cơ quan với một sự quan tâm liên tục trong dự án. Theo cách này, còn tranh cãi, dự án đảm bảo sự hỗ trợ đáng kể cần thiết trogn các giai đoạn sống còn sớm ban đầu. Đổi lại cho việc cung cấp thời gian và các nguồn nhân lực được đồng ý, các đối tác trong nhóm được chào sự truy cập hoàn toàn tới mã, và vì thế một cơ hội sớm để gây ảnh hưởng tới sự phát triển của phần mềm hướng tới các yêu cầu đặc thù của chúng.
Những người đề xướng nguồn cộng đồng nói rằng nó đưa ra một con đường lai về mua sắm phần mềm. Mô hình thường được thừa nhận như một cầu nối giữa thế giới các doanh nghiệp hướng doanh thu và các cơ quan Giáo dục Trung học hướng thương mại. Các giám đốc CNTT trong khu vực giáo dục thường cần phải quyết định liệu một giải pháp phần mềm của cơ quan sẽ được mua hay được xây dựng trong nội bộ. Nguồn cộng đồng được cho là đánh vào đúng sự cân bằng giữa việc mua hoặc xây dựng phần mềm sẽ được cơ quan triển khai và duy trì. Một cơ quan đóng góp cho sự phát triển của mã, và một cơ quan có thể áp dụng và sử dụng nó cho các nhu cầu của một cơ quan, thực sự không có việc làm chủ phần mềm. Vì thế mô hình nguồn cộng đồng được nói sẽ cung cấp cái gọi là con đường 'vay mượn', nó trao sự tốt nhất của cả các việc mua và xây phần mềm.
Cấp vốn đặc thù văn hóa giáo dục
Mô hình nguồn cộng đồng đã được khởi xướng, và đã chứng minh là thành công, trong các cơ quan Giáo dục Đại học tại Mỹ. Khả năng áp dụng của nó cho các ngữ cảnh văn hóa khác còn chưa được thể hiện, biết rằng sự khác nhau về các môi trường kinh tế và giáo dục toàn cầu. Khía cạnh này được bản thân những người bảo vệ nguồn cộng đồng tại Mỹ thừa nhận. Brad Wheeler của Đại học Indiana, ví dụ, chỉ ra rằng thị trường cấp vốn của Giáo dục Đại học, so với nhiều nguồn tài chính phân tán khác, thường thấy 'hỗn loạn' đối với người châu Âu, những người đã phát triển một khả năng điều phối tập trung các đầu tư cho giáo dục. Mô hình nguồn cộng đồng có thể thành công hơn tại Mỹ chính xác vì bản chất tự nhiên phân mảnh cao của cấp vốn hàn lâm của Mỹ, nó đòi hỏi một cơ chế phù hợp cho việc điều phối đầu tư.
Những triển khai các dự án tương tự ở châu Âu và châu Phi hiện đang diễn ra. Các ví dụ bao gồm công việc phát triển trong Sakai tại Đại học Cambridge tại Anh, và Kuali tại Đại học Strathmore ở Kenya. Nhận thực được sự khác biệt xuyên các nền văn hóa của các thị trường giáo dục là một yếu tố cơ bản trong việc lên kế hoạch cho tính bền vững về kinh tế và văn hóa của dự án như vậy. Sự triển khai thành công của chúng ngoài nước Mỹ phần lớn phụ thuộc vào sự tinh chỉnh các cơ chế cấp vốn giáo dục có liên quan tới mô hình nguồn cộng đồng đối với các đặc thù về kinh tế và văn hóa của các nhóm giáo dục tương ứng.
Quản trị xuyên các cơ quan
Một số dự án lớn nhất mà bắt đầu như nguồn cộng đồng dần dần chuyển sang nguồn mở trong các giai đoạn sau của chúng. Ví dụ, dự án Eclipse đã chuyển từ nguồn đóng sang cộng đồng, sau đó dần trở thành một dự án nguồn mở. Sakai đã bắt đầu cuộc sống như một nhóm nguồn cộng đồng, sau đó đã chuyển sang phát triển nguồn mở. Dự án Kuali dường như đã lấy vào một số bài học học được trong khi phát triển Sakai, và dù nó đã bắt đầu như một sáng kiến nguồn cộng đồng, thì nó rõ ràng đã thể hiện ý định chuyển sang mô hình nguồn mở trên con đường của nó tới tính bền vững.
Trong tất cả các ví cụ, nguồn cộng đồng trông giống hơn một pha quá độ trong các qui trình cộng tác xuyên các cơ quan, hơn là một mô hình phát triển phần mềm của riêng nó. Sự quan sát này gợi ý rằng mô hình nguồn cộng đồng có thể cần được đánh giá đối với các tiêu chí khác hơn là các tiêu chí thường được sử dụng khi đánh giá sự phát triển của nguồn mở. Vì các dự án nguồn cộng đồng có xu hướng tập trung nhiều hơn vào sự cộng tác giữa các cơ quan hơn là giữa các cá nhân, nên các tiêu chí phù hợp cho đánh giá cần phải đánh giá tính hiệu quả của chúng trong sự phối hợp với các chính sách kinh tế và hành chính, hơn là so với việc xây dựng các cộng đồng xung quanh sự phát triển của mã được chia sẻ.
Một cái nhìn sát hơn vào sự biến đổi từ các giai đoạn đầu tới sau này của các dự án nguồn cộng đồng như Sakai đưa ra một sự hiểu thấu hữu dụng trong mô hình phát triển của chúng. Việc cấp vốn sớm cho ứng dụng đối với Quỹ Mellon, nó ràng buộc 4 đối tác cơ quan (Michigan, Indiana, MIT và Stanford) cùng nhau, chỉ ra rằng sự tập trung ban đầu của dự án nguồn cộng đồng này từng không phải về cộng đồng, bất chấp tên của mô hình. Biên bản ghi nhớ Ý định được các chủ tịch của 4 đại học ký về cơ bản đã chỉ ra những khía cạnh kinh tế, pháp lý và hành chính có liên quan tới sự cộng tác của các cơ quan. Theo tài liệu này, a) mỗi cơ quan có thể cung cấp 5 lập trình viên cho sự kiểm soát của Ban quản trị Dự án Sakai; b) dự án đã được trao sử dụng phần mềm đặc thù (và có liên quan tới sở hữu trí tuệ) mà từng được phát triển trong nội bộ tại Michigan và Stanford; c) sự thương mại hóa; d) các cơ quan có thể triển khai phần mềm Sakai dựa vào sự hoàn chỉnh của dự án. Vì thế, trọng tâm ít hơn vào việc xây dựng một cộng đồng xung quanh mã phần mềm, và nhiều hơn vào việc tạo ra một khung quản trị đã cho phép các phiên bản phần mềm đó được sản xuất theo thời gian và phù hợp với một danh sách các ưu tiên được thỏa thuận.
Phản ánh lên sự phát triển mở
Việc ưu tiên mã hơn cộng đồng là phổ biến trong các giai đoạn sớm của phát triển phần mềm. Tuy nhiên, thái độ này để lộ ra sự hiểu biết hạn chế của mối quan hệ giữa 2 yếu tố chủ chốt của phát triển nguồn mở và vai trò của nó trong tính bền vững dài hạn của dự án. Một dự án nguồn cộng đồng, nơi mà sự truy cập tới mã ban đầu bị hạn chế cho một nhóm nhỏ, được chỉ định, có thể một cách còn gây tranh cãi làm giảm đi tổng thể quản lý, dù sự giảm này là tối thiểu khi so sánh với một dự án nguồn mở được quản lý tốt. Tuy nhiên, sự truy cập có hạn chế cũng sẽ giới hạn phạm vi của những đóng góp và sự tham gia vào dự án. Điều này là đặc biệt quan trọng khi chúng ta xem xét rằng những người sử dụng của ngày hôm nay sẽ là những người lập trình của ngày mai. Hiểu được mối quan hệ sâu hơn giữa việc phát triển mã và việc xây dựng cộng đồng là một qui trình phức tạp, thậm chí một số dự án mà tự công bố là nguồn mở không được thừa nhận hoàn toàn.
Trong việc mô tả các giai đoạn sớm của dự án Sakai, Brad Wheeler nhớ lại thời kỳ khi các lập trình viên được chỉ định từ các cơ quan đối tác đã vật lộn để tìm ra cách thức có hiệu quả của việc cộng tác với nhau. Mấu chốt cho qui trình này là việc tìm được sự cân bằng đúng giữa các ưu tiên của các cơ quan chủ và các ưu tiên của cộng đồng các lập trình viên được tạo ra sớm. Giai đoạn đó là sống còn cho dự án, vì nó là ở giai đoạn mà họ đã bắt đầu thừa nhận việc xây dựng cộng đồng như là hữu cơ cho qui trình phát triển mã. Các lập trình viên đã làm việc về mã của phần mềm như những chuyên gia được các cơ quan ủy quyền, nhưng cùng lúc họ đã phát hiện ra rằng họ cũng là những thành viên cộng đồng theo quyền của riêng họ, những người đã có khả năng bỏ qua các yêu cầu của các cơ quan nếu cần.
Hệ quả là, các lập trình viên đã nhận thức được rằng chất lượng của mã phụ thuộc vào một số mức độ về chất lượng của cộng đồng từng đang được hình thành. Bước này trong việc nhận thức được vai trò của cộng đồng là sống còn để chuyển sang một mô hình nguồn mở, như được chỉ ra bằng sự nổi lên sau đó của các qui trình nguồn mở điển hình - như chế độ người tài lãnh đạo, nó dần dần trở nên hiệu quả trong việc gây ảnh hưởng tới việc ra quyết định trong cộng đồng. Từ viễn cảnh này, tính năng quan trọng nhất của mô hình nguồn cộng đồng là nó có thể đưa ra một công cụ phản ảnh xuất sắc cho việc đánh giá lại sự phát triển của nguồn ở - trong các mức độ cá nhân, xã hội và văn hóa, cũng như kinh tế, pháp lý và hành chính.
Nguồn cộng đồng đóng?
Một ý nghĩa có thể lựa chọn của khái niệm nguồn cộng đồng tồn tại, bổ sung thêm cho khái niệm được thảo luận cho tới nay. Một số công ty, như Microsoft, sử dụng khái niệm nguồn cộng đồng để tham chiếu tới việc cấp phép của mã nguồn cho các thành viên của một cộng đồng đóng, những người sẽ có khả năng truy cập nó phải đưa vào một thỏa thuận giấy phép cá nhân với người chủ của mã. Mã được sửa đổi có thể được chia sẻ trong cộng đồng, nhưng không thể được làm cho sẵn sàng đối với bên ngoài các bức tường của nó. Trong hầu hết các tình huống, việc cấp phép cho tài liệu là yếu tố chính gây ảnh hưởng tới các quyền của cơ chế thành viên và các thực tiễn phát triển trong các cộng đồng đó. Vấn đề chính với sự hiểu biết nguồn cộng đồng này là các giấy phép được đề xuất trong mọi trường hợp là không tương thích với các yêu cầu của Định nghĩa Nguồn Mở (như được OSI chỉ đinh), mà trong số những điều khác, nó yêu cầu sự tự do truy cập tới mã nguồn và phân phối phần mềm một cách tự do.
Kết luận
Giá trị của mô hình nguồn cộng đồng trở nên rõ ràng chỉ bằng việc nhận thức được rằng các tiêu chí cho việc đánh giá tính hiệu quả của nó là khác với các tiêu chí được sử dụng để đánh giá sự phát triển của nguồn mở. Nguồn cộng đồng, như được khai thác trong tài liệu này, về cơ bản có liên quan tới một giai đoạn ban đầu của sự cộng tác đóng theo hợp đồng giữa các cơ quan mà đóng góp các tài nguyên cùng nhau để phát triển mã theo một tập hợp những yêu cầu được xác định từ trước. Ngược lại với điều này (bản dịch tiếng Việt), trọng tâm trong nguồn mở là vào các cá nhân được kết nối lỏng lẻo, những người có thể có hoặc không đại diện cho một cơ quan, nhưng là tất cả những người chia sẻ nỗ lực phát triển mã là mở từ ngày đầu tiên, song song với sự trải nghiệm của việc xây dựng một cộng đồng. Nhìn từ viễn cảnh này, nguồn cộng đồng là một chất xúc tác có hiệu quả cho việc phản ánh lên bản chất tự nhiên sâu hơn của nguồn mở, và vì thế là một bước hữu dụng hướng tới một sự triển khai các giải pháp nguồn mở (bản dịch tiếng Việt) có đầy đủ thông tin hơn xuyên khắp các cơ quan giáo dục.
Traditionally, software is produced and distributed following either closed source or open source development models. Community source is a development model that attempts to find a middle way between the two paths by borrowing elements from both. Community source and open source are compared in more detail in the Community source vs open source OSS Watch briefing note. This document discusses the main features of community source development, and suggests that, while useful for coordinating contributions across institutional consortia, the tendency of favouring code over community could have an impact on the sustainability potential of this model. At the same time, addressing the inherent tensions of community source can be a very useful step towards a deeper understanding of open source and of a more mature implementation of open development across educational institutions.
Hybrid development and procurement
In community source projects, a number of educational partners agree to contribute financially, or with staff time, to the development of the software. While access to the code is initially restricted to the members of the consortium, and staff time is contributed as paid work, the subsequent opening of the code allows free public access and individual contributions by globally distributed volunteers. For this reason, community source is claimed to be a hybrid model, or, to adapt Eric Raymond’s classic terminology, ‘the pub between the cathedral and the bazaar’. This model combines closed and open governance practices, blending elements of closed source development, in the classic sense of an organisation employing staff and resources to work on a project, with the openness and non-compulsory nature of traditional open source projects.
Initially, the investments of developers’ time, design and project governance are provided by colleges, universities and commercial firms rather than by independent developers. These contributions are made as the first phase of a project, then additional work is contributed on an ongoing, voluntary basis by individuals and institutions with a continuing interest in the project. In this way, it is argued, the project secures the substantial support necessary during its critical early stages. In exchange for providing the agreed staff time and resources, the consortium partners are offered exclusive access to the code, and thus an early opportunity to influence the development of the software towards their specific requirements.
Proponents of community source claim that it provides a hybrid path in terms of software procurement. The model is often perceived as a bridge between the revenue-driven corporate world and the less commercially-oriented Higher Education institutions. IT directors in the education sector usually need to decide whether an institutional software solution will be bought or built internally. Community source allegedly strikes the right balance between buying or building software to be deployed and maintained institutionally. One contributes to the development of the code, and one can adapt and use it for one’s needs, without actually owning the software. Therefore the community source model is claimed to provide a so-called ‘borrow’ path, which gives the best of both buying and building software.
Culturally specific educational funding
The community source model was initiated, and has proved to be successful, in Higher Education institutions in the US. Its applicability to other cultural contexts is yet to be demonstrated, given the global variation of economic and educational environments. This aspect is acknowledged by the US-based advocates of community source themselves. Brad Wheeler of Indiana University, for instance, points out that the US Higher Education funding market, comprised of many disparate financial sources, often looks ‘chaotic’ to the Europeans, who have developed an ability to centrally coordinate educational investments. The community source model may be more successful in the US precisely because of the highly fragmented nature of the US academic funding, which requires a proper mechanism for coordinating investment.
Implementations of similar projects in Europe and Africa are currently under way. Examples include development work on Sakai at University of Cambridge in the UK, and Kuali at Strathmore University in Kenya. Acknowledging the cross-cultural variation of educational markets is an essential element in planning the economic and cultural sustainability of such projects. Their successful deployment outside the US largely depends on the adjustment of educational funding mechanisms associated with the community source model to the economic and cultural particularities of the respective educational consortia.
Cross-institutional administration
Some of the largest projects that start as community source gradually move towards open source in their later stages. For instance, the Eclipse project shifted from closed to community source, then gradually became an open source project. Sakai started life as a community source consortium, then moved towards open source development. The Kuali project appears to have taken on board some of the lessons learnt while developing Sakai, and although it started as a community source initiative, it has clearly expressed the intention of moving to an open source model on its path to sustainability.
In all these examples, community source looks more like a transitional phase in large cross-institutional collaboration processes, rather than a software development model on its own. This observation suggests that the community source model might need to be assessed against other criteria than those normally employed when evaluating open source development. Because community source projects tend to focus more on collaboration between institutions than between individuals, the relevant criteria for evaluation need to assess their effectiveness in coordinating economic and administrative policies, rather than building communities around the development of shared code.
A closer look at the transition from initial to later stages of community source projects like Sakai provides a useful insight into their development model. The early funding application to the Mellon Foundation, which bound the four institutional partners (Michigan, Indiana, MIT and Stanford) together, indicates that the initial focus of this community source project was not, despite the model’s name, on community. The Memorandum of Intent signed by the four university presidents essentially specified economic, legal and administrative aspects related to the institutional collaboration. According to this document, a) each institution would provide five developers to the control of the Sakai Project Board; b) the project was granted use of specific software (and associated intellectual property) that had been developed internally at Michigan and Stanford; c) the project products would be distributed under a BSD-style licence that did not restrict rights to commercialization; d) the institutions would implement the Sakai software upon the completion of the project. The focus, therefore, was less on building a community around the software code, and more on creating an administrative framework that allowed the software versions to be produced on time and according to an agreed list of priorities.
Reflecting on open development
Favouring code over community is common in the early stages of software development. However, this attitude reveals a rather limited understanding of the relationship between these two key elements of open source development and its role in the long-term sustainability of a project. A community source project, where access to the code is initially restricted to a small, named group, can arguably have reduced management overheads, although this reduction is minimal when compared to a well-run open source project. However, restricted access will also limit the scope of contributions and participation in the project. This is particularly important when we consider that today’s users are tomorrow’s developers. Understanding the deeper relationship between developing the code and building the community is a complex process, which even some projects that declare themselves open source fail to entirely acknowledge.
In describing the early stages of the Sakai project, Brad Wheeler recounts the period when the appointed developers from the partner institutions struggled to find an efficient way of collaborating with each other. Key to this process was finding the right balance between the priorities of their home institutions and the priorities of the newly created community of developers. That period was crucial for the project, because it was at that stage that they began to perceive community building as integral to the process of developing the code. Developers worked on the software code as specialists commissioned by their institutions, but at the same time they discovered that they were also community members in their own right, who were able to bypass institutional requirements if necessary.
Consequently, the developers realised that the quality of the code depended to some extent on the quality of the community that was being formed. This step in acknowledging the role of community was crucial in moving towards an open source model, as shown by the subsequent emergence of typical open source processes - such as the meritocracy that gradually became effective in influencing decision making within the community. From this perspective, the most important feature of the community source model is that it can provide an excellent reflection tool for reassessing open source development - on the personal, social and cultural, as well as the economic, legal and administrative, levels.
Closed community source?
An alternative meaning of the term community source exists, in addition to the one discussed so far. Some companies, such as Microsoft, use the term community source to refer to the licensing of the source code to members of a closed community, who in order to be able to access it must enter an individual licence agreement with the code owner. The modified code can be shared within the community, but cannot be made available outside its walls. In most situations, the licensing document is the key factor influencing membership rights and development practices within these communities. The main problem with this understanding of community source is that the licences proposed are in all cases incompatible with the requirements of the Open Source Definition (as specified by the OSI), which amongst other things requires free access to the source code and free redistribution of software.
Conclusion
The value of the community source model becomes apparent only by acknowledging that the criteria for evaluating its effectiveness are different from those used to assess traditional open source development. Community source, as explored in this document, essentially involves an initial period of closed contractual collaboration between institutions that pool together resources to develop code according to a set of predetermined requirements. In contrast to this, the focus in open source is on loosely connected individuals, who may or may not represent an institution, but who all share the effort of developing code that is open from day one, in parallel with the experience of building a community. Seen from this perspective, community source is an effective catalyst for reflecting upon the deeper nature of open source, and therefore a useful step towards a more informed implementation of open source solutions across educational institutions.
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.