En la siguiente situación, ¿qué se debe hacer de mi lado ahora? ¿Debo renunciar?

Si todos los desarrolladores de software fueran despedidos o renunciaran por una fecha límite incumplida, todo el mundo empresarial colapsaría. Todos fallan y cometen errores. Así es como ganamos experiencia y sabiduría. Debe comprender qué salió mal, por qué sucedió y qué hará la próxima vez que se encuentre en la misma situación. Además de saber cuándo pedir ayuda, usted tiene una de las mejores habilidades que muchos programadores nunca tendrán, la responsabilidad. Se necesita mucha honestidad y humildad para estar en su posición y esto dice mucho sobre su personaje. No te golpees por esto. Aprende de esto, y continúa.

Si eres fuerte en cierta área y débil en otra, observa seriamente lo que no sabes y no te sientes cómodo haciendo. Si está trabajando fuera de su conjunto de habilidades, usted y su jefe deben analizar cuál es su mejor contribución y encontrar recursos para satisfacer las demandas requeridas para el proyecto. Puede ser que se espere demasiado de usted. Quizás necesites entrenamiento. Su trabajo puede ser valioso, pero para algunas cosas, necesita más experiencia y conocimiento.

Hay muchas razones por las cuales los plazos caducan. La mayoría de las veces se debe a que los involucrados no comprenden la complejidad del trabajo requerido para completar el proyecto. ¿Está utilizando alguna metodología de software ágil como Scrum o Kanban?

Los requisitos deben desglosarse en tareas técnicas específicas. De esta manera, puede estimar con precisión el tiempo y el esfuerzo necesarios para completar el trabajo. A medida que elimina las generalizaciones e identifica tareas y subtareas a nivel técnico, puede determinar si tiene suficiente información para resolver el problema.

Así que eche otro vistazo a lo que sucedió en sus últimos proyectos y entienda qué cosas salieron mal / bien y evalúe correctamente las circunstancias. Eche un vistazo a Scrum, Kanban u otras metodologías ágiles. No tiene que seguirlos al pie de la letra, tome lo que sea mejor para sus necesidades.

Al determinar el alcance de una tarea o proyecto, no solo calcule su tiempo, sino el tiempo de cada miembro del equipo requerido para completar un requisito. Esto incluye a los dueños de negocios, PM, QA y cualquier otra persona involucrada.

Siempre pregúntate a ti mismo:

  • ¿Están claros los requisitos?
  • ¿Tiene suficiente información para completar el requisito?
  • ¿Tiene un enfoque técnico claro? Si no, ¿por qué?
  • ¿Cómo se probará?
  • ¿Qué se hace?

Todos comparten la carga de completar un proyecto de software, no solo el desarrollador.

Hay mucho más para responder a su pregunta sin entrar en detalles realmente esotéricos. Con suerte, esto te ayuda a comenzar. Todos hemos estado allí, todos hemos tenido que enfrentar desafíos y todos hemos mordido más de lo que podemos masticar. Cuelga ahí. Mantente organizado, honesto y positivo y te será más fácil resolver problemas. Obtendrá más comentarios sobre esto, estoy seguro.

¡Buena suerte!

En primer lugar, ¿necesita identificar la causa raíz de las fallas?

1. El código falla debido a los errores.
¿Sigue las prácticas de ingeniería adecuadas? ¿Escribes pruebas automatizadas para el código? ¿Hace pruebas de evaluación comparativa para sus componentes? ¿El equipo a las pruebas de integración? ¿Tiene un entorno de integración continua con pruebas automáticas continuas y controles de calidad de código?

2. No puede entregar código de calidad dentro del plazo.
Mejore en las estimaciones y negociaciones de tiempo. Explique que producir código de calidad lleva tiempo.

3. Los requisitos están cambiando en el último momento, por lo que debe actualizar rápidamente el código creando errores.
Nuevamente, esa es la gestión del cambio. Siga el proceso ágil y asegúrese de que cada cambio se rastree como una historia separada con su propio costo de tiempo para desarrollar y probar.

4. Su código pasa las pruebas unitarias, pero falla en la integración con otros componentes.
Problema muy común, cuando diferentes equipos trabajan en diferentes componentes. Asegúrese de que todo el equipo invierta en el entorno y las prácticas de Integración Continua (CI). Asegúrese de que se asigne tiempo para integrar y hacer que todo el sistema funcione.

5. No tienes suficientes habilidades para el trabajo.
Solicite capacitación y presupuesto de libros. Asista a conferencias y reuniones, establezca contactos y aprenda de personas y libros. Solicite algo de tiempo para mejorar sus habilidades.
Si utiliza productos específicos de marcos, asegúrese de que haya un contrato de soporte, en el que pueda resolver desafíos específicos con los expertos.

