У вас в заголовке вопроса про почасовую оплату, а в тексте - про фиксированное время на выполнение работы. Это совершенно разные вещи.
Программистам платят по часам и по факту, потому что очень часто невозможно заранее определить стоимость работ. И даже если программист выставляет какую-то сумму заранее, он закладывает в нее большое количество рисков (если, конечно, он не вчера работать начал), поэтому и заказчику и исполнителю часто выгоднее оплата по часам по факту (не все заказчики это понимают, к сожалению, многие как раз думают, что программист будет тянуть время и ковырять в носу).