Internal Open Source là gì

Là một công ty phát triển phần mềm, "sản phẩm lõi" (Core Product) và "hệ thống thông tin" (Information System) là một thành phần quan trọng trong chuỗi giá trị của Magestore.

Tuy quan trọng, nhưng thay vì tuyệt đối, đóng kín và chỉ giao trách nhiệm cho một vài người tham gia, Magestore tin tưởng vào giá trị tử tế và phát triển liên tục của toàn công ty. Tất cả mọi người cùng tham gia đóng góp vào tri thức của tập thể. Do đó Magestore tổ chức việc phát triển sản phẩm theo hình thức Internal Open Source.

Internal Open Source là việc sử dụng các kinh nghiệm thực tiễn tốt nhất về phát triển phần mềm nguồn mở và thiết lập văn hóa nguồn mở bên trong doanh nghiệp. Nhìn từ bên ngoài Magestore vẫn có thể phát triển phần mềm đóng, nhưng bên trong thì mở. Thuật ngữ này được đặt ra bởi Tim O'Reilly vào năm 2000.

Nguồn mở được công nhận là có khả năng cung cấp phần mềm chất lượng cao. Hơn nữa, sự cộng tác mở trong nguồn mở cho phép cộng tác ngay cả giữa các đối thủ cạnh tranh (ví dụ: ARM và Intel hoạt động trên nhân Linux). Do đó, Magestore muốn hưởng lợi từ kết quả của nguồn mở xuất phát từ thực tiễn của những người trực tiếp làm việc với khách hàng.

Internal Open Source là gì
Internal Open Source là gì

Tại sao lại cần Internal Open Source

Ngày nay, nhu cầu của mỗi khách hàng rất phong phú và khác nhau. Vì vậy một sản phẩm đi từ những kỹ sư giỏi trong phòng kín phía sau hậu trường xa cách tiếp xúc với khách hàng, dù có năng lực kỹ thuật hoàn hảo, nhưng vẫn chưa thể sát với thực tế.

Trong 1 vòng đời phát triển phần mềm, có những kỹ sư giỏi khác trực tiếp làm việc với khách hàng ở giai đoạn triển khai (implementation) và bảo trì (maintainance). Họ là người nắm rõ nhất thực tế sử dụng sản phẩm cũng như có thông tin ngay lập tức về các lỗi (bug). Vì vậy Internal Open Source là cách tiếp cận tốt để các kỹ sư này có thể trực tiếp đóng góp (contribute) các sáng kiến của họ vào sự phát triển chung của sản phẩm lõi.

Tại sao lại cần Internal Open Source
Tại sao lại cần Internal Open Source

Lợi ích của Internal Open Source

  • Sản phẩm sát nhu cầu thực tế nhờ tận dụng kiến thức của những người làm việc trực tiếp với khách hàng.
  • Chất lượng cải thiện liên tục: nhờ vận dụng sức mạnh toàn công ty tham gia sửa lỗi và cải tiến thường xuyên bất cứ lúc nào.
  • Tinh thần gắn kết nâng cao: khi tất cả nhân viên cảm thấy được đóng góp vào phần sản phẩm lõi quan trọng của công ty.

Thách thức với Internal Open Source

  • Thách thức về chất lượng: Tuy về lâu dài, Internal Open Source hướng tới chất lượng cao nhờ sự đóng góp cải tiến của những kỹ sư. Nhưng trong ngắn hạn, việc phát hành các phiên bản lõi của sản phẩm với sự tham gia của nhiều người với nhiều khả năng khác nhau, nếu không được kiểm thử (Test) cẩn thận sẽ làm tê liệt sản phẩm bởi các bug nghiêm trọng.
  • Thách thức về con người: Về logic có thể dễ dàng thiết lập được một sản phẩm Open Source. Nhưng để có thể kích thích văn hóa gắn kết, vì trách nhiệm chung, nhiều người cùng đóng góp vào sản phẩm là khó. Đặc biệt khi việc đóng góp vào sản phẩm chung không có lợi ích vật chất rõ ràng để tạo động lực,
  • Thách thức bảo mật: Tuy là Open Source nhưng chỉ là phía nội bộ., với bên ngoài sản phẩm vẫn là đóng kín (Closed). Do đó các quy tắc và chính sách bảo mật cần phải được chú ý khi các thông tin của sản phẩm được mở trên diễn rộng toàn công ty thay vì chỉ đóng kín trong một phòng ban nhất định.

Tổ chức Internal Open Source tại Magestore như thế nào

