Friday, May 16, 2008

Bánh Big Macs vs. người đầu bếp tài năng

(lược dịch từ http://www.joelonsoftware.com/articles/fog0000000024.html)

Tại sao một số công ty IT lớn nhất lại trở nên dở nhất?

Có sự liên hệ gì nữa MacDonal’s (dây chuyền sản xuất Hamburger tệ nhất) và sự kiện trên?

Bí mật của bánh Big Macs là mọi chiếc bánh đều dở giống hệt như nhau. Một bí mật nữa là chỉ cần IQ của anh đần là đủ để tạo ra bánh Big Macs “dở giống hệt nhau trên toàn thế giới”. Nếu một chiếc Big Macs được rán 37 giây ở Mỹ, nó cũng được rán đúng 37 giây ở Singapore (đúng 37 giây, không hơn, không kém). Để tạo bánh Big Macs bạn chỉ cần tuân theo những luật cứng nhắc đó.

Những luật đó đã được thiết kế một cách cẩn thận bởi những con người thông minh (ở trường đại học McDonald’s Hamburger) sao cho những người bình thường nhất cũng có thể làm theo được. Những luật đó bao gồm tất cả quy trình tránh lỗi (failsafes) như là rung chuông nếu bạn rán bánh quá 37 giây. Hệ thống đó về cơ bản luôn giả sử rằng mọi người sẽ mắc phải rất nhiều lỗi.

Hãy so sánh một đầu bếp của McDonal’s, người luôn tuân theo luật một cách tuyệt đối với một đầu bếp tài năng. Đầu bếp tài năng không dập khuôn theo một cuốn cẩm nang nấu ăn nào hết. Anh ta không đo lường (rán đúng trong 37 giây chẳng hạn). Khi nấu ăn, bạn sẽ thấy thức ăn như nhảy múa dưới bàn tay người đầu bếp tài năng. “Chúng ta chỉ cần cho thêm một ít bột nêm vào đảo đều”, anh ta nói. “Hãy dải đều rau thơm lên trên món ăn nào”. Thế là xong, chúng ta có một món ăn tuyệt hảo!

Hiển nhiên là thức ăn của người đầu bếp tài năng ngon hơn rất nhiều so với bánh Big Macs. Có vẻ như là ngu xuẩn nhưng sẽ rất đáng giá nếu bạn đặt câu hỏi “tại sao?”. Tại sao một công ty nhiều tiền của, đa chi nhánh, có thể thuê những đầu bếp tài năng nhất lại không thể tạo được một bữa ăn ngon miệng?

Hãy tưởng tượng người đầu bếp tài năng quyết định mở cửa hàng ăn. Vì thức ăn của anh rất ngon nên cửa hàng vô cùng đông khách. Công việc kinh doanh hết sức thuận lợi nhưng cũng rất nhanh, anh ta nhận ra rằng nguồn thu nhập của cửa hàng không tăng hơn được nữa bởi một mình anh không thể tạo ra nhiều thức ăn. Vì vậy anh ta quyết định thuê thêm đầu bếp và mở thêm nhiều chi nhánh ở các thành phố khác.

Lúc này, vấn đề bắt đầu nảy sinh. Dân kỹ thuật chúng ta gọi là bài toán mở rộng (scalability problem). Khi bạn cố nhân bản một nhà hàng, bạn phải quyết định giữa việc thuê một đầu bếp tài năng (trong trường hợp này người đầu bếp được thuê sẽ muốn giữ phần lớn lợi nhuận của cửa hàng mới do anh ta tạo ra) và một đầu bếp trẻ tay nghề chưa cao và khách hàng của cửa hàng mới sẽ sớm phát hiện ra chất lượng thức ăn không tốt và không tới cửa hàng đó nữa.

Cách thông thường để giải quyết bài toán mở rộng là thuê một đầu bếp rẻ tiền và đưa cho anh ta một tập các luật cứng nhắc để anh ta có thể tạo ra thức ăn đủ tốt.

Vấn đề là nó không hoạt động như ta mong muốn. Có hàng ngàn thứ mà một đầu bếp nhàng nhàng không thể bắp chước hoặc làm giống hệt như một đầu bếp tài năng được.

Tổng kết

* Để làm được một việc thật tốt, chúng ta cần tài năng thực sự
* Nhân bản tài năng là cực khó
* Một cách để nhân bản tài năng là để cho những người tài tạo ra những luật mà người bình thường có thể làm theo
* Chất lượng của việc nhân bài tài năng như trên thường là thấp (big macs)

Bạn có thể thấy điều tương tự ở những công ty tư vấn IT. Bạn đã bao nhiêu lần từng nghe câu như thế này:

Tuấn rất không vui. Anh vừa thuê một công ty IT lớn xây dựng hệ thống hỗ trợ bán hàng. Những nhà tư vấn IT mà anh vừa thuê cứ mải mê nói chuyện về “Methodology” và tiêu tốn hết hàng trăm triệu đồng mà chẳng làm nên trò trống gì hết.

May mắn thay, Tuấn tìm được một lập trình viên trẻ và tài năng. Tay lập trình viên này xây dựng xong hệ thống trong một ngày với thù lao 200 nghìn và một tô phở. Tuấn rất vui. Anh giới thiệu tay lập trình viên này cho bạn bè của mình.

Chàng trình viên trẻ bắt đầu kiếm bộn tiền và nhanh chóng nhận ra rằng anh không thể làm hết khối lượng công việc được đặt hàng và liền thuê nhiều người để giúp việc. Những người giỏi có thể đòi quá nhiều cổ phiếu vì thế anh ta quyết định thuê cả những lập trình viên trẻ mới tốt nghiệp và đào tạo họ trong vòng 6 tuần.

Vấn đề là khóa đào tạo ngắn hạn không tạo ra những lập trình viên đủ tốt để giữ cho chất lượng sản phẩm đủ tốt. Vì thế, chàng lập trình viên liền tạo ra một tập các luật với mục đích là để giúp tạo giữ cho chất lượng sản phẩm không đổi. Sau 6 năm, tập luật ngày càng nhiều lên và nó trở thành 6 tập sách dầy được gọi là Methodology.

Sau vài chục năm, công ty nhỏ bé ngày nào đã trở thành một tập đoàn lớn. Rất nhiều nhân viên của tập đoàn này hằng ngày vẫn răm rắp tuân theo Methodology cho dù nó đã lỗi thời hoặc có một vài chỗ hoạt động không hiệu quả bởi vì họ không có thể nghĩ ra cách khác để hoàn thành công việc — vì họ không phải là những lập trình viên tài năng. Họ được thuê hàng loạt với giá thị trường. Đến lúc này, một lập trình viên trẻ tài năng khác xuất hiện và một chu kỳ mới lại bắt đầu.

Mọi công ty tin học đều muốn phát triển thật nhanh, nhanh hơn khả năng tuyển dụng được người tài. Các công ty đó phát triển dựa trên tầng tầng lớp lớp những luật và quy trình nhằm đảm bảo chất lượng đồng nhất. Nhưng hãy nhớ rằng, những luật đó chỉ hoạt động khi không có biến cố.

Bài học rút ra

* Người tài không muốn làm bánh Big Macs
* Hãy thận trọng với Methodologies
* Chỉ mở rộng khi tìm được người tài

No comments: