Earned Value Analysis is great on paper. However, I'm having difficulty using it for programming projects that tend to change dramatically from week to week.
For example, a milestone is "complete test plan 2 on accounting package", however, in the first half hour of the test plan, the tester discovered an unrecoverable bug. Fixing the bug is 3+ weeks worth of work that was never in the work break down structure. The programmer says, "oh yeah I forgot to include that task" when we made the task list.
So, how do you handle this? Do you create the chart so that your project is now a month behind schedule and a month over cost because the WBS was incomplete? Hard to swallow when the entire project is 6 weeks long. Or, do you adjust the planned value to include this new 3 weeks worth of work thus creating a new project plan?
To further extend the question, how do you handle disagreements about the meaning of a work item. The programmer says it's done. The stake holder explains why the three legged cat is missing a leg and the programmer says, oooh you wanted 4 legs?? Well, that's going to take an additional 3 weeks. The new cat will have more value with the extra leg... but the project will take 3 weeks longer than estimated. How do you handle this?