Estimar tiempos no es *tan* dificil. De hecho es muy, muy simple. Lo que pasa es que a veces uno le presta atencion a metodologias que estan hechas para tipos de desarrollo o tamaños de equipos de desarrollo diferentes... y no cuadran.
Yo he aplicado unas cuantas ideas y en casi todos los proyectos que he trabajado he acertado con un margen de error de 2 meses, que no esta mal

:
- Primero, hay que tener un taller que se preste para ser productivo:
-- No es discutible el uso de control de codigo
-- No es discutible herramienta de guardar bugs y tareas
http://bdn.borland.com/article/33656
http://local.joelonsoftware.com/medi...ra_los_bugs.3F
Armarse de herramientas y montar todo (al menos: subversion + bug tracking + probemos como es la vuelta) toma 1 semanita. Y paga todo el año en dividendos.
Aprender a usar nant, want o lo que sea y hacer el primer instalador en un solo tiro es 1 semanita, contando el producto mas grande que me ha tocado.
- Segundo, armar un cronograma es ASI DE FACIL:
http://www.joelonsoftware.com/articl...000000245.html
Eso toma un par de minutos por cada punto y puede gastarse unos 3 o 4 dias. Pero es algo dinamico, porque al ir entrando en codigo o ir viendo la cosa se da uno cuenta que falto esto o aquello. Asi que vas actualizando.
Todo proyecto importante toma 1 año, minimo. Con esto, tendras una certeza de +/- 2 meses para la primera vez y eso si sos tan desorganizado e indisciplinado como yo...
-- Como hacer las especificaciones:
http://spanish.joelonsoftware.com/Ar...Specifi-2.html