TỪ NHỮNG TRANH LUẬN THỰC TẾ
Khi
bài viết về “Phát
triể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ềm
nguồn mở “VietLUG” trên Fecebook, có nhiều ý kiến rất
khá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ên
dòng trên về bất kỳ dự án PMTDNM gốc nào. Nói rộng
ra, việc đánh giá, phân loại các công ty trong thế giới
PMTDNM 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ận
trong thế giới PMTDNM theo các mức độ đóng góp cho các
dự á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ọi
công ty phần mềm đều đã tuân theo cùng một mô hình
kinh doanh y hệt: mã nguồn đã được những nhân viên của
riê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ác
khá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 đổi
cách mà những tổ chức phát triển và phân phối các sản
phẩm. Với sự truy
cập mở tới mã nguồn và các
cộng đồng phát triển một cách minh bạch, thì các
nhà 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 tham
gia 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ũng
có 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ược
lên dòng trên, chứ không chỉ là những người nhận
thụ động những gì mà nhà cung cấp phần mềm phân phối
cho họ. Mô hình phát triển này cho phép các tổ chức
nghĩ 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ột
ví dụ điển hình, không phải ngẫu nhiên mà dự án nhân
Linux hiện nay lại có sự đóng góp mã nguồn của hơn
1.300 lập trình viên từ 266 công ty và tổ chức trên toàn
thế 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ếng
hàng đầu thế giới, như Red
Hat, Novell, Intel, IBM, Consultant, Oracle, Academia, Nokia,
Fujitsu,
Texas
Instruments, Broadcom, Linux Foundation, Google, SGI, AMD, Parallels,
Freescale, Cisco, HP, Renesas Technology, MontaVista, Atheros
Communications, Wolfson Microelectronics, Marvell, NetApp,
Linutronix, Samsung … thậm chí là cả
Microsoft.
Chắc
chắ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êng
mình khi thực hiện việc đóng góp mã nguồn đó. Thậm
chí, ở 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ồn
mở nói chung, nhân Linux nói riêng. Tài liệu này đưa ra 3
chiến lược cơ bản cho các tổ chức sử dụng và tích
hợp phần mềm tự do nguồn mở (PMTDNM) vào trong các sản
phẩ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ều
quan trọng để lưu ý rằng không chiến lược duy nhất
nào áp dụng được cho tất cả các công ty, và một
chiến lược nguồn mở của tổ chức nên được tùy
chỉnh cho các nhu cầu, các tài nguyên và vị thế mong
muốn đặc thù của tổ chức của bạn. Trong hầu hết
cá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, đóng
gó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ẩm
củ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ột
nhu 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ằng
việ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 đồng
nguồn mở. Được trình bày một cách lặp đi lặp lại
rằ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ơn
nữ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 chi
phí và những nỗ lực ngắn hạn từng chút một của
việc quản lý một hồ sơ phát triển pha trộn giữa
nguồn mở và đóng.
Khi
thiết lập một chiến lược phần mềm mà khuyến khích
sử 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.
Nguồn
của hình:
http://commons.wikimedia.org/wiki/File:Human_evolution.svg
2. Người đóng góp cho nguồn
mở
Đóng
góp cho các dự án nguồn mở chiến lược có thể giúp
cho các tổ chức giành được giá trị bổ sung, khi những
người đóng góp mã nguồn có thể giúp hình thành những
tính năng trong tương lai trong dự án mà đáp ứng được
tố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ệt
khi một lượng lớn việc tái thiết kế kỹ thuật được
yêu cầu để tích hợp những phiên bản mới của thành
phần đó vào trong sản phẩm. Việc đóng góp mã nguồn
trở ngược lại cho dự án nguồn mở, còn được gọi
là ngược lên dòng trên, có thể làm giảm được lượng
tá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ết
hợp rồi vào phiên bản mã nguồn dòng chính (hoặc ngược
lên dòng trên). Các tổ chức mà có một lý do chiến lược
cho việc trở nên có liên can như một người đóng góp
cho 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ây
dự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ác
vai 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ên
củ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ướng
và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ác
phương pháp nguồn mở đang dịch chuyển các thực tiễn
phá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 sau
các cánh cửa đóng và phân phối chỉ theo nhị phân sang
những tài sản phần mềm có thể được chia sẻ, được
sử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ăng
nhữ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óa
những rủi ro và chi phí phát triển.
Với
bài viết này, cùng các bài đã được lần lượt đăng
trên tạp chí Tin học & Đời sống các số gần đây
như: (1) Tìm
hiể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át
triển nguồn mở;
(3)
Phát
triể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àng
tích cực và chủ động trong các cộng đồng, chứ không
chỉ dừng ở mức của người tiêu dùng PMTDNM một cách
đơn thuần và thụ động.
Nhận
thức được rằng thực tế tại Việt Nam, hầu hết các
công ty phần mềm đều đã từng phát triển phần mềm
theo 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ồn
các sản phẩm nguồn đóng của mình để tận dụng được
sức mạnh của cả cộng đồng từ bên ngoài công ty. Câu
hỏ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 được
sự đóng góp của các lập trình viên và những người
sử dụng từ cộng đồng bên ngoài công ty được thuận
lợ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ông
nghệ 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ần
Lê
Bài
đăng trên tạp chí Tin học & Đời sống, số tháng
06/2012, trang 66-69.
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.