Cách duy trì các dự án phần mềm nguồn mở
Giới thiệu
Khi bạn duy trì một repository nguồn mở, bạn đang đảm nhận role lãnh đạo. Cho dù bạn là người sáng lập dự án đã phát hành nó ra công chúng để sử dụng và đóng góp hay bạn đang làm việc trong một group và đang duy trì một khía cạnh cụ thể của dự án, bạn sẽ cung cấp một dịch vụ quan trọng cho những người lớn hơn cộng đồng nhà phát triển.
Trong khi các đóng góp nguồn mở thông qua các yêu cầu kéo từ cộng đồng nhà phát triển là rất quan trọng đảm bảo rằng phần mềm hữu ích nhất có thể cho user cuối, những người bảo trì có tác động thực sự đến việc định hình dự án tổng thể. Những người bảo trì repository cực kỳ tham gia vào các dự án open-souce mà họ quản lý, từ tổ chức và phát triển hàng ngày đến giao tiếp với công chúng và cung cấp phản hồi nhanh chóng và hiệu quả cho những người đóng góp.
Hướng dẫn này sẽ hướng dẫn bạn một số mẹo để duy trì repository công khai của phần mềm nguồn mở. Trở thành người lãnh đạo của một dự án nguồn mở đi kèm với cả trách nhiệm kỹ thuật và phi kỹ thuật để giúp thúc đẩy cơ sở user và cộng đồng xung quanh dự án của bạn. Đảm nhận role của người bảo trì là cơ hội để học hỏi từ những người khác, có được kinh nghiệm về quản lý dự án và xem dự án của bạn phát triển và thay đổi khi user của bạn trở thành những người đóng góp được đầu tư.
Viết tài liệu hữu ích
Tài liệu kỹ , được tổ chức tốt và phục vụ các cộng đồng dự định trong dự án của bạn sẽ giúp mở rộng cơ sở user của bạn. Theo thời gian, cơ sở user của bạn sẽ trở thành những người đóng góp cho dự án nguồn mở của bạn.
Vì dù sao thì bạn cũng sẽ suy nghĩ kỹ về đoạn mã mà bạn đang tạo và thậm chí có thể viết ra các ghi chú, nên việc kết hợp tài liệu như một phần của quá trình phát triển của bạn trong khi nó vẫn còn mới mẻ trong đầu bạn. Bạn thậm chí có thể cần xem xét việc viết tài liệu trước khi viết mã, tuân theo triết lý của phương pháp tiếp cận phát triển theo hướng tài liệu mà tài liệu có tính năng trước và phát triển các tính năng đó sau khi viết ra những gì chúng sẽ làm.
Cùng với mã của bạn, có một số file tài liệu mà bạn muốn giữ trong folder cấp cao nhất của bạn :
- Tệp
README.md
cung cấp bản tóm tắt về dự án và mục tiêu của bạn. - Tệp
CONTRIBUTING.md
có hướng dẫn đóng góp. - Giấy phép cho phần mềm của bạn, có thể khuyến khích nhiều đóng góp hơn. Đọc thêm về cách chọn giấy phép nguồn mở tại đây .
Tài liệu có thể ở nhiều dạng và có thể nhắm đến đến các đối tượng khác nhau. Là một phần trong tài liệu của bạn và tùy thuộc vào phạm vi công việc của bạn, bạn có thể quyết định thực hiện một hoặc nhiều điều sau:
- Hướng dẫn chung để giới thiệu user về dự án
- Hướng dẫn hướng dẫn mọi người qua các trường hợp sử dụng khác nhau
- Câu hỏi thường gặp để giải quyết các câu hỏi thường gặp mà user có thể có
- Hướng dẫn khắc phục sự cố để giúp user giải quyết sự cố
- Tham chiếu API để cung cấp cho user một cách nhanh chóng để tra cứu thông tin API
- Phát hành ghi chú với các lỗi đã biết để cho user biết điều gì sẽ xảy ra trong mỗi bản phát hành
- Các tính năng được lập kế hoạch để theo dõi và giải thích những gì sắp xảy ra trong tương lai
- Hướng dẫn bằng video để cung cấp cho user cách tiếp cận đa phương tiện đối với phần mềm của bạn
Dự án của bạn có thể phù hợp với một số loại tài liệu nhất định hơn những loại tài liệu khác, nhưng việc cung cấp nhiều cách tiếp cận phần mềm sẽ giúp cơ sở user của bạn hiểu rõ hơn về cách tương tác với công việc của bạn.
Khi viết tài liệu hoặc ghi âm giọng nói cho video, điều quan trọng là phải rõ ràng nhất có thể. Tốt nhất là không có giả định nào về khả năng kỹ thuật của khán giả. Bạn cũng cần tiếp cận tài liệu của bạn từ trên xuống - nghĩa là, giải thích những gì phần mềm của bạn thực hiện một cách tổng quát (ví dụ: tự động hóa các việc server , xây dựng trang web, tạo hình ảnh động để phát triển trò chơi), trước khi đi vào chi tiết.
Mặc dù tiếng Anh đã trở thành một ngôn ngữ phổ biến trong lĩnh vực công nghệ, nhưng bạn vẫn sẽ muốn xem xét user mong đợi của bạn là ai và làm thế nào để tiếp cận họ. Tiếng Anh có thể là lựa chọn tốt nhất để có quyền truy cập vào cơ sở user rộng rãi, nhưng bạn cần lưu ý nhiều người đang tiếp cận tài liệu của bạn với quyền là người nói tiếng Anh không phải là bản ngữ, vì vậy hãy ưu tiên ngôn ngữ dễ hiểu để không gây nhầm lẫn độc giả hoặc người xem của bạn.
Cố gắng viết tài liệu như thể bạn đang viết cho một cộng tác viên, người cần được nâng cao tốc độ trong dự án hiện tại; sau cùng, bạn cần khuyến khích những người đóng góp tiềm năng thực hiện các yêu cầu kéo đối với dự án.
Tổ chức các vấn đề
Các vấn đề thường là một cách để theo dõi hoặc báo cáo lỗi hoặc yêu cầu thêm các tính năng mới vào cơ sở mã. Các dịch vụ lưu trữ repository open-souce như GitHub, GitLab và Bitbucket sẽ cung cấp cho bạn giao diện cho chính bạn và những người khác để theo dõi các vấn đề trong repository lưu trữ của bạn. Khi phát hành open-souce ra công chúng, bạn nên mong đợi các vấn đề được cộng đồng user mở ra. Sắp xếp và ưu tiên các vấn đề sẽ cung cấp cho bạn một lộ trình tốt về công việc sắp tới trong dự án của bạn.
Bởi vì mọi user cũng có thể gửi một vấn đề, không phải tất cả các vấn đề sẽ là báo cáo lỗi hoặc là yêu cầu tính năng; bạn có thể nhận được câu hỏi thông qua công cụ theo dõi vấn đề hoặc bạn có thể nhận được yêu cầu về các cải tiến nhỏ hơn cho giao diện user , chẳng hạn. Tốt nhất là tổ chức các vấn đề này càng nhiều càng tốt và giao tiếp với những user đang tạo ra các vấn đề này.
Các vấn đề phải thể hiện các nhiệm vụ cụ thể cần được thực hiện trên mã nguồn và bạn cần ưu tiên chúng cho phù hợp. Bạn và group của bạn sẽ hiểu về lượng thời gian và năng lượng mà bạn hoặc những người đóng góp có thể dành cho các vấn đề đã nộp và cùng nhau, bạn có thể hợp tác làm việc để đưa ra quyết định và tạo ra một kế hoạch có thể hành động. Khi bạn biết mình sẽ không thể giải quyết một vấn đề cụ thể trong một khung thời gian nhanh chóng, bạn vẫn có thể comment về vấn đề đó để cho user biết rằng bạn đã đọc vấn đề và bạn sẽ tiếp cận vấn đề đó khi có thể, và nếu bạn có thể, bạn có thể cung cấp một lịch trình dự kiến khi bạn có thể xem xét lại vấn đề.
Đối với các vấn đề là yêu cầu tính năng hoặc cải tiến, bạn có thể hỏi người đã gửi vấn đề xem họ có thể tự đóng góp mã hay không. Bạn có thể chuyển hướng họ đến file CONTRIBUTORS.md
và bất kỳ tài liệu liên quan nào khác.
Vì các câu hỏi thường không đại diện cho các nhiệm vụ cụ thể, comment về vấn đề để hướng user một cách nhã nhặn đến tài liệu liên quan có thể là một lựa chọn tốt để giữ cho các tương tác của bạn chuyên nghiệp và tử tế.Nếu tài liệu cho câu hỏi này không tồn tại, bây giờ là thời điểm tuyệt vời để thêm tài liệu liên quan và bày tỏ lời cảm ơn tới user vì đã xác định được sự giám sát này. Nếu bạn nhận được nhiều câu hỏi về các vấn đề, bạn có thể cân nhắc tạo phần Câu hỏi thường gặp trong tài liệu của bạn hoặc wiki hoặc diễn đàn để những người khác tham gia trả lời câu hỏi.
Khi nào user báo cáo một vấn đề, hãy cố gắng tử tế và tử tế nhất có thể. Vấn đề là các chỉ số cho thấy user thích phần mềm của bạn và muốn cải thiện nó!
Làm việc để sắp xếp các vấn đề tốt nhất có thể sẽ giúp dự án của bạn luôn được cập nhật và phù hợp với cộng đồng user của dự án. Loại bỏ các vấn đề nằm ngoài phạm vi dự án của bạn hoặc trở nên cũ và ưu tiên các vấn đề khác để bạn có thể đạt được tiến bộ liên tục.
Đóng góp phần thưởng
Bạn càng hoan nghênh những người đóng góp cho dự án của bạn và khen thưởng những nỗ lực của họ, bạn càng có nhiều khả năng khuyến khích những đóng góp nhiều hơn. Để giúp mọi người bắt đầu, bạn cần bao gồm file CONTRIBUTING.md
ở cấp cao nhất của hệ thống lưu trữ và một con trỏ đến file đó trong file README.md
của bạn.
Một file tốt về đóng góp sẽ phác thảo cách bắt đầu làm việc với dự án với quyền là một nhà phát triển. Bạn có thể cần cung cấp hướng dẫn từng bước hoặc cung cấp danh sách kiểm tra để các nhà phát triển làm theo, giải thích cách ghép thành công mã của họ vào dự án thông qua một yêu cầu kéo.
Ngoài tài liệu về cách đóng góp cho dự án, đừng quên giữ cho mã nhất quán và dễ đọc trong suốt. Mã dễ hiểu thông qua comment và cách sử dụng rõ ràng và nhất quán sẽ giúp những người đóng góp cảm thấy như họ có thể tham gia vào dự án.
Cuối cùng, duy trì danh sách những người đóng góp hoặc tác giả. Bạn có thể mời những người đóng góp thêm mình vào danh sách dù đóng góp của họ là gì (ngay cả việc sửa lỗi chính tả cũng có giá trị và có thể dẫn đến nhiều đóng góp hơn trong tương lai). Điều này cung cấp một cách để ghi nhận những người đóng góp cho công việc của họ trong dự án theo cách trực tiếp mà họ có thể chỉ ra, đồng thời làm cho những người khác biết về mức độ đối xử của những người đóng góp.
Xây dựng cộng đồng của bạn
Bằng cách trao quyền cho user thông qua tài liệu, phản hồi các vấn đề và khuyến khích họ tham gia, bạn đang trên con đường xây dựng cộng đồng xung quanh dự án nguồn mở của bạn . User mà bạn luôn hài lòng và những người bạn coi là cộng tác viên sẽ lần lượt quảng bá phần mềm của bạn.
Ngoài ra, bạn có thể làm việc để quảng bá dự án của bạn thông qua nhiều cách khác nhau:
- Viết blog
- Phát hành video tổng quan hoặc hướng dẫn
- Duy trì một danh sách gửi thư
- Hoạt động tích cực trên các kênh truyền thông xã hội
- Cộng tác với các dự án tương tự hoặc có liên quan và quảng cáo chéo chúng
Bạn cần điều chỉnh quảng cáo của bạn cho phù hợp với phạm vi dự án và số lượng thành viên trong group và cộng tác viên tích cực mà bạn đang làm việc cùng.
Khi cộng đồng của bạn phát triển, bạn có thể cung cấp nhiều không gian hơn cho những người đóng góp, user và người bảo trì tương tác. Một số tùy chọn bạn có thể cân nhắc bao gồm:
- Wiki có thể cung cấp tài liệu được duy trì ở cấp cộng đồng
- Diễn đàn thảo luận về các tính năng khả thi và trả lời câu hỏi
- Một danh sách để tương tác với cộng đồng dựa trên email
Cân nhắc cơ sở user cốt lõi và phạm vi dự án của bạn - bao gồm số lượng người đang duy trì dự án và các nguồn lực bạn có - trước khi triển khai các không gian tiềm năng này và tìm kiếm phản hồi từ cộng đồng của bạn về những gì phù hợp với họ.
Trên tất cả, điều quan trọng là phải tử tế và thể hiện tình yêu thương trong tất cả các tương tác của bạn với cộng đồng của bạn. Trở thành một người bảo trì tốt không phải lúc nào cũng dễ dàng, nhưng nó sẽ được đền đáp cho dự án của bạn.
Kết luận
Người bảo trì repository cực kỳ quan trọng trong cộng đồng nguồn mở lớn hơn. Mặc dù nó đòi hỏi sự đầu tư đáng kể và làm việc chăm chỉ, nhưng nó thường là một trải nghiệm bổ ích cho phép bạn phát triển với quyền là một nhà phát triển và một người đóng góp. Trở thành một người bảo trì dễ gần và tốt bụng có thể đi một chặng đường dài để thúc đẩy sự phát triển của một dự án mà bạn quan tâm.
Các tin liên quan