You’re doing it wrong..
Not sure how I managed this, but I have just spent the last two days building the wrong thing.
Sure it wasn’t fair off, but as the a contractor this is not something that I want to be doing regularly. So how did it happen?
As I said to my boss it wasn’t intentional, it was a case of this is what I thought was required and I started building it and then dived into the code to make it work the way I thought they wanted.
Then, during a review it turned out that the client requirements differed to my expectations of them. Luckily enough in this instance the work that I did will help to meet a future requirements, so it wasn’t a complete waste.
So for me the question that I need to ask is, how did I let this happen? and more importantly, how can I avoid doing the same thing in the future?
Unfortunately I don’t think there are any hard and fast solutions, I think that there are things I can do to reduce the risk of this happening again (like regular discussions with the client about the requirements and implementation). I also think the only solution is constant effort, far more than was required when I was a permanent staff member, but that fine, after all, as they say, “that is why I get paid the big bucks”. :)