¿Qué dicen los ingenieros de software destacados sobre la fecha límite del software?

Hay diferentes tipos de plazos. Los que he visto generalmente se reducen a:

  1. El lanzamiento debe salir en la fecha x, con las características que se desarrollan, integran y prueban por la fecha y (antes de x).
  2. Este conjunto de nuevas características y correcciones deben salir en la fecha x.
  3. Un subconjunto especificado de características / correcciones debe salir en una fecha específica. Se pueden incluir otras características si están integradas y

# 1 casi siempre está bien: el trabajo puede priorizarse por importancia, y el trabajo de mayor prioridad se realiza primero. La fecha límite casi siempre se cumplirá (a menos que surjan algunos problemas de integración realmente desagradables después de realizar las pruebas de integración).

# 3 generalmente funciona bien, suponiendo que las estimaciones están bastante cerca del esfuerzo real, y se han asignado recursos suficientes para garantizar que los elementos obligatorios se puedan completar con facilidad.

# 2 es el problema. La persona que realiza la estimación rara vez puede ganar a menos que el cliente esté dispuesto a pagar una estimación y acepte un cronograma que cubra el peor de los casos. En realidad, en proyectos como este, la fecha límite de lanzamiento se define incluso antes de que se puedan hacer estimaciones y se puedan asignar recursos. Esto a menudo resulta en la programación del “mejor caso”, donde los recursos se asignan bajo el supuesto de que nada se romperá o arrastrará.

Los plazos fijos con contenido fijo son pesadillas para los desarrolladores. Excepto en los casos en que los impone el cliente, me pregunto acerca de la administración donde ese era el modo normal de operación. Si el cliente desea dicho contrato, la organización de desarrollo debe proporcionar suficiente holgura en el cronograma para acomodar fallas inevitables.

E incluso si hace todo bien, aún puede encontrar que tendrá un problema sev 1 que colgará el lanzamiento durante semanas.

Steve Jobs: “Los grandes artistas se envían”. Después de un retraso tras otro con el MackIntosh. Tengo dos ideas sobre el software que predice efectivamente los plazos. 1. No aplique oro a su software, hágalo funcionar y libre de errores y póngalo en el lanzamiento. Si tiene tiempo extra, trabaje en él para la próxima versión, no aumente el alcance. 2. Construya calidad a medida que avanza. Lo peor es descubrir al final del ciclo durante el ciclo de prueba que tiene grandes errores o fallas de diseño. La “fase de corrección de errores sin fin” mata a la mayoría de los proyectos que he visto. SCRUM o desarrollo rápido ayuda en ambos frentes. Obtenga una cantidad mínima de trabajo que sea “liberable”, con suerte al mercado. Toda la codificación, prueba, documentación, etc. se ajusta en un ciclo de 2 semanas y al final de las dos semanas, usted sabe que está completo. Esto se vuelve infinitamente más predecible y la gerencia puede planificar un trimestre a la vez. Algunos proyectos no se ajustan a este modelo, pero la mayoría sí.

Las buenas habilidades de estimación son críticas para el desarrollo de software verdaderamente exitoso. Esta habilidad se puede aprender, pero a muchos no les gusta la conclusión.

El desarrollo ágil simplemente se enfoca en el subproblema “qué puedo hacer en este sprint”, que es genial, pero no muy útil al construir un caso de negocios.

More Interesting

Cómo aprender rápidamente a convertirse en un ingeniero de software senior con experiencia limitada

¿Cómo se desempeña Myntra como empresa? ¿Es un buen momento para unirse como ingeniero de software?

¿Qué hacen los ingenieros de software 10X en su tiempo libre?

¿Los ingenieros de software usan software CAD?

¿Cuáles son algunas herramientas recomendadas que los profesionales / investigadores de la industria utilizan cuando trabajan en proyectos o productos de Aprendizaje profundo o Aprendizaje automático?

¿Qué oferta debo aceptar el puesto de ingeniero de software de Google o Microsoft?

Ingenieros de software que desarrollan / desarrollaron software que podría costarle la vida a alguien (si se codifica mal) - ¿Cómo se enfrenta a esto?

Fui contratado como ingeniero de software en IGATE. Ahora escucho que fue adquirida por Capgemini. Entonces, cuando me inscribo, ¿me convierto en un empleado de Capgemini?

¿Cuál es un día típico en la vida de un desarrollador de software?

¿Cómo afectará el aprendizaje automático al ingeniero de software promedio?

¿Cómo se pretende obtener un puesto de Ingeniero de Software Senior en 6 meses (finales de 2016)? Planeo trabajar en un proyecto de código abierto a diario.

¿Los ingenieros de software excepcionales leen libros / publicaciones de blog sobre cómo convertirse en un ingeniero de software excepcional o simplemente resuelven problemas sin descanso?

¿La mayoría de los ingenieros de software solo están haciendo mantenimiento de software?

Sé algo de codificación, pero no matemática, física, ¿puedo hacerlo a través de la ingeniería?

Tengo 5 años de experiencia en Ingeniería de Software e hice Ingeniería (ECE) en UG. Ahora descubrí que mi interés está en la arquitectura. ¿Es posible cambiar?