Quy trình kiểm soát

  • Để vượt qua thách thức về chất lượng khi có nhiều người với nhiều khả năng khác nhau tham gia sửa đổi phần lõi sản phẩm, quy trình kiểm soát cần chặt chẽ với các nguyên tắc rõ ràng và được công bố. Vai trò và quyền hạn trách nhiệm của mỗi người tham gia phát triển sản phẩm open source cũng cần rõ ràng.
  • Quá trình test được chuẩn hóa để có thể áp dụng automation test nhằm đẩy nhanh quá trình thẩm định chất lượng của rất nhiều nguồn code.
  • Ngoài ra cũng cần có quy trình vá lỗi và phát hành sản phẩm khẩn cấp (Hot-fix) khi một lỗi nghiêm trọng được tìm ra.

Quy trình phát hành release train

Khi nhiều người tham đóng góp công sức cho sản phẩm, các tính năng của họ nếu đạt yêu cầu chất lượng cần phải được phát hành thường xuyên như một cách ghi nhận công lao thay vì bị bỏ qua không ai để ý.

Do đó cần có 1 quy trình phát hành sản phẩm định kỳ hàng tuần. Trong đó công bố rõ toàn bộ các tính năng được cập nhật cũng như ghi nhận công lao của người đóng góp vào tính năng đó.

Quy trình phát hành release train
Quy trình phát hành release train

Cấu trúc ứng dụng trên GitHub

Khi đã có quy trình rõ ràng, sẽ cần triển khai trên một ứng dụng quản lý mã nguồn (source code). Git Hub được ứng dụng với khả năng tạo các nhánh, các phiên bản, mở quyền và phân quyền cho mỗi người tham gia rõ ràng.

Phần quản lý Milestone trên Git Hub được áp dụng để có thể quản lý. Các ứng dụng kiểm thử tự động (Automation Test) cũng được áp dụng cùng với GitHub để kiểm soát chất lượng với mỗi bản phát hành.

Cấu trúc ứng dụng trên GitHub
Cấu trúc ứng dụng trên GitHub

Hệ thống báo cáo đo lường

Hệ thống báo cáo sẽ tổng hợp hàng tuần mỗi người tham gia nêu ý kiến đóng góp (report issue) hoặc code (contribute). Từ số lầm issue hoặc code contribute xác định mức độ nhiệt tình của mỗi thành viên trong sự phát triển chung của công ty. Bằng cách nhìn sự gia tăng số lượng report issue và code cobtribute, lãnh đạo sẽ biết được văn hóa Internal Opensource của công ty phát triển như thế nào.

Phát triển văn hóa công ty cùng phát triển sản phẩm

  • Phát triển văn hóa ghi nhận hành vi phù hợp: Từ số lần report issue và code contribute, lãnh đạo công ty phải công nhận sự đóng góp của mỗi nhân viên bằng nhiều hình thức khác nhau. Điều này khuyến khích nhân viên tham gia tích cực vì sự phát triển chung, tự nguyện.
  • Phát triển văn hóa workshop product planning: Các workshop product planning được tổ chức hàng quý tạo thành diễn đàn công khai cho mọi người tham gia đóng góp ý  tưởng sản phẩm, góp phần đẩy mạnh văn hóa cùng phát triển.
Magestore Product Planning Workshop
Magestore Product Planning Workshop

Vai trò của kỹ sư hệ thống

  • Thiết kế và triển khai quy trình trên ứng dụng Git Hub: Từ hiểu biết về quy trình kiểm soát chất lượng cũng như quy trình phát hành liên tục; kỹ sư hệ thống cần biết cách cài đặt và triển khai quy trình này trên GitHub. Câc thao tác cài đặt sai dẫn đến hoạt động không đúng quy trình có thể gây lỗi nghiêm trọng trên sản phẩm và gây chậm lịch phát hành.
  • Thiết kế và triển khai hệ thống báo cáo Dashboard: Kỹ sư hệ thống sẽ kết nối với GitHub để lấy dữ liệu mỗi lần report issue hoặc code contribute. Sau đó sẽ phải visualize các con số này lên một dashboard để minh họa sự phát triển của sản phẩm và sự phát triển của văn hóa cùng đóng góp vào sự phát triển của công ty.
Dashboard thể hiện sự đóng góp của các cá nhân vào chất lượng sản phẩm
Dashboard thể hiện sự đóng góp của các cá nhân vào chất lượng sản phẩm

Kết luận

Thành công của chương trình internal opensource là một thể hiện quan trọng của quá trình Digital Transform và quá trình Agile Transform tại Magestore. Điều này thể hiện ở đặc điểm như sản phẩm được cập nhật liên tục, cộng tác chặt chẽ toàn bộ công ty, văn hóa cùng đóng góp vào sự nghiệp chung.

Đây cũng là thực hành Quản lý chất lượng theo phương pháp của Crosby với các nguyên tắc công khai, minh bạch, và huy động sự đóng góp trách nhiệm của toàn bộ nhân viên.

Hãy đăng ký nhận tin để là người đầu tiên đọc bài viết mới nhất từ chúng tôi nhé

Posted 
Feb 24, 2020
 in 
Tech
 category

Bài viết khác từ

Tech

category

View All