Tôi thuộc nhóm dự án gồm 4 nhà phát triển, bao gồm cả bản thân tôi. Chúng tôi đã có một cuộc thảo luận dài về cách xử lý công việc bổ sung xuất hiện trong quá trình của một mục công việc duy nhất.
Công việc làm thêm này thường là những thứ hơi liên quan đến nhiệm vụ, nhưng không phải lúc nào cũng cần thiết để hoàn thành mục tiêu của mục (đó có thể là một ý kiến). Ví dụ bao gồm nhưng không giới hạn ở:
- tái cấu trúc mã được thay đổi bởi mục công việc
- tái cấu trúc mã lân cận mã được thay đổi bởi mục
- kiến trúc lại khu vực mã lớn hơn xung quanh vé. Ví dụ: nếu một mục có bạn thay đổi một chức năng, bạn nhận ra toàn bộ lớp bây giờ có thể được làm lại để phù hợp hơn với thay đổi này.
- cải thiện giao diện người dùng trên một hình thức bạn vừa sửa đổi
Khi công việc làm thêm này nhỏ, chúng tôi không bận tâm. Vấn đề là khi công việc bổ sung này gây ra sự mở rộng đáng kể của mặt hàng vượt ra ngoài ước tính điểm tính năng ban đầu. Đôi khi một mục 5 điểm thực sự sẽ mất 13 điểm thời gian. Trong một trường hợp, chúng tôi đã có một mục 13 điểm mà nhìn lại có thể đã được 80 điểm trở lên.
Có hai lựa chọn xung quanh trong cuộc thảo luận của chúng tôi về cách xử lý việc này.
Chúng ta có thể chấp nhận công việc làm thêm trong cùng một mục công việc và viết nó ra dưới dạng ước tính sai. Đối số cho điều này đã bao gồm:
- Chúng tôi lên kế hoạch "đệm" vào cuối giai đoạn nước rút để giải thích cho việc này.
- Luôn để lại mã trong hình dạng tốt hơn bạn tìm thấy nó. Đừng kiểm tra công việc nửa vời.
- Nếu chúng ta rời khỏi tái cấu trúc để sau này, thật khó để lên lịch và có thể không bao giờ được thực hiện.
- Bây giờ bạn đang ở trong "bối cảnh" tinh thần tốt nhất để xử lý công việc này, vì bạn đã hiểu sâu về mã. Tốt hơn là đưa nó ra khỏi đường ngay bây giờ và hiệu quả hơn là mất bối cảnh đó khi bạn quay lại sau.
Chúng tôi vẽ một dòng cho mục công việc hiện tại và nói rằng công việc làm thêm đi vào một vé riêng. Các đối số bao gồm:
- Có một vé riêng cho phép ước tính mới, vì vậy chúng tôi không nói dối bản thân về việc có bao nhiêu điểm thực sự, hoặc phải thừa nhận rằng tất cả các ước tính của chúng tôi là khủng khiếp.
- Chạy nước rút "đệm" có nghĩa là cho những thách thức kỹ thuật bất ngờ là rào cản trực tiếp để hoàn thành các yêu cầu vé. Nó không dành cho các mặt hàng phụ chỉ là "những thứ tốt đẹp".
- Nếu bạn muốn lên lịch tái cấu trúc, chỉ cần đặt nó ở đầu của hồ sơ tồn đọng.
- Không có cách nào để chúng tôi tính toán chính xác các công cụ này trong một ước tính, vì nó có vẻ hơi độc đoán khi đưa ra. Một người đánh giá mã có thể nói "những điều khiển UI đó (mà bạn thực sự không sửa đổi trong mục công việc này) hơi khó hiểu, bạn có thể sửa nó không?" giống như một giờ, nhưng họ có thể nói "Chà nếu điều khiển này bây giờ thừa hưởng từ cùng một lớp cơ sở với các lớp khác, tại sao bạn không chuyển tất cả (hàng trăm dòng) mã này vào cơ sở và tua lại tất cả những thứ này , tầng thay đổi, v.v.? " Và phải mất một tuần.
- Nó "làm ô nhiễm hiện trường vụ án" bằng cách thêm các công việc không liên quan vào vé, làm cho ước tính điểm tính năng ban đầu của chúng tôi trở nên vô nghĩa.
- Trong một số trường hợp, công việc làm thêm sẽ hoãn đăng ký, gây chặn giữa các nhà phát triển.
Một số người trong chúng ta hiện đang nói rằng chúng ta nên quyết định cắt giảm, như nếu các công cụ bổ sung ít hơn 2 FP, thì nó sẽ nằm trong cùng một vé, nếu có nhiều hơn, hãy biến nó thành một vé mới.
Vì chúng tôi chỉ mới sử dụng Agile vài tháng, ý kiến của tất cả các cựu chiến binh Agile dày dạn hơn ở đây về cách xử lý vấn đề này?