Tôi đã sử dụng một số lượng lớn các các hệ thống theo dõi vấn đề, bao gồm cả gnats (ugh!), Bugzilla (hơi ít ugh), Trac, Jira, và bây giờ là FogBugz. Tôi thích Trac nhất, nhưng đó có thể là vì tôi không phải là quản trị viên trên FogBugz và nó đang được sử dụng một cách đáng buồn và khủng khiếp trong hiện thân của nó.
Bắt quyền công việc là điều rất quan trọng, và đủ kỳ lạ nó bắt đầu bằng cách quyết định những gì để đưa vào trình theo dõi lỗi của bạn và cách gắn nhãn những thứ bạn đặt vào đó. Ngay khi bạn có khách hàng, tất cả các nhóm phát triển thực sự theo dõi ba loại vấn đề sau:
Sự cố được ghi nhận bởi khách hàng thực (lỗi trực tiếp).
Sự cố với phần mềm mới hiện đang được phát triển (lỗi chính tả).
Những điều chúng tôi muốn làm trong tương lai (tính năng).
Mỗi một trong ba loại vấn đề này đều có ưu tiên riêng của họ. Một 'lỗi trực tiếp' chỉ là lỗi chính tả trên một nút có thể ít quan trọng hơn nhiều so với lỗi 'dev' đang chặn một bản phát hành công khai hoặc kiểm tra sự phát triển, thử nghiệm khác, v.v.
Mức độ nghiêm trọng của vấn đề mô tả tác dụng phụ của khủng khiếp đến mức nào. Theo kinh nghiệm của tôi, điều này tóm tắt:
Chương trình đang hủy hoại điều gì đó. Dữ liệu, khách hàng bị lập hoá đơn không chính xác, sai thuốc đang được phân phối. Điều này là xấu như nó được. Tôi đã từng làm việc trên một hệ thống mà một lệnh phần mềm rút lại một cánh tay thủy lực ngay giữa một người phục vụ. Điều này là xấu như nó được.
Chương trình bị lỗi và chúng tôi không có công việc xung quanh, nhưng nó không làm hỏng bất kỳ thứ gì (ngoài việc ngừng hoạt động) trong thời gian chờ đợi. Nếu kết quả downtime trong một cái gì đó bị hủy hoại mức độ nghiêm trọng sử dụng # 1.
Chương trình hoạt động không đúng, nhưng chúng tôi có một công việc được xác định có thể thực sự được sử dụng.
Chương trình hoạt động không đúng cách gây phiền nhiễu nhưng không ảnh hưởng đến kết quả.
Chương trình cần phải được tốt hơn trong một số cách được xác định rõ: dễ sử dụng, thực hiện một tính năng mới, chạy nhanh hơn, vv
Một vấn đề khác nảy sinh rất nhiều trong các hệ thống này là khái niệm của 'vai trò'. Khi được áp dụng cho các hệ thống theo dõi vấn đề, các vai trò sẽ được chuyển thành người được phép làm việc. Ai sẽ tạo ra vấn đề? Ai sẽ thay đổi trạng thái, người sẽ chuyển nhượng lại họ cho người dùng khác, người sẽ đóng họ lại, v.v.
Trong các nhóm nhỏ đến trung bình tôi đã làm việc chặt chẽ, bộ quy tắc chung này làm việc tốt:
Bất cứ ai cũng có thể tạo sự cố. Người sáng tạo có thể chỉ định vấn đề cho bất kỳ người nhận (hoặc hầu hết) người nhận nào vì nó được tạo. Người nhận mặc định là nhóm Triage Issue. Các nhà phát triển có thể lưu ý các lỗi mà họ đã tìm thấy khi làm việc trên mã theo cách này và gán lỗi cho chính họ, để theo dõi lý do tại sao họ đang thay đổi mã.
Nhóm Triage gặp (xác định khoảng thời gian ở đây) để đánh giá và chỉ định vấn đề. Nhóm Triage đặc biệt tìm kiếm các báo cáo trùng lặp, trong trường hợp đó, vấn đề mới được 'cuộn lên' thành chuỗi sự cố hiện có; đối với các vấn đề chưa được sản xuất từ trường, được gán cho QA để tái sản xuất; và đối với các vấn đề mức độ nghiêm trọng của khách hàng.
Người khởi tạo lỗi là người CHỈ có thể đóng. Các báo cáo lỗi do QA hoặc CSR khởi xướng không thể bị đóng bởi nhà phát triển. Vâng, điều này có nghĩa là các lỗi mà CS và nhóm dev không đồng ý vẫn chưa được giải quyết. Tại sao trình theo dõi vấn đề lại báo cáo sự cố được giải quyết khi mọi người không đồng ý? Nếu bạn muốn một kho lưu trữ kỹ thuật số của những lời nói dối, bạn có C-SPAN.
Một số nhóm có thể muốn chuyển vấn đề từ bộ này sang bộ phận khác cho người quản lý, các nhóm khác có thể cho phép bất kỳ thành viên nào trong nhóm chuyển vấn đề. Điều này có thể làm giảm sự nghi ngờ về quản lý, hoặc đơn giản là người được phép phân bổ thời gian làm việc.
Quá trình Triage là chìa khóa. Nhóm Triage về cơ bản là bất cứ ai trong tổ chức của bạn quyết định ai làm việc trên cái gì, và những gì được làm việc tiếp theo. Có đội đáp ứng theo lịch trình thường xuyên giúp đảm bảo rằng những thứ thực sự quan trọng không thể bỏ qua, và rằng những thứ trần tục không bị rơi do thiếu chú ý. Nếu không có bất cứ điều gì trong hàng đợi Triage, cuộc họp (concall, netmeeting, bất kể việc thực hiện là gì) có thể bị hủy bỏ bởi người đứng đầu cuộc họp.
Nếu bạn đang sử dụng Scrum, nhóm Triage có thể là các bậc thầy về scrum, quyết định xem có vấn đề nào được đưa vào chạy nước rút hiện tại và chỉ định mức độ ưu tiên nếu nó đi vào tình trạng tồn đọng.
Có vẻ lý tưởng với tôi. Bạn cũng có thể chỉ định cách quản lý theo dõi ai làm gì, và làm sao họ có thể chắc chắn mọi người đang làm việc có trách nhiệm và không chỉ giao cho người khác tránh trách nhiệm bằng cách nói "không phải lỗi của tôi"? –
Đội dẫn đầu theo dõi mọi thứ đang diễn ra trong đội của họ. Vì vậy, nếu bất kỳ lỗi nào được gán sai, nó sẽ bị bắt nhanh chóng. BugZilla đã có một số cơ chế tìm kiếm rất tốt có sẵn thông qua đó bạn có thể theo dõi hầu hết những thứ như ai đang làm những gì Làm thế nào nhiều lỗi đã mở cửa trở lại vv – Aamir
+1 vì nó dường như làm theo những gì chúng tôi làm. – Klelky