Estimación y Planificación de Software
La estimación y planificación de software predicen el esfuerzo, el costo, el cronograma y los recursos que requerirá un proyecto de software y organizan el trabajo para entregarlo dentro de esas restricciones.
Definition
La estimación de software es la predicción del esfuerzo, la duración y el costo necesarios para desarrollar o mantener software, y la planificación es la organización de actividades, hitos y recursos para lograr los objetivos del proyecto dentro de esas estimaciones.
Scope
Este tema cubre medidas de tamaño como líneas de código y puntos de función; modelos algorítmicos de costos como COCOMO; estimación por juicio de expertos, analogía y póker de planificación; técnicas de desglose y programación del trabajo, incluyendo la ruta crítica y el burndown; planificación ágil con velocidad y puntos de historia; y el tratamiento de la incertidumbre de la estimación a través de rangos y el cono de incertidumbre.
Core questions
- ¿Cómo se mide el tamaño del software para impulsar las estimaciones?
- ¿Cómo se comparan los métodos algorítmicos, de analogía y de juicio de expertos?
- ¿Cómo se representa y reduce la incertidumbre a medida que avanza un proyecto?
- ¿Cómo difiere la planificación ágil con la velocidad de la programación inicial?
Key theories
- Modelos algorítmicos de costos
- Modelos como COCOMO expresan el esfuerzo y el cronograma como funciones calibradas del tamaño estimado y los factores de costo del proyecto, proporcionando estimaciones repetibles que pueden ajustarse con datos históricos.
- Dimensionamiento por puntos de función
- El análisis de puntos de función dimensiona el software contando y ponderando sus componentes funcionales independientemente del lenguaje de implementación, proporcionando una entrada de tamaño tecnológicamente neutra para la estimación.
Clinical relevance
La estimación y planificación realistas sustentan los compromisos con las partes interesadas y las decisiones de recursos; la subestimación crónica provoca los sobrecostos de tiempo y presupuesto que asolan los proyectos de software, por lo que los métodos disciplinados y la incertidumbre explícita son esenciales.
Evidence & guidelines
La investigación empírica sobre la precisión de la estimación y modelos como COCOMO II proporcionan orientación basada en la evidencia, y el conteo de puntos de función se rige por los estándares de medición de tamaño funcional de IFPUG e ISO/IEC.
History
Los puntos de función fueron introducidos por Albrecht a finales de los años 70 y COCOMO por Boehm en 1981, dando a la estimación una base cuantitativa; el trabajo posterior refinó modelos (COCOMO II), estudió el sesgo de estimación e introdujo métodos ligeros de dimensionamiento relativo para la planificación ágil.
Debates
- Estimación versus el movimiento sin estimaciones
- Algunos profesionales ágiles argumentan que la estimación detallada desperdicia esfuerzo y que la entrega pequeña y constante hace que los pronósticos sean más confiables que las estimaciones, mientras que otros sostienen que las estimaciones siguen siendo necesarias para la planificación y el compromiso; el debate se centra en el contexto y las necesidades de las partes interesadas.
Key figures
- Barry Boehm
- Allan Albrecht
- Steve McConnell
Related topics
Seminal works
- boehm1981
- albrecht1983
- mcconnell2006
Frequently asked questions
- ¿Por qué las estimaciones de software suelen ser tan erróneas?
- Las estimaciones se realizan cuando menos se sabe, los requisitos cambian y el sesgo humano tiende al optimismo; el cono de incertidumbre captura cuán amplias son inevitablemente las estimaciones tempranas, razón por la cual se prefieren los rangos y la reestimación sobre los números fijos únicos.
- ¿Son los puntos de historia solo horas disfrazadas?
- No. Los puntos de historia expresan el tamaño y la complejidad relativos en lugar del tiempo absoluto; combinados con la velocidad observada de un equipo, producen pronósticos, pero equipar un punto a un número fijo de horas socava su propósito de capturar el esfuerzo relativo.