Thứ Tư, 20 tháng 3, 2013

Các vai trò trong các dự án nguồn mở

Roles in open source projects
By Elizabeth Tatham, Published: 23 November 2010, Reviewed: 14 May 2012
Bài được đưa lên Internet ngày: 14/03/2012
Lời người dịch: Có những công việc gì và những vai trò nào khi bạn muốn đóng góp cho một dự án phần mềm nguồn mở, cho dù bạn là hay không là một lập trình viên, là nội dung của bài viết này. “Mỗi người tham gia vào dự án đang làm việc hướng tới mục tiêu chung, và các kỹ năng hữu ích, một chút nỗ lực và một vài sự khiêm tốn sẽ luôn được chào đón. Tương tự, việc có thời gian để lên kế hoạch cho sự tham gia của bạn bằng việc tư vấn cho website của dự án, và tìm hiểu cộng đồng bằng việc đi theo các thảo luận trong các danh sách thư, sẽ làm mịn con đường tới thành công và thực hiện sự đóng góp”.
Giới thiệu
Bạn không cần phải là một lập trình viên phần mềm để đóng góp cho một dự án nguồn mở. Mã nguồn, tài liệu và công việc nghệ thuật tạo nên một dự án nguồn mở tất cả được các thành viên của cộng đồng dự án tạo ra, kiểm thử, sử dụng, thảo luận và tinh chỉnh. Những qui trình đó có thể được chia thành vô số nhiệm vụ, đòi hỏi các kỹ năng, mức độ tham gia và các mức tinh thông về kỹ thuật khác nhau. Vì thế, nếu bạn muốn tham gia trong một dự án nguồn mở, có một loạt các vai trò để chọn. Chúng bao gồm:
  • đưa ra các ý kiến phản hồi
  • giúp những người sử dụng mới
  • khuyến cáo dự án cho những người khác
  • kiểm thử và báo cáo hoặc sửa các lổi
  • yêu cầu các tính năng mới
  • viết và cập nhật phần mềm
  • tạo các công việc nghệ thuật
  • viết hoặc cập nhật tài liệu
  • dịch
