056.3 Bài 1
Chứng chỉ: |
Open Source Essentials |
---|---|
Phiên bản: |
1.0 |
Chủ đề: |
056 Cộng tác và Giao tiếp |
Mục tiêu: |
056.3 Công cụ Giao tiếp và Cộng tác |
Bài học: |
1 trên 1 |
Giới thiệu
Rất nhiều dự án mã nguồn mở đều nhận được sự đóng góp từ nhiều cá nhân tích cực trên toàn thế giới. Sự hợp tác sẽ chủ yếu diễn ra trong “không gian ảo” và những người đóng góp thường phân bổ trên khắp các quốc gia, châu lục và múi giờ. Thêm vào đó, họ cũng sẽ nói các ngôn ngữ khác nhau. Điều này có nghĩa là chúng ta có thể ở bất kỳ đâu trên thế giới và đóng góp cho một dự án mã nguồn mở cho dù quốc gia hay ngôn ngữ của chúng ta có là gì đi chăng nữa!
Sự đa dạng này khiến việc đóng góp cho một dự án mã nguồn mở trở nên cực kỳ có giá trị vì chúng ta có thể từ đó mở rộng phạm vi làm việc và học được rất nhiều điều điều; tuy nhiên, nó cũng đồng thời có thể khiến cho việc giao tiếp và phối hợp trở nên tương đối khó khăn. Giao tiếp hiệu quả và năng suất chính là chìa khóa cho sự thành công và tính bền vững của bất kỳ một dự án mã nguồn mở nào. Để đảm bảo việc giao tiếp hiệu quả, các dự án mã nguồn mở đã tạo ra các cấu trúc và sử dụng nhiều công cụ khác nhau nhằm tăng cường hiệu quả hợp tác cũng như giúp việc đóng góp trở nên dễ dàng hơn.
Một thách thức khác nữa là các dự án mã nguồn mở — thường do các tình nguyện viên đứng sau — phải đối mặt với một số biến động về sự tham gia của các cá nhân. Cuộc sống và sở thích của mọi người đều sẽ thay đổi, và một số người có thể sẽ không còn hứng thú hoặc đơn giản chỉ là không có thời gian. Chúng ta có thể đã đóng góp cho một dự án mã nguồn mở trong nhiều năm, nhưng khi chúng ta thay đổi công việc, kết hôn hoặc sinh con, rất có thể chúng ta sẽ không còn đủ thời gian để làm các công việc tình nguyện nữa.
Do đó, ngoài việc cung cấp phương tiện giao tiếp hiệu quả thông qua các công cụ phù hợp, các dự án mã nguồn mở cũng sẽ cần phải đảm bảo việc bảo tồn và chia sẻ kiến thức để tránh tình trạng “bình mới, rượu cũ”. Việc bảo tồn thông tin cũng giúp những người đóng góp có thể học hỏi từ những sai lầm trong quá khứ của những người đi trước và tránh mắc phải những lỗi tương tự.
Bài học này sẽ trình bày về các công cụ chung hỗ trợ cho việc cộng tác trong một dự án mã nguồn mở cũng như giới thiệu về cách giao tiếp trong cộng đồng quốc tế. Chúng ta sẽ biết được rằng có một phương pháp rất dễ dàng để mọi người đều có thể thực hiện những đóng góp đầu tiên của mình!
Một ví dụ về giao tiếp và chia sẻ thông tin đáng được nhắc tới là LibreOffice. LibreOffice là một bộ công cụ năng suất văn phòng mã nguồn mở có sẵn tới hơn một trăm ngôn ngữ. Người dùng cuối của nó có thể là từ những người dùng gia đình thông thường đến các văn phòng chính phủ và tập đoàn lớn. Tương tự, nó cũng có một số lượng người đóng góp rất đa dạng — không chỉ là các nhà phát triển mà còn cả những người dân bản địa hóa, tác giả tài liệu, người tiếp thị, kỹ sư đảm bảo chất lượng, quản trị viên cơ sở hạ tầng, nhà thiết kế đồ họa và UX và hơn thế nữa.
Nói cách khác: đối với LibreOffice cũng như nhiều dự án mã nguồn mở khác, chúng ta có thể đưa các kỹ năng và thiên phú của bản thân vào các lĩnh vực mà chúng ta cảm thấy phù hợp. Chúng ta không nhất thiết phải là người được đào tạo về kỹ thuật hoặc là một nhà phát triển — chúng ta cũng có thể đưa vào sự sáng tạo, tài năng nghệ thuật hoặc kỹ năng ngôn ngữ của mình. Dự án này cũng đã ra mắt một trang web hiển thị các lĩnh vực đóng góp khác nhau: https://whatcanidoforlibreoffice.org. Vì những lý do này, LibreOffice là một ví dụ minh họa rất hay về nhiều khía cạnh của công tác cộng đồng.
Các Phương thức Giao tiếp
Trước khi đi sâu vào chi tiết về các công cụ giao tiếp, chúng ta cần phải hiểu cách thức giao tiếp nói chung vì những cân nhắc này sẽ ảnh hưởng đến việc lựa chọn công cụ.
Các dự án mã nguồn mở có hai phương thức chính để giao tiếp. Với giao tiếp đồng bộ, mọi người sẽ giao tiếp cùng một lúc như trong các cuộc trò chuyện trực tiếp, các cuộc họp video hoặc các cuộc gọi. Với giao tiếp không đồng bộ, mọi người sẽ giao tiếp vào những thời điểm khác nhau thông qua email và SMS hoặc thư bưu chính hay fax.
Tuy nhiên, sự phân biệt này không phải lúc nào cũng dễ thực hiện. Ví dụ: một ứng dụng nhắn tin trên điện thoại di động như WhatsApp, Telegram, Signal hoặc Element về mặt kỹ thuật là một phương thức giao tiếp không đồng bộ. Tuy nhiên, nếu cả hai bên đối tác đều đang trực tuyến cùng một lúc và trả lời ngay lập tức, điều này có nghĩa là họ đang tham gia vào một cuộc trò chuyện trực tiếp — tức giao tiếp đồng bộ.
Ví dụ này cho thấy một phần của giao tiếp cũng phụ thuộc vào cách mọi người sử dụng công cụ cũng như kỳ vọng của họ. Mỗi nhiệm vụ có thể sẽ cần tới một bộ công cụ giao tiếp khác nhau. Các phần sau sẽ giải thích chi tiết về những vấn đề này.
Giao tiếp Đồng bộ
Giao tiếp đồng bộ là một cách giao tiếp rất hiệu quả nhưng đồng thời cũng đòi hỏi rất cao. Nó đưa mọi người lại gần với nhau trong cùng một thời điểm và một không gian vật lý hoặc ảo.
Một cuộc họp trực tiếp là một phương pháp lý tưởng để giao tiếp một cách tương tác thay vì gửi những email dài dòng có nguy cơ gây hiểu lầm. Giả sử chúng ta đang muốn tìm hiểu thêm về một dự án mã nguồn mở và làm quen với mọi người trong cộng đồng. Email và trang web có thể giúp giới thiệu và khiến cho rào cản gia nhập giảm bớt; tuy nhiên, một ấn tượng ban đầu thực sự tốt sẽ được hình thành khi chúng ta thực sự có thể nói chuyện trực tiếp với ai đó — chính những tương tác trực tiếp này thường sẽ khiến mọi người thích thú hơn về một dự án mã nguồn mở và làm họ nảy sinh muốn đóng góp cho dự án.
Ngoài việc giúp mọi người hiểu nhau hơn, các cuộc họp đồng bộ cũng rất hữu dụng khi chúng ta cần thảo luận mọi việc thông qua tương tác (ví dụ như trong trường hợp xảy ra xung đột hoặc vấn đề, hoặc khi chúng ta phải chia sẻ một thông điệp tiêu cực).
Nhược điểm của nó là các dự án quốc tế sẽ phải đối mặt với một thách thức mà công nghệ không thể vượt qua được: sự khác biệt về múi giờ. Nếu dự án có những người đóng góp sống ở các châu lục khác nhau, sẽ rất khó để tìm được một khung giờ họp phù hợp với tất cả mọi người. Một người nào đó ở Úc có thể vừa mới thức dậy, trong khi một người khác ở châu Âu lại sắp kết thúc một ngày làm việc. Một thách thức nữa là một số người chỉ có thể làm việc vào ban đêm hoặc cuối tuần, trong khi những người khác lại thích làm việc trong giờ hành chính.
Ngoài ra, không phải ai cũng có thể nói tiếng Anh trôi chảy, và hiện vẫn chưa có công cụ dịch thuật trực tiếp nào có thể được truy cập một cách rộng rãi. Điều này cũng tạo ra thêm một rào cản khác nữa.
Mặc dù vậy, các cuộc họp video là một trong những công cụ giao tiếp thường xuyên nhất trong các dự án mã nguồn mở. Dự án LibreOffice — được dùng làm ví dụ cho bài học này — có các cuộc họp trực tuyến thường xuyên cho cộng đồng của mình (ví dụ như các nhà phát triển, tiếp thị, cơ sở hạ tầng, đảm bảo chất lượng, trải nghiệm người dùng và thiết kế).
Giao tiếp không Đồng bộ
Giao tiếp không đồng bộ cho phép chúng ta tham gia thảo luận vào thời điểm và tốc độ thuận tiện đối với bản thân. Ví dụ được biết đến nhiều nhất có lẽ chính là email: chúng ta có thể trả lời một email bất cứ khi nào chúng ta muốn dù là sau một phút, một tiếng hay thậm chí là một ngày.
Đối với giao tiếp không đồng bộ, nội dung thường ở dưới dạng chữ viết — điều này mở ra tính năng dịch máy. Điều này có thể giúp chúng ta đọc và hiểu các tin nhắn được viết bằng các ngôn ngữ khác với ngôn ngữ mẹ đẻ của mình. Chúng ta thậm chí cũng có thể dịch ngược lại câu trả lời của chính mình.
Ngoài ra, nội dung khi được viết ra có thể sẽ giúp chúng ta dễ dàng ghi nhớ kiến thức và tạo tài liệu hơn. Giả sử chúng ta muốn viết một tài liệu hỗ trợ về cách sử dụng một tính năng cụ thể của phần mềm: nếu chúng ta giải thích cho người dùng qua điện thoại, việc chuyển lời nói của mình thành một trang tài liệu phù hợp sẽ khó hơn nhiều so với khi chúng ta giải thích quy trình bằng một văn bản.
Giao tiếp nội bộ và Giao tiếp bên ngoài
Một lưu ý cuối cùng nhưng cũng không kém phần quan trọng: giao tiếp cũng phụ thuộc vào người tiếp nhận giáo tiếp — tức là cả nội bộ lẫn bên ngoài. Cách viết một ghi chú kỹ thuật nội bộ dành cho các quản trị viên hệ thống sẽ khác với cách viết một thông cáo báo chí được gửi đến hàng trăm nhà báo. Tuy nhiên, hãy nhớ rằng, do bản chất của một dự án mã nguồn mở, các giao tiếp thường không được định sẵn là dành riêng cho một đối tượng công chúng vẫn sẽ có thể được hiển thị một cách công khai — ví dụ như trong kho lưu trữ danh sách gửi thư (trong trường hợp của LibreOffice sẽ là https://listarchives.documentfoundation.org/).
Công cụ Giao tiếp
Với kiến thức về những khía cạnh khác nhau về giao tiếp này, trong các phần sau, chúng ta sẽ cùng tìm hiểu về một số công cụ giao tiếp thường được sử dụng trong một dự án mã nguồn mở.
Email, Danh sách gửi thư và Bản tin
Email chính là một trong những công cụ “kinh điển” đầu tiên mà chúng ta sẽ gặp khi tham gia vào một dự án mã nguồn mở. Có nhiều dự án chạy các danh sách gửi thư — về cơ bản là các danh sách phân phối dành cho email: chỉ với một email, chúng ta có thể tiếp cận tới hàng trăm hoặc thậm chí là hàng nghìn người đăng ký theo dõi quan tâm đến các chủ đề cụ thể.
Danh sách gửi thư là một trong những công cụ lâu đời nhất được biết đến trong bất kỳ một dự án mã nguồn mở nào và được sử dụng để phối hợp nội bộ dự án cũng như để tương tác với người dùng. Nếu có câu hỏi về phần mềm hoặc muốn báo cáo lỗi trong chương trình, khả năng cao là sẽ có một danh sách gửi thư cho phép chúng ta làm điều này. Ví dụ: cộng đồng LibreOffice cung cấp nhiều danh sách gửi thư quốc tế và địa phương cho nhiều chủ đề khác nhau (https://www.libreoffice.org/get-help/mailing-lists/) từ hỗ trợ người dùng đến các thảo luận và phối hợp cơ sở hạ tầng của nhà phát triển (Trang web danh sách gửi thư của LibreOffice).
Mỗi lá thư được gửi đi thường cũng sẽ được lưu trữ trong kho lưu trữ danh sách gửi thư công khai nhằm mục đích tham khảo trong tương lai. Một khi đã được gửi, thư sẽ không thể dễ dàng bị xóa đi. Có một câu nói rất phổ biến là “Internet không bao giờ "forget" (quên)”. Do đó, chúng ta nên cẩn thận với những gì mình viết vì khả năng cao là chúng ta sẽ không thể rút lại chúng. Một số người để địa chỉ hoặc số điện thoại cá nhân trong chữ ký hoặc gửi các tài liệu mật dưới dạng tệp đính kèm — đây là những ví dụ về các hành vi mà chúng ta nên tránh.
Một nhược điểm của danh sách gửi thư chính là việc quản lý chúng trong các chương trình thư không phải lúc nào cũng đơn giản. Chúng ta sẽ cần tới thứ được gọi là bộ lọc dựa trên các thành phần thư cụ thể (ví dụ như tiền tố trong chủ đề thư). Những thao tác cần tới sự tinh tế trong việc quản lý một số lượng lớn email có thể sẽ là một rào cản đối với những người dùng thiếu kinh nghiệm — đặc biệt là nếu thư của chúng ta là thư gửi một lần. Do đó, ngày càng có nhiều dự án chuyển hướng sang diễn đàn thảo luận mà chúng ta sẽ sớm cùng tìm hiểu sau đây.
Bản tin chính là một hình thức đặc biệt của danh sách gửi thư. Nếu muốn cập nhật những diễn biến mới nhất của dự án và nhận thông báo về các bản phát hành phần mềm mới, chúng ta có thể đăng ký nhận bản tin và nhận email về những sự kiện quan trọng.
Diễn đàn Thảo luận
Ngoài việc phải quản lý danh sách gửi thư trong ứng dụng email, một nhược điểm khác của email chính là ngày càng có nhiều người — đặc biệt là thế hệ trẻ --không còn thích giao tiếp qua email nữa. Vì nhiều lý do khác nhau, ngày càng có nhiều dự án mã nguồn mở chuyển hướng việc giao tiếp của họ sang diễn đàn thảo luận. Ý tưởng này nhìn chung cũng khá giống với email: mỗi diễn đàn sẽ có nhiều danh mục khác nhau với các đề tài cụ thể để mọi người cùng tham gia thảo luận — các danh mục này được gọi là các chủ đề. Tương tự như email, trên diễn đàn, chúng ta có thể liên hệ với dự án mã nguồn mở và phối hợp các hoạt động, đưa ra các đề xuất về hướng đi của dự án cũng như báo cáo lỗi với tư cách là người dùng cuối.
Mọi thứ được đăng lên một diễn đàn thường sẽ được hiển thị cho toàn bộ công chúng nhìn thấy giống như trong danh sách gửi thư; nhưng điểm khác biệt là ở chỗ, tùy thuộc vào cấu hình của diễn đàn, nội dung cũng có thể sẽ được chỉnh sửa hoặc xóa đi sau đó. Khả năng sử dụng của diễn đàn — đặc biệt là đối với người dùng thiếu kinh nghiệm — thường tốt hơn so với danh sách gửi thư. Dự án LibreOffice đã bắt đầu chuyển đổi một số danh sách gửi thư của mình thành các diễn đàn (https://community.documentfoundation.org/) và kể từ đó đã nhận thấy sự gia tăng trong việc tham gia thảo luận.
Tin nhắn tức thời và Nền tảng Trò chuyện
Một cách khác để liên lạc với cộng đồng mã nguồn mở chính là thông qua tin nhắn tức thời và các nền tảng trò chuyện. Với sự gia tăng của các công cụ phổ biến như WhatsApp, Telegram, Signal và Matrix, hầu như mọi người đều đã cài đặt một trong những ứng dụng phổ biến này trên thiết bị của họ. Điều này khiến cho rào cản gia nhập giảm đi rất nhiều. Tin nhắn tức thời cũng phổ biến hơn nhiều đối với thế hệ trẻ so với email hoặc diễn đàn. Do đó, không có gì ngạc nhiên khi nhiều dự án mã nguồn mở hiện nay đều áp dụng chúng.
Người tham gia trò chuyện sẽ nhập tin nhắn được gửi đến tất cả những người tham gia khác tương tự như email. Tùy thuộc vào nền tảng trò chuyện, tin nhắn có thể trở nên phong phú bằng các định dạng, đồ họa và tệp đính kèm khác nhau.
Về mặt cấu trúc, các ứng dụng tin nhắn cũng được tổ chức tương tự như các diễn đàn hoặc email. Có một số nhóm hoặc kênh có sẵn để chúng ta có thể tham gia thảo luận về các chủ đề mà mình quan tâm. Tin nhắn thường có thể được chỉnh sửa hoặc xóa và thường cũng có các kênh chỉ sử dụng để thông báo có chức năng tương tự như các bản tin email.
Một nhược điểm của các ứng dụng nhắn tin tức thời là mọi người thường cài đặt chúng trên điện thoại của họ để có thể nhận được thông báo về mọi tin nhắn được gửi. Điều này có thể nhanh chóng gây ra tình trạng thông tin hoặc “mệt mỏi vì thông báo”. Tuy nhiên, với một cấu hình phù hợp, chúng ta có thể kiểm soát được những thông báo này.
Một nhược điểm khác nữa là nhiều ứng dụng nhắn tin đều là sản phẩm độc quyền và nằm trong tay một nhà cung cấp. Điều này làm cho việc lưu giữ thông tin lâu dài trở nên phức tạp hơn vì dữ liệu không thể được truy cập một cách miễn phí.
Giao tiếp độc lập, liên kết và tập trung
Các dự án mã nguồn mở hoạt động trong môi trường mở dựa trên các tiêu chuẩn mở và các công cụ mở. Do đó, điều quan trọng là chúng ta phải hiểu được cách các công cụ khác nhau được thiết kế về phương diện khả năng tương tác. Chúng ta có thể chia các lựa chọn ra thành ba loại chính.
Một nền tảng độc lập sẽ chạy biệt lập cho riêng một cộng đồng. Các diễn đàn hoặc wiki là một ví dụ và chúng thường không được kết nối với các tiến trình của các dự án khác.
Các hệ thống phi tập trung hoặc liên kết chạy riêng cho từng cộng đồng nhưng lại có thể kết nối với nhau. Email chính là một ví dụ vì máy chủ email cục bộ có thể gửi email đến bất kỳ một máy chủ email nào khác trên thế giới. Các ví dụ khác là Nextcloud và ownCloud có thể “liên kết” chia sẻ tệp với các máy chủ khác hay dịch vụ nhắn tin Element nơi chúng ta có thể giao tiếp với người dùng của các máy chủ khác. Các nguyên tắc tương tự cũng áp dụng cho mạng xã hội Mastodon.
Cả các nền tảng độc lập và phân tán đều có một lợi thế lớn: dự án mã nguồn mở vẫn sẽ kiểm soát toàn bộ nội dung và các chức năng. Mọi kiến thức được lưu trữ trong hệ thống như vậy vẫn là tài sản của cộng đồng mã nguồn mở và sẽ không bị bên thứ ba quản lý.
Mặt khác, một hệ thống tập trung sẽ được điều hành bởi một nhà cung cấp và không tương tác với bên thứ ba. Ví dụ điển hình chính là các mạng xã hội như Facebook hoặc Instagram hay các ứng dụng nhắn tin như WhatsApp hoặc Telegram. Tất cả các nội dung sẽ được lưu trữ trên máy chủ của nhà cung cấp bên ngoài và sẽ tuân theo các điều khoản và điều kiện của họ.
Nếu đang hoạt động trong một cộng đồng mã nguồn mở, chúng ta có thể liên lạc với nhau bằng cả ba tùy chọn này. Các hệ thống tập trung rất hữu dụng trong việc tiếp cận mọi người vì chúng rất phổ biến và có một lượng người dùng lớn. Tuy nhiên, đối với công việc thực tế trong dự án, một hệ thống liên kết hoặc độc lập do cộng đồng kiểm soát sẽ là lựa chọn tốt nhất.
Công cụ cộng tác
Sự khác biệt giữa các công cụ giao tiếp và công cụ cộng tác không phải lúc nào cũng dễ thấy. Đối với mục đích của bài học này, mục tiêu chính của các công cụ giao tiếp là cho phép những người tham gia khác nhau giao tiếp với nhau; còn mục tiêu chính của các công cụ cộng tác là giúp mọi người làm việc cùng nhau.
Các công cụ cộng tác phù hợp sẽ cho phép chúng ta lưu trữ tệp, cộng tác trong thời gian thực trên các tài liệu, theo dõi các phiên bản tài liệu và thay đổi giữa các bản phát hành phần mềm, v.v. Trong khi đó, email hoặc các diễn đàn có thể đóng vai trò là nơi lưu trữ nhằm mục đích chung, các công cụ chuyên dụng sẽ giúp kiến thức có thể trở nên dễ truy cập hơn và việc cộng tác trở nên hiệu quả hơn.
Nói cách khác, đây là những công cụ chuyên dụng dành cho các nhiệm vụ cụ thể. Nếu muốn đóng góp cho một dự án mã nguồn mở, chúng ta sẽ sớm được gặp chúng.
Wikis
Một trong những công cụ cộng tác lâu đời và phổ biến nhất chính là wiki. Trở nên phổ biển đặc biệt bởi Wikipedia, một wiki sẽ cho phép nhiều người dùng làm việc cùng nhau trên một trang web được biên soạn từ nhiều tài liệu hoặc “bài viết”. Chúng có thể được nhóm thành nhiều danh mục khác nhau, được lọc theo ngôn ngữ và chứa nhiều định dạng, bảng tính và hình ảnh.
Wiki thường được sử dụng như một cơ sở kiến thức nơi ai cũng có thể đóng góp. Nếu muốn đóng góp nội dung cho một dự án mã nguồn mở, việc tham gia vào wiki của họ là một trong những cách đơn giản nhất. Chúng ta có thể lấy nội dung hiện có và dịch sang ngôn ngữ mẹ đẻ của mình, chỉnh sửa và cập nhật các bài viết hiện có hoặc tạo nội dung mới. Trong wiki của dự án LibreOffice (https://wiki.documentfoundation.org), chúng ta có thể tìm thấy các tài liệu tiếp thị, biên bản họp hội đồng quản trị, hướng dẫn cài đặt và lập kế hoạch hội nghị - tất cả đều bằng nhiều ngôn ngữ khác nhau (LibreOffice Wiki).
Nhiều dự án mã nguồn mở cũng lưu trữ tài liệu và hệ thống trợ giúp tích hợp của chương trình trong wiki. Ngoài ra, các phiên bản cũ của một trang — được gọi là các bản sửa đổi — cũng sẽ được lưu trữ cho mục đích tham khảo trong tương lai.
Mặc dù wiki cũng có thể lưu trữ các tệp dự án nhưng chúng ta còn có nhiều công cụ tốt hơn dành cho mục đích này. Chúng ta sẽ cùng tìm hiểu về các công cụ đó trong bài học này.
Trình theo dõi Lỗi và Sự cố
Một công cụ thường được sử dụng khác trong một dự án nguồn mã mở là trình theo dõi Lỗi (bug trackers) hay còn được gọi là trình theo dõi Sự cố (issue trackers). Nếu phát hiện ra một vấn đề trong phần mềm hoặc muốn đề xuất một tính năng mới, chúng ta có thể chỉ nghĩ đơn giản là gửi đi một email về vấn đề đó. Tuy nhiên, với một công cụ chuyên dụng như trình theo dõi Lỗi, chúng ta có thể cung cấp tất cả các thông tin và các bước cần thiết để tái tạo một vấn đề theo một cách có cấu trúc để giúp các nhà phát triển tái tạo vấn đề một cách dễ dàng hơn. Một báo cáo có cấu trúc như vậy được gọi là một báo cáo lỗi (bug report).
Ngoài ra, thông tin sẽ không bị mất và dự án sẽ không bỏ quên vấn đề; nó có thể giao vấn đề cho đúng người và xem xem có bao nhiêu lỗi đang được xử lý hoặc đang trong quá trình sửa chữa.
Dự án LibreOffice cung cấp một công cụ theo dõi lỗi mà mọi người đều có thể đóng góp (https://bugs.documentfoundation.org).
Bộ phận Trợ gíup và Hệ thống Gửi Phiếu Yêu cầu
Một công cụ tương tự chính là bộ phân trợ giúp (helpdesk) hoặc hệ thống gửi phiếu yêu cầu (ticketing system). Trọng tâm của nó không tập trung vào việc báo cáo các vấn đề về phần mềm mà là giúp người dùng giải quyết mọi loại vấn đề và yêu cầu (chẳng hạn như đối với trang web của dự án).
Bộ phận trợ giúp cổ điển là một đường dây nóng dành cho dịch vụ khách hàng. Khách hàng sẽ gọi điện và báo cáo sự cố và sau đó sự cố này sẽ được chuyển thành một chiếc vé. Quy trình làm việc của một hệ thống bộ phận trợ giúp thường xoay quanh các ưu tiên, mức độ leo thang và thời gian phản hồi.
Không phải tất cả các cộng đồng mã nguồn mở đều cung cấp một hệ thống như vậy, nhưng rất nhiều công ty thương mại đều có dịch vụ này. Ví dụ như đối với dự án LibreOffice, có một hệ thống gửi phiếu yêu cầu cho cơ sở hạ tầng để báo cáo các vấn đề về máy chủ và dịch vụ web.
Hệ thống Quản lý Nội dung (CMS)
Một công cụ quan trọng khác trong việc cộng tác là hệ thống quản lý nội dung (CMS). Đúng như tên gọi, nó giúp chúng ta quản lý nội dung, đặc biệt là đối với các trang web. Nếu bạn có nhu cầu đóng góp vào nội dung hoặc thiết kế trang web của một dự án, hãy làm quen với CMS của họ.
Tương tự như wiki, hệ thống CMS sẽ giúp cấu trúc nội dung theo danh mục và ngôn ngữ. Chúng thường cung cấp một trình soạn thảo WYSIWYG (“what you see is what you get” - những gì bạn thấy là những gì bạn sẽ nhận được) và nhúng mọi thứ vào một mẫu phù hợp: tiêu đề, tiêu đề phụ, bố cục trang và mục menu sẽ được thực hiện tự động; do đó, chúng ta có thể tập trung hoàn toàn vào nội dung. Ngoài ra, trong trường hợp phải thiết kế lại trang, nội dung sẽ không biến mất mà sẽ được điều chỉnh theo mẫu mới.
Hệ thống Quản lý Tài liệu (DMS)
Chúng ta không được nhầm lẫn giữa hệ thống quản lý tài liệu với hệ thống quản lý nội dung. Trong khi một CMS được thiết kế để hiển thị nội dung theo mẫu được xác định trước (chẳng hạn như để trình bày trang web) thì DMS lại được sử dụng để quản lý các tài liệu như hợp đồng, hóa đơn, biên lai, tin nhắn email và tất cả các loại thư từ khác.
Một điểm khác biệt nữa là CMS thường được sử dụng để trình bày công khai, trong khi DMS chủ yếu được sử dụng để quản lý các tài liệu nội bộ.
Với tư cách là người đóng góp cho một dự án mã nguồn mở, chúng ta sẽ ít có khả năng "chạm trán" với hệ thống quản lý tài liệu vì hệ thống này thường dành riêng cho các vai trò cụ thể như kế toán hoặc pháp lý.
Quản lý Mã nguồn (SCM)
Nếu là một nhà phát triển trong một dự án mã nguồn mở, một trong những công cụ chính mà chúng ta sẽ sớm gặp phải là nền tảng quản lý mã nguồn. Tương tự như wiki dành cho các tác giả tài liệu, SCM được các nhà phát triển phần mềm sử dụng để cùng nhau làm việc trên mã.
Chúng ta có các SCM "cổ" như CVS và Subversion; tuy nhiên, hiện nay, Git lại chủ yếu được sử dụng bởi cộng đồng LibreOffice (https://git.libreoffice.org/). Các công cụ này có sẵn cả trên dòng lệnh lẫn giao diện đồ họa để chúng ta có thể tương tác một cách dễ dàng hơn, đặc biệt là đối với người mới bắt đầu.
Các nền tảng quản lý mã nguồn sẽ theo dõi các phiên bản khác nhau của từng tệp, xử lý các thay đổi và đưa các chỉnh sửa vào mã, ghi lại thông tin người đã thực hiện thay đổi nào và lý tưởng nhất là cung cấp một lịch sử đầy đủ về quá trình phát triển của phần mềm.
Các nhà phát triển có thể “kiểm tra” một trạng thái cụ thể của phần mềm, làm việc cục bộ trên đó — có thể là sửa lỗi hoặc triển khai một tính năng mới — sau đó yêu cầu thay đổi này được thêm vào dòng phát triển chính của phần mềm thông qua tính năng yêu cầu hợp nhất (merge request) hay còn được gọi là một yêu cầu kéo (pull request). Việc chấp nhận yêu cầu hợp nhất hoặc yêu cầu kéo sẽ “hợp nhất” các thay đổi do một tác giả thực hiện vào với mã chính.
Chúng ta có các nền tảng tập trung (GitHub và GitLab) tích hợp SCM với wiki, trình theo dõi sự cố và các công cụ cộng tác khác.
Nền tảng quản lý mã nguồn không chỉ giới hạn ở mã chương trình. Một ví dụ cho việc này chính là bản thân bài học này cũng được thực hiện thông qua sự hợp tác trong kho lưu trữ Git!
Tài liệu
Chìa khóa cho sự thành công của mọi dự án mã nguồn mở chính là một tài liệu hướng dẫn phù hợp, lý tưởng nhất là được viết bằng nhiều ngôn ngữ. Dự án LibreOffice có cung cấp sách, tài liệu hướng dẫn và các thẻ tham khảo mới nhất (https://documentation.libreoffice.org) cho phần mềm của mình cũng như các trang trợ giúp riêng về các chức năng cụ thể (https://help.libreoffice.org).
Nhìn chung, có rất nhiều loại tài liệu khác nhau mà chúng ta sẽ thảo luận tới ở các phần sau.
Tài liệu Người dùng
Tài liệu hướng dẫn dành cho người dùng cuối là loại tài liệu được biết đến nhiều nhất; chúng sẽ giải thích cách sử dụng phần mềm. Nếu chưa biết về một tính năng hoặc chức năng nào đó trong chương trình, tài liệu hướng dẫn — có thể là từ dưới hình thức các trang trợ giúp riêng lẻ cho đến một cuốn sách hoàn chỉnh — chính là nơi đầu tiên chúng ta cần tham khảo.
Trang web tài liệu - nơi giải thích cách sử dụng phần mềm - thường là một trong những trang web được truy cập nhiều nhất bên cạnh trang web sản phẩm nơi sẽ cung cấp cho chúng ta một cái nhìn tổng quan về phần mềm và cộng đồng sử dụng phần mềm.
Tài liệu Quản trị viên
Để sử dụng trong các môi trường lớn hơn (như trong một công ty), tài liệu quản trị viên sẽ cung cấp tất cả những thông tin có liên quan để triển khai phần mềm trên quy mô lớn hơn. Những thông tin này bao gồm việc kết nối với cơ sở dữ liệu người dùng và lưu trữ tệp, quản lý cấu hình tập trung và xử lý cập nhật.
Tài liệu dành cho Nhà phát triển và Kiến trúc
Một loại tài liệu khác được hướng đến các nhà phát triển và được gọi là tài liệu dành cho nhà phát triển hoặc tài liệu kiến trúc. Nếu là một nhà phát triển và muốn đóng góp vào mã của một chương trình, tài liệu này sẽ cho chúng ta biết về kiến trúc phần mềm, các tiêu chuẩn mã hóa và các công cụ và quy trình làm việc được sử dụng để làm việc trên phần mềm.
Dự án LibreOffice đã xuất bản một hướng dẫn dành cho nhà phát triển trên wiki của mình để giúp các nhà phát triển quan tâm tham gia vào cộng đồng (https://wiki.documentfoundation.org/Documentation/DevGuide).
Bài tập Hướng dẫn
-
Tại sao các dự án mã nguồn mở nói riêng phải đặc biệt quan tâm tới các công cụ thích hợp dành cho việc giao tiếp và cộng tác?
-
Hãy nêu một ví dụ cho hai loại hình giao tiếp đồng bộ và không đồng bộ.
-
Nhược điểm của ứng dụng nhắn tin là gì và làm sao để tránh được nhược điểm này?
-
Hãy kể tên hai chức năng của một wiki.
-
Sự khác biệt giữa trình theo dõi lỗi và bộ phận trợ giúp là gì?
-
Sự khác biệt giữa một hệ thống quản lý nội dung và một hệ thống quản lý tài liệu là gì?
-
Ưu điểm của một hệ thống độc lập hoặc liên kết so với một hệ thống tập trung là gì?
Bài tập Mở rộng
-
Một trong những điểm khác biệt chính giữa một câu lạc bộ thể thao địa phương và một dự án mã nguồn mở quốc tế là gì?
-
Tại sao việc đóng góp cho một dự án mã nguồn mở lại có thể đặc biệt có giá trị?
-
Dự án Ubuntu sử dụng phần mềm theo dõi lỗi nào?
-
Tên của trang web dành cho danh sách gửi thư của hạt nhân Linux là gì?
Tóm tắt
Trong bài học này, chúng ta đã tìm hiểu về nhiều công cụ khác nhau được sử dụng để giao tiếp và cộng tác trong một dự án mã nguồn mở. Chúng ta đã học về sự khác biệt giữa giao tiếp đồng bộ và không đồng bộ và giữa các công cụ phi tập trung, tập trung và độc lập. Chúng ta cũng đã tìm hiểu về lý do tại sao các công cụ cụ thể lại hữu ích cho các nhiệm vụ cụ thể để làm cho việc đóng góp vào một dự án mã nguồn mở trở nên càng thú vị và có giá trị.
Đáp án Bài tập Hướng dẫn
-
Tại sao các dự án mã nguồn mở nói riêng phải đặc biệt quan tâm tới các công cụ thích hợp dành cho việc giao tiếp và cộng tác?
Một mặt, việc làm việc cùng nhau trong một nhóm phân tán trên toàn thế giới có khả năng sẽ gặp phải rất nhiều thách thức; những thách thức này có thể được giải quyết với các công cụ phù hợp. Mặt khác, các tình nguyện viên có thể sẽ không ở lại mãi; vì vậy, việc giữ lại và chia sẻ kiến thức là một khía cạnh quan trọng khác trong việc sử dụng các công cụ giao tiếp và cộng tác. Việc khiến cho các đóng góp trở nên dễ dàng sẽ giúp duy trì tính bền vững của một dự án.
-
Hãy nêu một ví dụ cho hai loại hình giao tiếp đồng bộ và không đồng bộ.
Giao tiếp đồng bộ có thể là một cuộc trò chuyện trực tiếp, một cuộc điện thoại hoặc cuộc gọi video. Email, tin nhắn SMS, thư bưu chính và fax chính là các ví dụ về giao tiếp không đồng bộ.
-
Nhược điểm của ứng dụng nhắn tin là gì và làm sao để tránh được nhược điểm này?
Khi cài đặt chúng trên điện thoại, chúng ta có thể nhận được quá nhiều thông báo, mỗi tin nhắn mới sẽ là một thông báo. Một cấu hình phù hợp có thể sẽ giúp tránh được điều này. Một nhược điểm khác chính là việc nhiều ứng dụng nhắn tin được điều hành bởi các nhà cung cấp độc quyền.
-
Hãy kể tên hai chức năng của một wiki.
Biên tập và dịch bài viết dưới hình thức hợp tác.
-
Sự khác biệt giữa trình theo dõi lỗi và bộ phận trợ giúp là gì?
Trình theo dõi lỗi là một công cụ phần mềm chuyên dụng để báo cáo lỗi hoặc yêu cầu các tính năng trong phần mềm. Bộ phận hỗ trợ tập trung vào việc hỗ trợ các yêu cầu và quản lý mọi loại vấn đề và yêu cầu (ví dụ như trên trang web).
-
Sự khác biệt giữa một hệ thống quản lý nội dung và một hệ thống quản lý tài liệu là gì?
CMS được sử dụng để trình bày nội dung theo một cách hoặc một mẫu cụ thể, chủ yếu là sử dụng cho các mục đích công khai/ công cộng. DMS được sử dụng để lưu trữ các thư từ hiện có, chủ yếu được sử dụng nội bộ.
-
Ưu điểm của một hệ thống độc lập hoặc liên kết so với một hệ thống tập trung là gì?
Là một hệ thống tập trung nằm dưới sự kiểm soát của một nhà cung cấp bên ngoài. Mọi nội dung sẽ được lưu trữ trên máy chủ của nhà cung cấp bên ngoài và phải tuân theo các điều khoản và điều kiện của họ.
Đáp án Bài tập Mở rộng
-
Một trong những điểm khác biệt chính giữa một câu lạc bộ thể thao địa phương và một dự án mã nguồn mở quốc tế là gì?
Các dự án mã nguồn mở không bị ràng buộc với một ngôn ngữ hoặc một địa điểm cụ thể. Những người đóng góp có thể sống ở các quốc gia và châu lục khác nhau, có ngôn ngữ bản địa khác nhau và thậm chí sống ở các múi giờ khác nhau. Hầu hết các hoạt động được thực hiện trong một dự án nguồn mở đều diễn ra trực tuyến chứ không trực tiếp.
-
Tại sao việc đóng góp cho một dự án mã nguồn mở lại có thể đặc biệt có giá trị?
Nhiều dự án mã nguồn mở có những nhóm người phát triển rất đa dạng. Bằng cách cộng tác với họ, chúng ta có thể học hỏi từ họ, khám phá những điều mới mẻ và mở rộng phạm vi của chính mình.
-
Dự án Ubuntu sử dụng phần mềm theo dõi lỗi nào?
Launchpad.
-
Tên của trang web dành cho danh sách gửi thư của hạt nhân Linux là gì?
https://lkml.org/
.