Algunos consejos del lado oscuro de alguien que aprendió por las malas.
Los requisitos no están claros. Nadie ha hecho un análisis en profundidad de todas las implicaciones.
No haga una estimación en este momento. Uno no estima cuántos soldados se necesitan para ganar una batalla sin tener idea de los números enemigos. La estimación se realiza después de explorar. Esto es a menos que ya hayas luchado contra este enemigo.
La nueva característica probablemente romperá algunas suposiciones que hizo en su código y comenzará a pensar de inmediato en todas las cosas que podría tener que refactorizar.
Es su responsabilidad tener en cuenta a menos que espere que otros tengan la experiencia sobre esta área.
Tiene otras cosas que hacer de las tareas pasadas y tendrá que elaborar una estimación que tenga en cuenta ese otro trabajo.
Igual que el anterior, incluso para el trabajo no anticipado creado por un compañero de equipo descuidado junto a usted con un procedimiento de prueba casi inexistente que hace que su código falle y que no puede predecir perfectamente por adelantado. Es un pronóstico del tiempo.
La definición de 'hecho' probablemente no esté clara: ¿cuándo se hará? ¿'Hecho' como recién terminado de codificarlo, o 'hecho' como en "los usuarios lo están usando"?
Comprenda el requisito de usuario final aquí, piense como un usuario. No haga lo que hacen sus compañeros si estiman que algo está "hecho" simplemente porque algunas funcionalidades básicas con un flujo de trabajo básico que ningún usuario puede tolerar es lo que consideran "hecho" . Piénselo desde el punto de vista del usuario, porque eso es todo lo que el cliente para el que realiza la estimación generalmente lo entenderá. Calcule los requisitos completos del usuario final, no los requisitos técnicos básicos. Y tenga en cuenta que sus clientes que soliciten presupuestos serán totalmente inexactos aquí sobre cómo redactan las cosas y entienden los aspectos técnicos de lo que usted dice.
No importa cuán consciente sea de todas estas cosas, a veces su "orgullo de programador" le hace dar / aceptar tiempos más cortos de lo que originalmente suponía que podría tomar. Especialmente cuando siente la presión de los plazos y las expectativas de la gerencia.
¡No hagas esto! Suenas como un trabajador duro y motivado y posiblemente uno que cede fácilmente a la coerción.
El problema aquí es este: digamos que usted y Joe hicieron estimaciones de tiempo para la misma tarea (pero entre dos empleados separados, sin darse cuenta de ambas estimaciones al mismo tiempo). Estima valientemente, "una semana" . Está bien, piensa, trabajará más de 100 horas a la semana, horas extras no remuneradas. Ahora llegas tres días tarde.
Mientras tanto, Joe estima 5 meses. Piensas que esto es ridículo, crees que puedes lograrlo en una semana. ¿Cuánto trabaja Joe? 10 horas a la semana? ... excepto que termina a tiempo en exactamente 5 meses.
Adivina quién se percibe como el burro? Así es usted. Joe parece un gran trabajador, ahora pareces poco confiable. No importa tanto que haya logrado un resultado aún mejor en ~ 7% del tiempo que Joe tomó. Lo que importa es que tenía 3 días de descanso de una estimación de una semana.
Nunca errar en el lado de la estimación más ajustada. Errar en el lado de la estimación más floja. Hay una reputación que construir en su empresa, y no se basará en la longitud de sus estimaciones tanto como en la precisión de sus estimaciones. Es fácil ser preciso con una estimación demasiado larga, solo tiene más tiempo para trabajar en el problema y resolverlo mejor. Una estimación demasiado corta no deja espacio para respirar, o la encuentras desesperadamente o estás jodido.