Giới thiệu

Các bài viết sẽ nhằm vào bất cứ đề tài gì mà tôi có hứng thú muốn đề cập, không theo một chủ đề nhất định. Nguyên tắc viết không theo khuôn khổ và tự do thoải mái nhất có thể, nội dung bài viết cũng sẽ thay đổi liên tục theo thời gian nên sẽ rất khó theo dõi. Bên cạnh đó, độ dài của các bài viết rất bất định, nhiều khi dài lê thê và tràn lan.

Các quy tắc chung (Đọc kỹ trước khi quyết định đọc nội dung bài viết):
Điều 1. Nội dung bài viết có thể dựa hoàn toàn vào quan điểm cá nhân, do đó sẽ khác với quan điểm của bạn. Bạn luôn có quyền ngừng đọc hoặc không cần đọc. Tuy nhiên, một khi đã đọc, bạn không được phép tranh cãi với tác giả. (Bạn được quyền nói xấu tác giả, nếu thích). Tác giả không chịu bất cứ trách nhiệm nào nếu nội dung bài viết gây ảnh hưởng xấu đến sức khỏe hay tâm lý của bạn.
Điều 2. Nội dung bài viết có thể chứa rất nhiều "spoiler" nên khuyên bạn không nên đọc trước khi xem/chơi tựa phim/anime/video game... được nhắc đến trong bài viết. Tác giả không chịu trách nhiệm vì làm bạn mất hứng. Bên cạnh đó, vì sở thích mỗi người mỗi khác, những chi tiết mà tác giả chê khen có thể không giống cách đánh giá của bạn, nên đừng dùng nó làm cơ sở lựa chọn. Ngoài ra, xem lại điều 1.
Điều 3. Bài viết chỉ được phép tồn tại trên blog này. Bạn không được quyền sao chép toàn bộ hay một phần nội dung của bất cứ bài viết nào sang nơi khác (bạn được phép đăng link của bài viết đi nơi khác, nếu muốn). Tác giả phủ nhận hoàn toàn trách nhiệm liên quan đến nội dung bài viết nếu nó được phát tán nơi khác dưới hình thức không phải link, tuy nhiên vẫn giữ quyền đối với nó.

2011-09-09

Đôi điều về cách nhìn nhận của người dùng đối với phần mềm mã nguồn mở tự do

Phần mềm mã nguồn mở tự do (FOSS) là một dạng của Phần mềm, trong đó mã nguồn được viết và phát tán trên tinh thần tự do theo một giấy phép nguồn mở nào đó (phổ biến như GPL, LGPL, Apache 2.0 license, MIT license, BSD license...). Bất cứ lập trình viên nào có khả năng và nguyện vọng đều có thể tham gia đóng góp cho dự án.

Trong bài viết này, tôi muốn đề cập đến thái độ của một bộ phận người dùng đối với phần mềm mã nguồn mở. Thay vì thể hiện thái độ tôn trọng và biết ơn những lập trình viên đã bỏ ra công sức và thời gian để mang đến cho họ những phần mềm gần như hoàn toàn miễn phí (mặc dù phải nói rõ rằng chữ "free" trong FOSS mang nghĩa "freedom" chứ không phải "free beer"), họ lại tỏ ra hằn học một khi phần mềm không đạt được yêu cầu của họ. Một số khác tỏ ra khá tham lam, không quan tâm đến giới hạn của phần mềm và lập trình viên mà luôn đặt ra những đòi hỏi rất cao, thậm chí phi lý.

Cũng phải thừa nhận rằng, khi tham gia các dự án FOSS không có nghĩa là developer (người phát triển phần mềm/lập trình viên) không nhận lại gì, và bao giờ họ cũng tham gia với tinh thần tự nguyện. Đa số ban đầu tham gia nhằm học tập và rèn luyện kỹ năng lập trình của mình, qua đó có thể giúp ích cho nghề nghiệp của họ. Những developer này, nếu không phải toàn bộ thì cũng phần lớn đều là... lập trình viên (vâng, có một số trường hợp họ không xuất thân từ lập trình viên mà là các chuyên ngành khác, thậm chí có khi là luật sư!), có thể vẫn còn đang học, có thể đang thất nghiệp, nhưng phần lớn những developer có nhiều đóng góp cho các dự án nổi tiếng đều có việc làm ổn định. Vì vậy họ chỉ có thể dành thời gian rảnh cho các dự án FOSS. Lý do họ đến với FOSS: giao lưu học hỏi với những developer chuyên nghiệp khác, yêu thích công việc lập trình, có tinh thần vì cộng đồng...

