Từ đầu bếp đến lập trình viên: "Mise en place" - bí quyết giúp tôi quản lý technical debt hiệu quả

職場心得

匿名

匿名

Từ đầu bếp đến lập trình viên: "Mise en place" - bí quyết giúp tôi quản lý technical debt hiệu quả

Mở đầu: Hai thế giới tưởng chừng không liên quan

Năm năm trước, tôi còn là một đầu bếp. Năm năm sau, tôi là lập trình viên front-end. Ai cũng bảo tôi chuyển ngành ngoạn mục, nhưng sự thật là tôi từng bị sa thải chỉ sau 3 tháng làm dev — vì code của tôi quá tệ, quá bừa bộn, đến nỗi team leader nói thẳng: "Em viết code như nấu mì gói vậy".

Hồi đó tôi tự ái lắm. Nhưng giờ nhìn lại, ổng nói đúng. Code của tôi thiếu cấu trúc, không có chuẩn bị trước, cứ nghĩ gì là viết nấy. Y như tôi hồi mới vào bếp: xào nấu theo cảm hứng, nguyên liệu không sơ chế, đến khi khách order thì cuống lên.

Cú ngã đầu tiên: Bị sa thải vì technical debt

Tôi nhớ cái sprint thứ hai ở công ty startup đó. Product manager giao task "thêm tính năng lọc sản phẩm theo giá". Tôi nghĩ đơn giản: chỉ cần thêm vài dòng if-else, query database thêm điều kiện. Xong.

Nhưng một tuần sau, bug từ tính năng đó lan sang module giỏ hàng. Rồi module thanh toán báo lỗi. Rồi tester phát hiện dữ liệu hiển thị sai. Cuối cùng, tôi phải dành ba ngày liền để fix, nhưng càng fix càng thấy code cũ viết dở đến mức không thể sửa — phải viết lại cả chục file.

Tech lead gọi tôi vào phòng họp, nhẹ nhàng nói: "Em có tố chất, nhưng cách em làm việc thiếu kỷ luật. Em cần nghỉ để suy nghĩ lại."

Đó là lời cảnh báo đầu tiên. Tôi mất việc, về nhà suy sụp cả tuần.

Ký ức nhà bếp: Mise en place là gì?

Ngồi buồn xem lại clip nấu ăn cũ, tôi chợt nhớ tới một thuật ngữ mà mọi đầu bếp chuyên nghiệp đều thuộc nằm lòng: Mise en place (tiếng Pháp, nghĩa là "đặt vào vị trí").

Trong bếp, Mise en place là chuẩn bị mọi thứ trước khi bắt đầu nấu: rửa rau, thái hành, đong gia vị, làm nóng lò. Có nghệ nhân ẩm thực từng nói: "Mise en place quyết định 80% thành công của món ăn." Tôi chợt giật mình: tại sao tôi không áp dụng điều tương tự với code?

Áp dụng Mise en place vào lập trình

Tôi bắt đầu xin việc lại, và lần này không vội vàng. Trước khi viết dòng code nào, tôi dành 15-30 phút để "chuẩn bị nguyên liệu":

1. Phân tích yêu cầu như đọc công thức

Ngày xưa, đầu bếp đọc công thức vài lần trước khi nấu. Tương tự, tôi bắt đầu đọc kỹ user story, vẽ luồng dữ liệu, xác định input/output. Tôi tạo một file marknote ghi rõ "công thức" cho tính năng đó: các bước thực hiện, các edge case cần xử lý, các module nào sẽ bị ảnh hưởng.

2. Sơ chế dữ liệu và thiết lập môi trường

Như sơ chế nguyên liệu trước khi nấu, tôi chuẩn bị:

  • Mock data cho các trường hợp test
  • Cấu hình môi trường development (local API, database migration)
  • Các file cần tạo hoặc sửa đổi, đặt tên đúng convention

3. Viết pseudocode trước khi code thật

Đầu bếp có "mise en place" cho từng món: thịt ướp sẵn, rau cắt sẵn. Tôi viết pseudocode như một bản nháp: các logic chính, điều kiện rẽ nhánh, xử lý lỗi. Chỉ khi nào bản nháp OK, tôi mới bắt đầu gõ code thật.

4. Tổ chức code theo khu vực (modules)

Trong bếp, mỗi trạm có khu vực riêng: trạm nóng, trạm lạnh, trạm bánh. Code cũng thế: tôi chia thành các folder riêng biệt (components, services, utils, hooks). Mỗi file chỉ làm một nhiệm vụ — giống như mỗi nguyên liệu chỉ phục vụ một món.

Kết quả: Từ bị sa thải thành người được khen là "có tổ chức"

Sau khi áp dụng Mise en place, tôi xin được việc ở một công ty product. Sếp mới nhận xét: "Code của em dễ đọc, dễ bảo trì. Anh thích cách em comment và phân chia module."

Tôi không nói với sếp rằng đó là nhờ… làm bếp. Nhưng sự thật là vậy.

Technical debt giảm hẳn. Số lần fix bug sau release giảm từ 4-5 lần mỗi sprint xuống còn 1-2 lần. Team lead tin tưởng giao cho tôi những task lớn hơn.

Bài học rút ra cho người mới chuyển ngành

Nếu bạn cũng từng là đầu bếp, hay bất kỳ ngành nào có quy trình, đừng vứt bỏ hoàn toàn kinh nghiệm cũ. Những kỹ năng mềm như chuẩn bị, tổ chức, quản lý thời gian đều có thể chuyển hóa.

Và nếu bạn là một lập trình viên chưa từng vào bếp, hãy thử hình dung mỗi dòng code như một nguyên liệu. Một món ngon cần nguyên liệu tươi ngon và sơ chế kỹ. Một tính năng tốt cần code sạch và được tổ chức trước.

"Mise en place không chỉ là cách nấu ăn — nó là cách sống, cách làm việc." — Một đầu bếp già từng nói với tôi.

Lời kết

Tôi vẫn còn hội chứng impostor, vẫn có hôm viết code rối như mớ bòng bong. Nhưng ít nhất bây giờ tôi biết cách dừng lại, hít một hơi, và hỏi bản thân: "Tao đã Mise en place chưa?"

Nếu chưa, thì trước khi code, hãy chuẩn bị. Cũng như trước khi nấu, hãy sơ chế. Đơn giản vậy thôi — nhưng lại thay đổi toàn bộ sự nghiệp của tôi.

回到文章列表
Từ đầu bếp đến lập trình viên: "Mise en place" - bí quyết giúp tôi quản lý technical debt hiệu quả | Ren2 人力平台