¿Cómo codificar en un horario muy apretado?


40

Estoy trabajando en un proyecto que tiene un horario muy apretado. No tengo mucho tiempo para codificar y probar (aunque trabajo más de 12 horas todos los días, todavía está retrasado), y el resultado es muy frágil. Su código también es muy dilema.

Este programa es utilizado por todas las oficinas de la empresa de nuestro cliente, que se encuentra en muchos países. Regularmente recibo llamadas telefónicas a medianoche sobre errores de nuestro usuario / probador o sobre ellos que no saben cómo usar algunas funciones.

Después de tres años en este proyecto, me siento muy estresado y no puedo dormir bien porque estoy muy preocupado por los errores y las llamadas telefónicas.

Tengo algunas preguntas:

  1. Durante tres años, todo el código que he escrito es el código de escenario de uso perfecto (por lo que se rompe fácilmente). Está mal diseñado y no tiene pruebas unitarias. Tengo muchos problemas por este hecho. Por lo tanto, quiero saber si es factible escribir código que funcione cuando el proyecto tiene un cronograma muy ajustado.
  2. ¿Cómo puedo escribir un código mejor en la misma cantidad de tiempo?
  3. ¿Cómo puedo aclarar mi mente y no preocuparme por el trabajo cuando me voy a dormir?

9
¿Sugerencia? ¡El más obvio y tú lo sabes!
Aditya P

25
Apaga tu teléfono por la noche. Establezca límites y cúmplalos. Aquí tiene dos problemas distintos, el primero es que su empresa no respeta que los empleados también tienen vidas para vivir.
Tim Post

34
deja el trabajo, consigue uno nuevo. también, aprenda a hacer pruebas de unidad
mauris 03 de

18
Los plazos son un problema de la gerencia. Si los plazos son siempre tan ajustados, entonces deben trabajar para proporcionar mejores estimaciones, no trabajar como un perro para cumplir con lo que pensaron que sería necesario.
Steven Evers

44
Estoy seguro de que si EA Games contratara a SnOrfus, lo haría.
Berin Loritsch

Respuestas:


30

Prohibir llamadas telefónicas

Si sus usuarios están en todo el mundo, seguramente no pueden esperar que levante un teléfono cuando sean las 4 AM de la mañana y esté en la cama. Prohibiría las llamadas telefónicas y cambiaría a otros medios de comunicación que puedan servir mejor a este escenario (correo electrónico o algún DB de seguimiento de problemas). Pero incluso en la oficina, haga un horario programado de accesibilidad telefónica. De lo contrario, no puede hacer nada durante el tiempo que esté en la oficina.

Esto te dará un sueño y un descanso valiosos.

Apretada agenda

Si este proyecto ha estado programado durante tres años, alguien debe haber sospechado algo de que las cosas realmente no funcionan. Tal vez sea hora de que alguien les diga algo a los planificadores y especialmente a sus usuarios / clientes y sus gerentes que este es un proyecto de marcha de la muerte. Ha estado en desarrollo durante tres años, se ha retrasado y está lleno de errores. El plan debe reevaluarse por completo, el código existente debe refactorizarse y las nuevas características no deben desarrollarse hasta que se resuelvan numerosos problemas.

Orden del caos

Establezca una metodología de desarrollo que haga que las cosas sean predecibles y soportables para usted. Si eres un desarrollador, atender llamadas telefónicas a medida que entran no te permite hacer ningún trabajo. Cada interrupción te lleva 15 minutos para volver a donde lo dejaste. Las llamadas telefónicas deben estar apagadas . Al menos en tu escritorio porque eres un desarrollador. Si puede redirigir las llamadas telefónicas a otra persona que no lo moleste después de cada llamada, entonces haga eso.

Establecer algún tipo de base de datos de incidentes / errores. Tómese un tiempo cada mañana cuando llegue al trabajo y priorice nuevos incidentes (usted mismo, su equipo o con su cliente / gerente). Intente resolverlos en este orden de prioridad y no intente pensar en llamadas telefónicas.

Y si

¿Qué sucede si no puede apagar su teléfono y no puede decirles a sus usuarios que no pueden llamarlo cuando lo deseen? Si tiene el número de teléfono de su usuario, le sugiero que haga lo contrario: cuando lo llamen, notifíquelo e infórmele que lo volverá a llamar cuando esté resuelto. Luego llámalos cuando estén durmiendo. Si te dicen que están durmiendo, recuerda su respuesta y úsala cuando te llamen a media noche la próxima vez. La gente suele entender mejor su propio idioma.

