jueves, 27 de mayo de 2010

Cotizaciones o Estimación de costos

  •  Estimacion de Proyectos NO ES IGUAL a Estimacion de Software.
  • La estimacion debe darse en rangos no en datos puntuales, recordemos que es un aproximado con cierta probabilidad de ocurrencia.
  • Tanto Sub-Estimar como Sobre-Estimar trae consecuencias negativas.
  • Lo que debemos Estimar es: 
DURACION, TAMAÑO, ESFUERZO, COSTO, PERSONAL => PLANIFICACION


Ajuste Alzado
Es una vaga forma de poner precio a  los sistemas de software, la modalidad consiste en base a la experiencia y buscando asociaciones y semejanzas con desarrollos anteriores fijar el precio.
Este precio es lo suficientemente robusto para cumplir todos los caprichos y requerimientos del cliente hasta dejarlo completamente satisfecho, con un sistema de software funcionando y con alta calidad a medida que el cliente lo demande.
Este modelo es propenso a perder los negocios por poner un precio al dearrollo por arriba de la competencia, es decir, subestimar el proyecto. o el caso contrario de ponerle menos costo de lo que en verdad nos va a costar desarrollar el proyecto, es decir, incurririamos en deficit por un mal calculo de costos.
Es una metodologia muy empirica en donde se ponen en juego principalmente las tecnicas de solucion de conflictos y la negociacion con el cliente.

Limite de Costo
Consiste en desarrollar software pero la medida es el costo, es decir, el software que es solicitado se realiza hasta donde el costo alcance.
por ejemplo, una empresa contrata desarrollo de software y los requerimientos dicen que la empresa quiere un sistema de facturacion por el cual ellos van a pagar Q. 10,000.00 en ese sentido los desarrolladores construyen una aplicacion de facturacion en donde el limite son los diez mil quetzales, a lo que la funcionalidad alcance naturalmente.
En este caso los desarrolladores indican que por ese precio pueden construir una GUI y una base de datos unicamente, si quieren lector de barras es un monto adicional o si quieren una plataforma protegida por contraseña, un sistema de multiples facturadores en red, etc, etc eso ya tiene un costo adicional.
La ventaja de este sistema de costos es que el cliente ofrece lo que puede o quiere pagar por el software, ni un poco menos ni un poco mas aunque con esa actitud compromete la funcionalidad y la innovacion. 
Las desventajas es que el desarrollo se ve limitado al igual que la funcionalidad y no se explotan los recursos tecnicos y tecnologicos.

COCOMO
Cocomo por sus suglas en ingles COnstructive COst MOdel, modelo para calcular el costo de construccion y ayudar a comprender la complejidad del proyecto.
El modelo esta basado en lineas de codigo (KLDC miles de lineas de codigo o KLOC miles line of code) y es conveniente destacar que es un aproximado empirico basado en experiencia y estandares de cantidades de lineas utilizadas en casos o proyectos semejantes. Este modelo ha tenido una evolucion en funcion de las nececideades de estimacion de costo del desarrollo de los sistemas de software las cuales son:

COCOMO I: en funcion de la cantidad de lineas de codigo (KLOC) se caclula es lefuerzo necesario para producir el software y el costo de el mismo, dependiendo directamente del lenguaje que se vaya a utilizar.
esta estimacion es aproximada porque debe realizarse antes de la construccion, pero se cuenta con un estandar de lineas para cada funcion especifica a desarrollar por ejemplo guardar un documento en un archivo binario 50 lineas de codigo.

El problema que afronto esta version de cocomo es que no incorpora ninguna metrica que dependa de la funcionalidad del software a desarrollar lo cual lo hace impreciso debido a que las empresas pagan el software segun la funcionalidad que este tenga para la empresa.
otra deficiencia es que en desarrollos orientados a objetos no aplica esta version de cocomo debido a que instanciar e utilizar un objeto que da mucha funcionalidad al software puede representar 5 o hasta 10 lineas de codigo lo cual no es representativo.

COCOMO II: esta version del modelo para estimar costos de desarrollo incorpora la version 1 de cocomo, pero agrega una seccion donde se estima subjetivamente el software, el personal, el hardware del proyecto dandole una orientacion mas acomodada a la realidad de las empresas.

COCOMO III: incorpora la version 2 de cocomo pero ahora en esta version se incluye un analisis del impacto que tiene el software el las etapas de desarrollo del software.

Puntos de funcion
Los puntos de funcion es una metodologia para estimar el software en funcion de la funcionalidad y productividad que este involucra, es decir, existen otros metodos para cuantificar software en base a su numero de lineas de codigo pero esto es impreciso debido a que depende de las tecnicas de cada programador la cantidad de lineas y depende de el lenguaje en que se este desarrollando el software. Tambien hay otros metodos de estimacion basados en el numero de ejecutables que cuenta la solucion, sin embargo esto tambien es impreciso.

Para un programador o un director de desarrollo de software las metricas (lineas de codigo, ejecutables) que hemos mencionado podran ser representativas y con una buena estandarizacion de su equipo de desarrollo lograr que funcione la estimacion sin embargo para personas ajenas al equipo de desarrollo estas estimaciones de esfuerzo y costo no son representativas, por ejemplo para los gerentes, los inversionistas y para los mismos usuarios.

Es en este contexto que toma importancia la metodologia de puntos de funcion, los cuales son una metrica representativa del esfuerzo y el coste del proyecto de software tanto para el equipo de desarrollo como para los stakeholder, gerentes, administradores, usuarios y clientes.

Para llevar a cabo el calculo de puntos de funcion, recordemos que es una medida cuantitativa, debemos sumar LOS PUNTOS DE FUNCION SIN AJUSTAR Y LOS PUNTOS DE FUNCION AJUSTADOS para obtener la cantidad de puntos de funcion total.
PF TOTAL = PF SIN AJUSTAR + PF AJUSTADOS

PUNTOS DE FUNCION SIN AJUSTAR:
1) Archivos Logicos Internos (ALI)
2) Archivos de Interfaz Externa (AIE)
3) Entradas Externas (EE)
4) Salidas Externas (SE)
5) Consultas Externas (CE)

PUNTOS DE FUNCION AJUSTADOS
1) Comunicacion de datos
2) Procesamiento distribuido de datos
3) Rendimiento
4) Configuracion altamente usada
5) Promedio de transacciones
6) Entrada de datos en linea
7) Eficiencia para usuario final
8) Actualizacion en linea
9) Procesamiento complejo
10) Reusabilidad
11) Facilidad de instalacion
12) Facilidad de operacion
13) Varios sitios
14) Facilidad de cambios

A cada uno de estos aspectos se le debe ponderar de acuerdo a la siguiente tabla:
0 = sin influencia
1 = accidental
2 = moderado
3 = medio
4 = significativo
5 = esencial


PUNTOS DE FUNCION TOTAL
Finalmente se deben sumar las dos cifras (Puntos de funcion ajustados + puntos de funcion no ajustados) y el total es la cantidad de puntos de funcion los cuales se evaluan de acuerdo a la siguente tabla:
0 a 100 SENCILLA
101 a 300 MEDIA
301 a 500 DIFICIL

No hay comentarios:

Publicar un comentario