Given the 3 part agile team of customer, QA, and development, what should we do when a feature the customer wanted is not implemented, or is incorrectly implemented at the end of the iteration?
Q: Why wasn't the missing feature caught in a customer test?
A: Customer/QA/Dev communications are not happening. I.e. the customer discussed a feature with a developer without QA present, or notified. Use a simple durable communications form such as a wiki to record decisions about a story.
Q: Who takes responsibility for ensuring requirements discussed between the customer and development are communicated to QA.
A: Ideally the customer should since QA is the customer proxy, however, the developer has some responsibility to inform QA about the currently available features. Once again a wiki can help this communications flow. Additionally the customer could add FIT tests that should start failing and start another communications flow.
Q: How do you resolve adding new features during the iteration?
A: If the new feature can fit within the current iteration (as established via a conversation with dev & QA) then do it. Don’t worry about the old nature which says control scope first, worry about user satisfaction second. If the feature cannot be added without jeopardizing the currently selected stories for the iteration the customer has 2 choices. 1) leave the feature to a future iteration or 2) take something of equivalent effort out of the current iteration.
Q: How do you deal with a story that has missing features once the iteration is completed?
A: Essentially this is a new story. However, based on the size/scope it may fall into the category of bug/enhancement in which case it should be bundled together into a story with other small changes. No matter what you do – do not succumb to the temptation to change the iteration end date to accommodate adding the feature. This will only cause further problems down the line. Iterations are your scheduling time boxes, not release schedules.
This assumes you had customer tests that told you the feature wasn’t complete. If it was a surprise that the feature was missing take a look at the first question above.