Tôi đang làm việc tại một công ty sẽ đạt điểm 11 trong bài kiểm tra Joel - ít nhất là trên giấy tờ.
Tuy nhiên, trên thực tế, không có gì hoạt động tốt như mong đợi, và dự án đã có mặt trên DEFCON 1 được nửa năm. Bây giờ, hầu hết các đồng nghiệp của tôi rất vui nếu họ có thể trở về nhà vào lúc 6 giờ tối - Chủ nhật.
Một trong những thực tiễn rõ ràng tốt khiến tôi không làm việc là sử dụng các công cụ phân tích tĩnh. Dự án vừa theo dõi gcc -Wall cảnh báo và một công cụ "C / C ++" độc quyền và rất đắt tiền .
Cảnh báo Gcc thường làm nhiều hơn là không chỉ ra các lỗi thực sự (nếu hầu hết thời gian không tấn công).
Tuy nhiên, các công cụ độc quyền liệt kê những thứ như phôi ẩn và kích thước của một chuỗi ký tự. Các diễn viên tiềm ẩn cũng được đưa vào danh sách đen trên stylebook của họ.
Thực tiễn tiêu chuẩn là mọi người bị ép để làm cho mọi cảnh báo im lặng. Lưu ý rằng điều này không loại trừ các cảnh báo chủ yếu là dương tính giả, đây không phải là vấn đề.
Kết quả là:
- Mọi người thêm các kiểu phôi vào mỗi giá trị và cho mọi đối số ẩn các kiểu không khớp có vấn đề thực sự trong quy trình.
- Mọi người giới thiệu bởi một lỗi hoặc sử dụng một tính năng ngôn ngữ có vấn đề khác. (Strlen thay vì sizeof, strncpy thay vì strcpy, v.v.)
- Các cảnh báo im lặng.
- Các báo cáo lỗi bắt đầu lăn vào.
Điểm chính là mã gốc đã hoạt động và được viết bởi những người chơi an toàn trong khả năng ngôn ngữ của họ trong khi các bản sửa lỗi thì không.
Bây giờ, tôi không thực sự nghĩ rằng công ty này có thể được cứu. Tuy nhiên, tôi muốn biết liệu có cách nào tốt hơn, tốt nhất là sử dụng các công cụ "pro" hay tôi chỉ nên tránh sử dụng chúng trong trường hợp tôi là người đưa ra quyết định trong tương lai.
Một giải pháp không cho rằng tất cả các lập trình viên đều là những thiên tài không thể sai lầm. Bởi vì, nếu họ là như vậy, thì không cần phải sử dụng các công cụ ở nơi đầu tiên.