Thứ Hai, 18 tháng 6, 2012

Thiết lập chiến lược PMTDNM: Nhân tố cốt lõi và khuyến cáo chiến thuật


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ồncá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.
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.