Lidiar con plazos poco realistas [duplicado]

Estoy buscando consejos sobre cómo lidiar con plazos poco realistas en el trabajo. El problema es que la empresa para la que trabajo está dando un gran giro, sin embargo, existe la expectativa de que el giro se produzca con bastante rapidez y que las soluciones tecnológicas anteriores sean suficientes para que esta sea una transición sin problemas.

Por el contrario, recientemente descubrí que la cantidad real de tiempo para implementar el nuevo producto tomará algunos meses más de lo planeado, principalmente porque se tendrá que usar nueva tecnología y se requerirá una gran cantidad de refactores. Hasta ahora, el equipo de administración no ha sido muy receptivo a esta noticia y espera que en realidad elimine los refactores que tanto se necesitan.

Estoy buscando consejos sobre cómo manejar este tipo de expectativas poco realistas y cómo seguir adelante. Me gusta mucho la empresa, pero creo que hay mucho estrés aquí ya que la empresa está perdiendo muchos usuarios a diario.

Bienvenido al mundo de la programación. Esto nos sucede a la mayoría de nosotros. La única forma posible de manejar esta situación es aumentando sus puntos fuertes, teniendo un buen historial de fechas límite "realistas" anteriores y comunicando claramente cuánto podrá hacer en un tiempo determinado.
La otra respuesta es averiguar cuánto se puede aplazar hasta después de la fecha límite. Haga una adaptación rápida y sucia ahora, luego regrese y haga las refactorizaciones limpias más tarde. Esto es ingeniería de software, no informática; "a tiempo y por debajo del presupuesto" a veces triunfa legítimamente "pero nos costará menos a largo plazo si...". Citando a Steve Bois: "Haz que funcione. Hazlo bien. Hazlo genial". En ese orden.
@keshlam: aunque el mundo real casi invariablemente se detiene en "Haz que funcione" :)
La refactorización se realiza para que su código sea más fácil de mantener en el futuro. Claramente, el presente es una prioridad mucho mayor que el futuro en su empresa, por lo que sí, debe abandonar la refactorización. Necesita comunicar una mejor razón a sus gerentes por qué no se cumplirán los plazos
Es posible que se necesite una refactorización en este momento, ya que puede ser simplemente imposible hacer que el código anterior funcione con las nuevas características. Si el código existente es lo suficientemente malo, la refactorización puede resultar más económica a corto plazo.
@gnasher: Absolutamente. En cuyo caso, debe estar dispuesto a decirle a la gerencia cuál es su mejor estimación del tiempo necesario, qué se necesitaría para alcanzar su objetivo (si es posible)... luego haga su mejor esfuerzo para lograrlo en la fecha objetivo. de todos modos. Siempre y cuando haya sido honesto (y, lo que es más importante, preciso) sobre el tiempo necesario, es posible que estén de mal humor, pero no deberían culparlo por su elección de establecer un objetivo demasiado agresivo. (No digo que no te culpen, pero...)
No fue muy útil, pero una vez que tuvimos un plazo de 2 meses (mayo de 2011) para la integración de un sistema tributario, el proveedor del sistema tributario dijo que nunca lo había visto completado en menos de 19 meses. Dijimos que podemos entregar en agosto y entregamos en marzo de 2013. Les dijimos que estábamos 5 meses antes de lo previsto, nunca dijimos en qué agosto.

Respuestas (4)

Si hay una fecha límite poco realista, uno de los siguientes tiene que suceder:

  1. una. Extender el plazo / b. entregar fuera de plazo.
  2. Suelta características.
  3. Caída de calidad (espere algún que otro bloqueo o pérdida de datos aquí y allá).
  4. Traiga a alguien altamente calificado que pueda contribuir significativamente al trabajo, eso es costoso.
  5. Trabaja horas ridículas y como resultado te enfermas, con resultados dudosos.

Lo que no funciona, pero lo que parece hacer su gestión, es

  1. Cierra los ojos y los oídos a cualquiera que te diga que la fecha límite está en riesgo.

El número 5 tiene la desventaja de enfermarte, sin ninguna ventaja para ti (la empresa no te va a pagar horas extras, ni te lo va a agradecer, pero date cuenta de que pueden aprovecharse de ti), y de todos modos no ayuda mucho. , por lo que esa es la opción que debes evitar y rechazar a toda costa.

Sugeriría crear una lista de características que podrían eliminarse sin dejar de tener un producto útil, y una lista de puntos en los que se puede disminuir la calidad, incluidas las consecuencias obvias. Luego, su gerencia debe decidir qué hacer. Si es necesario, infórmeles que la opción 6 no funciona (ande con cuidado allí), y que la opción 1b. ocurrirá automáticamente.

