Tengo la impresión de que este es un tema muy pobremente tratado en los contextos académicos. Digo esto basado en mi experiencia personal y en lo que he hablado con varios colegas.
En mi caso vi la temática estimación en una clase en una materia, donde el docente realizó una explicación de diversos métodos. Nada más, sólo una explicación teórica. Nada de práctica para pudieramos entener mejor los métodos. Lamentablemente creo que esto no fué una situación aislada, pues he hablado con varios colegas de diversas casas de estudios y la situación no es muy distinta.
Personalmente creo que la estimación, al igual que varias de las actividades de la ingenieria de software, es una actividad que se aprende a partir de la práctica.
Cuando tuve que preparar el tema estimaciones para la materia que dicto en UNQ, determiné utilizar el siguiente enfoque:
- Explicar algunas generalidades sobre estimación (quien, cuando, para que, etc)
- Comentar brevemente los métodos más difundidos
- Explicar en detalle dos métodos
- Hacer un ejercicio grupal de estimación en clase
- Darles un apunte para lean y refuercen lo explicado en clase
- Pedirle a los alumnos que estimen cada tarea de la materia antes de realizarla
- Hacer un segundo ejercicio grupal de estimación en clase
El punto (6) lo hemos hecho a lo largo de todo casi toda materia, estimando y planificando cada tarea (esto es: cada alumno lleva un excel donde registra cuando va realizar la tarea de la materia y cuando tiempo estima decicarle). Luego de realizada la tarea, deben registrar también el tiempo real insumido. Con esto apunto a que los alumnos no solo hagan el ejecicio de estimar, sino que también se acostumbren a planificar.
Obviamente este enfoque me lleva más de una clase, pero creo que bien vale la pena.
Coincido, es un tema que de a poco se va incorporando, pero no es tratado en profundidad.
En particular no doy clases en una materia de ingeniería de software sino de programación y estructuras de datos, y en la materia siempre tenemos 2 trabajos prácticos.
Como me parece interesante que a lo largo de toda la carrera los alumnos se topen con estas cuestiones, este año les propuse a través del moodle de la cátedra que luego de entregar el enunciado de cada TP, suban la estimación en LOC y cantidad de Clases (lo resuelven en JAVA) que estiman serán necesarias para la resolución.
Luego compartimos las estimaciones y las estadísticas (para analizar cuantos están afuera de las dos desviaciones) y finalmente comparamos lo estimado con lo real (que en definitiva es el ejercicio más importante, que lo estimado esté tan bien estimado que la desviación sea lo menor posible con la realidad).
Si bien no es un concepto que evaluamos, si me pareció una buena práctica para que los alumnos se planteen estas cuestiones a la hora de enfrentarse a un desarrollo de software (por más que sea un TP para una cátedra).
Pero obviamente es solo una aproximación para alumnos de 3er año, no una materia de estimación donde se pueden aplicar muchisimas técnicas.
A propósito el mejor libro sobre este tema es el de McConnell, desmistificando el arte de la estimación (http://www.amazon.com/Software-Estimation-Demystifying-Black-Art/dp/0735605351 )
Saludos!
Me gusta tu enfoque, 😉
Y también lei ese libro y es en verdad muy bueno.
Hola soy nueva en esto de la enseñanza, mi materia se llama programación de aplicaciones II, pero voy enseñando un poco de la ingeniería también. Me pareció interesante lo que dices a cerca de la estimación y voy a tratar de poner en práctica con mis alumnos. Tenemos un deadline impuesto por el coordinador de carrera sobre un proyecto (en PHP) que los alumnos tienen que realizar para finalizar sus estudios. Voy a poner a prueba tus consejos para que ellos se vayan organizando, porque venían con muy mala base tanto en programación como en planificación. Espero que puedan salir adelante. Gracias por compartir estas ideas, son de mucha ayuda.
Saludos
De nada, y ojala te sirva. Luego cuenta como te va.