La respuesta que me ha mantenido (relativamente) cuerdo ha sido resolver los detalles, hacer el lanzamiento y recibir el golpe.

Primero, no “pienses” que no puedes hacerlo. Calcule lo que se necesitaría para que esto suceda. ¿Estás hablando de miles de meses hombre? ¿Está tratando de alcanzar objetivos de rendimiento que no son plausibles para la cantidad de datos? ¿Estás tratando de resolver problemas que están más allá de lo que hacen los algoritmos? Averigüe qué se requiere y detalle qué se requiere y cómo difiere de los recursos disponibles.

Luego, reúna a su jefe y presente el problema de la manera más profesional posible. Los jefes quieren un retorno de su inversión (en usted). Todavía tengo que encontrar un gerente exitoso que presionaría para desperdiciar recursos cuando está claro que no habrá ningún retorno. Todavía tengo que encontrarme con un gerente exitoso que no establezca un plazo más razonable frente a un plan de proyecto que describa lo que debe suceder.

Si el proyecto continúa como está de todos modos, generalmente se debe a una de tres cosas:

  • El gerente ve algo que usted no sabe sobre cómo resolver el problema. Necesitas esa información.
  • El gerente está bajo presión para mostrar que el proyecto está siendo atendido, y usted está siendo sacrificado para mantener a la gente feliz. Dependiendo de las relaciones que tenga, puede bajar con el barco o irse y dejar que alguien más se encargue de ello.
  • El gerente es un imbécil que dará un discurso sobre ser “serio con la programación” y otras tonterías de macho alfa. Vete e intenta que tu jefe inmediato te acompañe. No solo será culpado por el fracaso del proyecto (posiblemente públicamente), sino que la compañía no durará mucho tiempo con personas como esa a cargo.

La clave para recordar es que los gerentes decentes se vuelven infelices cuando se sorprenden, no cuando hay malas noticias. Puedes decirle a la mayoría de ellos casi cualquier cosa, siempre que haya tiempo para encontrar una solución. Incluso el fracaso a menudo está bien, siempre y cuando sepan de antemano que está llegando.

¿Realmente te perdiste la fecha límite? ¿O tu jefe decretó un horario sin sentido solo para satisfacer a su jefe, sabiendo perfectamente que se lo perdería? Si es lo último, entonces debes saber que no hiciste nada malo y el jefe, en su opinión, no te culpa. En estos casos, hay alguna posibilidad de que te use como chivo expiatorio, pero como dices: “Definitivamente no quiere despedirme”.

Dices “está frustrado”, pero no necesariamente tienes la culpa. Su propio jefe bien puede ser la causa de su frustración.

Algunas buenas respuestas ya, intentaré agregar cosas nuevas.

Por su respuesta al comentario de Damien, parece que cree que este trabajo está sobre su cabeza. Mucha gente ha hecho un trabajo que ya pasó por alto sin orientación antes. Pero es duro. Sus decisiones de diseño no serán todas correctas la primera vez, por lo que en algún momento, probablemente necesitará refactorizar en función de lo que ha aprendido haciendo más trabajo o posiblemente desplegándose. Te resultará difícil estimar cuánto tiempo tomarán las cosas (incluso podrías estar equivocado acerca de qué tan por encima de tu cabeza está; muchas cosas suenan difíciles pero en realidad no son tan malas, especialmente después de un poco de estudio de cómo Se han construido sistemas similares). Pero también aprenderás un montón.

Dado que usted dice que no hay nadie mejor para hacer este trabajo, y parece que su jefe le ha asignado esto, probablemente no tenga sentido renunciar solo porque cree que va a fallar.

Pero tiene sentido comunicar sus limitaciones. Deje en claro que podría tener problemas para establecer plazos razonables y cumplirlos, y que cometerá errores. Si la empresa no puede darse el lujo de capear eso con usted, por ejemplo. si la empresa fracasará si no es sólida en el cronograma, deberían explorar otras opciones, como contratar a alguien con más experiencia para liderar el esfuerzo, o al menos contratar a un consultor experimentado para que lo ayude con algunas de las partes que cree que están sobre su cabeza ( puede que aprenda aún más si esto sucede, ya que tendrá a alguien de quien aprender).

Bueno, ya que trabajo más de 10 años en programación. Esta situación siempre ocurre y en su interior puede sentirse culpable porque decepciona a alguien y, como siempre, SALIR es más fácil que quedarse / luchar. Así que siempre me recuerdo si podría pasar por esto, soy el HOMBRE de la compañía. Me gusta esta frase “¡Lo que no te mata te hace más fuerte!” ¡¡¡Sé fuerte!!! 🙂

Siempre hay una solución para este tipo de problemas. Aventúrate y pide ayuda, siempre me han dicho que si no sabes la respuesta, pregúntale a tantas personas (en línea / amigos / etc.) y alguien tendrá los recursos para ayudarte. No te rindas …