miércoles, 14 de julio de 2010

Estimación de Software

La etapa de obtención de requerimientos tiene por finalidad establecer las necesidades que el software tiene que satisfacer. El procedimiento puede dividirse en la toma de requerimientos, la estimación de las tareas a realizar y tiempos de desarrollo.

Toma de requerimientos
Los requerimientos deben reflejar lo que el cliente espera del software y se debe considerar las siguientes condiciones:

- El cliente se enfoca en algunos aspectos del problema. Muchas veces existen módulos enteros que se desprenden del desarrollo de módulos solicitados por el cliente y que no son tenidos en cuenta por él.


- Los requerimientos del cliente con frecuencia engloban muchas tareas a realizar. Es común que el cliente solicite el informe final que quiere obtener y no tenga en cuenta las múltiples pantallas de carga de datos que deben ser desarrolladas para que la información esté disponible.

- El cliente tiende a minimizar el alcance del desarrollo con el fin de que el presupuesto sea menor.

Debido a las consideraciones mencionadas el relevador debe enfocarse en leer entre líneas y obtener la mayor cantidad de información posible de las entrevistas. El resultado de la toma de requerimientos debe ser una lista de los requerimientos del cliente de los que se detalla el nombre (corto y de fácil identificación) y la descripción. Ambos deben ser claros para el cliente ya que serán los que validará al final del desarrollo.
En esta primera etapa y debido a la necesidad de elaborar un presupuesto, se debe definir el alcance del producto a desarrollar.

Estimación de tareas
En base a los requerimientos obtenidos del usuario es necesario determinar en forma estimada las tareas que el equipo de desarrollo deberá realizar para cumplir con ellos.
Las tareas a realizar se pueden clasificar en dos tipos:




- Tareas directamente relacionadas a los requerimientos

- Tareas generales

Las tareas directamente relacionadas a los requerimientos son aquellas que deben realizarse sólo para cumplir con el requerimiento indicado, por ejemplo diseño de pantallas de ABM, diseño de reportes y diseño de pantallas específicas.
Por otro lado las tareas generales corresponden a aquellas que se realizan para el conjunto del desarrollo, por ejemplo diseño de base de datos, testeo, redacción de manuales, capacitación instalación, etc. Tales tareas no pueden relacionarse a un pedido en particular pero son esenciales para el desarrollo de la aplicación.
En la estimación de tareas se debe obtener una lista de las tareas que se realizarán y se debe indicar si las mismas están relacionadas directamente a una solicitud del cliente o si son generales.

Estimación de tiempos
En esta etapa se debe asignar un tiempo a cada tarea estimada. Para proceder con la estimación de tiempos es útil clasificar la tarea según su tipo y basar la estimación en experiencias pasadas. Por ejemplo las pantallas de ABM con frecuencia suelen ser similares, o las pantallas maestro detalle, o los reportes con ciertas características, etc.
En el caso de tareas que no se pueden estimar con facilidad se puede intentar descomponer en tareas más pequeñas a las que se les pueda estimar el tiempo de desarrollo.



Search Engine Optimization