El periodo de garantía en proyectos de software es una parte integral del ciclo de vida del proyecto, por lo tanto a la hora de realizar estimaciones de esfuerzo – presupuestos, el hecho de tener disponible una determinada cantidad de recursos supone costes y gastos que en su mayor parte obviamos, dejándonos llevar por la ilusión de una nueva iniciativa. El soporte y mantenimiento fuera de garantía también son parte del ciclo de vida como bien indica Joe en su comentario, pero no del proyecto sino del producto. En estos casos las cuentas de cargo deben ser diferentes ya que no se trata de alcanzar los objetivos del proyecto en sí (ya lo hemos conseguido anteriormente, hurraaaa!), sino tomar las fases de soporte de la aplicación como un proyecto nuevo… con objetivos definidos, criterios y SLA’s establecidos y sobre todo con alguna rentabilidad, aunque eso es ya una decisión comercial. Si trabajamos con empresas de desarrollo de software, nos estarán eternamente agradecidos si tratamos el proyecto en sí, soporte dentro de garantía y también soporte posterior fuera de garantía como 3 proyectos independientes. Estos proyectos pueden llevarse acabo por diferentes grupos de trabajo, lo que evitará que el mismo grupo de programadores que inicialmente montaron la aplicación se quemen finalmente con la garantía o con el soporte posterior. La garantía es una obligación conjunta de todas las empresas que participan en el proyecto hacía el cliente. Por otro lado el mantenimiento y soporte fuera de garantía – no. El cliente tiene libertad de mantener la aplicación usando medios propios o subcontratar a la misma o una nueva empresa – un nuevo acuerdo. Para concluir, a veces algunos clientes una vez entregado el producto, se dan cuenta que para mantener el software a la par con sus crecientes demandas, debe existir un mantenimiento considerable, otros simplemente solicitan ampliaciones del alcance original del proyecto…

Agradecimientos a Joe por llamar mi atención sobre el tema de garantía y mantenimiento.

Al entregar un proyecto de software aunque tengamos muy presente las enseñanzas de Philip Crosby siempre existirán fallos, incidencias e incluso defectos que deberán ser tratados. Proyectos comerciales de desarrollo de software suelen llevar de 3 a 6 meses de garantía después de la entrega del proyecto. El cliente debe instalar el software y validarlo lo antes posible y siempre dentro de este periodo de tiempo. Aunque pueden existir periodos de garantía más amplios, son acuerdos comerciales puntuales entre cliente y proveedor. Durante el periodo de garantía las incidencias encontradas deben ser reportadas formalmente y arregladas por parte del proveedor sin cargo alguno – mantenimiento correctivo del producto en garantía. Cualquier cambio – Change Request – introducido durante la garantía y aprobado por CCB debe ser facturado ya que se encuentra fuera del alcance inicial de los trabajos. Al finalizar la garantía, a fin de mantener el proyecto vivo, es responsabilidad del proveedor de sugerir la formalización de un acuerdo de mantenimiento. Estos acuerdos suelen ser anuales, dónde para mantenimiento correctivo se establece una bolsa de horas mensual, que si no se llega a utilizar puede ser acumulada y usada durante la validez del contrato (un año). Al renovar el acuerdo las horas no consumidas se restablecen a favor del proveedor ya que éste reserva horas de recursos para ello. Para mantenimiento perfectivo igual que adaptivo - Change Requests – no se reserva una bolsa de horas dentro del acuerdo, sólo se define el precio hora.