Si usan el teléfono de la oficina y usted usa un teléfono móvil para que no pueda llamarlos fuera del horario laboral y puedan hacerlo, entonces comience a apagar su teléfono móvil después de salir de la oficina. Has estado allí durante 12 horas y mereces estar fuera del trabajo. Si el teléfono móvil es personal, entonces su empresa debería conseguirle uno nuevo y usted debería informar a sus usuarios / clientes al respecto. Si luego comienzan a llamarlo por su cuenta personal (porque no pueden comunicarse con usted en su empresa, usted tampoco:

  1. no recojas
  2. haga que un amigo suyo le responda informándole del número incorrecto o que el usuario original de este número ya no lo esté utilizando.

La cosa más importante

No desarrolle ninguna funcionalidad nueva hasta que resuelva los problemas existentes. Al menos de alta y media prioridad.


66
No te pongas pasivamente agresivo con los usuarios. Si la compañía no espera que contestes tu teléfono fuera de horario, no lo hagas. Tiene que haber otro número para alguien que está de servicio.
JeffO

@ Jeff O: Estoy totalmente de acuerdo. Pero dado que esto ha estado sucediendo durante 3 años, parece que responderá llamadas en esas horas inhumanas.
Robert Koritnik el

1
Te sugiero que les digas por adelantado en lugar de instigar. No sería tanto que las personas entiendan mejor su propio idioma, ya que no quieren hablar contigo porque te encuentran desagradable.
Rei Miyasaka

3
"llámalos cuando estén durmiendo" "La gente suele entender mejor su propio idioma" bueno;)
Achu

2
Honestamente, si llega al escenario "Qué pasaría si", la mejor opción es encontrar otro lugar para trabajar. No es saludable (para la mayoría) estar trabajando continuamente durante 12 horas diarias, y es aún peor cuando estás de guardia también. Ciertamente, debe hacer todo lo posible para solucionar el problema, pero si todo lo demás falla, renuncie. Esta situación no es sostenible.
Dan Lyons

14

A menos que sea la única persona en el equipo, en cuyo caso, probablemente esté a más de la mitad del camino hacia el agotamiento, tome turnos con 'el buscapersonas'. Eso debería aligerar la carga por ahora.

Luego, debe comunicar a la gerencia que necesitan programar una fase para pagar la deuda técnica, lo que significa pruebas, limpieza de código, refactorización. Y debe programarse pronto. En general, esto significa que durante un tiempo no hay código nuevo que no sea una refactorización o una prueba. Si no, solo va a empeorar.

Una vez en esa fase, elige las secciones más problemáticas de la base de código, la refactoriza, la limpia y escribe pruebas para probar la mierda. Una vez que las llamadas se detienen, o se pueden manejar sin que los desarrolladores se vuelvan locos, entonces estás listo para otra fase de características (si eso es lo que quieren). En este punto, escribe pruebas con código nuevo y sigue ejecutando las regresiones. En este momento, el software parece que está en camino a una reescritura.

Puntos de venta para su conversación con su jefe:

  • Las pruebas automatizadas pueden detener o disminuir significativamente las regresiones
  • Centrarse en la estabilidad significa que los usuarios tendrán menos retrasos / paros laborales
  • No más llamadas de medianoche significa que no están pagando horas extras
  • No más llamadas de medianoche significa que los desarrolladores no se van a quemar tan rápido

Sin embargo, seamos honestos. Hasta este momento, su empresa no ha pensado que este sea un problema lo suficientemente grande como para hacer algo al respecto; te vas a quemar Parece que nadie en la gerencia tiene ninguna experiencia de desarrollo real. Empieza a mirar.


Mejor aún, entregue el localizador al gerente (s) que lo metió en este lío ... o déjelo caer accidentalmente en un balde de agua salada.
Stephen C

2
Si este proyecto ha estado ocurriendo caóticamente durante tres años, supongo que la fase del departamento técnico durará unos meses. Primero deben dejar de desarrollar nuevas funciones para resolver el 20% de los problemas más problemáticos (porque con suerte el 80% de ellos rara vez se enfrentan) y luego comenzar con la refactorización. Cuando haya terminado, puede comenzar a tocar otro 80%. Pero no comience a desarrollar nuevas funciones hasta que haya resuelto todos los problemas actuales. ¿Por qué? Cuanto antes resuelva un error, más barato será resolverlo. Aunque en su caso ya nada parece barato.
Robert Koritnik el

@Robert Koritnik: Absolutamente. +1
Steven Evers

13

Si bien puede haber algunas técnicas que le permitirán lograr pequeñas ganancias en productividad, un aumento del 5% en la producción de trabajo es peor que inútil en este momento. La verdadera habilidad que te estás perdiendo aquí es simple y fundamental:

