2011/08/01

Bờ tường

0 comments


Bài này tớ viết lâu rồi, đăng trên "Chợ Dưa" từ hồi công ty hô hào viết "Chuyện phần mềm". Nghe tin Chợ Dưa đã bị công an phường dẹp, nên copy sang đây.






1
Để xây 1 bức tường, người thứ nhất làm như sau: vẽ một bản thiết kế, mô tả chi tiết và đầy đủ kỹ thuật và cách thức để xây tường, từng bước từng bước một, tỉ như trộn vữa ra sao, chặt gạch thế nào. Sau đó bắt tay vào xây. Trong khi xây, anh tiến hành đo đạc rất nhiều chỉ số, như là tỉ lệ vữa trên số gạch, hay là đã hết bao nhiêu xi măng rồi, ...Xây xong, anh ta căng một cái dây trên 2 đầu tường để kiểm tra xem bức tường đã thẳng hay chưa, và dùng quả rọi treo dọc theo bức tường để kiểm tra xem nó có vuông góc với mặt đất hay không.
Người thứ hai, cũng vẽ một bản thiết kế, mô tả bức tường với vị trí hai đầu, chiều cao và độ dày. Tiếp theo, anh ta căng dây và quả rọi trước, rồi xây sau. Mỗi hàng gạch lên, anh lại dịch cái dây lên theo.

2

Để làm một chiếc cốc thủy tinh, người thứ ba dùng một cái ống để xêu thủy tinh nóng chảy trong lò ra, đưa lên miệng xoay tròn và thổi. Người thứ tư làm một cái khuôn, rồi đổ thủy tinh nóng chảy vào đó.

1.1

Người thứ nhất phát hiện ra bức tường hơi cong một chút. Anh có 2 lựa chọn, hoặc là đập đi xây lại, hoặc là trát thêm vữa lên sản phẩm của mình sao cho nó có một bề mặt thật phẳng. Và anh đã chọn cách thứ hai.

2.1

Người thứ ba phát hiện ra chiếc cốc của mình hơi cao một chút. Anh bèn gí nó vào lò lửa, rồi dùng vòng thép lạnh mà cắt phần thừa đi. Anh thấy mình thật may mắn, vì cái cốc đã không bị thấp.

3

Vậy chúng ta, chúng ta đang làm phần mềm theo cách nào?
Chúng ta làm những bản detailed design cực kỳ chi tiết, thậm chí david-copy-paste cả code vào những trang word/excel.
Thế thì thuê mẹ nó thợ đánh máy về mà code có phải vừa nhanh vừa rẻ không?
Chúng ta tiến hành đo đạc hàng tá metrix, với những công thức phức tạp, bằng những công cụ cồng kềnh và tốn effort.
Và cái đống metrix đó lại được đem ra làm mẫu cho các bờ tường tiếp theo.
Các bờ tường tiếp theo, đến lượt mình, lại sản sinh ra một tá metrix, as same as possible.
Thế thì đo làm đéo gì?
Tôi đã từng hỏi một QA có cỡ, và câu trả lời đại loại là vì CMM nó phải thế, vì nhiều thằng nó đã làm, đã đúc kết thành sách vở, thì mình cứ theo. Không bổ âm cũng bổ dương. Chẳng bổ dọc thì bổ ngang.
Tôi chỉ thấy mang metrix đi lòe khách là tốt (mà cũng chỉ lòe được vài thằng thôi). 90% trong số đó là vô dụng.
Chúng ta code xong rồi chúng ta test. Test ra bug thì chúng ta sửa. Sửa hết bug thì chúng ta deliver.
Tôi còn nhớ cái Skype status của mình thế này: if (bug).toList().count() == 0 then (beer) else (finger)
Ai dám đảm bảo cho chúng ta rằng số bug lọt sang khách hàng là thấp?
Có ai làm ra sản phẩm rồi mới đi làm khuôn?
Sao chúng ta lại code xong rồi mới test?
Nhưng chúng ta vẫn cứ làm ra sản phẩm, rồi so sánh nó với cái khuôn. Nếu nó lệch so với cái khuôn, thì chúng ta đẽo gọt đục giũa cho nó hết lệch.
Mà có khi khó quá thì chúng ta sửa mẹ nó khuôn đi cho vừa là xong!
Và chúng ta kêu chất lượng UT thấp, kêu leakage nhiều, kêu làm OT mệt, kêu SS ít, ...

4.1

PM assign 1 module cho DEV. Làm sao PM biết được DEV đã spend bao nhiêu effort cho module này? Module này xảy ra bao nhiêu lỗi? Các lỗi đó, nếu đã fix, thì bằng những dòng code nào? Và cách nào nhanh nhất để verify việc fix bug đó là đúng?

4.2

Một ngày đẹp trời, GL hỏi PM là thằng DEV ấy làm ăn ra sao? Thằng này ngon anh ạ. Thằng này làm ẩu lắm. Thằng này được.
Câu trả lời sẽ rất cảm tính, gần như không có số liệu nào.

5.1

Giả sử bạn là PM của 1 dự án có 10 members. Mỗi member log timesheet mỗi ngày 2 lần. Sáng thứ 2 bạn phải approve cho 120 records. Bạn sẽ xem xét từng cái một, hay select all mà approve cho xong còn làm việc khác?

5.2

Hình như trên intranet có bạn hỏi, tại sao vẫn phải khai Timesheet trong khi PM đã assign công việc?
Đơn giản vì cái task assignment nó nằm trong mail hay 1 file chết gí đâu đó, mà cái tool Timesheet không bao giờ nhìn thấy.

6

Chúng ta đâu cần phải là Kopernik, một mình thay đổi nhận thức của cả thế giới?
Mà thực ra, cả thế giới đang sục sôi thay đổi ở ngoài kia, từng phút một.
Chỉ có chúng ta, vẫn đang cố bám lấy những thói quen hàng ngày, những lối mòn thân thuộc.
Hỡi ôi, đường đường tấm thân cha mẹ sinh ra, ăn học đàng hoàng, công to việc nhớn, xe đẹp alô xịn, chẳng lẽ lại chấp nhận số phận thằng cận ngồi ăn mận hay sao?

0 comments:

Post a Comment

 

Khanh DAO | © 2011

Design by DheTemplate.com and Theme 2 Blog