Ir al contenido principal

Software a precio fijo

Cuando contratan a una empresa para hacer el desarrollo del software, la mayoría de los clientes prefieren un contrato a precio fijo. Dígale a los desarrolladores lo que quieren, negocie, acepte una oferta, y entonces la carga queda en la empresa de desarrollo para construir el software.

Un contrato a precio fijo requiere requisitos estables y por tanto procesos predictivos. Los procesos adaptables y los requisitos inestables implican que no se puede trabajar con la noción usual de precio fijo.

Tratar de encajar un modelo de precio fijo a un proceso adaptable acaba en una explosión muy dolorosa. La parte sucia de esta explosión es que el cliente queda herido tanto como la compañía de desarrollo de software. Después de todo el cliente no querría un software a menos que su negocio lo necesitara. Si no lo consigue su negocio sufre.


Así aún cuando no pague nada a la compañía de desarrollo, todavía pierde. De hecho pierde más de lo que pagaría por el software (¿por qué habría de pagar el software si el valor comercial de ese software fuera menor?).

De modo que hay peligro para ambos lados al firmar un contrato a precio fijo en condiciones dónde un proceso predictivo no puede usarse. Esto significa que el cliente tiene que trabajar de otro modo.

Esto no significa que no se pueda fijar un presupuesto para software por adelantado. Lo que significa es que NO se puede fijar el tiempo, precio y alcance. La manera ágil usual es FIJAR TIEMPO Y PRECIO y permitir que EL ALCANCE VARÍE de manera controlada.

En un proceso adaptable el cliente tiene mucho control a escala fina sobre el proceso de desarrollo de software. A cada iteración puede tanto verificar el progreso como alterar la dirección del desarrollo de software. Esto lleva a una relación mucho más íntima con los desarrolladores de software, una verdadera sociedad de trabajo.

Este nivel de compromiso no es para cualquier organización cliente, ni para cualquier desarrollador de software; pero es esencial para lograr que un proceso adaptable funcione apropiadamente.

El beneficio importante para el cliente es un desarrollo de software mucho más sensible. Un sistema usable, aunque mínimo, puede entrar en producción pronto. El cliente puede cambiar sus capacidades de acuerdo a los cambios en el negocio, y también aprender cómo se usa el sistema en realidad.

Una pieza tan importante como ésta es una visibilidad mayor sobre el verdadero estado del proyecto.

El problema con los procesos predictivos es que la calidad del proyecto se mide por la conformidad con el plan. Esto dificulta a la gente señalar cuando la realidad y el plan divergen. El resultado común es un gran resbalón más tarde en el calendario del proyecto.

En un proyecto ágil hay un constante rehacer del plan con cada iteración. Si las malas noticias están al acecho, tienden a aparecer más temprano, cuando aun se puede hacer algo al respecto. De hecho este control del riesgo es una ventaja clave del desarrollo iterativo. Los métodos ágiles van más allá manteniendo corta la duración de la iteración, pero también viendo estas variaciones como oportunidades.

Hay un aspecto importante en lo que constituye un proyecto exitoso. Un proyecto predictivo se mide a menudo por lo bien que coincide con el plan. Un proyecto que está a tiempo y en costo es un éxito.

Esta medida no tiene sentido en un ambiente ágil. Para el agilista la cuestión es el valor de negocio - si el cliente consigue un software más valioso que el costo que puso en él. Un buen proyecto predictivo irá de acuerdo al plan, un buen proyecto ágil construirá algo diferente y mejor que lo que se esperaba en el plan original.

Texto extraido de "The New Metodology" y traducido por Alejandro Sierra

Comentarios

Entradas populares de este blog

APEX 03 - 09 - Historial de cambios y control de código fuente para Oracle APEX (Segunda Parte)

En esta novena entrega de la SAGA Ciclo de Desarrollo para aplicaciones APEX veremos las estratégias para administrar el historial de cambios en los objetos de base de datos de nuestras aplicaciones Oracle APEX.  Comprendiendo las estrategias disponibles para administrar los objetos de base de datos Existen tres estrategias principales que se pueden adoptar para administrar los objetos del esquema de la base de datos que utiliza nuestra aplicación APEX. El primer enfoque es la opción " completamente manual ". Nosotros creamos y mantenemos los scripts SQL personalizados independientemente de la definición de la aplicación APEX. Ejecutamos nuestros propios scripts para crear tablas, vistas, triggers, paquetes y otros objetos en la primera instalación de nuestra aplicación, y para recrear o alterar adecuadamente los objetos existentes a medida que nuestro equipo entrega nuevas versiones de la aplicación para testers y usuarios de producción.  Con este enfoque, editamos los scri...

APEX 23.1 - Notificaciones Push

Las notificaciones push PWA (Progresive Web App) en Oracle APEX son mensajes instantáneos que pueden ser enviados a los usuarios de una aplicación web progresiva sin que estos tengan que estar activamente utilizando la aplicación en ese momento.  Estas notificaciones se envían directamente a los dispositivos móviles o computadoras de los usuarios, permitiendo que estos se mantengan informados sobre actualizaciones relevantes, novedades o cualquier otra información importante relacionada con la aplicación que deseemos enviarles. Las notificaciones push PWA en Oracle APEX son una herramienta poderosa para aumentar la interacción de los usuarios con la aplicación y mejorar la experiencia del usuario en general.  Algunos usos que se le dan son:  enviar recordatorios, alertas, actualizaciones de contenido, promociones, estos entre otros mensajes que ayudan a mantener a los usuarios comprometidos y conectados con la aplicación. Mediante la configuración adecuada en Oracle APEX,...

APEX 24.2 - Mejoras a la Configuración de IA y Generación de ChatBots con IA

El 15 de enero de 2025 se ha lanzado la versión de Oracle APEX 24.2 que incluye muchas características. En esta serie de blogs vamos a hablar de varias de estas nuevas y actualizadas características basandome en las presentaciones realizadas en las Oracle APEX Office Hours en español. La primera característica que veremos serán las mejoras que se han introducido a la Configuración de IA que viene con la versión 24.2 Típicamente, para configurar la IA en APEX debemos seguir los siguientes pasos: 1. Vamos a las Utilidades del Workspace 2. Ingresamos a la opción Generative IA para configurar el servicio de inteligencia artificial 3. Aquí podemos ver, administrar y crear los servicios de inteligencia artificial que utilizaremos en nuestra aplicación. 4. Si se crea algún servicio se puede elegir entre las tres opciones de proveedores de IA disponibles hasta el momento 5. En el caso de mi ejemplo, utilizare la OCI Generative IA Services para el cual se deben ingresar todos los datos de confi...