Aprende a decir no

Di no a todas las expectativas irracionales que ya sabes que deberías rechazar. Sabes lo que son. Eso es obvio. Si no puede decir que no ahora, encuentre un trabajo donde pueda. Los empleadores inteligentes encontrarán esta habilidad deseable.


1
Más que nada, esta es la habilidad requerida. ¡Gran respuesta!
Joe Z

8

Comience por comprender que su proyecto va a fallar si nada cambia. Este es el paso más importante para hacer lo que necesita hacer. Un desarrollador no puede mantener 12 horas al día de esfuerzo y ser capaz de producir código útil. Llegarás a un punto en el que crearás errores estúpidos y perderás el progreso porque debes comenzar cada día arreglando lo que hiciste el día anterior. Parece que ya estás allí.

Hay dos problemas principales que deben abordarse antes de que pueda tener cordura nuevamente:

  • La gerencia necesita saber que lo que están haciendo no está funcionando . Continuar repitiendo los mismos errores producirá los mismos resultados. Algo tiene que cambiar.
  • Necesita tiempo para arreglar lo que ya tiene. Eso significa que necesita tiempo para planificar su ataque, y necesita tiempo para trabajar en él utilizando 8 horas de días de trabajo.
  • Necesitas cambiar tu forma de trabajar. Comprenda que cuanto más estrés tenga, más visión de túnel tendrá. No puede pensar en formas creativas para abordar los problemas o incluso pensar en lo que sucede si hay un problema cuando está estresado de esta manera. Sin mencionar que tiene una mayor probabilidad de complicaciones de salud graves. Encuentre formas de liberar su estrés y encuentre formas de reducir su estrés.

Para solucionar su situación, necesita la aceptación de la administración. El problema es que no sienten el dolor y no desea terminar en el hospital con un derrame cerebral para llamar su atención. El primer paso es explicarle a su gerencia dónde se encuentra y la presión bajo la que se encuentra. Si no lo entienden, suba otro nivel de gestión. O posiblemente describa sus condiciones de trabajo al departamento de recursos humanos. Exigirle que trabaje más de 8 horas al día durante períodos prolongados puede ser una violación de la ley, y el departamento de Recursos Humanos lo sabrá con seguridad.

Suponiendo que la gerencia escuche su declaración, desea tomar las siguientes acciones:

  • Detén el sangrado. No hay nuevas características, y alguien más maneja las llamadas de servicio. Debe centrarse en la tarea en cuestión.
  • Identifique los errores más graves que deben corregirse e intente calcular cuánto tiempo llevará solucionarlos. Esta es una estimación aproximada, y es mejor tener números más grandes que números más bajos. Para tener en cuenta las reuniones y las interrupciones a lo largo del día, su gerencia necesita la estimación basada en trabajar en ello durante 5 horas al día. Esto deja 3 horas para reuniones e interrupciones.
  • Haga que la gerencia acepte el cronograma revisado para estos errores críticos.
  • Haga que la gerencia acepte que alguien más le haga una prueba. Esto no es admitir que no puedes hacer tu trabajo. Esto simplemente proporciona cierta garantía de calidad para que cada versión sea mejor que la anterior.
  • Ahora los arreglas. Escriba pruebas unitarias para reproducir el problema, de modo que sepa cuándo lo tiene funcionando. Más importante aún, sabrá si algo que hizo en otro lugar lo volvió a romper. Refactorizar para que el código funcione mejor.

Una vez que haya realizado la versión crítica de corrección de errores, es hora de planificar la próxima. Todas las características y correcciones de errores deben priorizarse, y las versiones deben planificarse en torno a un subconjunto de la carga de trabajo pendiente. Descubrirá que a medida que aporta algo de cordura a su vida laboral, sus niveles de estrés disminuirán, su calidad aumentará y, en general, será más eficiente.


6

Parece que está sufriendo lo que considero un caso de falsa economía , y cuanto más tiempo se adhiera a las cosas que no funcionan, peor será su problema.

Algunos indicadores clave:

  • Lo que parece ser un horario poco realista.
    • Supongo que la gerencia no comprende bien las prácticas de desarrollo sólidas.
    • Asumo una falta de comprensión o apoyo de la gerencia.
  • Trabajando 12 horas por día.
  • Altos niveles de estrés.
  • La falta de sueño.
  • Ansiedad.
  • Mala atención al diseño y la calidad del código.
  • Falta de una unidad que pruebe la red de seguridad.

Quiero saber si es factible escribir código que funcione cuando el proyecto tiene un cronograma muy ajustado.

