Nobody wants to deliver late, over-budget software. I don't know a single software developer who wakes up in the morning and thinks "I'd like to do a rubbish job today. How can I cost my employer more money?" And yet, so many software projects don't go well.