14
Mô hình phát triển và chiến lược Mô hình phát triển và chiến lược phát triển phần mềm tự do nguồn mở phát triển phần mềm tự do nguồn mở UBND tỉnh Bắc Giang UBND tỉnh Bắc Giang 17-18/10/2012 17-18/10/2012 NGƯỜI TRÌNH BÀY: LÊ TRUNG NGHĨA VĂN PHÒNG PHỐI HỢP PHÁT TRIỂN MÔI TRƯỜNG KHOA HỌC & CÔNG NGHỆ, BỘ KHOA HỌC & CÔNG NGHỆ Email: [email protected] Blogs: http://vn.myblog.yahoo.com/ltnghia http://vnfoss.blogspot.com/ Trang web CLB PMTDNM Việt Nam: http://vfossa.vn/vi/ HanoiLUG wiki: http://wiki.hanoilug.org/ Đăng ký tham gia HanoiLUG: http://lists.hanoilug.org/mailman/listinfo/hanoilug/

Foss dev-models-strategy-th10-2012

Embed Size (px)

DESCRIPTION

Mô hình và chiến lược phát triển của phần mềm tự do nguồn mở

Citation preview

Page 1: Foss dev-models-strategy-th10-2012

Mô hình phát triển và chiến lượcMô hình phát triển và chiến lượcphát triển phần mềm tự do nguồn mởphát triển phần mềm tự do nguồn mở

UBND tỉnh Bắc GiangUBND tỉnh Bắc Giang17-18/10/201217-18/10/2012

NGƯỜI TRÌNH BÀY: LÊ TRUNG NGHĨAVĂN PHÒNG PHỐI HỢP PHÁT TRIỂN

MÔI TRƯỜNG KHOA HỌC & CÔNG NGHỆ, BỘ KHOA HỌC & CÔNG NGHỆ

Email: [email protected]: http://vn.myblog.yahoo.com/ltnghia

http://vnfoss.blogspot.com/ Trang web CLB PMTDNM Việt Nam: http://vfossa.vn/vi/HanoiLUG wiki: http://wiki.hanoilug.org/ Đăng ký tham gia HanoiLUG:

http://lists.hanoilug.org/mailman/listinfo/hanoilug/

Page 2: Foss dev-models-strategy-th10-2012

Nội dung

A. Mô hình phát triển của PMTDNM B. Ngược lên dòng trên để tăng cường cho sự phát triển

C. Chiến lược phát triển PMTDNM

Page 3: Foss dev-models-strategy-th10-2012

A. Mô hình phát triển PMTDNM (1)

Lưu ý: Mô hình phát triển PMTDNM là theo kiểu cái chợ, không theo kiểu nhà thờ như thường thấy ở PMSHĐQ.Đặc tính cốt lõi: Các cá nhân hoặc các đội đóng góp có trách nhiệm cho sự phát triển và duy trì mã nguồn như hình trên. Các tính năng được đóng góp sẽ được tích hợp vào trong một thân mã nguồn duy nhất từ một hoặc nhiều người duy trì, những người đảm bảo mã nguồn mới được đệ trình đáp ứng được toàn bộ tầm nhìn và tập hợp các tiêu chuẩn được thiết lập cho dự án.

▲ Dòng chảy của mã nguồn

Page 4: Foss dev-models-strategy-th10-2012

Cộng đồng những người sử dụng và cộng đồng các lập trình viên cùng tham gia vào tiến trình phát triển PMTDNM: (1) Quy trình yêu cầu tính năng; (2) Thảo luận về kiến trúc và thiết kế; (3) Cộng tác trong triển khai; (4) Đệ trình mã nguồn; (5) Kiểm thử và tích hợp liên tục; (6) Phát hành mã nguồn.

A. Mô hình phát triển PMTDNM (2)

Vòng đời các tính năng ▲ Dòng chảy của mã nguồn ▲

Page 5: Foss dev-models-strategy-th10-2012

Các đặc tính của mô hình phát triển: 1. Chu kỳ phát triển đan xen giữa nhánh cây phát triển và nhánh cây ổn định2. Phát hành sớm và thường xuyên: (a) Nhân Linux: 70 ngày; (b) Một số phát tán như Ubuntu và Fedora: 6 tháng.3. Rà soát ngang hàng trên phạm vi toàn cầu.

A. Mô hình phát triển PMTDNM (3)

▲ Dòng chảy đặc trưng của mã nguồn từ cá nhân đóng góp tới phiên bản dòng chính.

Page 6: Foss dev-models-strategy-th10-2012

◄ Quy trình điển hình để xác định việc ngược lên dòng trên (NLDT) đối với mã nguồn nội bộ.

Lưu ý: Không phải cứ muốn đóng góp mã nguồn NLDT thế nào cũng được, mà phải tuân thủ những qui định về giấy phép, về tiêu chuẩn an ninh và về qui trình đệ trình mã nguồn của dự án dòng chính thống.

B. Ngược lên dòng trên để tăng cường (1)

Page 7: Foss dev-models-strategy-th10-2012

Những lợi ích của NLDT: (1) Ít mã nguồn hơn phải duy trì trong nội bộ; (2) Nhiều người đóng góp hơn cho dự án của đơn vị; (3) Chất lượng mã nguồn tăng qua sự rà soát lại ngang hàng; (4) Tác động được tới đường lối của dự án; (5) Giảm chi phí để đạt được sự tuân thủ; (6) Giảm rủi ro trong chuỗi cung ứng của đơn vị; (7) Tăng cường sức mạnh cho dự án dòng chính thống.

◄ Qui trình phát triển có NLDT để giảm sự tùy biến phát triển trong nội bộ đơn vị, làm cho vòng đời phát triển ngắn hơn và thời gian đưa ra thị trường nhanh hơn.