La respuesta corta es sí. La respuesta larga es que es complejo y requerirá un cambio masivo en las percepciones en nombre de la gerencia y posiblemente también del cliente, y un esfuerzo hercúleo de su parte ... pero volveré a todo esto en un momento.

¿Cómo puedo escribir un código mejor en la misma cantidad de tiempo?

Siendo realistas, no puede si su suposición es que puede hacer cualquier cosa que le ahorre tiempo y aún así obtenga un resultado perfecto. Debe aplicar técnicas que aumenten el tiempo que lleva implementar su código porque necesitaría tiempo para concentrarse en obtener los detalles correctos. Esto lleva tiempo, y es aquí donde sus economías falsas lo están lastimando más. Sin embargo, al hacer las cosas de una mejor manera, mejora la calidad de su código y eso a su vez reducirá la fragilidad de su sistema. Nuevamente, explicaré esto más abajo.

¿Cómo puedo aclarar mi mente y no preocuparme por el trabajo cuando me voy a dormir?

La ansiedad causa falta de sueño, y perder el sueño crea ansiedad. Este es un círculo vicioso si alguna vez hubo uno, y si no se controla probablemente conducirá al gemelo malvado de la ansiedad, la depresión . La pérdida crónica de sueño, que supongo que probablemente se combina con la falta de ejercicio y también con los malos hábitos nutricionales, es probable que provoque fatiga crónica . Todo esto es sintomático de todos los problemas que enfrenta en su lugar de trabajo y los problemas resultantes que probablemente enfrentará en su vida familiar. Aquí es donde radica la mayor evidencia de falsas economías, y es probablemente el problema más serio con el que debe lidiar primero.

También agradezco cualquier sugerencia.

Primero debo decir que no soy un profesional médico, y que realmente debe buscar el consejo de su médico antes de actuar sobre cualquier cosa. Sin embargo, señalaré que he vivido las experiencias que ha descrito en su publicación, y sé lo difícil que es lidiar con eso y lo importante que es hacer algo al respecto. He vivido la depresión, la ansiedad, la fatiga crónica, el estrés y todas las otras pequeñas molestias que los acompañan, por lo que te ofreceré algunos consejos basados ​​en estas experiencias:

  • Acude a tu médico y discute tus síntomas. Informe al médico si está cansado, si se siente deprimido o preocupado la mayor parte del tiempo, si tiene resfriados y gripe con frecuencia, y cómo se ha estado sintiendo físicamente. Si se permite a su médico, es probable que le ofrezcan medicamentos contra la ansiedad o incluso contra la depresión. Incluso si se siente reacio a hacerlo, deje el orgullo en la puerta y tómelos como se los recetaron. Realmente ayudan y le permiten encontrar la fuerza para lidiar con todo lo que está por venir.
  • Busque un buen psicólogo para discutir su problema tal como lo conoce, y que pueda ayudarlo a explorar cómo se siente al respecto, y que lo ayude a desarrollar estrategias para enfrentar el problema. Algo de lo que se le pide que haga puede parecer inútil o un poco flojo. Hazlo de todos modos, porque de nuevo, realmente ayuda, particularmente al enseñarte específicamente cómo despejar tu mente.
  • Evite las pastillas para dormir a menos que realmente las necesite, ya que puede volverse dependiente de ellas y empeorar sus problemas de sueño. Personalmente, los tomo solo cuando no puedo dormir lo que necesito después de un fin de semana, y eso es generalmente cuando he tenido un fin de semana flojo e insatisfecho.
  • Considera cambiar tu dieta. Corta seriamente la cafeína ya que solo contribuye a un mayor nivel de ansiedad. Reduzca sus carbohidratos y equilibre su dieta, y con eso me refiero a comer más frutas y verduras naturales, reducir la cantidad de carne roja que consume y reducir las grasas y aceites. Elimine los refrescos y limítese a una sola taza de café por día si le resulta imposible darse por vencido. La dieta es fundamental para ayudarlo a combatir la fatiga. Además, coma su última comida antes para no acostarse con el estómago lleno.
  • Ejercicio todos los días. Haga un entrenamiento extenuante al menos una vez por semana como mínimo, y camine o vaya en bicicleta durante al menos 30 minutos cada día hasta el punto de ejercitarse al menos un sudor ligero. Esto ayudará a cansarlo físicamente, lo que ayudará con su sueño y con su fatiga.
  • Cambia tus hábitos de sueño. Trata de levantarte temprano para ir a trabajar, por lo que debes acostarte antes de lo que crees que quieres. Si no puede dormir, descanse en una habitación con poca luz y lea algo aburrido, y no se preocupe si no puede conciliar el sueño de inmediato.

