+1

Không Có Công Nghệ Nào Hoàn Hảo – Mọi Thứ Đều Là Sự Đánh Đổi

Không Có Công Nghệ Nào Hoàn Hảo – Mọi Thứ Đều Là Sự Đánh Đổi

Sau nhiều năm (cụ thể là hơn 5 năm) làm việc trong ngành IT, mình đã từng rất nhiều lần đặt niềm tin vào một công nghệ nào đó. Ban đầu là sự hào hứng, rồi đến kỳ vọng, rồi đôi khi là… thất vọng. Nhưng cũng nhờ vậy mà mình dần đúc kết được một bài học tưởng chừng đơn giản, nhưng phải mất rất lâu mình mới thực sự thấm: Không có công nghệ, công cụ hay kỹ thuật nào là hoàn hảo – mọi thứ đều là sự đánh đổi.

Thời trẻ: Cái gì mới cũng hay

(Thực ra là giờ vẫn còn trẻ)

Khi mới vào nghề, mình từng rất “máu lửa”. Thấy công nghệ mới là muốn thử, muốn áp dụng. Mỗi khi đọc được bài blog ca ngợi framework X hay mô hình Y, mình lại nghĩ “Đây rồi, chân ái đây rồi!”. Mình từng hăng hái gò team từ monolith sang microservices, từng push dùng GraphQL thay REST cho "hiện đại", từng chê bai một số công nghệ cũ kỹ như PHP hay jQuery vì “giờ ai còn xài cái này nữa đâu”.

Nhưng rồi qua thời gian, mình chứng kiến những công nghệ “hot” rồi cũng nguội dần. Những framework từng được tung hô rồi cũng dần chìm vào quên lãng. Và những hệ thống cũ kỹ mà mình từng coi thường thì… vẫn chạy tốt, vẫn kiếm tiền đều.

Lựa chọn công nghệ là bài toán đánh đổi

Càng làm lâu, mình càng nhận ra: việc lựa chọn công nghệ chưa bao giờ là bài toán chọn cái “tốt nhất”, mà là chọn cái “phù hợp nhất”. Phù hợp với đội ngũ, với bài toán cụ thể, với thời gian và nguồn lực mình có.

Chọn microservices? OK, nhưng phải chấp nhận chi phí vận hành tăng cao, hệ thống phức tạp hơn. Chọn monolith? Dễ triển khai, dễ quản lý nhưng khó scale khi lớn. Dùng một framework mới? Có thể code nhanh hơn, nhưng team phải học lại từ đầu. Dùng công nghệ cũ? Có thể bị đánh giá là “lỗi thời”, nhưng lại ổn định và dễ tuyển người.

Tất cả đều là sự đánh đổi – không có lựa chọn nào “free lunch”.

Tư duy quan trọng hơn công cụ

Một điều mình cũng học được là: cái đáng trân trọng không phải là bạn biết bao nhiêu công nghệ, mà là bạn hiểu rõ vì sao mình chọn công nghệ đó.

Có những lập trình viên rất giỏi vì họ biết cách đặt câu hỏi: Liệu giải pháp này có thực sự cần thiết? Nó giải quyết được gì? Nó mang lại giá trị gì cho team, cho business? Và nếu có vấn đề xảy ra, team có đủ năng lực để xử lý không?

Tư duy đó – tư duy tỉnh táo, biết phân tích và đánh đổi – quan trọng hơn nhiều so với việc chạy theo công cụ.

Kết: Sự trưởng thành là chấp nhận sự không hoàn hảo

Giờ đây, mỗi khi đứng trước một công nghệ mới, mình không còn vội vàng như xưa. Mình học để hiểu, để có thêm lựa chọn – nhưng không còn kỳ vọng rằng nó sẽ “giải cứu” mình khỏi mọi vấn đề.

Vì cuối cùng, không có gì là hoàn hảo. Chỉ có sự phù hợp – trong hoàn cảnh cụ thể. Và trưởng thành trong ngành này, với mình, chính là khi mình biết chấp nhận điều đó.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí