Phát triển phần mềm: Đó là một tôn giáo

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

Đó là ngày Thứ Hai và Steve Yegge vẫn ghét phương pháp phát triển phần mềm Agile. Ông ta ghét nó khoảng bao nhiêu? Trị giá khoảng 11.000 từ. Dưới đây là những nội dung chính trong bài viết mới nhất của Steve:

  • Steve không có ý định ủng hộ quy trình phát triển phần mềm của Google như là Một Phương Pháp Đích Thực về phát triển phần mềm. Nó chỉ là một ví dụ về một giải pháp có thể thay thế cho phương pháp Agile.
  • Phương pháp phát triển phần mềm Agile hay bất kỳ phương pháp phát triển phần mềm nào khác sẽ hiệu quả nếu bạn có trong tay những kỹ sư tài năng và họ đều quyết tâm làm theo phương pháp đó.
  • Không có cách khoa học thực nghiệm để chứng minh rằng Agile là tốt hơn so với bất kỳ phương pháp phát triển phần mềm nào khác. Vì vậy, việc thúc đẩy Agile là một sự mê tín.
Phát triển phần mềm có phải là một tôn giáo?Phát triển phần mềm có phải là một tôn giáo?

Đọc tiếp >>

Cấp độ 5 nghĩa là chẳng bao giờ bạn phải nói câu xin lỗi

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

Lời bàn của Vinacode:

Một chiếc bánh Big Macs của McDonald's luôn được rán (chiên) trong 37 giây.

Một chiếc bánh Big Macs của McDonald’s luôn được rán (chiên) trong 37 giây.

Bạn có biết rằng một chiếc bánh Big Macs của McDonald’s luôn được rán (chiên) trong 37 giây, không phải 36 cũng không phải là 38 giây, và công thức này được áp dụng tại tất cả các cửa hàng nhượng quyền của McDonald’s trên khắp thế giới, dù cho cửa hàng đó ở Âu Mỹ, Singapore, Châu Phi hay ở… Việt Nam). Liệu một đầu bếp có tài năng thì họ có chọn đi làm cho McDonald’s để cứ quanh năm suốt tháng làm theo cái công thức “37 giây” đó? Hay là họ muốn làm việc tại một nơi nào đó mà có thể thỏa sức thử nghiệm những món ăn mới?

Trong ngành phát triển phần mềm cũng vậy, bạn đã bao giờ vào làm tại một công ty phần mềm và người ta cũng có những công thức kiểu cứng nhắc “37 giây” như vậy chưa? Bạn có thắc mắc tại sao? Bài viết sau đây nói về 5 cấp độ trong nghề của một lập trình viên, và nội dung bàn về những quy tắc dạng Methodology thì phù hợp với cấp độ nào nhé!

Lập trình viên cấp độ 5 có nên tuân theo những quy tắc cứng nhắc trong phát triển phần mềm?Lập trình viên cấp độ 5 có nên tuân theo những quy tắc cứng nhắc trong phát triển phần mềm?

Đọc tiếp >>

Lập trình cặp vs. Code Reviews

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

Tom Dommett đã viết ra những kinh nghiệm tích cực của anh về phương pháp lập trình cặp như sau:

Ý tưởng lập trình cặp là hai lập trình viên làm việc trên cùng một cái máy tính. Cả hai đều có bàn phím và chuột. Tại mỗi thời điểm thì một người đảm nhiệm vai trò driver (code chính) và người kia đóng vai trò navigator (hoa tiêu). Vai trò của họ chuyển đổi qua lại cho nhau mỗi giờ, hoặc bất cứ khi nào thực sự thấy cần thiết. Người driver đảm nhiệm việc code, người navigator thì ngồi đọc, kiểm tra và sửa lỗi chính tả và rà soát code, trong lúc đó anh này sẽ nghĩ xuyên suốt về các vấn đề và nên làm gì tiếp theo. Nếu người driver gặp phải một vấn đề, thì sẽ có hai người để tìm ra một giải pháp, và một trong hai người thường có một ý tưởng rất hay.

Những thuận lợi khác bao gồm một thực tế rằng ở đây hai người có những chuyên môn khác nhau, vì vậy những kỹ năng này được trao đổi cho nhau. Lợi ích rất nhiều khi người này chỉ cho người kia một số mẹo, những giải pháp khắc phục tốt, v.v…

Kết quả cuối cùng là cả hai lập trình viên đều hiểu rõ code một cách hoàn toàn, code đó làm việc ra sao, và tại sao nó lại được thực thi theo cách đó. Và phương pháp này mang lại kết quả tốt hơn là khi lập trình viên làm việc một mình. Nó ít bug và những sai sót cùng nhiều thứ linh tinh khác mà sẽ là nguyên nhân của những vấn đề trong quá trình hoạt động sau này.

Trong một nhóm lớn hơn, thì các cặp có thể thay đổi mỗi tuần để cho mỗi một thành viên trong nhóm được làm bạn code với một ai đó hoàn toàn khác. Điều này mang lại lợi ích rất lớn, vì nó tạo điều kiện cho các lập trình viên có thể nói chuyện và trao đổi những ý tưởng trong một ngôn ngữ chung là code.

Chúng tôi nhận thấy cách này có kết quả nhanh như là hình thức làm việc độc lập. Code được viết ra nhanh hơn và không yêu cầu phải rà soát lại. Và khi mà phần code đã viết cần phải thay đổi, thì có nhiều hơn một người nắm rõ phần code đó.

Lập trình cặp đang là một phương pháp mới mẻ hiện đại trong dạy và học lập trình?Lập trình cặp đang là một phương pháp mới mẻ hiện đại trong dạy và học lập trình?

Đọc tiếp >>