Ahora que he revisado todas las cosas relacionadas con la medicina, veamos qué puede hacer con su trabajo:

  • Alguien sugirió usar la Técnica Pomadoro. Esto también se conoce como time-boxing, y creo que es una buena idea. Básicamente te concentras intensamente durante 20-25 minutos, luego tomas un pequeño descanso. Le sugiero que se levante y se mueva durante unos 3-5 minutos, y mire a la distancia para descansar los ojos. Intenta no pensar en tus tareas durante ese tiempo. Tome una copa, pasee hasta el baño o simplemente muévase en su oficina por un breve período.
  • Dependiendo de su relación con su jefe, encuentre una manera de conocer y discutir sus preocupaciones de que el horario de trabajo está afectando su salud. Explíquele que no quiere arriesgarse a decepcionar al cliente de la empresa, y que le gustaría probar y desarrollar una estrategia que pueda garantizar que pueda continuar haciendo su trabajo, pero que esto significa que necesita para hacer tiempo para abordar sus problemas de salud también. Sin embargo, use esto como último recurso, ya que sería mejor explicar las economías falsas que están funcionando aquí, como:
    • Los trabajadores fatigados terminan con una eficiencia muy reducida, mientras que los trabajadores no fatigados tienen la capacidad de hacer más en un lapso de tiempo más corto, y trataría de obtener algunas cifras y estudios que puedan usar para respaldarlo. Con un buen jefe, ni siquiera deberías necesitar esto. Los siguientes artículos pueden serle útiles: artículo 1 , artículo 2 , artículo 3
    • Saltarse las pruebas y prestar atención a algunos de los pequeños detalles le costará más adelante. Examinar el concepto de deuda técnica como punto de partida.
  • Intente reducir sus horas de trabajo de 8 a 9 horas por día.
  • Reserve un período de vacaciones y aléjese por un tiempo a un lugar tranquilo. Incluso si todo lo que haces es conducir tu auto al bosque y acampar durante una semana. En serio, no hagas nada por un tiempo para recargar tus baterías.

En términos de cosas relacionadas con la programación real:

  • Lea los libros Clean Code and Refactoring , y tómese el tiempo para aplicar las técnicas dentro. Esto lo ayudará a lidiar con el problema de la calidad del código. Como mencioné anteriormente, parecerá que tomará más tiempo hacer las cosas, sin embargo, pasará menos tiempo lidiando con el desorden y los problemas que resultaron de cómo pudo haber trabajado anteriormente.
  • Encuentre herramientas que pueda integrar en su entorno de desarrollo para ayudarlo en sus esfuerzos por mejorar la calidad del código. Por ejemplo, si está desarrollando en Visual Studio, el uso de una combinación de herramientas como Resharper y NCrunch puede contribuir a aumentar enormemente su eficiencia general si las usa religiosamente y si ya está aplicando buenas técnicas como se describe en los libros que mencioné .
  • Escriba pruebas unitarias y use un enfoque de prueba primero. Esto parecerá que lo desacelerará más, sin embargo, acelerará su desarrollo en general cuando tenga pruebas, ya que pueden contribuir a reducir el tiempo de depuración y brindarle la confianza para cambiar el código probado. Escriba sus pruebas para satisfacer los requisitos y no para satisfacer el código. Esto enfocará sus esfuerzos de prueba de manera constructiva, lo que debería minimizar el tiempo invertido en las pruebas.

Lo más importante de todo es que debe gestionar las expectativas, comenzando por las suyas. Solo eres humano y solo puedes hacer mucho en un momento dado. Debe gestionar las expectativas de su jefe y hacer que su jefe (o usted mismo) gestione directamente las expectativas de sus clientes. Esto significa priorizar seriamente el trabajo que haces. Asigne tiempo para nuevas funciones y tiempo para errores, y suponga que sus plazos se perderán. Cuando se trata de la posibilidad de perder fechas de entrega, promete entregar solo un conjunto de características críticas y dejar el resto de las características como "agradables de tener si es posible". En la próxima fecha de entrega, vuelve a pasar por este proceso, aumentando las prioridades de los "agradables" de la entrega anterior, y así sucesivamente. Incorpore esto a su metodología de desarrollo como punto de partida mínimo, y luego revise después de un par de entregas para ver dónde puede ajustar sus procesos para mejorar su eficiencia. Las mayores eficiencias vendrán de sus cambios en el estilo de vida, sin embargo, siempre hay pequeñas cosas que puede hacer para optimizar su trabajo, como reducir los gastos generales relacionados con la documentación y la comunicación entre usted y los usuarios finales.

