"Đó không phải là lỗi, đó là tính năng – That’s not a bug, that’s a feature" là một câu đùa thường thấy trong giới công nghệ, nói về việc có thể biến một "lỗi – bug" thành tính năng bằng cách gọi luôn nó là tính năng. Trên lý thuyết, người dùng sẽ không thể phàn nàn về nếu như nhà phát triển tuyên bố "lỗi" chính là "tính năng".
Ta sẽ chẳng bao giờ biết ai là cha mẹ đẻ của câu nói này, hay không thể hiểu được trong hoàn cảnh nào mà ra được câu nói nổi tiếng trên. Ta chỉ biết rằng nó đã rất nổi tiếng trong giới kĩ sư (từ máy móc cơ học cho tới máy tính) – những người tiếp xúc với "bug" nhiều nhất.
Hồi thế kỉ 19, các nhà phát minh, các kĩ sư chế tác đã dùng từ "bug" để mô tả những "khuyết điểm" của công nghệ. Lúc ấy, họ đang nói về những lỗi trong hệ thống máy móc cơ học, mà vào thời điểm của những thứ máy móc cổ ấy, thì "khuyết điểm" luôn đi đôi với sản phẩm tệ hại. "Bug" sẽ không bao giờ biến thành "tính năng – feature" trong giai đoạn cổ xưa của thế kỷ 19.
Nhưng khi "bug" bò vào từ điển của các coder, nó trở nên uyển chuyển hơn khi được áp dụng lên nhiều thứ hơn. Chẳng lâu sau, "it’s not a bug, it’s a feature" xuất hiện và trở thành câu nói nửa đùa nửa thật, đã ám ảnh ngành lập trình máy tính ngay từ những ngày đầu được sinh ra.
Với những cá nhân không nghĩ giống các coder, thì có thể hiểu đơn giản: ứng dụng và các chương trình là tổ hợp những "thuật toán", những chuỗi mệnh lệnh có yêu cầu – thực hành cụ thể, liên tục đáp ứng yêu cầu với độ chính xác của một cỗ máy. Nhưng mặc dù nó có tính logic cao, bản thân mớ code đó không phải là hoàn hảo.
Một chương trình là sản phẩm sau cuối của một quá trình dài những bàn tán, những đồng tình và những ý kiến trái chiều. Khi nó tới tay người dùng, sẽ lại xuất hiện một loạt những kì vọng khác: phần mềm đáng lẽ phải được thế này, chương trình đáng lẽ phải được thế kia.
Ví dụ đơn giản nhất: chỉ cần có sự thay đổi nhỏ thôi là màn hình cái máy đang xoay ngang bỗng dựng dọc lên, với người viết code thì đó là sự nhạy bén cần có, là kết quả của một loạt lệnh đầu vào, nhưng với người dùng thì lại là "tại sao mà cái máy nó nhạy thế, đang xem phim dở cơ mà!".
Nhưng mà ai trong chúng ta có thể đánh giá được nó đây? Trong một bản nghiên cứu "bug" năm 2013, một nhóm học giả Đức đào xới hết 5 bản báo cáo của 5 dự án phần mềm lớn, đánh giá tính chất của hàng ngàn lỗi trong các dòng code. Họ phát hiện ra là chính bản thân những tờ báo cáo kia cũng đầy lỗi, nhiều "bug".
Họ kết luận "Cứ mỗi 3 bug xuất hiện, ta coi đó không phải là bug". Kết quả nghiên cứu được nhóm học giả Đức đặt cho một cái tên sáng tạo bất ngờ: "Đó không phải là lỗi, đó là tính năng".
Trong giới lập trình, mỗi quan hệ giữa "lỗi và tính năng" vừa là cái cớ để họ biện bạch, lại vừa là tiếng lòng coder cho thấy họ chịu áp lực từ nhiều phía quá. Còn với người dùng chúng ta, ta nói cái câu "không phải lỗi, là tính năng" với một giọng chua cay.
Cách đây chẳng lâu, ta thấy các thứ phần mềm sao mà lung linh ảo diệu thế. Nhưng giờ ta đã nhìn nghệ thuật lập trình bằng một con mắt khác.
Những thứ ứng dụng hào nhoáng đã và đang được thiết kế để lấy thông tin người dùng, phục vụ mục đích xấu. Đó chính là các tính năng đấy, nhưng giờ ta lại coi các "tính năng" đó là "lỗi". Gió đã đổi chiều.
Khi mà câu nói "It’s not a bug, it’s a feature" bắt đầu xuất hiện khắp nơi, ta bắt đầu thấy có vấn đề. Minh chứng: trong một tháng đầu năm 2018, câu trên đã xuất hiện tới 146 lần. Chính câu nói nổi tiếng trong giới lập trình đã biến thành một "bug", cũ rích và sáo rỗng tới mức ta cảm thấy nhàm chán.
Nhưng chờ đã! Gạt bỏ mọi sự lạm dụng từ ngữ qua một bên, ta sẽ thấy một sự thật vẫn nằm đó từ những ngày đầu. Chẳng phải sự tiến hóa của con người cũng là một quá trình mà trong đó, những "lỗi" trong các dòng mã gen đã tạo nên những chức năng sinh học của giống loài thông minh nhất hành tinh?
Mỗi một cá nhân chúng ta là là một chủ thể tích lũy hàng đống lỗi rồi dần biến thành những chức năng. Con người chúng ta chính là hiện thân của "It’s not a bug, it’s a feature".