Gregg Boer writes about his ideal ALM system:
- Allow you to update Remaining work at the task level, so you can still track estimates/status per task
- Allow you to update Completed work at the Feature level, and would be used to track ALL time spent on the feature, not just time associated with tasks.
To me this sounds like the Scrum template I used with Team System - each task had a fixed estimate duration, and the developers updated the "remaining hours" field. (It was perfectly normal to see more than 100% hours spent on a task if the estimation was wrong). This way you could always get an up-to-date estimation.
There where also two levels of tasks: product backlog items (requirements) and sprint backlog items (development tasks). There was a one-to-many relationship between those two types.