Sea proactivo en todo esto. Muéstrele a su jefe que ambos pueden trabajar juntos para mejorar realmente las cosas, lo que finalmente se reflejará bien tanto en ustedes como en la empresa en general.

Además, no tome decisiones drásticas ahora. Espere hasta que se haya ocupado de su salud y su carga de trabajo, y vea cómo va por un tiempo. Cuando su mente se aclare y sienta que está en un lugar mejor, será el momento de decidir si vale la pena quedarse o si es hora de seguir adelante. Lo que básicamente estoy diciendo es tratar un problema a la vez y dejar que el resto se estire un poco hasta que necesiten su atención.


4

Si su horario es apretado, debe ser compulsivo sobre No repetirse . Identifique los métodos más utilizados y asegúrese de que se reutilicen en gran medida.

Planifique en qué trabajará hoy, anótelo y sígalo. Intente limitar lo que necesita recordar en cualquier momento a siete o menos elementos.

Daría un paso más y evitaría repetir el trabajo de otros. Use las bibliotecas del idioma siempre que sea posible. Utilice bibliotecas de terceros si es posible.

Puede parecer que lleva más tiempo escribir, pero apunta a métodos que solo hagan una cosa. Limito un método para tomar decisiones o hacer cosas. La cohesión de su código debería aumentar mientras que el acoplamiento disminuye. Debería encontrar que la prueba es más fácil. Esto se presta bien a la descomposición progresiva.

Simplifica tanto como sea posible. Use plantillas, listas de verificación y cualquier técnica que le permita evitar pensar en trivialidades.

Deberá evitar las interrupciones. Cada interrupción le costará unos 15 minutos en el horario. Protege tu tiempo.

Si esto es a largo plazo, vete a casa cuando descubras que tu rendimiento comienza a retrasarse. Si trabajas constantemente 12 horas al día, es probable que tu rendimiento sea lo que obtendrías trabajando 8 horas al día. Es posible que no note cuán mal se degrada su rendimiento. Tómese las cuatro horas adicionales para hacer algo de ejercicio y descansar. Vea si puede tomar una siesta a medio día o tomarse unas horas libres después del almuerzo.


4

Si fuera usted, hablaría con mi gerente y le explicaría que los plazos que establecen no son realistas. Si sigues trabajando así, pensarán que todo está bien, no se darán cuenta de los problemas que tienes y terminarás agregando más y más código mal escrito a tu sistema todos los días, lo que complicará aún más tu trabajo.

Como alternativa, siempre puedes cambiar a otro trabajo :-)


2

Rastrea todo lo que haces

Tómese el tiempo para realizar un seguimiento de todo lo que hace y cuánto tiempo usted y su equipo dedican a ello. Esto terminará siendo lo que traes a la gerencia para mostrarles que necesitas hacer las cosas de manera diferente. Si no tiene los datos fríos sobre lo que está haciendo y cuánto tiempo está dedicando a solucionar los problemas que otros informan, será mucho más difícil convencerlos de que es necesario realizar cambios. Cada hora debe ser rastreada por todos para que esto sea preciso. Esto debe usarse para decir que pasó 80 horas durante las últimas 3 semanas arreglando un sistema que podría haber sido reconstruido desde cero en la misma cantidad de tiempo.

Intenta cambiar las cosas

Utilice el seguimiento que ha reunido y las excelentes sugerencias que otros han hecho para elaborar un plan para mejorar el software. Elija las partes del software que están causando la mayoría de los problemas. Arme el plan que cree que llevará las cosas a un ritmo manejable normal. Dale tiempo para trabajar.

Prepárese para el hecho de que puede ser hora de irse

Si la gerencia no está dispuesta a cambiar las cosas y trabajar con usted, puede ser hora de pensar en seguir adelante. Estoy de acuerdo con los demás en que te estás quemando. Comience a preparar su currículum y cartera. Las cosas pueden mejorar y no tendrá que seguir adelante, pero si la gerencia no acepta hacer cambios, continúe. Su salud mental y física son más importantes que quedarse en un trabajo que le está quitando tanto.


Tengo que estar en desacuerdo con la parte de "realizar un seguimiento de todo" porque si estos datos se entregan a la gerencia, bien podrían ser muy críticos con la más mínima imperfección en la forma en que el empleado administra el tiempo. Esto agravará el estrés del empleado.
Acumenus

2

Por el amor de Dios, ¿dónde está tu jefe de proyecto?

