Bạn có bao nhiêu dự án cá nhân đang nằm phủ bụi trong thư mục localhost chỉ vì chờ "code hoàn hảo"? Đây là lời tâm sự về căn bệnh over-engineering của dân dev và cách để thực sự đưa một sản phẩm ra ánh sáng.
Đã bao giờ bạn ngồi thẫn thờ trước màn hình lúc 2 giờ sáng, nhìn dòng code báo lỗi đỏ lòm và tự hỏi: "Mình đang làm cái quái gì thế này?" chưa?
Nếu bạn là một người làm nghề gõ phím, tôi cá là bạn đã từng. Thậm chí là rất nhiều lần.
Hôm nay, thay vì viết về một công nghệ mới toanh hay một đoạn tutorial khô khan nào đó, tôi muốn tâm sự mỏng với anh em một chút. Một câu chuyện về căn bệnh kinh niên của dân IT chúng ta: Bệnh "ngâm giấm" side-project (dự án cá nhân).
Nghịch lý của kẻ gõ phím
Có một sự thật buồn cười thế này. Khi nhận task của công ty hay dự án của khách hàng, dù deadline dí sát nút, requirement (yêu cầu) đổi xoành xoạch như người yêu cũ lật mặt, chúng ta vẫn múa phím ầm ầm. Bug nào cũng fix được, tính năng nào cũng nhét vào được. Lên production mượt mà.
Nhưng... đến khi bắt tay vào làm một cái blog cá nhân, một cái portfolio cho riêng mình (vâng, chính là cái trang web các bạn đang đọc lúc này đây), thì ôi thôi, mọi thứ bỗng nhiên trở thành một thảm họa.
Tại sao ư? Vì chúng ta vô tình trở thành những vị khách hàng khó tính (hay nói thẳng ra là "hãm") nhất của chính bản thân mình.
Cái bẫy của sự hoàn hảo và lạm phát công nghệ
Khi làm cho khách, "chạy được là chân lý". Nhưng khi làm cho mình, cái tôi của một dev bắt đầu trỗi dậy mạnh mẽ:
"Làm blog à? Dùng template có sẵn cho lẹ? Không! Mình là dân dev cơ mà, xài đồ làm sẵn quê lắm, phải dùng Next.js kết hợp Tailwind mới ngầu."
"Database à? Chắc phải setup hẳn một cái PostgreSQL, rồi viết API chuẩn RESTful, thêm tí GraphQL cho nó hợp thời đại." (Dù thực tế cái blog chắc mỗi ngày có 10 người vào đọc, bao gồm cả mình và... đứa bạn thân).
"Giao diện phải pixel-perfect. Thời buổi này không có Dark Mode thì ai thèm xem, phải code thêm Dark Mode mượt như Apple mới chịu."
Và kết quả? Tôi (và có lẽ nhiều anh em ở đây) đã từng ném trọn vẹn 3 ngày cuối tuần chỉ để... chọn mã màu hex cho cái nút bấm, hoặc cãi nhau với chính mình xem nên dùng font chữ Roboto hay Inter.
Chúng ta rơi vào cái bẫy Over-engineering (làm phức tạp hóa vấn đề). Đập đi xây lại không biết bao nhiêu lần vì sáng nay vừa đọc được bài báo nói framework A đang lỗi thời, framework B mới là tương lai.
Cứ thế, sự hào hứng ban đầu tụt dần đều. Và cái dự án tâm huyết ngày nào giờ nằm lạnh lẽo trong thư mục D:\Projects\Old_Projects, bên cạnh những cái tên huyền thoại như app-ban-hang-final, my-portfolio-v3, tool-crawl-data-test-2...
Khoảnh khắc giác ngộ: "Done is better than perfect"
Sau chục lần đập đi xây lại cái trang web này, đến một ngày tôi chợt nhận ra một sự thật phũ phàng: Một trang web hoàn hảo 100% nằm trên máy của mình (localhost) có giá trị bằng 0. Trong khi một trang web 70% được đẩy lên mạng (production) lại mang về giá trị thực.
Người đọc, khán giả, hay nhà tuyển dụng... họ đâu có rảnh mà bôi đen click chuột phải, mở F12 lên để soi xem bạn viết code sạch cỡ nào, có áp dụng Clean Architecture không. Họ vào để xem bạn là ai, bạn nghĩ gì, và bạn mang lại giá trị gì qua những bài viết của mình.
Khoảnh khắc tôi chấp nhận bớt đi một chút sự hoàn hảo, ngừng nhét thêm những tính năng "vô thưởng vô phạt", đó là lúc trang web này được ra đời. Code có thể chưa tối ưu nhất, UI có thể chưa mượt nhất, nhưng ít nhất... nó đang chạy trực tuyến.
Tóm lại là...
Viết ra những dòng này, tôi chỉ muốn nhắn nhủ với các anh em đồng nghiệp rằng: Nếu bạn đang có một ý tưởng, một dự án cá nhân nào đó bị "ngâm giấm" hàng tháng trời, hãy cứ tung nó ra đi!
Cứ để nó có vài cái lỗi CSS nhỏ, cứ để nó trông hơi "phèn" một chút. Quăng nó lên Vercel, Netlify, hay host ở đâu cũng được. Sự phản hồi của người dùng thật (dù là chê bai hay khen ngợi) mới chính là liều thuốc doping tốt nhất để bạn có động lực quay lại code tiếp.
Đừng chờ đến khi hoàn hảo. Vì cái ngày đó sẽ không bao giờ đến đâu!
Còn bạn thì sao? Khai thật đi, đang có bao nhiêu cái side-project "chờ ngày hoàn thiện" nằm mốc meo trong máy tính của bạn rồi? Để lại bình luận bên dưới cho tôi biết mình không cô đơn nhé! 👇
Địa chỉ email của bạn sẽ không được công khai. Các trường bắt buộc được đánh dấu *