La principal diferencia entre precio fijo y por hora es quién asume el riesgo. Particularmente en este campo, las estimaciones del proyecto son solo aproximadas y pueden tener una gran cantidad de incertidumbre.
Por lo tanto, a un precio fijo, el desarrollador debe asegurarse de estimar alto para cubrir dificultades imprevistas. Esto es razonable, ya que en la mayoría de las actividades comerciales tener que cubrir el riesgo vale dinero (así es como funciona el negocio de seguros).
Si el cliente confía lo suficiente en el desarrollador, una tarifa por hora le permitirá ahorrar dinero si el proyecto finaliza antes de dicha estimación alta, aunque si se supera, el cliente pierde dinero. En este caso, el cliente cubre el riesgo y, en promedio, ahorrará dinero.
Particularmente si el cliente es una gran empresa y el desarrollador es un individuo, es probable que el cliente esté en una mejor posición para asumir riesgos. Es probable que tener que pagar una tarifa adicional de 160 horas perjudique menos a una empresa más grande que tener que trabajar un mes adicional gratis perjudicará a un desarrollador solitario.
También facilita la negociación de cambios de especificaciones cuando el desarrollador no tiene que hacer una reestimación exhaustiva de cada cambio.