Cách bắt đầu trở thành người đóng góp mã nguồn mở

Tháng Mười Một 29, 2022
Nga Pham

Đọc thêm: Phần mềm mã nguồn mở là gì?

Dưới đây là sẻ của Eddie Knight, Kỹ sư Phần mềm và Đám mây trong nhóm Developer Relations tại Sonatype. Anh thường xuyên làm việc với phần mềm mã nguồn mở với tư cách là người đóng góp cho dự án CNCF và người bảo trì dự án Compliant Financial Services thuộc FINOS.

Trở thành người đóng góp mới cho các phần mềm mã nguồn mở dường như là một trong những trở ngại lớn nhất của các nhà phát triển. Tôi đã chứng kiến hàng trăm khởi đầu không đúng cách từ những sinh viên mới tốt nghiệp, thậm chí cả những người đã làm việc trong lĩnh vực công nghệ phần mềm nhiều năm. Trở ngại luôn tồn tại, nhưng giải pháp không phải lúc nào cũng đơn giản. Dưới đây là một số điểm chung có thể giúp bạn vượt qua rào cản gia nhập.

1. Tìm hiểu bối cảnh

Trong hai tuần qua, tôi đã đóng góp vào một vài kho lưu trữ thuộc Cloud Native Computing Foundation.

Tôi làm việc này không chỉ vì muốn có tên mình trên kho lưu trữ, nhưng nó hoàn toàn có thể là một động lực chính đáng của bạn. Riêng tôi, tôi đóng góp vì muốn cải thiện một số vấn đề mà tôi nhận thấy sẽ gây nhàm chán cho những người bảo trì và cộng tác viên hiện nay.

Tôi nhận ra những vấn đề cần cải thiện vì một số người chúng tôi tại Sonatype đang hỗ trợ tạo ra các nội dung giáo dục liên quan đến Security Slam – một sự kiện kéo dài ba tuần do Linux Foundation tổ chức.

Tôi nhận ra đây là một cơ hội tuyệt vời để đóng góp vì chắc hẳn người bảo trì sẽ cảm thấy rất nhàm chán khi phải làm công việc đó một mình. Những tác vụ tẻ nhạt như thế này luôn là một vấn đề phổ biến trong các cộng đồng nguồn mở. Nếu bạn theo dõi các kênh cộng đồng và phát hiện ra những vấn đề như vậy, đó chính là điểm khởi đầu hoàn hảo cho việc đóng góp mã nguồn mở mới.

Tôi đã thực hiện nỗ lực này trên toàn bộ hệ sinh thái CNCF và tìm đến một kho lưu trữ duy nhất trong dự án Argo để xem liệu tôi có thể giúp triển khai các tiêu chuẩn bảo mật được đề xuất hay không. Vì tôi đã từng tiếp xúc và quen với cộng đồng bảo trì kho lưu trữ này, tôi cho rằng đó là một điểm khởi đầu tuyệt vời.

2. Bắt đầu một cuộc trò chuyện trước khi đóng góp

“Pull requests are welcome” là một câu vô cùng phổ biến trong các dự án nguồn mở, tuy nhiên mọi pull request đều liên quan đến vấn đề bảo trì. Những kỹ sư bảo trì luôn phải vất vả để theo kịp tất cả các đề xuất và thay đổi do cộng đồng đề xuất.

Do đó, với tinh thần tôn trọng những người bảo trì, tôi đã tạo một cuộc thảo luận (discussion) trên GitHub repository của họ để đảm bảo rằng công việc tôi dự định làm sẽ có giá trị đối với họ.

Tôi đã cố gắng đưa ra nhiều chi tiết nhất có thể trong chủ đề thảo luận, và nhận được phản hồi vào ngày hôm sau. Họ khuyến khích tôi tham gia kênh Slack của họ để thảo luận và trao đổi chi tiết hơn về ý tưởng của mình.

3. Theo dõi công việc trước khi thực hiện

Tôi đã dành nửa tiếng tạo ra một GitHub issue để theo dõi công việc. Điều này có vẻ tốn nhiều thời gian… nhưng nó thật sự mang lại nhiều lợi ích.

  1. Bằng cách dành thời gian trình bày rõ ràng vấn đề và giải pháp đề xuất, tôi đã có cơ hội tìm ra những lỗ hổng trong hiểu biết của mình trước khi bắt đầu.
  2. Bằng cách công khai “to-do list”, tôi đã tạo ra không gian cho những người khác đề xuất và cung cấp các thông tin hữu ích để giúp tôi đóng góp tốt hơn.
  3. Bạn còn có thể liên kết GitHub issue với các PR và issue khác trên repository khác. Điều này tạo ra một mạng lưới thông tin giúp bạn có thể xem tất cả mọi thứ từ issue trung tâm.

4. Làm việc từng bước một

GitHub issue tôi đã tạo có một checklist những điều mà tôi hình dung cần phải thực hiện trong cơ sở mã nguồn, vì vậy tôi đã tạo một PR cho mỗi mục.

Việc tạo các PR có kích thước vừa phải giúp những người đánh giá bận rộn có thể nhanh chóng phản hồi mà không mất nhiều thời gian.

5. Phản hồi với các kiểm tra và góp ý

Nhiều kho lưu trữ có các kiểm tra tự động hoặc các kiểm tra để đảm bảo bạn đã đặt đúng tiêu đề và mô tả PR theo chuẩn.

Bên cạnh đó, người đánh giá sẽ thường đặt câu hỏi hoặc đưa ra những đề xuất thay đổi. Đôi khi các câu hỏi không yêu cầu bất cứ thay đổi nào, nhưng quá trình đặt và trả lời câu hỏi vẫn có giá trị. Hãy trả lời trên tinh thần tôn trọng và xem xét cẩn thận mọi đề xuất.

6. Tiếp tục

Để thực sự phục vụ cộng đồng (và đạt lợi ích danh tiếng cho bản thân nếu đó là mục tiêu của bạn), hãy tiếp tục hành trình sau khi bạn hoàn thành đóng góp đầu tiên.

Trong trường hợp của tôi, tôi đang tiếp tục bằng cách giúp đỡ các kho lưu trữ khác trong dự án để hoàn thành mục tiêu Security Slam của họ. Bạn có thể tận dụng kinh nghiệm vừa đạt được và tìm kiếm các nhiệm vụ khác trong cộng đồng mà bạn thấy hứng thú, hoặc có kỹ năng cần thiết để trợ giúp.

Theo Sonatype