Rồi code cũng về với cát bụi, nhưng hãy để nó sống một đời thật huy hoàng

Đôi khi cuộc đời của những dòng code cũng phần nào ánh nên cuộc đời của một con người.

Khi phiên bản tốt hơn xuất hiện

Một ngày đẹp trời, bạn thấy các framework và package đang dùng đã ra hàng loạt version mới, fix được hàng tá bug mình đang gặp phải và phục vụ được những paint point trong quá trình develop.

Nhẹ nhàng đổi version của package đang sử dụng, gõ thêm dòng install, nhìn terminal một chút, và done – một thư viện xịn xò mới đã được apply với vô vàn lỗi được fix, new feature và performance tốt hơn so với phiên bản sida hiện tại.

(Nếu xui thì bạn dính package version conflict, khi đó thì cố gắng resolve để chúng adapt được với nhau nhé).

Bạn lướt qua các release note và nhận ra đã có hàng chục, hàng trăm pull/merge request được rất nhiều developer khác đóng góp vào open source library để xử lí hàng đống issue mà project gặp phải, nhằm mang lại những feature xịn xò nhất có thể, và vá lại mớ lỗi mà cộng đồng sử dụng suốt ngày kêu réo.

Đó là khi những dòng code cũ đã trở về với cát bụi.

Khi con nhà người ta ngon hơn

Công ty startup của bạn vừa thành lập, muốn deliver feature nhanh nhất có thể để demo và chạy trước cho khách hàng đầu tiên, quyết định build backend là monolith architecture với python framework Django.

Sau khi demo và chạy ổn định, gặp thiên thời địa lợi nhân hòa, hàng chục khách hàng khác bắt đầu có nhu cầu muốn sử dụng solution của công ty. Nhận ra nếu cứ sử dụng monolith và Django thì sẽ ngày càng khó cho việc phát triển, đồng thời python cũng không phải ngôn ngữ mạnh về performance cho việc xử lí backend.

Đã nhìn trước khả năng này, team tech backend cũng đã build song song microservice architecture sử dụng golang GRPC để apply cho các khách hàng mới, dĩ nhiên team vẫn phải maintain đống python code cũ trong quá trình đó.

Dự án với công nghệ mới chạy trơn tru, team nhanh chóng move backend của khách hàng đầu tiên sang golang và dẹp luôn project python củ chuối thời kì đầu.

Đó là khi những dòng code cũ đã trở về với cát bụi.

Khi nhu cầu biến mất

“Team ơi, khách hàng muốn làm feature này, gấp lắm, team ráng làm trong tuần rồi đưa lên liền được không?”

Bạn phân tích đủ đường, lên solution chỉnh chu, sau đó miệt mài code, viết unit test đầy đủ.

Bùm, hôm sau khách hàng lại không còn nhu cầu dùng feature đó nữa, mà quay xe sử dụng solution sẵn có từ trước.

Bạn chỉ biết cười gượng nhìn mọi nỗ lực của mình bỏ ra mang lại value là con số không tròn trĩnh, và cũng chẳng biết phải ghi gì vào đợt performance review sắp tới.

Đó là khi những dòng code cũ đã trở về với cát bụi.

Nhưng chúng cũng đã sống một đời huy hoàng

Về trải nghiệm cá nhân, mình còn gặp một số lí do khác để những dòng code đã, đang, thậm chí là sẽ code đều có khả năng biến mất:

  • Là khi team technical lead quyết định thay đổi architecture, data flow hay ngôn ngữ.
  • Là khi khách hàng hủy hợp đồng vì không còn hài lòng, không cạnh tranh được trên thị trường, hay không thấy solution của công ty cần thiết.
  • Là khi những version mới của ngôn ngữ, library hay framework buộc bạn phải tuân theo các syntax, best practice mới.
  • Là khi việc apply các công nghệ mới nảy sinh đầy lỗi không kiểm thể soát được, bắt buộc team phải revert lại architect cũ và đánh giá lại các sai lầm.

Dẫu trước khi ra đi bởi một hoặc nhiều nút backspace hay delete đầy lạnh lùng vô cảm, thì những dòng code cũ cũng đã có một đời cống hiến hết mình:

  • Đó là những dòng code đã đáp ứng được nhu cầu ban đầu của khách hàng, mang lại các giá trị tại thời điểm nó vẫn còn hoạt động, như validate hàng triệu lượt truy cập, đồng bộ hàng trăm nghìn đơn hàng hay gửi đi hàng nghìn email thông báo…
  • Đó là những dòng code nâng cao tay nghề coding của bạn và team, gia tăng kinh nghiệm hơn trong những lần sau, dẫu cho nó đã bị khai tử trước khi ra trận.
  • Đó là những dòng code xịn xò, nguồn cảm hứng để những dev khác học hỏi hay maintain, improve, hoặc là những dòng code sida để né, không vấp phải lại những sai lầm mà người đi trước (hoặc bạn) từng mắc phải (nhưng ít ra là nó vẫn work).

Vì vậy, cũng đừng nên thần thánh hóa công nghệ bạn đang dùng hay những dòng code bạn đang viết, bởi chẳng ai biết được một ngày nào đó chúng đều có thể trở về với cát bụi – mất đi vĩnh viễn hay được thay thế bởi một phiên bản tốt hơn.

Nhưng cũng đừng nên quá xem nhẹ hay vô tâm với chúng, vì cuộc đời chúng phải sống thật huy hoàng để mang lại nhiều giá trị nhất có thể, không phải chỉ với khách hàng, mà là với các anh chị em dev sau này nếu có maintain đống đó, và với cả bản thân của bạn nữa.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s