As a software developer who charge on per hour basis, should one charge on the specification and requirement understanding/gathering time? And what about the time for testing and debugging?
I believe that what makes programming so hard is not programming itself per se, but the understanding of the domain ( such as the mechanism of put call option) or the whim of the business owners. Requirement gathering can take up a lot of time, particularly when the domain is exceptionally hard or when the business owners themselves aren't sure of what they are doing.
But is it right for the developers to charge for the time taken to understand the requirements? On one hand you can argue that the developers shouldn't because it's their own fault not being able to understand the thing, on the other, you can argue that the developers should because time is money. Not to mention that without charging for requirement gathering might have a potential disastrous consequence on the financial well-being of the consultant.
What's your take?