GNU:
– Dự án chất lượng cao, phiên bản thống nhất và “sạch”
– Một gói chương trình trước khi được tích hợp vào phiên bản chính thức phải được kiểm thử và chỉnh sửa kỹ
– Mẫu hình tiến hóa của GNU là tập trung theo một luồng trục chính
Linux:
– Cho phép nhiều cách cài đặt khác nhau cho cùng 1 chức năng
– Có thể có nhiều nhánh tiến hóa khác nhau từ cùng một chương trình
– Mẫu hình tiến hóa của Linux là mẫu hình phân rã (“trăm hoa đua nở”)
II.2.3.1. Tiến hóa của hệ thống (tiếp)
PostgreSQL:
– Có thể coi là giải pháp hỗn hợp
– Mỗi khi có yêu cầu mới, người phát triển tích cực tự tạo đội để triển khai đáp ứng yêu cầu đó
– Tuy nhiên những cài đặt trên (được nhiều nhóm phát triển cho cùng 1 chức năng) chỉ tồn tại trong một khoảng thời gian nhất
định, sau đó sẽ được các thành viên cốt cán xem xét tích hợp vào phiên bản lõi
– Mẫu hình tiến hóa của PostgreSQL là mẫu hình hội tụ từ nhiều nhánh vào một cành chung
Jun
– Có ít người tham gia phát triển, tiến hóa theo mẫu hình tuyến tính đơn (cây có 1 nhánh) với các phiên bản kế tiếp nhau
– Trước khi công bố ra cộng đồng, các thành viên của Jun đã kiểm thử rất nhiều phiên bản nội bộ để có được một phiên bản tốt cho
II.2.3.2. Tiến hóa của cộng đồng PMNM
Sự tiến hóa của cộng đồng PMNM liên quan đến sự thay đổi vai trò của các thành viên
Không giống dự án phần mềm thương mại, ở dự án PMNM thành viên có thể thay đổi vai trò của mình theo khả năng và sở thích, mối quan tâm và thời gian
Con đường từ một thành viên mới đến thành viên cốt cán:
– Bị cuốn hút vào cộng đồng PMNM vì PM ấy có thể giải quyết được những vấn đề anh ta quan tâm
– Tính sâu sắc, kỹ năng cao và độc đáo của 1 hệ PMNM là động lực chính thu hút các thành viên mới học hỏi nhiều hơn → đọc mã nguồn (chuyển thành người đọc)
– Hiểu mã nguồn → gỡ lỗi do mình tìm ra hoặc người khác thông báo (người gỡ lỗi)
– Muốn có thêm 1 số chức năng mới để hệ thống mạnh hơn, đáp ứng nhu cầu tốt hơn → cải tiến mã nguồn của chương trình (người phát triển ngoại vi)