Lập trình viên và đầu bếp

Bài viết được dịch từ blog Coding Horror

Từ một cuộc phỏng vấn với Ron Jeffries:

Lý do nhà bếp bừa bộn không phải bởi vì căn bếp đó được thiết kế tồi, mà bởi vì chúng ta đã không lau chùi và dọn dẹp các bát đĩa sau mỗi bữa ăn.

Michael Feathers gần đây đã đăng một bài viết khá thú vị về quan niệm của các đầu bếp chuyên nghiệp trong việc giữ cho môi trường làm việc luôn gọn gàng sạch sẽ:

Một điều khác mà tôi thích về cuộc thi Vua Đầu Bếp đó là cách mà các đầu bếp được đánh giá. Có nhiều thứ hơn chứ không phải chỉ là việc đánh giá thông thường. Trong suốt quá trình các đầu bếp chế biến món ăn, ban giám khảo sẽ đi quan sát từ hết bếp này sang bếp khác, và ghi chú các chi tiết vào một cuốn sổ tay. Một trong những tiêu chí là các đầu bếp luôn phải giữ cho bếp của mình được gọn gàng. Hãy tưởng tượng là.. môi trường làm việc sạch sẽ.. Ban giám khảo sẽ quan sát để chắc chắn rằng các đầu bếp rửa sạch chén bát và các dụng cụ ngay sau khi sử dụng. Nếu các đầu bếp không làm như vậy, thì vâng, họ sẽ bị trừ điểm.

Lập trình viên giỏi và đầu bếp giỏi có nhiều điểm giống nhauLập trình viên giỏi và đầu bếp giỏi có nhiều điểm giống nhau


Micah Martin đã để lại một bình luận tuyệt vời minh họa về việc làm thế nào để đưa “môi trường làm việc gọn gàng sạch sẽ” tới các chuyên gia trong ngành công nghiệp nhà hàng:

Trong những năm học đại học của mình, tôi có xin làm việc đầu bếp tại một vài nhà hàng. Thực tế giữ cho nơi làm việc sạch sẽ là một chủ đề phổ biến trong nhà bếp. Câu khẩu hiệu mà tôi nghe đi nghe lại rất nhiều là “Hãy chùi dọn sạch sẽ trước khi bạn rời đi!”. “Hãy chùi dọn sạch sẽ trước khi bạn rời đi!” không còn là một gợi ý, mà đó là một luật lệ. Những đầu bếp không thường xuyên lau dọn sạch sẽ sẽ gặp rắc rối. Không gian làm việc của họ sẽ trở nên bừa bộn, và chất lượng món ăn cũng nhanh chóng bị giảm sút. Vấn đề này sẽ tiếp diễn cho đến khi những đầu bếp khác buộc phải bước vào và làm sạch. Điều này có tác động tiêu cực đến toàn bộ nhà bếp và chẳng ai cảm thấy hạnh phúc khi điều đó xảy ra cả. Điều thú vị là, các đầu bếp thậm chí không có bằng đại học, nhưng vẫn cực kỳ hiệu quả trong việc tự quản lý. Những đầu bếp không chú ý đến công việc lau dọn, sẽ bị mắng nhiếc, trêu chọc cho đến khi họ phải chùi dọn, hoặc xin thôi việc.

Đối với các nhà phát triển phần mềm, làm việc gọn gàng có nghĩa là phải liên tục cấu trúc lại code (refactoring). Nếu bạn không thỉnh thoảng dừng lại– thực ra là thường xuyên– để xem lại và làm sạch phần code mà mình đã viết, thì bạn sẽ có kết quả là một đống code bùi nhùi trông thấy gớm. Nếu bạn quên thường xuyên làm sạch phía sau lưng mình, mọi thứ sẽ trở nên có mùi thum thủm. Làm việc gọn gàng nghĩa là “nghe” theo lỗ mũi của mình và giải quyết những vấn đề dai dẳng trước khi chúng trở thành thảm họa.

Ngoài làm việc gọn gàng sạch sẽ, các đầu bếp cũng dành rất nhiều thời gian để suy nghĩ về một khái niệm gọi là mise en place, đó là cách họ sắp xếp bếp của mình sao cho công việc được tối ưu nhất. Michael Feathers giải thích:

Có một phần trong [cuốn sách Kitchen Confidential (Bí mật bếp núc)] nơi ông nói về những gì các đầu bếp thường làm vào lúc đêm muộn sau khi khách hàng đã rời quán. Họ thường làm những việc như nhiều người làm sau khi hết giờ, họ đi ra ngoài uống vài cốc bia và ngồi nói chuyện về công việc, nhưng thực sự họ đã nói với nhau những gì? Tony nói rằng chủ đề mà luôn luôn được các đầu bếp nói đến có tên là mise en place. Mise en place là một thuật ngữ chung chung về cách bạn thiết lập môi trường làm việc của mình.

Môi trường làm việc sạch sẽ gọn gàng sẽ cho ra kết quả tốtLiệu thùng bơ của bạn ở vị trí 11:00 hoặc tại 1:00? Bạn có sử dụng 2 con dao gọt, và để chúng bên cạnh thớt hoặc bên cạnh thùng trang trí của bạn? Khi bạn dành ra buổi tối để chuẩn bị các bữa ăn, thì những quyết định này sẽ tạo ra một sự khác biệt. Mọi người đều có lý thuyết ưa thích của mình về cách bố trí như thế nào là thích hợp. Tony nói rằng rất nhiều đầu bếp hết sức giữ bí mật về nó. Theo Tony, bạn sẽ trở nên tốt hơn nếu bạn học được cách bố trí môi trường làm việc hiệu quả. Rõ ràng là dao sắc thì được sử dụng nhiều hơn.

Khái niệm về mise en place nên trở thành quen thuộc với các nhà phát triển phần mềm. Đó là lý do tại sao mỗi thành viên của nhóm đều thiết lập một môi trường phát triển giống hệt nhau. Đó là lý do tại sao chúng ta sử dụng một tập các công cụ phát triển. Đó là lý do tại sao chúng ta tận dụng lợi thế của các framework có sẵn như nUnit và Log4Net thay vì ngồi viết ra framework của riêng mình.

Các lập trình giỏi nên có một nỗi ám ảnh về “môi trường làm việc” của họ. Nghề nghiệp của chúng ta thay đổi quá nhanh để chúng ta có thể hoàn toàn thỏa mãn với cách mà mình đang làm việc hiện nay. Nên nhớ rằng, luôn luôn có một cái gì đó tốt hơn ở phía chân trời.

Các bài viết liên quan:

Về tác giả bài viết:

Jeff_atwood_coding_horrorJeff Atwood là một chuyên gia công nghệ tại Mỹ, hiện đang sinh sống và làm việc tại Berkeley, CA. Anh là một kỹ sư phần mềm chuyên về công nghệ Microsoft .NET, và là một blogger nổi tiếng trong cộng đồng công nghệ với blog Coding Horror, anh là người sáng lập và kiêm Giám đốc điều hành (CEO) của trang web hỏi đáp uy tín Stack Overflow và cũng là đồng sáng lập của Stack ExchangeDiscourse.

6 comments on “Lập trình viên và đầu bếp

  1. bài viết hữu ích quá cảm ơn vinacode
    Mỗi khi xem lại code của mình viết tháng trc/ năm trc chỉ muốn vả vào mặt
    Sau này sẽ cố gắng refactoring thường xuyên để có code chất lượng

Gửi phản hồi

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Log Out / Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Log Out / Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Log Out / Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Log Out / Thay đổi )

Connecting to %s