It's challenging to deal with dev shops, especially as the estimate they give you for work you send them, ends up always being too low and they try to charge you more. How do you deal with this? Do you pay by the hour and trust their hours-spent reports? Or do you pay them by the task, regardless of hours taken? OR how else?