Một khi một dự án FOSS được nhiều người dùng đón nhận, các developer của nó có thể cảm thấy tự hào và được người dùng mến mộ (một dạng Internet fame, để có được nó đôi khi bạn chỉ cần bỏ ra vài nghìn đô-la thực hiện một "ca khúc thảm họa", đôi khi bạn cần phải vắt óc lao tâm để tạo ra một phần mềm có ích, việc gì cũng có cái giá của nó cả). Họ cũng nhận được kinh nghiệm qua việc sửa những lỗi mà người dùng báo lại để nâng cao kỹ năng của mình, tạo thuận lợi cho con đường thăng tiến.

Trong thế giới FOSS, developer và người dùng giữ mối quan hệ chặt chẽ với nhau. Người dùng được sử dụng phần mềm miễn phí, đồng thời có quyền và trách nhiệm báo lại một cách rõ ràng nhất những lỗi mà mình gặp phải để developer có thể mô phỏng lại (reproduce) và sửa lỗi. Ngược lại, developer cũng phải thể hiện tinh thần trách nhiệm và cố gắng sửa những lỗi do chương trình gây nên, bù lại họ nhận được sự tín cậy và ngưỡng mộ của người dùng để họ tiếp tục báo lỗi. Nếu quy trình này được thực hiện hoàn toàn dựa trên tinh thần tôn trọng và thông cảm lẫn nhau thì sẽ đạt được điều gọi là đôi bên cùng có lợi. Tuy nhiên, một số (đôi khi không nhỏ) người dùng tỏ ra khá ích kỷ và không phân biệt được sự khác biệt trong khâu support giữa FOSS và phần mềm trả phí.

Với phần mềm trả phí, developer có trách nhiệm đáp ứng những yêu cầu của người dùng (vốn là khách hàng), tất nhiên là trong khả năng cho phép, vì họ được thuê để làm điều đó (thậm chí có những công ty có đơn vị support riêng, không trực tiếp tham gia dự án phát triển phần mềm). Developer của FOSS không như vậy. Dù có nhận lại như đã nêu, mục tiêu chính của họ cũng là làm vì yêu thích, làm cho vui. Vì vậy nếu thấy việc đó không còn vui nữa thì không việc gì họ phải làm. Đặc biệt bản thân công việc chính của họ đôi khi đã tạo nhiều áp lực. Người dùng nên nhận thức được điều đó để cảm thông với họ và cũng là tự giúp chính mình.

Không muốn quơ đũa cả nắm, nhưng số người dùng thiếu ý thức không chỉ là một con sâu làm rầu nồi canh. Nên nhớ rằng, con số này dù rất nhỏ cũng đã gây khó chịu huống hồ là chiếm một tỷ lệ đáng kể. Có lắm dạng như thế. Chẳng hạn yêu cầu một tính năng riêng biệt nào đó liên tục và nếu không được đáp ứng sẽ tỏ thái độ hằn học với developer, hoặc báo lại một lỗi mà developer không thể nào reproduce được nhưng lại nói chuyện như đổ lỗi cho developer, số khác báo lỗi khá sơ sài dẫn đến bị developer lờ đi nên tỏ ra giận dữ hoặc thất vọng, một số không biết cách sử dụng nhưng lại lười đọc tài liệu mà đi hỏi trực tiếp developer và họ không trả lời lại nên cảm thấy tức tối và "dọa" sẽ bỏ tiền mua phần mềm thương mại, có người làm thật sau đó quay lại chê bai dự án FOSS đó... Còn có thể kể rất nhiều, nhưng tựu chung là không biết người biết ta, ích kỷ, hẹp hòi.

Rõ ràng nếu chúng ta biết giới hạn của những gì mình có thể làm luôn là đều tốt. Từ đó mà có những thái độ đúng đắn khi đối diện với những vấn đề trong cuộc sống. Trong khuôn khổ bài viết, chúng ta nên biết quyền và nghĩa vụ của mình đối với các dự án FOSS và các developer đứng đằng sau nó. Họ cũng là những con người, do đó có đầy đủ các cảm xúc của chúng ta, họ cũng có những giới hạn riêng (thời gian, kỹ năng, điều kiện làm việc...), bản thân điện toán cũng có những giới hạn của nó, nên đôi khi developer có muốn cũng khó thực hiện được ngay. Hiểu được những điều ấy sẽ giúp chúng ta có cái nhìn phù hợp và hành vi ứng xử phải đạo hơn khi gặp những vấn đề liên quan đến FOSS.

(Ghi chú cho bản thân: Bài viết khá lôi thôi và lạc đề, chưa làm nổi bật vấn đề trọng tâm, kết bài quá "lãng", cần bổ sung và sửa đổi khá nhiều nếu có thời gian và hứng thú).