f Skip to main content

Resumen

En este artículo se plasman conceptos relacionados con la estimación de software, se nombran algunos métodos sin entrar en detalles, además se describe un poco de la forma como se debe realizar el proceso de estimación y algunas sugerencias que podemos seguir para estimar y obtener buenos resultados.

1. INTRODUCCIÓN

Durante mucho tiempo la estimación de software ha sido uno de los más grandes retos para la Ingeniería de Sistemas, en la actualidad existen varios métodos de estimación que han ido mejorando y avanzando con la experiencia tanto en el desarrollo de software como de quienes los utilizan. En este artículo recordaremos algunos de los métodos de estimación más utilizados en la actualidad.

Método de estimación juicio de expertos: “una opinión informada de personas con trayectoria en el tema, que son reconocidas por otros como expertos cualificados en este, y que pueden dar información, evidencia, juicios y valoraciones” [1]. Para este tipo de estimación existe el método Delphi, el cual consiste en estimar individualmente para posteriormente coordinar una revisión de las estimaciones individuales, analizarlas y entre el grupo de expertos tomar una decisión final[2].

Método de estimación puntos de función: consiste en determinar el tamaño de software de acuerdo a modelos de datos, definición de pantallas e interfaces gráficas y diagramas de análisis. Este método da muy buenos resultados debido a que la medida de los puntos de función se deriva de métricas de productividad, calidad y costos del software [3][4].

Método de estimación analógica: estimar a través de proyectos similares. En este método se debe determinar los identificadores que comparten y los que no para establecer porcentajes de desfase en la estimación; para realizar este proceso se pueden usar estrategias de extrapolación e interpolación lineal.[5]

Método de COCOMO II: Es un modelo de construcción de costos de software, el cual estima de acuerdo al tamaño, factores de costo y escala del software. Se manejan valoraciones basadas en experiencias anteriores. Está conformado por una serie de ecuaciones y variables que han sido creadas y mejoradas con el tiempo para lograr estimaciones de alto nivel.[6]

Todos estos métodos y los demás existentes no nombrados han evolucionado a través de la experiencia, además algunos son modificados por las personas que los utilizan para obtener mejores resultados, también es pertinente mencionar que los métodos son combinados según las características de los proyectos, y así se obtienen mejores resultados.

2. ESTIMACIÓN DE SOFTWARE

Uno de los pasos más complejos del proceso de desarrollo de software es la fase de estimación, puesto que en gran medida el éxito de un proyecto depende de este paso inicial tanto en tiempo como en costo; la mayoría de proyectos una vez empiezan a ser desarrollados, presentan inconvenientes que no se detectaron en el proceso de estimación, o en ocasiones los proyectos quedaron inconclusos y se van modificando a medida que se avanza en el desarrollo.

Una forma de mitigar algunos riesgos durante el proceso de desarrollo de software es el uso de las metodologías ágiles [7], las cuales sugieren que se elabore parte de la solución en pequeños lapsos de tiempo generando un producto para ser revisado con el cliente o las personas beneficiadas con la solución; de esta forma es fácil detectar si lo que se está construyendo es lo que se desea, además esto permite corregir o identificar riesgos o puntos críticos del proyecto de forma temprana [7][8].

Sin embargo, el proceso de desarrollo de software involucra personas de diferentes disciplinas, por lo cual se necesita un gran compromiso de todas las partes para lograr ejecutar proyectos de alta calidad, con los mejores resultados, tratando de minimizar el tiempo y costo de desarrollo. Para esto, se debe estar en contexto claro de lo que se necesita y hacer seguimiento constante del equipo de desarrollo, verificando los resultados continuamente [9].

Documentar lo mínimo necesario, no obstante, el alcance de los proyectos software debe quedar por escrito a través de algún documento o diagrama que permita dimensionar la funcionalidad y el tamaño del proyecto de software; por esto, debemos darnos cuenta que algunos documentos del proceso de desarrollo de software son esenciales y que otros pueden ser innecesarios si no dan valor al cumplimiento del objetivo de un proyecto[10].
En la búsqueda de realizar un proceso de estimación acertado se debe buscar primeramente aclarar el objetivo del proyecto (¿Por qué se desea realizar el proyecto? ¿Qué es lo que se desea solucionar? ¿Cuál es la necesidad?), esto se puede lograr identificando e involucrando a todos los actores o al menos un representante de cada grupo que será afectado de manera positiva o negativa con la solución[11].