Lo que debe enfatizar es que sin acción, no se cumplirá el plazo.

Me topé con esto recientemente, pero este es un excelente resumen con algunas reglas de la vida corporativa que llevo donde quiera que vaya.

En primer lugar, acepte que si este es realmente el caso, no está bien. Demasiados programadores se llevan el trabajo a casa y guardan silencio sobre estos temas dejando a la gerencia en la oscuridad (incluso si parece no estarlo).

Tampoco querrás presentar un problema sin algún tipo de razonamiento o solución. Para ello, la comunicación es clave. No solo decirle a su gerente que no podrá cumplir con una fecha límite, sino refinar la forma en que lo comunica.

Si yo estuviera en su posición, dividiría el trabajo en elementos y pondría tiempos y plazos en torno a cada uno de ellos. Luego puede usar esto para comunicar exactamente por qué no se puede cumplir con la fecha límite, con datos concretos con los que la empresa puede sentirse cómoda para tomar una decisión. Si se siente cómodo haciéndolo (según su nivel y el equipo), incluso podría sugerir algunos compromisos que se podrían hacer (con cambios o su propio cronograma) para ayudar a que el proyecto vuelva a encarrilarse.

Si esto no funciona, a menudo continúo actualizando una hoja de trabajo a medida que el proyecto comienza a enviar un resumen semanal (o si es necesario, diario) de los elementos de trabajo que se han completado, los obstáculos para realizar el trabajo y el cronograma previsto.

En primer lugar, parece que su empresa está abusando del concepto de plazos y estimaciones: las estimaciones son estimaciones y eso es todo lo que son. Nadie debería esperar que una estimación se ajuste exactamente a una fecha límite y la fecha límite debe tener un margen de seguridad muy razonable sobre la estimación exactamente para estas situaciones. Entregar antes está bien, entregar después de la fecha límite no lo es.

Modificando las respuestas anteriores, y según mi experiencia previa, esto también podría ser un problema de comunicación por una razón simple: las personas en la administración a menudo carecen de habilidades técnicas y comprensión, y en pocas palabras, están subestimando la importancia de la calidad del software, que es un Aparentemente, es una necesidad real en este caso, ya que usted indicó que se necesitará una gran cantidad de refactorización. En base a eso, probablemente debería presentar a la gerencia el hecho de que hacerlo más tarde costará más, ya que la deuda técnica solo aumenta y el problema que ya existe no desaparecerá simplemente si se pospone, sino que aumentará en gravedad a medida que agregue más y más. complejidad al proyecto, y ese aumento será exponencial hasta el punto en que mantener el proyecto absorberá una gran cantidad de recursos. Yo no'

Si se trata de un producto interno, el argumento de que en realidad deberíamos producir algo que funcione bien en lugar de un pastel a medio hornear debería pasar con gran éxito.

Si se trata de un producto para algún cliente externo, aún más: las personas suelen ser lo suficientemente razonables como para aceptar extender los plazos si eso significa que el resultado final mejorará en un orden de magnitud.

Por último, pero no menos importante, debe averiguar por qué ocurrió esta gran subestimación en primer lugar y colocar un mecanismo para evitar que suceda en el futuro: ¿los técnicos no participaron en las estimaciones? ¿Se excluyó algo importante de las estimaciones y, de ser así, por qué? Y si es así, ¿por qué no se prorrogó el plazo después de que se demostró que no era realista?

Lo siento, pero creo que estás abordando el problema desde un punto de vista demasiado ingenieril. Es fácil acusar a la gerencia de no ser razonable, especialmente si no tienen conocimientos técnicos, pero estás perdiendo clientes. Esa es una realidad.

Como todas las situaciones de emergencia (pérdidas y daños graves con poco tiempo y recursos), hay que clasificar. En su caso, tiene que suceder tanto en la Refactorización como en las áreas de Características/Requisitos. Consigue esos dos en sincronía si es posible. Si la característica A ayudará a retener a la mayoría de los clientes, refactorice esa parte del código base si es necesario. Al menos limita la refactorización en las áreas de menor interés para tus clientes. Me doy cuenta de que puede estar refactorizando áreas, utilidades o marcos generalizados.

Soy escéptico acerca de este gran cambio de imagen en un momento en que los clientes no están satisfechos con su aplicación. Arregla lo que tengas para solucionar sus problemas. Si puedes ayudarme a cruzar el río, no necesito un nuevo puente.