• Llave en mano vs tiempo y materiales ¿cuál me conviene?

  • El contrato más común en el desarrollo de software siempre ha sido el de precio fijo o también conocido como llave en mano. En la actualidad, las prácticas ágiles han dado lugar a una forma diferente de gestionar y estimar el tiempo, pero... ¿cómo encaja esta nueva forma de trabajo con un contrato de precio fijo?

    Los contratos a precio fijo traen un nivel de incertidumbre que es difícil de minimizar. Durante el desarrollo aparecen oportunidades de mejora que podrían cambiar la estimación inicial ¿deberíamos de obviarlas por el contrato?. Si se trata de continuar por el camino fijo la respuesta sería si, pero si se trata de dar un buen servicio la respuesta probablemente no sea "si" para todas ellas.

    En base a nuestra experiencia te contamos cuando usar uno u otro formato.

    Precio fijo

    Este tipo de contratos busca establecer un precio fijo por una cantidad de funcionalidades. Solo es recomendable en algunos escenarios:

    • MVPs (los de verdad)
    • Cuando el presupuesto del cliente es limitado
    • Cuando el proyecto es pequeño y el alcance es claro

    Este tipo de contratos son de cuidado, para los clientes puede ser muy fácil querer salir del alcance inicial ya que como es natural, el proceso en sí descubre oportunidades de mejora, por eso es importante establecer claramente el alcance y explicarle al cliente las desventajas de este contrato y el impacto que puede tener en la implementación de nuevas funcionalidades.

    Las ventajas de este contrato son:

    • Tiene un inicio y fin delimitado por el precio y la estimación
    • Los requerimientos son (obligatorio) claros desde el inicio
    • Los pagos se pueden pactar por porcentaje de avance

    Las desventajas de este contrato son:

    • Falta de flexibilidad (por el límite de presupuesto)
    • En algunas ocasiones por no salir del presupuesto se busca acelerar el desarrollo a como de lugar dando como resultado un entregable defectuoso

    En Evolbit buscamos ser flexibles a favor del cliente, pero es importante establecer un límite claro entre lo que está incluido y lo que no. Todo lo que nuestro cliente desea incluir y que no es parte del alcance lo agregamos a una lista de "deseables" donde definimos el estado. Algunas funcionalidades se aceptan de forma inmediata y otras se revisan al finalizar el proyecto para evaluar si se podrían implementar o si pasan a una siguiente versión (con otro presupuesto y tiempo).

    Tiempo y materiales

    Este tipo de contrato es diferente, tenemos un valor fijo (el costo por hora) y un valor variable (las horas que se invierten). Este tipo de contratos encaja como anillo al dedo con la agilidad, permite el cambio de funcionalidades e involucra a muchos más actores ya que su naturaleza otorga la flexibilidad para realizar las iteraciones que sean necesarias en busca de la mejor versión.

    Este tipo de contratos es recomendable para:

    • Proyectos de largo plazo donde los requerimientos son constantes
    • Proyectos que necesiten la flexibilidad de cambiar el alcance
    • Proyectos que se trabajan en conjunto con el equipo del cliente

    Este tipo de contratos también tienen un reto interesante, donde el seniority y la autogestión juegan un papel importante. Normalmente este tipo de proyectos son gestionados con Scrum (en nuestro caso), es importante que el equipo crezca en cada iteración, conociendo más del proyecto y aportando más valor. Otro aspecto a considerar son las personas del equipo, para un mejor rendimiento deben ser todo el tiempo las mismas (en lo posible), el cambio de un miembro en el equipo puede representar una degradación de rendimiento por algunos días hasta que logre acoplarse en la totalidad.

    Las ventajas de este contrato son:

    • Flexibilidad para trabajar en cambios
    • Mejor visibilidad para el cliente (revisión de features vs horas)
    • Los pagos se dan por entregables concretos en vez de porcentajes (por ejemplo cada Sprint)

    Las desventajas de este contrato son:

    • El control de presupuesto, el precio final podría ser mayor al proyecto inicialmente
    • El involucramiento es mucho mayor por la importancia de optimizar el tiempo en el desarrollo de cada funcionalidad

    En Evolbit creemos que este formato es el mejor pero sabemos que no todas las empresas lo pueden costear. Somo muy cuidadosos con el tiempo que el equipo invierte, utilizamos herramientas que nos ayudan a evidenciar las horas que se invierten y hacemos un balance claro de lo que debe ser cubierto por el cliente y lo que no, así promovemos la transparencia y la productividad en el equipo.