TỪ NHỮNG TRANH LUẬN THỰC TẾ
Khibài viết về “Pháttriển phần mềm tự do nguồn mở - Ngược lên dòng trênđể về đích sớm”được đưa lên nhóm những người yêu thích phần mềmnguồn mở “VietLUG” trên Fecebook, có nhiều ý kiến rấtkhác nhau đã được đưa ra, trong đó có một ý nổi bật,rằng liệu có khả năng hay không một công ty phần mềmđược xem là phát triển phần mềm tự do nguồn mở(PMTDNM) nhưng chưa từng có việc đóng góp ngược lêndòng trên về bất kỳ dự án PMTDNM gốc nào. Nói rộngra, việc đánh giá, phân loại các công ty trong thế giớiPMTDNM là như thế nào?. Bài viết này không những có thểcho chúng ta câu trả lời cho câu hỏi đó, mà còn chỉcho chúng ta cách để đặt ra các chiến lược phù hợpđể dần từng bước tiến bộ và được thừa nhậntrong thế giới PMTDNM theo các mức độ đóng góp cho cácdự án và cộng đồng PMTDNM.
GIỚI THIỆU
Kểtừ đầu của nền công nghiệp phần mềm, gần như mọicông ty phần mềm đều đã tuân theo cùng một mô hìnhkinh doanh y hệt: mã nguồn đã được những nhân viên củariêng họ phát triển hoặc cấp phép từ một bên thứ 3,sở hữu trí tuệ đã được giữ sát sao, và phần mềmđã được phân phối ở định dạng nhị phân cho cáckhách hàng. Tuy nhiên, tính sẵn sàng của phần mềm tựdo nguồn mở (PMTDNM) mức doanh nghiệp đang làm thay đổicách mà những tổ chức phát triển và phân phối các sảnphẩm. Với sự truycập mở tới mã nguồn và cáccộng đồng phát triển một cách minh bạch, thì cácnhà cung cấp phần mềm có thể giảm được các chi phíphát triển trong khi vẫn giữ được những người thamgia tích cực trong qui trình phát triển đó. Thêm nữa,những người sử dụng đầu cuối của phần mềm cũngcó thể tích cực trong quá trình phát triển bằng việcđóng góp trực tiếp cho các dự án ngượclên dòng trên, chứ không chỉ là những người nhậnthụ động những gì mà nhà cung cấp phần mềm phân phốicho họ. Mô hình phát triển này cho phép các tổ chứcnghĩ khác đi về cách mà họ mua sắm, thi hành, kiểm thử,triển khai và duy trì phần mềm.
Mộtví dụ điển hình, không phải ngẫu nhiên mà dự án nhânLinux hiện nay lại có sự đóng góp mã nguồn của hơn1.300 lập trình viên từ 266 công ty và tổ chức trên toànthế giới(nhân Linux, phiên bản v3.2), cả các công ty phần mềm vàphần cứng, các công ty sản xuất thiết bị di động vàdân dụng cá nhân, các công ty sản xuất chip... nổi tiếnghàng đầu thế giới, như RedHat, Novell, Intel, IBM, Consultant, Oracle, Academia, Nokia,Fujitsu,TexasInstruments, Broadcom, Linux Foundation, Google, SGI, AMD, Parallels,Freescale, Cisco, HP, Renesas Technology, MontaVista, AtherosCommunications, Wolfson Microelectronics, Marvell, NetApp,Linutronix, Samsung … thậm chí là cảMicrosoft.
Chắcchắn, những công ty đóng góp mã nguồn cho nhân Linux đềuđã và đang có những chiến lược nguồn mở của riêngmình khi thực hiện việc đóng góp mã nguồn đó. Thậmchí, ở những bước khởi đầu, các công ty đó có lẽcũng chỉ là những người tiêu dùng của phần mềm nguồnmở nói chung, nhân Linux nói riêng. Tài liệu này đưa ra 3chiến lược cơ bản cho các tổ chức sử dụng và tíchhợp phần mềm tự do nguồn mở (PMTDNM) vào trong các sảnphẩm của họ: người tiêu dùng, người đóng góp vàngười lãnh đạo.
CÁC CHIẾN LƯỢC CỐT LÕI:NGƯỜI TIÊU DÙNG, NGƯỜI ĐÓNG GÓP VÀ NGƯỜI LÃNH ĐẠO
Có3 chiến lược cốt lõi để cân nhắc khi quyết định vềchiến lược nguồn mở của bạn:
Người tiêu dùng nguồn mở là điểm khởi đầu phổ biến nhất, nơi mà một tổ chức sử dụng một thành phần nguồn mở ở nơi mà mã nguồn được duy trì riêng, không phân biệt. Trong nhiều trường hợp, họ cũng có thể là những người đóng góp đặc biệt ở một phạm vi nhỏ, đóng góp những sửa lỗi hoặc những cải tiến các tính năng nhỏ hơn đối với PMTDNM mà họ đang tích hợp vào trong sản phẩm của họ.
Người đóng góp nguồn mở xây dựng trên mô hình của người tiêu dùng, nơi mà một tổ chức thích nghi một chính sách can dự có lựa chọn với các dự án chiến lược của nguồn mở. Bằng việc đóng góp những cải tiến, họ đang cải thiện khả năng của họ để phân phối một sản phẩm chất lượng trong khi giảm được các chi phí phát triển.
Người lãnh đạo dự án nguồn mở xây dựng trên mô hình của người đóng góp, nơi mà một công ty giữ vai trò lãnh đạo bên trong một dự án. Kịch bản này là có khả năng khi công ty đó đã trở nên được thiết lập tốt như một người đóng góp mạnh mẽ bên trong cộng đồng của dự án, và sẽ được cân nhắc khi có một lý do chiến lược để nhận lấy vai trò lãnh đạo bên trong một dự án.
Điềuquan trọng để lưu ý rằng không chiến lược duy nhấtnào áp dụng được cho tất cả các công ty, và mộtchiến lược nguồn mở của tổ chức nên được tùychỉnh cho các nhu cầu, các tài nguyên và vị thế mongmuốn đặc thù của tổ chức của bạn. Trong hầu hếtcác trường hợp, một chiến lược tối ưu về nguồn mởsẽ là một sự pha trộn của cả việc tiêu dùng, đónggóp và lãnh đạo, phụ thuộc vào PMTDNM có trong tay vàtầm quan trọng chiến lược của nó đối với sản phẩmcủa bạn.
1. Người tiêu dùng nguồn mở
Quyếtđịnh sử dụng PMTDNM thường được dẫn dắt bằng mộtnhu cầu về các tính năng mới, chức năng được mởrộng, và để giảm chi phí phát triển trong nội bộ bằngviệc tạo đòn bẩy cho nỗ lực thiết kế kỹ thuật vàđổi mới sáng tạo một cách cộng tác của cộng đồngnguồn mở. Được trình bày một cách lặp đi lặp lạirằng việc sử dụng PMTDNM làm gia tăng dải thông đểphân biệt của tổ chức, trong khi giảm được tổng thểthời gian và chi phí đưa ra các sản phẩm thương mại.
Hơnnữa, những lợi ích kinh doanh hữu hình dài hạn có thểcó nhiều tác dụng hơn một cách đáng kể đối với chiphí và những nỗ lực ngắn hạn từng chút một củaviệc quản lý một hồ sơ phát triển pha trộn giữanguồn mở và đóng.
Khithiết lập một chiến lược phần mềm mà khuyến khíchsử dụng PMTDNM trong các sản phẩm thương mại, thì sẽcó một số hành động có thể được thực hiện đểđảm bảo sự áp dụng thành công PMTDNM:
Giao tiếp chiến lược cho việc sử dụng PMTDNM.
Giáo dục các nhân viên về các bổn phận của giấy phép và sự tuân thủ nguồn mở, và mô hình phát triển nguồn mở.
Thiết lập các tiêu chí rõ ràng cho việc xác định PMTDNM nào là ứng viên để đưa vào trong các sản phẩm của bạn. Những ví dụ bao gồm tính sẵn sàng của các tính năng mới, độ chín của mã nguồn của dự án, kích cỡ và cấu thành của cộng đồng phát triển của dự án, và những yếu tố khác đo đếm được tình trạng của mã nguồn và những người duy trì nó.
Thiết lập một chương trình tuân thủ nguồn mở để đảm bảo bạn có các qui trình tại chỗ đáp ứng được các bổn phận các giấy phép của PMTDNM mà bạn đang sử dụng trong các sản phẩm.
Khuyến khích những lập trình viên của bạn xác định và áp dụng các công cụ phát triển nguồn mở có thể cho phép sự cộng tác trong nội bộ tốt hơn, giao tiếp truyền thông giữa các đội được gia tăng và minh bạch, và các chu kỳ phát triển nhanh hơn.
Khuyến khích các nhân viên của bạn đăng ký vào các danh sách thư nguồn mở, đăng ký vào các tạp chí nguồn mở, dõi theo các blog, và tham gia trong các diễn đàn thảo luận.
Khuyến khích và cấp tiền cho các nhân viên tham dự các hội nghị nguồn mở để học và kết nối mạng các cơ hội, khi nhiều công việc và việc ra quyết định xảy ra mặt đối mặt.
Tham gia vào các cơ quan và tổ chức công nghiệp nguồn mở như Quỹ Linux vì các cơ hội để chia sẻ sự phát triển và những thực tiễn pháp lý tốt nhất với các nhà lãnh đạo khác trong giới công nghiệp.
Thuê các lập trình viên từ các cộng đồng nguồn mở.
Tổ chức các nhóm người sử dụng nguồn mở địa phương và khuyến khích các nhân viên của bạn tham gia trong các hoạt động nguồn mở của địa phương.
Mời các thành viên của cộng đồng trình bày cho đội phát triển của bạn về các chủ đề có liên quan tới dự án.
2. Người đóng góp cho nguồnmở
Đónggóp cho các dự án nguồn mở chiến lược có thể giúpcho các tổ chức giành được giá trị bổ sung, khi nhữngngười đóng góp mã nguồn có thể giúp hình thành nhữngtính năng trong tương lai trong dự án mà đáp ứng đượctốt hơn những nhu cầu và yêu cầu của công ty. Nó cũngđưa ra những bù trừ đáng kể về chi phí, đặc biệtkhi một lượng lớn việc tái thiết kế kỹ thuật đượcyêu cầu để tích hợp những phiên bản mới của thànhphần đó vào trong sản phẩm. Việc đóng góp mã nguồntrở ngược lại cho dự án nguồn mở, còn được gọilà ngược lên dòng trên, có thể làm giảm được lượngtái tích hợp được yêu cầu khi một phiên bản mớiđược phát hành, vì những thay đổi sớm đã được kếthợp rồi vào phiên bản mã nguồn dòng chính (hoặc ngượclên dòng trên). Các tổ chức mà có một lý do chiến lượccho việc trở nên có liên can như một người đóng gópcho một hoặc nhiều hơn dự án nguồn mở có thể bắtđầu bằng việc nắm lấy những bước cụ thể để xâydựng lòng tin, làm gia tăng những đóng góp của họ vàtối đa hóa giá trị:
Giáo dục cho đội của bạn về những thực tiễn tốt nhất của phát triển cộng đồng.
Tích cực tham gia và dẫn dắt những thảo luận kỹ thuật trong danh sách thư, IRC (chat), các diễn đàn thảo luận.
Tuân theo các phương pháp và qui trình làm việc được thiết lập của cộng đồng nguồn mở.
Đệ trình các báo cáo lỗi và đóng góp những bản sửa lỗi đối với các lỗi hiện có.
Đóng góp mã nguồn để cải thiện hoặc mở rộng chức năng.
Đóng góp mã nguồn để thi hành những tính năng mới.
Đóng góp cho các nỗ lực làm tài liệu.
Đóng góp cho những nỗ lực kiểm thử và tích hợp (viết các mã nguồn kiểm thử, tạo các trường hợp kiểm thử).
Lắng nghe những ý kiến phản hồi về những đóng góp của bạn, và hành động theo chúng.
Thiết lập lòng tin với người duy trì dự án và những người tham gia các dự án khác qua những đóng góp và sự tham gia tích cực của bạn.
3. Người lãnh đạo nguồn mở
Cácvai trò lãnh đạo trong các cộng đồng nguồn mở giànhđược bằng việc thiết lập lòng tin với các thành viêncủa dự án, và bằng việc duy trì một mức độ cao sựđóng góp liên tục cho dự án. Bên dưới là một sốbước chiến thuật có thể giúp lái được bạn hướngvào một vai trò lãnh đạo bên trong một dự án nguồn mởđặc thù:
Tham gia tích cực và mở trong tất cả các khía cạnh của dự án, bao gồm việc lên kế hoạch, phát triển, kiểm thử và quản lý phát hành, như vậy thể hiện khả năng của bạn hành động như một người quản lý tốt của dự án.
Đạt được một mức độ cao về sự tham gia và những đóng góp:
Cam kết với những người tham gia các dự án khác nhau.
Đóng góp cho việc giải quyết các lỗi, bổ sung các tính năng mới, mở rộng chức năng trong các dự án nguồn mở đang tồn tại có sử dụng những thực tiễn tốt nhất được phác thảo ở trên.
Thể hiện thiện ý bằng việc đóng góp (khi phù hợp) mã nguồn sở hữu độc quyền từ sự phát triển nội bộ cho các dự án nguồn mở, theo một giấy phép nguồn mở phù hợp, làm cho nó có khả năng sử dụng được và hữu dụng cho cộng đồng.
Thừa nhận một cách công khai rằng công ty đã đạt được những lợi ích hữu hình qua sự làm việc với các cộng đồng nguồn mở đối với sự phát triển các sản phẩm phần mềm sống còn.
Trao quyền cho các nhân viên tìm kiếm địa vị người duy trì bên trong dự án.
Đỡ đầu cho các sự kiện, cung cấp sự hỗ trợ tài chính cho hạ tầng của dự án, và cân nhắc việc thuê các lập trình viên nguồn mở được thừa nhận từ bên trong dự án.
Gia tăng sự tham gia trong các tổ chức và các quỹ nguồn mở phù hợp.
Dẫn dắt những sáng kiến thu thập yêu cầu và kiến trúc bên trong hàng loạt các cộng đồng và các nhóm công ty để đạt được các mục tiêu thương mại.
Thiết lập một vai trò kiến trúc sư nguồn mở để dẫn dắt một cách chủ động sử dụng những đóng góp cho PMTDNM.
KẾT LUẬN
Cácphương pháp nguồn mở đang dịch chuyển các thực tiễnphát triển phần mềm vào trong một hệ biến hóa mới,dịch chuyển từ mã nguồn được phát triển đằng saucác cánh cửa đóng và phân phối chỉ theo nhị phân sangnhững tài sản phần mềm có thể được chia sẻ, đượcsửa đổi và được phân phối một cách mở. Các tổchức đi theo mô hình nguồn mở đang ngày một gia tăngnhững khả năng của họ trong việc giữ được ưu thếcạnh tranh, gia tăng tính mau lẹ của họ, và đa dạng hóanhững rủi ro và chi phí phát triển.
Vớibài viết này, cùng các bài đã được lần lượt đăngtrên tạp chí Tin học & Đời sống các số gần đâynhư: (1) Tìmhiểu mô hình phát triển PMTDNM;(2)Vòngđời tính năng và những đặc tính của mô hình pháttriển nguồn mở;(3)Pháttriển PMTDNM - Ngược lên dòng trên để về đích sớm,chúng ta đã có được những lý thuyết cơ bản để cóthể từng bước tham gia vào sự phát triển PMTDNM và phấnđấu để trở thành một thành viên đóng góp ngày càngtích cực và chủ động trong các cộng đồng, chứ khôngchỉ dừng ở mức của người tiêu dùng PMTDNM một cáchđơn thuần và thụ động.
Nhậnthức được rằng thực tế tại Việt Nam, hầu hết cáccông ty phần mềm đều đã từng phát triển phần mềmtheo lối truyền thống, theo mô hình của phần mềm sởhữu độc quyền cho những sản phẩm phần mềm sở hữuđộc quyền với mã nguồn đóng của họ. Trong số đó,một số công ty hiện thực sự có mong muốn mở mã nguồncác sản phẩm nguồn đóng của mình để tận dụng đượcsức mạnh của cả cộng đồng từ bên ngoài công ty. Câuhỏi là: Làm cách nào để biến những phần mềm nguồnđóng đó thành nguồn mở để có thể tận dụng đượcsự đóng góp của các lập trình viên và những ngườisử dụng từ cộng đồng bên ngoài công ty được thuậnlợi và có hiệu quả nhất cho công ty được hay không?Câu trả lời sẽ nằm ở bài tiếp sau: “Mở nguồn côngnghệ sở hữu độc quyền thật dễ”, sẽ được đềcập tới trong bài tiếp sau của loạt bài này.
TrầnLê
Bàiđăng trên tạp chí Tin học & Đời sống, số tháng06/2012, trang 66-69.
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...