Tất cả những đóng góp đó giúp giữ cho một dự án hoạt động tích cực và tăng cường cho cộng đồng. Đội dự án và cộng đồng rộng lớn hơn vì thế sẽ chào đón và khuyến khích sự tham gia, và có ý định làm cho nó càng dễ dàng càng tốt cho mọi người để tham gia. Các vai trò và cơ chế chính xác cho việc tham gia sẽ do mô hình điều hành (bản dịch tiếng Việt) dự án chỉ định và là khác nhau đối với các dự án khác nhau. Các công cụ giao tiếp trong cộng đồng và việc tiến hành những đóng góp cũng sẽ khác nhau.
Đối với hầu hết các dự án, bước đầu tiên thường là tham gia vào một hoặc nhiều hơn các danh sách thư của dự án, phụ thuộc vào lĩnh vực quan tâm của bạn. Các danh sách thư thường là kênh giao tiếp chính, nhưng một số dự án cũng có thể sử dụng các diễn đàn hoặc các công cụ khác. Website của dự án nên cung cấp những chỉ dẫn rõ ràng về cách để làm quen và các kênh nào để sử dụng.
Hãy khai thác một số vai trò mà bạn có thể thực hiện được trong một dự án nguồn mở.
Kinh nghiệm của người sử dụng
Các đội dự án luôn hiểu biết sâu sắc hơn về sự tham gia của những người sử dụng với dự án và cách mà họ muốn nó được thấy và hoạt động. Ý kiến phản hồi này là sống còn cho cuộc sống của dự án. Không có nó, độ có thể không có khả năng để cải thiện khả năng sử dụng của phần mềm, một yếu tố chính có thể làm cho dự án đứng được giữa các đối thủ cạnh tranh của nó.
Như một người sử dụng mới, bạn có thể cảm thấy miễn cưỡng để thực hiện các yêu cầu hoặc đưa ra bình luận, bất kể có tính xây dựng như thế nào, vì sợ có thể là không lịch sự hoặc bạc bẽo. Nhưng hầu hết các dự án nguồn mở sẽ khuyến khích bạn trong từng cách có thể để đóng góp cho những thảo luận trong các danh sách thư của người sử dụng hoặc bổ sung các yêu cầu tính năng cho trình theo dõi vấn đề. Cùng lúc, họ sẽ có thể làm cho bạn nhận thức được rằng không phải tất cả các yêu cầu tính năng sẽ được triển khai, dù mỗi bình luận sẽ được cân nhắc cẩn trọng và phản hồi sẽ được cung cấp như yêu cầu đó là quan trọng như thế nào.
Sự hỗ trợ của người sử dụng
Một khi bạn đã giành được một số kinh nghiệp của dự án, bạn có thể hỗ trợ những người sử dụng mới còn chưa có kinh nghiệm. Việc giúp mọi người làm quen là sống còn cho sự thành công trong trung và dài hạn của dự án. Điều này là vì một số người mới tới đó bản thân họ sẽ trở thành những người đóng góp và đảm bảo cho sự phát triển và hỗ trợ tiếp tục của dự án.
Cách nhanh nhất, dễ nhất và đáng kể nhất để cung cấp sự hỗ trợ như vậy trong các giai đoạn sớm trong sự tham gia của bạn là trả lời các câu hỏi của những người mới tới. Chúng thường được trả lời tốt nhất từ những người mà bản thân họ gần đây cũng trải qua chính những vấn đề y hệt. Bằng việc trả lời các câu hỏi từ những người mới tới, bạn cũng sẽ giúp dự án bằng việc tiết kiệm thời gian của những lập trình viên.
Khi bạn có được kinh nghiệm, bạn sẽ có khả năng để yêu cầu và trả lời tiếp nhiều hơn các câu hỏi phức tạp.
Tới lượt mình, bạn sẽ được những người sử dụng có kinh nghiệm hơn hỗ trợ khi sự phức tạp của những yêu cầu của riêng bạn gia tăng. Theo cách này, việc cung cấp sự hỗ trợ sẽ có lợi cho cả bạn và bản thân dự án.
Truyền bá và marketing
Không cần phải nói rằng linh hồn của bất kỳ dự án nguồn mở nào cũng chính là những người sử dụng của nó: càng nhiều người sử dụng có nghĩa là càng nhiều cơ hội cho sự thành công. Và sự phản hồi từ những người sử dụng về những gì họ muốn sẽ giúp đảm bảo rằng sản phẩm ngày càng có chất lượng tốt. Vì thế là sống còn rằng dự án lôi cuốn được những người sử dụng trên cơ sở liên tục. Như một người sử dụng đang tồn tại, bạn có thể giúp dự án làm điều này bằng việc nói cho mọi người về nó và khuyến khích họ thử nó.
Dự án cũng có thể tham gia trong ở các dạng marketing tích cực hơn, như trình bày tại các cuộc hội nghị và hội thảo. Bằng thiện chí trình bày dự án cho những người khác, bạn cũng có thể giúp đảm bảo rằng một dòng chảy những người sử dụng, và vì thế những người đóng góp tiềm năng, được duy trì.
Thiết kế và triển khai phần mềm
Như một lập trình viên phần mềm, bước đầu tiên của bạn hướng tới việc đóng góp mã nguồn có thể sẽ là việc báo cáo các lỗi và đề xuất sửa chữa. Nếu bạn còn chưa là người đề xuất (committer) trong dự án, bạn thường có thể thực hiện những đóng góp đó bằng việc chuyển các bản vá về các vấn đề đó cho trình theo dõi. Bạn sau đó có thể tiếp tục thiết kế các tính năng mới cho dự án hoặc tái thiết kế hoặc phát triển các thiết kế hiện hành.
Hãy nhớ rằng tất cả những đóng góp mã đáng kể nên được thảo luận trong danh sách thư của các lập trình viên trước khi triển khai. Điều này sẽ cho phép đội dự án đảm bảo rằng thiết kế đó là phù hợp và rằng kinh nghiệm của người sử dụng sẽ không bị ảnh hưởng ngược lại. Những đóng góp nhỏ hơn, như sửa các lỗi, có thể được đệ trình như những bản vá về vấn đề đó cho trình theo dõi mà không cần thảo luận.
Đảm bảo chất lượng
Đảm bảo chất lượng - QA (Quality Assurance) là một trong những yếu tố quan trọng nhất của bất kỳ dự án nào. Đôi khi nó cũng là thứ gì đó mà hầu hết mọi người có thể đóng góp. Như một người sử dụng, bạn có thể giúp kiểm thử các ứng viên phát hành (bản dịch tiếng Việt) trước khi chúng được chính thức phát hành và báo cáo về bất kỳ lỗi nào cho trình theo dõi vấn đề. Bạn cũng có thể chạy phiên bản mới nhất của phần mềm và báo cáo các lỗi bất kỳ. Các lập trình viên có thể đóng góp bằng việc sửa các lỗi đó, và bằng việc giúp quản lý chúng cho tới khi chúng được sửa.
Để khuyến khích những đóng góp liên tục, điều sống còn là đội dự án giữ cho những người sử dụng và những người đóng góp được báo tin về hoạt động trong các vấn đề theo trình theo dõi vấn đề. Ví dụ, họ nên xem xét từng vấn đề mới và bình luận về nó, đánh dấu những đúp bản và nhấn mạnh tới các cách khắc phục. Họ cũng nên thảo luận về các giải pháp tiềm năng và đóng chúng lại khi công việc hoàn thành.
Đồ họa và nghệ thuật
Nếu bạn có các kỹ năng đồ họa hoặc nghệ thuật, bạn có thể thực hiện đóng góp có giá trị bằng việc tạo các biểu tượng, các logo, các mẫu nền màn hình, các biểu ngữ (banner), các nhãn và các công việc nghệ thuật khác. Chúng sẽ được nhìn thấy mỗi ngày và có thể tiềm tàng được sử dụng khắp dự án và khắp tất cả các sản phẩm của nó. Bạn cũng có thể tham gia bằng việc thiết kế các website, thiết kế các tư liệu marketing hoặc các minh họa cho các trình bày và chỉ dẫn.
Bạn thường có thể đệ trình dạng đóng góp này thông qua danh sách thư phù hợp hoặc cho trình theo dõi vấn đề một khi bạn đã tham gia vào một dự án và đã có được một cảm giác với nó.
Viết lách
Tài liệu là sống còn đối với những người sử dụng và đôi khi là cả các lập trình viên không phải lúc nào cũng có thời gian để viết hoặc cập nhật. Một trong những cách thức tốt nhất theo đó bạn, như một người sử dụng đang tồn tại, có thể đóng góp là bằng cách làm tài liệu về những kinh nghiệm về dự án của riêng bạn. Điều này có thể ở dạng các sách phụ đạo, các chỉ dẫn, các hỏi đáp thường gặp (FAQ) hoặc các cách làm (HOWTO). Chúng không phải là tuyệt hảo: trong hầu hết các trường hợp, một tài liệu làm khung xương có thể sẽ đòi hỏi các câu hỏi bổ sung và, một khi họ hiểu, có thể giúp đưa ra chi tiết hơn.
Nhiều dự án nguồn mở duy trì một wiki cộng đồng riêng cho việc soạn thảo và viết tài liệu. Thay vì trả lời cùng câu hỏi 2 lần, bạn có thể viết ra câu trả lời và làm cho nó sẵn sàng cho bất kỳ ai trên wiki. Bạn cũng có thể đóng góp cho wiki bất kỳ khi nào bạn thấy thứ gì đó mà có thể không được cải tiến hoặc cập nhật, hoặc báo cáo về một sai sót như một lỗi. Là hữu dụng để làm cho mọi người nhận thức được về bất kỳ sự thay đổi nào mà bạn đã làm bằng việc nhắc họ trong danh sách thư.
Các câu hỏi thường gặp
Các câu hỏi thường gặp của người sử dụng là một chỗ tuyệt vời để bắt đầu đóng góp cho một dự án. Nếu bạn không phải là dân kỹ thuật, bạn đơn giản có thể đưa lên một lưu ý về vấn đề đó cho trình theo dõi với một đề xuất đầu vào của FAQ.
Các cách làm và các sách phụ đạo
Các tài liệu ngắn, tự phục vụ cũng là một chỗ tuyệt vời để bắt đầu cho cả những người sử dụng và những người đóng góp. Nếu bạn thành thạo trong một tính năng đặc thù của dự án, thì việc làm tài liệu về nó cho những người khác có thể là một đóng góp cực kỳ được chào đón. Tương tự, nếu bạn đã trải qua một vấn đề với phần mềm hoặc bất kỳ khía cạnh nào khác của dự án, thì bạn có thể viết về nó và làm tài liệu về một giải pháp, nó sẽ rất hữu dụng cho những người sử dụng khác. Việc cung cấp các video chụp lại màn hình có thể rất có hiệu quả cho những chỉ dẫn và các cách làm (HOWTO), cũng có thể là một cách thức tốt để đóng góp.
Hướng dẫn người sử dụng
Việc viết và duy trì một hướng dẫn sử dụng toàn diện cho dự án là một công việc khó khăn, đòi hỏi nhiều thời gian và nỗ lực. Bất kỳ sự bổ sung, giải thích và sửa cho đúng nào cho sách hướng dẫn sử dụng từ những người sử dụng vì thế đều rất được đội dự án đánh giá cao. Để làm điều này, người sử dụng có thể viết trong các phần lưu trữ của các danh sách thư hoặc trên các diễn đàn, chúng có thể sẽ có nhiều tư liệu, có thể dễ dàng được chuyển đổi thành các đoạn văn bản. Một lần nữa, cộng đồng thường sẽ hạnh phúc để giúp những người viết tài liệu.
Chỉ dẫn cho những người phát triển
Nếu dự án có một chỉ dẫn cho những người phát triển, thì đội sẽ hầu hết nhất định chào đón những cải tiến hoặc nội dung mới, nhưng bạn sẽ cần một số kỹ năng kỹ thuật để đóng góp cho dạng tài liệu này. Nếu bạn có dạng tinh thông này, thì đây là nơi tuyệt vời để bắt đầu giành được sự hiểu biết về cách để phát triển với hoặc vì dự án. Nơi lưu trữ trên danh sách thư và các diễn đàn của các lập trình viên sẽ có nhiều thông tin hữu dụng, và bản thân các lập trình viên thường sẽ hạnh phúc để giúp các tác giả của tài liệu.
Các cộng đồng ngôn ngữ
Ngôn ngữ mặc định cho hầu hết các dự án nguồn mở là tiếng Anh. Nếu tiếng Anh không phải là ngôn ngữ bẩm sinh của bạn, thì bạn có thể thực hiện một đóng góp có giá trị bằng việc dịch các ứng dụng và tài liệu của dự án sang ngôn ngữ của riêng bạn. Thậm chí nếu bạn có thể dành ra chỉ một giờ đồng hồ đâu đó, thì công việc dịch của bạn cũng sẽ tạo ra sự khác biệt.
Hãy tìm cách đóng góp bằng việc tham gia vào danh sách thư phù hợp. Một số dự án lớn hơn có một đội riêng cho từng ngôn ngữ được thể hiện trong dự án. Nếu ngôn ngữ của bạn còn chưa được thể hiện, thì bạn có thể thậm chí bắt đầu độ ngôn ngữ của riêng bạn.
Quyên tiền và hỗ trợ các lập trình viên
Đối với một dự án phát triển nguồn mở, tiền là ít quan trọng hơn so với sự đóng góp tích cực. Tuy nhiên, một số người hoặc tổ chức lại giàu về tiền và nghèo về thời gian, và có thể ưu tiên thực hiện sự đóng góp của họ ở dạng tiền mặt. Nếu bạn muốn thực hiện sự quyên tiền đáng kể, bạn có thể có khả năng đỡ đầu cho một lập trình viên để triển khai một tính năng mới hoặc sửa một số lỗi.
Website của dự án nên đưa ra chỉ dẫn rõ ràng về cách đi để thực hiện một sự quyên tiền. Nó cũng nên đảm bảo rằng có một cơ chế an ninh và dễ sử dụng cho việc chấp nhận sự quyên tiền mà sẽ cho phép các loại đỡ đầu khác nhau thể hiện sự đánh giá cao của họ đối với dự án như một tổng thể.
Kết luận
Ban đầu, việc tham gia trong một cộng đồng phần mềm nguồn mở (bản dịch tiếng Việt) sẽ là một viễn cảnh đáng sợ. Nhưng hãy nhớ rằng các cộng đồng như vậy cuối cùng bao gồm những người với tất cả những điểm mạnh và yếu của mọi người ở khắp mọi nơi. Mỗi người tham gia vào dự án đang làm việc hướng tới mục tiêu chung, và các kỹ năng hữu ích, một chút nỗ lực và một vài sự khiêm tốn sẽ luôn được chào đón. Tương tự, việc có thời gian để lên kế hoạch cho sự tham gia của bạn bằng việc tư vấn cho website của dự án, và tìm hiểu cộng đồng bằng việc đi theo các thảo luận trong các danh sách thư, sẽ làm mịn con đường tới thành công và thực hiện sự đóng góp.
Introduction
You don’t need to be a software developer to contribute to an open source project. The code, documentation and artwork that make up an open source project have all been created, tested, used, discussed and refined by members of the project community. These processes can be broken down into a myriad tasks, requiring different skills, levels of involvement and degrees of technical expertise. So, if you want to get involved in an open source project, there is a range of roles to choose from. These include:
  • providing feedback
  • helping new users
  • recommending the project to others
  • testing and reporting or fixing bugs
  • requesting new features
  • writing and updating software
  • creating artwork
  • writing or updating documentation
  • translating