Después de tener claro el objetivo del proyecto se puede empezar a pensar en qué se va a hacer y en cómo se va a hacer, existen varias formas de identificar esta parte del proceso y cualquiera puede ser utilizada, lo que se busca es al utilizar esos pasos sugeridos para aclarar lo mejor posible estas inquietudes, para posteriormente proceder a realizar el proceso de estimación.

Una vez teniendo claro todos estos puntos es muy importante dividir el problema o proyecto en partes, lo cual permitirá más adelante atacar pequeños frentes o determinar subproductos que serán elaborados tempranamente. Con esto, se puede ir construyendo un producto modular y trabajar con un presupuesto dividido; de esta forma los clientes se ven beneficiados debido a que inicialmente no deben utilizar toda su inversión, y además obtienen resultados o productos tangibles permitiendo ver que se acercan poco a poco a su objetivo final.

Los métodos para estimar software nos sugieren tener claras las funcionalidades, interfaces, transacciones y procesos del proyecto; podemos hacer uso de los métodos de estimación existentes, pero siempre se debe tener en cuenta que cada proyecto es único y puede presentar riesgos que debemos estimar, además de esto, las estimaciones deben tratar de siempre dar el valor más aproximado tanto en tiempo como en costo, dado que dependiendo de esto depende la capacidad de confianza y madurez que genere una empresa de desarrollo de software para ser contratada[12][13].

No existe un procedimiento o ciertos pasos definidos que garanticen una estimación 100% acertada; sin embargo, de acuerdo a los factores de conocimiento y certeza de cada persona o equipo se pueden tener mejores resultados, no obstante, se pueden hacer sugerencias para mejorar esta actividad tan indispensable.

La estimación debe ser un proceso de análisis en conjunto, así se utilicen los métodos de estimación a través de fórmulas se pueden realizar revisiones previas antes de tomar la decisión final, también se debe buscar estrategias que permitan acercarse más fácilmente a los clientes identificando claramente su necesidad.

3. CONCLUSIONES

El proceso de estimación de software se mejora a través de la experiencia y la práctica, sin olvidar que se debe estimar en grupo obteniendo la percepción y visualización de más personas, para tratar de obtener una estimación lo más acertada posible tanto en tiempo como en costo sin desfasarse o subestimar el presupuesto.
Las metodologías ágiles permiten obtener resultados rápidamente, además de sugerir ciertos pasos que mejoran el proceso de desarrollo de software; sin embargo, se debe tener un alto nivel de compromiso con los proyectos, puesto que, sino se realiza alguno de los procesos de desarrollo adecuado, los proyectos no se ejecutarán de manera acertada, presentando atrasos en las entregas, inserción de bugs, aceptación de requerimientos no previstos, y finalmente desfases en el presupuesto.

REFERENCIAS

[1]. P. Robles Garrote y M. del Carmen Rojas, “La validación por juicio de expertos: dos investigaciones cualitativas en Lingüística aplicada”, 2015.
[2]. M. Varela Ruiz, L. Díaz Bravo y R. García Durán, “Descripción y usos del método Delphi en investigaciones del área de la salud”, 2012.
[3]. F. Sanchez Rodriguez, “Los Puntos de Funcionalidad (Function Points).”, 1999.
[4]. M. Bertolami y A. Oliveros, “SFP: Un Procedimiento de Estimación de Puntos Función de Escenarios”, 2011.
[5]. Técnicas de Estimación, http://fi.ort.edu.uy/innovaportal/file/2025/1/gp06.estimaciones.pdf
[6]. A. Gomez, M. del C Lopez, “COCOMO II Modelo para la Estimación de Costo”, 2010.
[7]. A. Navarro Cadavid, J. D. Fernández Martínez, “Revisión de metodologías ágiles para el desarrollo de software A review of agile methodologies for software development”, 2013.
[8]. P Letelier Torres y E. A. Sanchez Lopez, “Metodologías Ágiles en el Desarrollo de Software”, 2003.
[9]. A. Weitzenfeld Ridel y S. Guardati Buemo, “Capítulo 12 Ingeniería de software: el proceso para el desarrollo de software”, 2015.
[10]. L. Gimson, “Metodologías ágiles y desarrollo basado en conocimiento”, 2012.
[11]. G. Adzic, “Impact Mapping: Making a big impact with software products and projects”, 2012.
[12] J. M. Drake, “Proceso de desarrollo de aplicaciones software”, 2008.
[13]. A. Weitzenfeld Ridel y S. Guardati Buemo, “Capítulo 3 Ingeniería de software: el proceso para el desarrollo de software”, 2015.

carlos.agredo

Ingeniero de Sistemas en busca de aprendizaje y conocimiento continuo.

Déjanos tu comentario

Share via
Copy link