Si no tiene un gerente de proyecto que lo ayude a establecer un tiempo productivo, necesita uno. Necesita una persona dedicada a defender su tiempo de desarrollo, limitar el desplazamiento del alcance, gestionar las expectativas, etc.

Hace un trabajo creativo para ganarse la vida. Si no tiene una barrera entre sus clientes / usuarios y usted, ¿cómo puede enfocarse efectivamente en su desarrollo?

Un buen PM puede ser bueno para muchas cosas ...

1. Para jugar la carta 'Poder superior':

Sus usuarios lo están molestando por nuevas características, pero realmente necesita algo de tiempo para concentrarse en una versión de corrección de errores. ¿Quién dijo que tienes que hablar con los usuarios? ¿Es su responsabilidad escribir los contratos? ¿Es su trabajo gestionar las expectativas del cliente? ¿Tiene el poder de decisión final para dictar los términos del contrato?

¿No? Entonces, ¿por qué eres el único responsable de interactuar con el cliente? El desarrollo es difícil y requiere mucha concentración. Necesita la capacidad de recuperar el tiempo de desarrollo y puede hacerlo con un buen PM y una buena excusa.

Independientemente de lo que haga su PM en comparación con usted, si los clientes comienzan a molestarlo por modificaciones fuera de las especificaciones, solo dígalo.

"Negociar cambios fuera de la especificación está por encima de mi calificación salarial ..."

Es una manera cortés de decir, no doy por vencidos.

Siga eso enfermando al 'Scope Creep Dog' en ellos.

"Si desea realizar cambios en las especificaciones, deberá ponerse en contacto con mi PM"

Ahora déjame en paz. La capacidad de un usuario para interactuar directamente con los desarrolladores está permitida como un privilegio que se puede quitar. Si ese no es el caso, su administración le está fallando.

2. Gestión de expectativas 101

¿Quién en su sano juicio piensa que puede trabajar un horario tan loco y manejar el soporte técnico 24/7. Necesita a alguien que lo defienda porque su tiempo es valioso y debe dedicarse a su oficio.

Esto se aplica tanto a los clientes como a la empresa para la que trabaja. Para los clientes, si se sobrepasan, siempre puede preguntar ...

"¿Este servicio está escrito en el contrato?"

Si no es así, tiene derecho a rechazar las solicitudes. No me malinterpreten, es bueno ir más allá para hacer felices a sus clientes, pero es igualmente importante hacerles saber la diferencia entre lo que se espera y lo que les está dando como un favor.

Para la empresa para la que trabaja, necesita a alguien que transmita el mensaje ...

"¿El trabajo que me piden que haga es igual a mi salario?"

Es decir, ¿le están pagando 60 mil al año para gastar el 50% de su tiempo en soporte técnico telefónico, que es una posición de pago mucho más baja? Este es un tema peligroso para abordar, por lo que necesita un PM en el que pueda confiar para que sea un buen caso para usted. El argumento que debes hacerle es ...

"Me pagan 60 mil al año, pero la mitad de mi productividad potencial se desperdicia en trabajos de baja categoría".

O bien, ustedes me contrataron y están perdiendo dinero voluntariamente en esa inversión al hacerme pasar la mitad de mi tiempo ocupando un puesto de baja calificación. Lo creas o no, maximizando tu potencial pueden hacer más dinero a largo plazo.

Cuando se trata de negocios, es mucho más fácil lograr que la empresa cambie su posición si puede presentar una situación en la que todos salgan ganando. No tiene que ser un maestro de negociación para que este se mantenga. Por supuesto, si los recursos de la compañía son limitados, esto puede ser contraproducente para usted.

3. Todos pueden usar una animadora a veces

Un buen PM será, naturalmente, una persona-persona. El núcleo de lo que hacen son las relaciones con las personas. Un buen PM tendrá la capacidad de decirle a su cliente lo que no quiere escuchar y aún así hacer que se vayan felices.

También pueden ser una gran fuente de apoyo moral cuando los tiempos se ponen difíciles. Un simple aumento de la moral no debería ser demasiado para un buen PM si lo pides. Necesita a alguien de su lado, o su moral baja y el trabajo se siente abrumador.


Si no tienes a alguien más arriba en la organización que sea responsable de administrar las expectativas, tu administración está fallando y los superiores probablemente ni siquiera se den cuenta de lo mal que está yendo el proyecto.

Esa es la razón principal por la que evito trabajar para corporaciones como la peste. He tenido la suerte de trabajar para empresas más pequeñas donde tengo a alguien más arriba. Puedo hablar honestamente de los problemas con quién tendrá en confianza lo que tengo que decir y tomará medidas si es necesario.