B. Ngược lên dòng trên để tăng cường (2)

Page 8: Foss dev-models-strategy-th10-2012

Những thực tiễn tốt nhất của NLDT: (1) Nên thiết kế và triển khai mã nguồn với NLDT trong đầu; (2) Đảm bảo sự đóng góp là có ích cho những người khác; (3) Hãy luôn tham gia theo sự phát triển có NLDT; (4) Cung cấp tài liệu đi cùng mã nguồn; (5) NLDT với lý do đúng, chứ không phải bỏ mã nguồn; (6) Lắng nghe ý kiến phản hồi và hành động dựa vào đó; (7) Tuân theo cách lập trình phù hợp của dự án; (8) Tuân thủ các qui trình được thiết lập của dự án.

◄ Qui trình phát triển rẽ nhánh, không NLDT làm tăng sự tùy biến phát triển trong nội bộ đơn vị, làm cho vòng đời phát triển dài hơn và thời gian đưa ra thị trường chậm hơn.

B. Ngược lên dòng trên để tăng cường (3)

Page 9: Foss dev-models-strategy-th10-2012

C. Chiến lược phát triển PMTDNM (1)Mục đích:1. Giảm chi phí phát triển (PT) & vẫn giữ được người trong qui trình PT2. Người sử dụng (NSD) có thể đóng góp, chứ không chỉ nhận thụ động3. Cho phép đơn vị nghĩ khác về cách mua sắm, thi hành, kiểm thử, triển khai và duy trì phần mềm.4. Khi tích hợp PMTDNM vào các sản phẩm của đơn vị, có 3 dạng chiến lược cho đơn vị: (1) Người tiêu dùng (NTD); (2) Người đóng góp (NĐG); (3) Người lãnh đạo (NLĐ).Các chiến lược cốt lõi: 1. NTD: Phổ biến nhất, không cần biết ai duy trì mã nguồn, đôi khi họ đóng góp bằng báo cáo lỗi, những cải tiến nhỏ trong phạm vi nhỏ.2. NĐG: Đóng góp dựa vào mô hình của NTD, tùy biến có chọn lọc các dự án chiến lược cần cho NĐG, cải thiện khả năng phân phối sản phẩm có chất lượng với chi phí phát triển thấp.3. NLĐ: dựa vào mô hình của NĐG, nơi đơn vị giữ vai trò NLĐ dự án. Thường thì NĐG mạnh mẽ trong cộng đồng đứng ra nhận lấy vai trò của NLĐ dự án.Quan trọng: Chiến lược được thiết lập tùy vào nhu cầu, tài nguyên và mong muốn đặc thù của đơn vị. Có thể ở dạng pha trộn 3 chiến lược trên cùng 1 lúc.

Page 10: Foss dev-models-strategy-th10-2012

1. Chiến lược NTD:

● Giao tiếp chiến lược cho việc sử dụng PMNM.● 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 xác định PMNM nào là ứng viên để sử dụng● Thiết lập một chương trình tuân thủ nguồn mở.● Khuyến khích các lập trình viên áp dụng các công cụ phát triển nguồn mở.● Khuyến khích các nhân viên đăng ký vào các công cụ giao tiếp cộng đồng.● Khuyến khích và cấp tiền cho các nhân viên tham dự các hội nghị PMNM.● Tham gia vào các cơ quan và tổ chức công nghiệp nguồn mở quốc tế.● 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 tham gia trong các hoạt động nguồn mở của địa phương.● Hợp tác với các thành viên của cộng đồng cả trong và ngoài nước.

C. Chiến lược phát triển PMTDNM (2)

Page 11: Foss dev-models-strategy-th10-2012

2. Chiến lược NĐG:

● Giáo dục nhân viê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, các diễn đàn thảo luận.● Tuân thủ phương pháp và qui trình làm việc được thiết lập của cộng đồng.● Đệ trình báo cáo lỗi và đóng góp các 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.

C. Chiến lược phát triển PMTDNM (3)

Page 12: Foss dev-models-strategy-th10-2012

3. Chiến lược NLĐ:● Tham gia tích cực và mở ở tất cả các khía cạnh dự án: việc lên kế hoạch, phát

triển, kiểm thử và quản lý phát hành, thể hiện khả năng quản lý tốt.● Đạt được một mức độ cao về sự tham gia và những đóng góp: (a) Cam kết với

những người tham gia các dự án khác nhau; (b) Đóng góp giải quyết các lỗi, bổ sung & mở rộng các tính 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; (c) Có thiện ý đó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, có khả năng sử dụng được và hữu dụng cho cộng đồng;

● Thừa nhận công khai công ty đã đạt được những lợi ích hữu hình qua làm việc với các cộng đồng nguồn mở khi phát triển các 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ì trong dự án.● Đỡ đầu các sự kiện, hỗ trợ tài chính cho hạ tầng dự án, và cân nhắ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 các sáng kiến thu nạp yêu cầu và kiến trúc trong 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ở để chủ động dẫn dắt sử dụng những

đóng góp cho PMNM.

C. Chiến lược phát triển PMTDNM (4)

Page 13: Foss dev-models-strategy-th10-2012

Tài liệu tham khảo

1. Hiểu biết về mô hình phát triển nguồn mở. Quỹ Linux, 11/2011.

2. Ngược lên dòng trên. Quỹ Linux, 01/2012.

3. Thiết lập chiến lược phần mềm nguồn mở. Quỹ Linux, 11/2011.

4. Phát triển nhân Linux. Quỹ Linux, 01/2012.

Page 14: Foss dev-models-strategy-th10-2012

Cảm ơn!

Hỏi đáp