Cuando la gerencia te pregunte cuánto dinero necesitas para desarrollar tu próximo proyecto de software, es conveniente que cuentes con ejemplos de estimación de costos de un proyecto de software, los cuales puedas usar como referencia y guía.
Para realizar una estimación de costos de un proyecto de software necesitarás dos cosas, en primer lugar determinar el tamaño del software que vas a desarrollar, utilizando alguna unidad de medida, luego, necesitarás saber cuántas unidades de dicha medida puede desarrollar tu equipo de trabajo, a un determinado costo.
En este artículo te presentamos un ejemplo de estimación de costos de un proyecto de software, donde primero determinaremos el tamaño del software y luego sabiendo cuánto cuesta desarrollar cada unidad de medida determinaremos el costo.
Tu prestigio en proyectos de software depende que cumplas las fechas y costos que comprometes. No lo dejes al azar, inscríbete en el curso Estimación de proyectos de software🚀💼📊 en Udemy para no volver a fallar en una estimación de software.
Método de medición del tamaño del software a desarrollar
Para determinar la estimación del software a desarrollar, primero debemos seleccionar un método para medir su tamaño. Para el ejemplo de estimación de costos de un proyecto de software utilizaremos el análisis de puntos de función por medio del método COSMIC.COSMIC es un método de análisis de puntos de función de segunda generación, en el cual se determina el tamaño funcional del software a partir del número de interacciones entre los procesos funcionales.
Los pasos para realizar esta medición son los siguientes:
- Fase 1: Estrategia de medición.
- Fase 2: Mapeo.
- Fase 3: Medición.
Para saber más sobre el método COSMIC, te recomendamos el siguiente artículo:
> Medición y estimación: Método COSMIC
COSMIC tiene la ventaja de no establecer límites arbitrarios al tamaño funcional, así puede medir componentes de software muy grandes o pequeños. Adicionalmente, está basado en el desglose funcional de los componentes de software, alineado con las prácticas de Ingeniería de software.
Ejemplo para medir el software o componente a desarrollar
Estrategia de medición
La determinamos identificando cuales son los requerimientos funcionales a medir, cual es el propósito de la medición y quienes son los usuarios funcionales.
Requerimientos funcionales del proyecto:
Lista de pedidos pendiente de facturación
La facturación de pedidos de venta se realizara en lotes, por medio de una pantalla de pedidos pendientes de facturación, la cual mostrará los pedidos no facturados. Estos pedidos se podrán consultar por Fecha de inicio y fecha fin, o por cliente. La lista de pedidos de venta pendientes se podrá imprimir o exportar a un archivo Excel.
Facturación de pedidos
Desde la pantalla de pedidos pendientes, el usuario podrá seleccionar uno o varios pedidos para ser facturados. Se podrá facturar un pedido individual o un lote de pedidos. El usuario podrá escoger entre emitir una factura por pedido o unificar las facturas por cliente. Una vez facturado, se cambiará el estatus del pedido a “facturado”, de esta forma, al refrescar la lista de pedidos pendientes este no será mostrado.
¿Te gustaría ver más ejemplos de requerimientos funcionales de software? Sigue el enlace:
Realizar la estimación funcional de la mejora al sistema de administración, comprendida por los requisitos de lista de pedidos pendiente, facturación de pedidos y envío de email al facturar el pedido.
Usuarios
El principal usuario funcional del sistema es el Analista del departamento de facturación y cuentas por cobrar.
Domina los costos y fechas de tu proyecto
Curso: Estimación de proyectos de software
Aprende a prever costos y plazos con precisión. Esfuerzo y tamaño bajo control: Domina la estimación y planificación de tu desarrollo de software.
Mapeo y medición
En el método COSMIC, utilizamos la ingeniería de software de nuestro proyecto para determinar cuáles son los procesos funcionales y movimientos de datos que lo componen. Posteriormente, asignamos un punto de función COSMIC por cada movimiento de datos identificado.
Nuestro ejemplo está compuesto por los siguientes procesos funcionales y movimientos de datos:
Proceso funcional: Mostrar lista de pedidos pendientes de facturación.
Movimientos de datos:
- Entrada: Seleccionar en el menú la opción lista de pedidos pendientes.
- Lectura: Obtener todos los pedidos de venta pendientes.
- Salida: Mostrar en pantalla todos los pedidos de venta pendientes.
- Entrada: Especificar fecha inicial y final de pedido.
- Entrada: Especificar cliente de pedido.
- Lectura: Obtener pedidos de venta filtrados según parámetros de búsqueda.
- Salida: Mostrar en pantalla lista de pedidos pendientes según criterios de filtrado.
- Salida: Imprimir lista de pedidos.
- Salida: Exportar lista de pedidos a Excel.
Puntos de función COSMIC: 9 CFP.
Proceso funcional: Facturar pedidos pendientes.
Movimientos de datos:
- Entrada: Seleccionar pedido a facturar.
- Entrada: Seleccionar facturación agrupada por cliente o individual por pedido.
- Entrada: Iniciar proceso de facturación por medio de botón.
- Lectura: Leer de la base de datos los datos de pedidos seleccionados para facturación.
- Lectura: Leer las líneas de pedido.
- Escritura: Crear un registro de factura para cada pedido (Facturación individual).
- Escritura: Crear registro de líneas de factura individual.
- Escritura: Agrupar pedidos de un mismo cliente y crear registro de factura (Facturación por cliente).
- Escritura: Crear registro de líneas de factura por cliente.
- Escritura: Cambiar el estatus de pedido a facturado.
Puntos de función COSMIC: 10 CFP.
De esta forma, hemos determinado que nuestro proyecto tiene una medición de:
19 puntos de función COSMIC (19 CFP).
Costo del equipo de trabajo de desarrollo de software
Para determinar el costo de desarrollo de una unidad de medida del tamaño del software, necesitamos valernos de la información de proyectos pasados que tenga la organización. También podemos usar información de otras fuentes, otras organizaciones y bases de datos de Benchmark.
Supongamos que tenemos un equipo de desarrollo de software y sabemos que su costo mensual es de 19.800 Dólares americanos (USD).
Para determinar este costo, debemos considerar el número de personas, cual es la remuneración de cada rol, por ejemplo desarrollador, analista de prueba, diseñador, líder de proyecto, etc. Además debemos considerar otros gastos del personal como lo son beneficios de fin de año, seguros, y también el costo administrativo de cada persona, por ejemplo la infraestructura donde trabaja, gastos de gerencia y administración, entre otros.
Si estamos haciendo este proyecto para un tercero y estamos elaborando la estimación de costos de un proyecto de software, tenemos que agregar además el margen de ganancia que esperamos obtener.
Por cierto, ¿estas elaborando una propuesta para un cliente? Consulta nuestro Modelo de como hacer una propuesta de servicios.
Unidades de medida que puede desarrollar el equipo de trabajo en un tiempo determinado
Ahora, supongamos que examinando la información histórica de la organización, podemos determinar que en los últimos 12 meses, el equipo de trabajo ha producido un promedio de 23 puntos de función COSMIC mensuales.
Para que esta medición sea exacta, debemos considerar que un punto de función está desarrollado solamente cuando está completamente listo e instalado en ambiente de producción. Si una funcionalidad se desarrolló pero aún está en pruebas o aún no ha pasado a producción no debe contar para el cálculo del promedio de los puntos de función desarrollados en el mes.
Determinar el costo por unidad de medida
Para determinar cuánto cuenta desarrollar cada punto de función se utiliza la siguiente formula:
Costo por punto de función = Costo mes del equipo de trabajo / puntos de función del mes
Retomando nuestro ejemplo:
Costo por punto de función = 19.800 USD / 23 puntos de función = 860,87 USD / Punto de función
Ejemplo de estimación de costos de un proyecto de software
Una vez que contamos con la medición del tamaño del software y el costo por unidad de medida, podemos determinar el costo del proyecto de software usando la siguiente formula:
Costo de un proyecto de software = Tamaño del software x Costo por punto de función
En nuestro ejemplo de estimación de costos de un proyecto de software lo determinamos de la siguiente forma:
Costo del proyecto de software = 19 CFP x 860,87 USD
Costo del proyecto de software = 16.356,53 USD
Tiempo que durará el proyecto de desarrollo de software
Los puntos de función COSMIC los podemos utilizar también para determinar cuánto tiempo durará el proyecto de software.En nuestro ejemplo, sabemos que el equipo de desarrollo de software produce 31 puntos de función al mes y sabemos también que el software que vamos a desarrollar está estimado en x puntos de función. Si dividimos el tamaño funcional del software entre el número de puntos de función mes podemos determinar el número de meses que durará el proyecto.
Duración del proyecto = 19 puntos de función COSMIC / 23 puntos de función COSMIC mes
Duración del proyecto = 0,83 meses
Conclusión
De esta forma hemos determinado que nuestro proyecto de software:
Durará 0,83 meses en desarrollarse (Poco menos de un mes)
Costará 16.356,53 Dólares americanos (USD)
¿Y qué opinas tú?
¿Cuál método de estimación de costos de proyectos de software utilizan en tu organización? ¿Qué ventajas y desventajas ves para este método? Déjanos tus comentarios al final del artículo.
Buen artículo! es un buen método para estimar costos y tiempo de software.
ResponderEliminar