All of these contributions help to keep a project active and strengthen the community. The project team and the broader community will therefore welcome and encourage participation, and attempt to make it as easy as possible for people to get involved. The exact roles and mechanisms for participating will be dictated by the project’s governance model and vary from one project to another. The tools for communicating within the community and making contributions will also vary.
For most projects, the first step is normally to join one or more of the project mailing lists, depending on your area of interest. Mailing lists are generally the main communication channel, but some projects may also use forums or other tools. The project’s website should provide clear guidelines on how to get started and which channels to use.
Let’s explore some of the roles you could fulfil in an open source project.
User experience
Project teams are always keen to know more about how users engage with the project and how they would like it to look and function. This feedback is vital to the life of the project. Without it, the team would not be able to improve the software’s usability, a key element that could make the project stand out among its competitors.
As a new user, you may feel reluctant to make requests or provide criticism, no matter how constructive, for fear of seeming impolite or ungrateful. But most open source projects will encourage you in every possible way to contribute to discussions on user mailing lists or add feature requests to the issue tracker. At the same time, they will probably make you aware that not all feature requests will be implemented, although every comment will be carefully considered and feedback will be provided as to how important that request is.
User support
Once you have gained some experience of the project, you can support new users who have no experience. Helping people to get started is critical to the medium- to long-term success of the project. This is because some of these newcomers will themselves become contributors and ensure the ongoing development and support of the project.
The quickest, easiest and most significant way to provide such support in the early stages of your involvement is to answer newcomers’ questions. These are often best answered by those who have themselves recently experienced the same issues. By answering questions from newcomers, you will also be helping the project by saving the developers time.
As you gain experience, you will be able to ask and subsequently answer more complex questions. In turn, you will be supported by more experienced users as the complexity of your own requests grows. In this way, providing support will benefit both you and the project itself.
Evangelising and marketing
It goes without saying that the lifeblood of any open source project is its users: more users means more opportunities for success. And feedback from users on what they want helps to ensure that the product is of increasingly good quality. So it is vital that the project attracts users on an ongoing basis. As an existing user, you can help the project to do this by telling people about it and encouraging them to try it out.
The project may also engage in more active forms of marketing, such as representation at conferences and workshops. By being willing to present the project to others, you can also help to ensure that a flow of users, and thus potential contributors, is maintained.
Software design and implementation
As a software developer, your first step towards contributing code will probably be reporting bugs and submitting fixes. If you are not yet a committer on the project, you would normally make these contributions by submitting a patch on the issue tracker. You might then go on to design new features for the project or redesign or develop current ones.
Remember that all significant code contributions should be discussed on the developer mailing list before implementation. This will allow the project team to ensure that the design is appropriate and that user experience will not be adversely affected. Smaller contributions, such as bug fixes, can be submitted as patches on the issue tracker without discussion.
Quality assurance
Quality assurance (QA) is one of the most important elements of any project. It is also something to which almost anyone can contribute. As a user, you can help by testing release candidates before they are formally released and reporting any bugs on the issue tracker. You can also run the latest version of the software and report any bugs. Developers can contribute by fixing those bugs, and by helping to manage them until they are fixed.
To encourage ongoing contributions, it is vital that the project team keeps users and contributors informed of activity on issues in the issue tracker. For example, they should examine each new issue and comment on it, marking duplicates and highlighting workarounds. They should also discuss potential solutions and close them when work is complete.
Graphics and art
If you have graphics or art skills, you can make a valuable contribution by creating icons, logos, wallpapers, banners, labels and other artwork. These will be seen every day and could potentially be used throughout the project and across all its products. You could also participate by designing websites, designing marketing material or providing illustrations for presentations and guides.
You would normally submit this kind of contribution via the relevant mailing list or issue tracker once you have engaged with a project and developed a feel for it.
Writing
Documentation is critical to new users and something that developers don’t always have time to write or update. One of the best ways in which you, as an existing user, can contribute is by documenting your own experiences of the project. This could be in the form of tutorials, guides, HOW TOs or FAQs (frequently asked questions). These don’t have to be perfect: in most cases, a skeleton document with bullet-point instructions is better than nothing at all. Those who use the document will probably ask supplementary questions and, once they understand, can help to pad out the details. Most communities are willing to help documentation authors by confirming information, answering questions or providing more detail.
Many open source projects maintain a separate community wiki for editing and writing documentation. Rather than answer the same question twice, you could write up the answer and make it available to everyone on the wiki. You could also contribute to the wiki whenever you see something that could be improved or updated, or report an error as a bug. It is helpful to make people aware of any changes you have made by mentioning them on the mailing list.
User FAQs
User FAQs are an excellent place to start contributing to a project. If you’re not technical, you can simply post a note in the issue tracker with a proposed FAQ entry.
HOW-TOs and tutorials
These short, self-contained documents are also a great place to start for both users and contributors. If you are well-versed in a particular feature of a project, documenting it for others would be an extremely welcome contribution. Equally, if you have come across a problem with the software or any other aspect of the project, you could write about it and document a solution, which will be very useful to other users. Providing video screencasts, which can be very effective for introductions and HOW-TOs, would also be a good way to contribute.
User guide
Writing and maintaining a comprehensive user guide for the project is a difficult job requiring a lot of time and effort. Any additions, clarifications and corrections to the user guide from users would therefore be very much appreciated by the project team. To do this, users can draw on the user mailing list archives or forums, which will probably contain a lot of material that can be easily converted into paragraphs. Again, the community will usually be happy to help documentation writers.
Developer guide
If the project has a developer guide, the team will almost certainly welcome improvements or new content, but you will need some technical skills to contribute to this kind of documentation. If you have this kind of expertise, it’s a great place to start gaining an understanding of how to develop with or for the project. The developer mailing list archives and forums will contain plenty of useful information, and the developers themselves are usually happy to help documentation authors.
Language communities
The default language for most open source projects is English. If English is not your native language, you could make a valuable contribution by translating the project applications and documentation into your own language. Even if you can spare only an hour here or there, your translation work will make a difference.
Find out how to contribute by joining the appropriate mailing list. Some of the bigger projects have a separate team for each language represented on the project. If your language is not yet represented, you could even start your own language team.
Monetary donations and developer support
For an open development project, money is less important than active contribution. However, some people or organisations are cash rich and time poor, and would prefer to make their contribution in the form of cash. If you want to make a significant donation, you may be able to sponsor a developer to implement a new feature or fix some bugs.
The project website should provide clear guidance on how to go about making a donation. It should also ensure that there is a secure and easy-to-use mechanism for accepting donations that will allow various categories of sponsors to express their appreciation for the project as a whole.
Conclusion
Initially, participating in an open source software community will be an intimidating prospect. But remember that such communities are ultimately composed of people, with all the virtues and foibles of people everywhere. Everyone involved in the project is working towards a common goal, and useful skills, a bit of effort and some humility will always be welcome. Equally, taking the time to plan your involvement by consulting the project’s website, and getting to know the community by following discussions on the mailing lists, will smooth the path to a successful and fulfilling collaboration.
Dịch: Lê Trung Nghĩa

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.