Necesita a alguien de su lado para ayudarlo a mantenerse en línea con los requisitos comerciales y manejar las distracciones. Si no tiene eso y no hay esperanza de encontrarlo en el futuro, buena suerte ...


1

Wow wow wow ! ¡Sostén tus caballos vaquero !. Parece que tienes todo el desarrollo mal allí. Te faltan algunos fundamentos de software aquí mientras codificas. Sí, repase sus conceptos básicos ... la vida será mucho más fácil.

Hora de regreso a la escuela ahora

  1. Rápido-Desarrollo-Programación-Software-Horarios *
  2. Hombre-mes mítico *

*Debe leer


2
siguiente pregunta: cómo codificar y lograr leer algunos libros en un horario apretado :-D
Ventsyslav Raikov

1
@Bond - amigo, ya deberíamos haber leído esos libros antes de comenzar el proyecto. Si no, debemos darnos cuenta de que el aprendizaje continuo es parte de nuestro desarrollo de software. No debemos pensar que leer no es parte de nuestro trabajo diario. Ya deberíamos haber estado leyendo durante algún tiempo todos los días. Creo que es el derecho de un desarrollador de software pasar parte de su tiempo leyendo incluso durante el horario de oficina. He visto personalmente que incluso leer tan solo 5 páginas al día tiene un enorme impacto. Comenzar a leer ahora, lo ayudará a ahorrar tiempo en su próximo proyecto.
Imran Omar Bukhsh

absolutamente de acuerdo con usted hombre, leo todos los días. Pero no trabajo (lo que supongo que significa código en la pregunta anterior) 12 horas al día. Si lo hiciera, definitivamente no leería ningún libro. Hay más en la vida que el trabajo.
Ventsyslav Raikov

@Bond: es cierto, pero no quedará mucha vida si no trabajamos de la manera adecuada. En mi empresa trabajo 5 horas al día. Hicimos un motor de rastreo en aproximadamente 1,5 años. Tenemos más de 1 millón de visitantes al mes.
Imran Omar Bukhsh

1

Me gusta hacer una lista de TODO, ordenarla por orden de necesidad y apegarme a ese orden incondicionalmente, incluso si tengo ganas de postergar algunas tareas.

Se sorprenderá de cuánto tiempo puede ahorrar simplemente reduciendo el tiempo que pasa preguntándose en qué trabajar después.


1

En este momento lo que puedes hacer es

  • Emparéjate con un colega
  • Todo el código que escriba o cambie, debe aceptar ser lo suficientemente bueno. Preferiblemente como programación de emparejamiento, solo haga una revisión por pares si no puede emparejar el programa.
  • no te desvíes de esto!

Esto significará que al menos lo que hagas a partir de ahora ha sido aprobado por DOS personas con la esperanza de mejorar esos bits de código.

Lo que se puede hacer depende de la gestión. ¡Quizás quieras mostrarles esta pregunta con las respuestas!


Tengo que estar en total desacuerdo con la programación de pares. No es cómo funcionan los pensadores independientes o las mentes creativas. Tampoco es un sustituto de una revisión por pares del equipo.
Acumenus

1

Prohibir las llamadas telefónicas e implementar una estricta regla de "solo los errores van al rastreador de errores". Entonces, su primer movimiento del día es clasificar los errores recién ingresados, limpiar los engaños, priorizar y ponerse a trabajar en la corrección de errores PRIMERO. Y asegúrese de que sus correcciones de errores realmente solucionen el error y no presenten nuevos errores.

¿Cómo haces esa última parte? Al adaptar los casos de prueba a su código existente. Si tienes funciones, prueba que ingresen y generen lo que esperas, y que fallarán bien si les das basura. Utilice algún tipo de prueba de IU automatizada para probar la integración y el rendimiento de forma consecutiva.

En realidad no te vas a levantar de la cama a las 3 de la mañana para resolver problemas de código, ¿verdad? Si es así, te mereces todo lo que obtienes.



0

Usted y los desarrolladores como usted son la única razón por la que puedo pensar para requerir una licencia de desarrollo de software, como médicos y abogados. De esta forma, su licencia puede ser revocada por no seguir las buenas prácticas mínimas de programación básica. No solo protegería a la industria de los incompetentes, sino que también protegerá a los programadores competentes de los gerentes que insisten en que sus programadores no sigan las buenas prácticas.

Para su información, prácticamente todos trabajan en un plazo ajustado. Sin embargo, aquellos desarrolladores que saben lo que están haciendo siguen las mejores prácticas porque hacen el trabajo más rápido a largo plazo. Entonces no tienen que trabajar 12 horas diarias durante 3 años seguidos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.