¿Cómo puedo gestionar mi equipo para mantener una productividad razonable cuando mi empleador no trata bien a los empleados?

Mi empleador no trata muy bien a los empleados, por ejemplo, a menudo trabajamos horas extras sin pago (para obtener más detalles, puede consultar mi otra pregunta ¿ Cómo puedo argumentar en contra de la idea de trabajar horas extras para corregir errores (constantemente)? )

Pero la situación está fuera de mi control y todavía tengo un equipo que manejar. Entonces, ¿cómo administro a mi equipo para mantener una productividad razonable cuando sé que tienen sus razones para trabajar lentamente?

Por ejemplo, a veces observo que los miembros de mi equipo no trabajan tan concentrados como deberían porque todos sabemos que tenemos que volver a trabajar horas extras. Simplemente me quedé sin ideas sobre cómo decirles que se concentren.

----- actualizar -----

Cuando dije que no trabajaron tan concentrados como deberían, un ejemplo típico es que veo que usan las redes sociales de vez en cuando. Estoy totalmente de acuerdo si solo tienen un "descanso" en las redes sociales (como un descanso para tomar café). Pero si pasan demasiado tiempo en eso, definitivamente es un problema. Por otro lado, si es domingo pero estamos en la oficina trabajando horas extras, ¿cuánto tiempo es aceptable para usar las redes sociales?

El título de mi otra pregunta puede ser un poco engañoso. El aumento de funciones es una de las razones principales por las que tenemos muchos errores que corregir. ¡Desarrollamos nuevas funciones en nombre de la corrección de errores!

¿Tiene algún dato que muestre que se agregan más errores un domingo de los que se corrigen?
En esencia, se trata de una cuestión ética, no de gestión o técnica. "¿Merece apoyo una organización que maltrata a sus miembros o empleados?" Es una de esas preguntas que invierte abruptamente causa y efecto cuando se examina de cerca. En mi experiencia, solo hay una respuesta que no cree activamente organizaciones injustas que exploten a muchos en beneficio de unos pocos.
Obtuviste los votos para cerrar tu pregunta debido al domingo. Si es domingo y no les pagan por trabajar horas extras, ¡pueden revisar su cuenta de redes sociales todo el tiempo que quieran! Su empresa está cometiendo robo de salarios. Literalmente está robando a sus empleados y acosándolos.
Dicho esto, no creo en que la gente revise sus redes sociales durante las horas de trabajo (pagadas). Si deben revisar sus redes sociales durante sus descansos, instale un Chromebook antiguo en el vestíbulo para ese propósito. Y si reciben notificaciones en su teléfono en horario laboral, mejor que sea una emergencia real, no una notificación de Facebook. Las personas rara vez hacen un buen trabajo enfocado cuando están pensando en el próximo mensaje divertido que enviarán en las redes sociales.
@StephanBranczyk Sé lo que dijiste, pero mi pregunta era como líder del equipo, ¿qué puedes hacer con la situación?
Además, revisan sus redes sociales de vez en cuando en horas de trabajo b/c (tal vez b/c) saben que necesitan trabajar el domingo. Cierto, eso fue lo que pasó la semana pasada.
@Qiulang, sí, eso también es cierto. En cualquier caso, ¿qué le diría a un gerente que está obligado por su empleador a robar regularmente a sus empleados? ¿O qué le dirías a un estafador que está obligado a estafar a la gente por teléfono? Les dirías que renuncien y busquen un trabajo mejor. ¿No lo harías? Pero el estafador podría decirle: "No tengo elección. Es estafar a la gente o barrer las calles. Yo no puedo barrer las calles". ¿Qué le dirías?

Respuestas (12)

Un hombre más sabio que yo dijo: “Puedes hacer que la gente se quede en la oficina 80 horas a la semana, pero no puedes hacer que trabajen más de 40 horas a la semana”.

Ese es el problema con el que te estás metiendo, y no hay nada que puedas hacer.

La gente viene a la oficina porque les pagas. Trabajan porque quieren. Y sabes por qué esta gente no tiene motivación para trabajar.

En realidad, hay estudios (creo que de Noruega o Suecia, no estoy seguro) que muestran que, especialmente en trabajos en los que necesita pensar mucho (por ejemplo, codificación), su productividad se limita a alrededor de 30 horas por semana, por lo que incluso una semana normal de 40 horas ya contiene algunos improductivos sentados.
Claramente ya sabe esto dado su representante, pero (de Ayuda): asegúrese de que su respuesta proporcione eso, o una alternativa viable. La respuesta puede ser “no hagas eso”, pero también debería incluir “intenta esto en su lugar”.
@Dirk, ¿tiene un enlace a esos estudios? Me parece que 30 horas por semana es el número máximo de horas que puedo comprometer en una semana, por mucho que lo intente. Sería interesante si hay investigaciones que de alguna manera validen mi límite.
@Graviton Desafortunadamente no, lo siento. Lo vi en un reportaje de televisión hace unos meses. Busque en Google "jornada laboral de 6 horas en Suecia" y encontrará muchos artículos de noticias, algunos dicen que todo el mundo debería hacerlo, otros dicen que el experimento falló y que deberíamos ceñirnos a las 8 horas. Todavía no encontré las fuentes científicas de estos artículos, pero si está interesado en eso, estoy seguro de que puede encontrarlos.
La descripción de un ambiente de trabajo en el que a los empleados se les paga por hacer su trabajo suena agradable. También la idea de que el gerente tiene que relajarse y aceptar la realidad es una descripción romántica del pasado. El lector puede imaginar un mundo en el siglo XIX, en el que el lugar de trabajo era fácil de entender y todos estaban en la posición correcta.
@ChrisE, entonces, ¿cuál es tu "prueba esto en su lugar"?
Probablemente deba señalar esto, trabajan porque necesitan hacerlo, incluido yo, por lo que incluso si no tienen motivación, siguen trabajando (con baja productividad)
@Qiulang No tengo uno, por eso no intenté responderlo. Ese es todo mi punto. Cuando no tienes una alternativa o una respuesta real, no debes publicar "estás jodido, amigo". Técnicamente podría ser una respuesta, pero no es útil. Esa es también la razón por la que publiqué el clip de la sección Ayuda.
@Qiulang Creo que lo que está diciendo es que tienen que venir a trabajar (para que les paguen) para realmente hacer el trabajo, uno tiene que querer trabajar o pueden hacer lo suficiente para que les sigan pagando en lugar de ser despedidos.
@Quilang Estoy de acuerdo con Chris E, esta respuesta no es particularmente "útil" y hay mucho que puedes hacer. Dependiendo de si sus propios KPI (si los hay) dependen de la productividad de su equipo, una dirección positiva puede ser discutir esto con su gerente y/o considerar buscar un lugar de trabajo con una cultura gerente-empleado más consciente.
@Dirk sí, lo llamamos reuniones "improductivas para sentarse" . (sólo un poco en broma)
@ChrisE En realidad, es una respuesta útil. OP está buscando una respuesta que no existe, y Gnasher confirma que la respuesta no existe.
Si bien voté esto, después de considerarlo; Ojalá pudiera retractarme de mi voto, porque no creo que ayude a OP en absoluto. Les estás diciendo lo que ya han dicho en la pregunta. Saben que las horas extras son malas. No saben qué hacer a continuación.
@Luris Solo si el voto es nuevo o la publicación ha sido editada desde que se emitió.
@UKMonkey OP va en contra de las leyes de la naturaleza. No hay solución. La única solución es dejar de hacer esto y reevaluar completamente la forma de hacer negocios. De una forma u otra, esto no aguantará.
"Probablemente necesito señalar esto, trabajan porque necesitan hacerlo, incluido yo". - De su pregunta anterior, parece que "necesitan" debido a la amenaza implícita de ser despedidos si no lo hacen. Eso no es una necesidad, eso es extorsión, y en algunos países y regiones también es ilegal.
Hay estudios y muchas cosas escritas sobre la idea de que una semana laboral de 40 horas no sea tan productiva como parece. Originalmente fue impulsado por los sindicatos y se convirtió en un estándar después de eso. (No todas las fuentes adecuadas revisadas por pares) igda.org/page/crunchsixlessons inc.com/jessica-stillman/… thelocal.no/20170816/…

La forma en que su empleador trata a las personas no beneficia a nadie. Es posible que obtengan horas extras no pagadas de su personal, pero es probable que eso resulte en una baja moral, un trabajo de baja calidad y una alta rotación del personal (junto con el costo/tiempo requerido para capacitar a los reemplazos).

A largo plazo, creo que debe presionar para cambiar la mentalidad de su empleador. Es poco probable que experimenten una iluminación repentina, por lo que deberá eliminarla. Siga llamando a la puerta, señalando los riesgos y problemas con su enfoque y, finalmente, puede llegar a alguna parte. Sin embargo, ten cuidado: tendrás que abordar esto con sutileza porque no quieres que te vean como un irritante. (Además, no sé el tamaño o la estructura de la empresa, es posible que deba consultar a su gerente de línea y pedirle que lo lleve por usted).

( Si la empresa se encuentra en una posición financiera difícil, entonces debe ajustar sus solicitudes en consecuencia. Hay más cosas que dinero, tal vez vacaciones anuales adicionales, tiempo en lugar, la capacidad de terminar temprano un viernes, fruta gratis/ los refrescos pueden marcar la diferencia )

A corto plazo hay mucho que puedes intentar para mejorar el rendimiento del equipo.

  • Es posible que la empresa no aprecie sus esfuerzos, pero no hay nada que le impida hacerlo. Decir "gracias" por un trabajo bien hecho, elogiar el buen trabajo y realmente mostrar aprecio cuando alguien va más allá demostrará que reconoce su arduo trabajo. (¡También traer una caja de donas de vez en cuando hará maravillas!)
  • Se Flexible. De nuevo, no sé el tipo de trabajo que haces, pero si es posible trata de hacerle la vida más fácil a la gente. Déjelos salir temprano si tienen una cita o necesitan recoger a sus hijos. Creo que si das un poco de holgura en situaciones como esa, la recuperarás el doble cuando los plazos sean ajustados o la espalda esté contra la pared. Se trata de dar y recibir.
  • Ayuda de carrera. Chatea con los miembros de tu equipo. Averigüe dónde quieren estar en 5 años. Intente (puede que no siempre sea posible) exponerlos a ese tipo de trabajo. Tal vez esté aprendiendo una nueva habilidad o tecnología, tal vez esté asumiendo un tipo diferente de trabajo (ventas, soporte, gestión de proyectos). Si las personas están aprendiendo y se sienten desafiadas por su trabajo, es probable que se esfuercen más.
  • Sea un defensor. Todos los puntos anteriores entran un poco en esta categoría. Necesitas que sepan (o al menos sientan) que, si bien la empresa quiere que los administres, también estás luchando en su rincón. Dígales que aprecia la posición en la que se encuentran, pero también dígales que está tratando de cambiarla. Dígales lo que ha intentado y el progreso que está logrando.
  • Comunicar. Continuando con lo anterior, comunica el progreso que estás haciendo. Si escucha algo de la gerencia, decida qué puede compartir con el equipo. Si se sienten involucrados, se sentirán involucrados y, por lo tanto, más comprometidos.
  • Supervisar más de cerca. Lo anterior no funcionará para todos. En esos casos, es necesario monitorearlos más de cerca. Sepa en qué están trabajando. Pídeles que se comprometan con un tiempo de entrega (necesitas saber si esto es razonable o si se está completando) y luego verifica regularmente para asegurarte de que cumplan con ese plazo. Si no lo hacen, averigüe por qué. No está apuntando al conflicto, debería ser una discusión del tipo "bueno, ¿cómo puedo ayudarlo a cumplir con la fecha límite la próxima vez?": tal vez el proceso deba mejorarse, tal vez fueron interrumpidos o reasignados, tal vez algo salió mal . Si los plazos se incumplen continuamente, es probable que deba tomar la ruta disciplinaria.
"Sé flexible" es lo que hago ahora mismo.
@Ian: ¡gracias por la corrección y edición!

Su trabajo como líder/gerente de equipo es proteger a los miembros de su equipo de la basura que viene de arriba para que sean productivos.

Necesita averiguar POR QUÉ tienen que trabajar horas extras. ¿Son generalmente improductivos o los plazos son poco realistas? Si no son realistas, debe tomar medidas para hacerlos realistas... Involucre al equipo en la elaboración de estimaciones para las escalas de tiempo; y si la gerencia presiona por escalas de tiempo poco realistas, entonces debe presionar para obtener más recursos.

A la gerencia no le gustará que lo diga... a nadie le gusta que la gente retroceda; pero al final pueden preferirlo cuando aumenta la productividad, la gente está más feliz y se cumplen los plazos.

@Quilang, creo que deberías considerar esta respuesta. Esta mentalidad y actitud pueden ser difíciles, pero a la larga valen la pena.
"Tu trabajo como líder/gerente de equipo es proteger a los miembros de tu equipo de la basura que viene de arriba" < -- Esto.
Corregiría la primera línea de esta respuesta para que diga: "Su trabajo real es proteger a la gerencia de las consecuencias de sus decisiones".
En nuestra empresa llamamos a esa responsabilidad el "paraguas de mierda".

Problema cultural

Creo que la respuesta de Karl Bielefeldt es la mejor, pero me gustaría decirlo con más fuerza: tienes un problema cultural y no tiene nada que ver con China. ¿Su jefe quiere que se corrijan los errores en su software? ¡¡¡Impresionante!!! Hay innumerables ocasiones en mi carrera en las que quise priorizar la corrección de errores, pero la gerencia quería más entrega de funciones.

El verdadero problema que tiene es la actitud de su equipo hacia la calidad del código . En última instancia, este es un problema de madurez. La mayoría de los equipos terminan con un código roto y defectuoso por algunas razones comunes y recurrentes:

  • No hay suficiente tiempo/recursos dedicados a las pruebas
  • No se dedica suficiente tiempo a documentar y revisar el código
  • Demasiado enfoque en la entrega
  • Disposición a acumular deuda técnica ilimitada

No es trabajo de su jefe solucionar estos problemas. Estos no son problemas organizacionales o corporativos. Estos son problemas de los desarrolladores , y los desarrolladores deben adquirir la actitud y la estrategia adecuadas para enfrentarlos.

Lectura en frío

Sin saber nada más sobre su empresa, equipo o prácticas comerciales, voy a hacer algunas predicciones:

  • Su base de código tiene pocas o ninguna prueba unitaria (cobertura de código <20%)
  • Su equipo participa en pruebas manuales (pocas o ninguna prueba automatizada de integración/funcional/aceptación)
  • Su equipo pone poco esfuerzo en la revisión del código (o lo trata como un sello de goma, una oportunidad para quisquillosos gratuitos o se salta por completo)
  • Su equipo rara vez documenta el código o agrega comentarios triviales (// la siguiente línea imprime un mensaje en el archivo de registro)
  • Su equipo no participa en la refactorización regular, o solo tiene 1 o 2 ingenieros que creen que la refactorización es incluso algo útil.
  • A su equipo le encanta escribir código nuevo e intenta evitar mantener el código existente como la peste.
  • Su sistema carece de métricas automatizadas de éxito (cantidad de transacciones/solicitudes exitosas frente a intentos, cantidad de errores por transacción, cantidad de tiempos de espera, errores del usuario, etc.)

Saliendo del Agujero

Incluso si solo tengo razón en la mitad de las predicciones, eso es suficiente para explicar tu situación. La solución no es más horas extra, ni tratar de convencer a su jefe para que retroceda. Parte del problema es que carece de un fuerte liderazgo técnico en su equipo. Su equipo realmente necesita uno o cinco ingenieros senior que puedan promover prácticas maduras de desarrollo de software que reduzcan los defectos tan pronto como sea posible.

Como puede imaginar, las correcciones prescritas abordarán directamente los defectos que predije anteriormente, junto con una breve descripción de por qué debería invertir en la actividad:

  • Pruebas unitarias: creo que el 80% es el mínimo absoluto para una base de código mantenible a largo plazo. Me esfuerzo por alcanzar el 98 % o más, y eso casi siempre se puede lograr. No se trata de marcar alguna casilla en una lista de verificación SDLC masoquista. Primero, no todo el código es fácil de probar. Escribir pruebas contra dicho código obliga al desarrollador a repensar el diseño y la organización del código. Hacer que la unidad de código sea comprobable lo hace mejor. Digo esto como una verdad absoluta, porque creo que lo es, y nunca he visto un contraejemplo. Además, las pruebas unitarias descubren una gran cantidad de errores que finalmente se manifiestan en la producción y, a menudo, de una manera insidiosa y difícil de reproducir. Finalmente, las pruebas unitarias sirven como una especie de documentación de las intenciones del desarrollador cuando el codificador original se ha trasladado a otro proyecto y el mantenedor está tratando de inferir lo que estaba tratando de lograr. Afirmo que las pruebas unitarias siempre ahorran más tiempo de lo que cuestan, razón por la cual los desarrolladores maduros invertirán el tiempo para escribirlas. Desafortunadamente, apostaría a que menos del 20% de los desarrolladores en todo el mundo cuentan como "maduros" según esta métrica. :/ No puede saber qué tan bien lo está haciendo en las pruebas unitarias hasta que implemente un analizador de cobertura de código en su proceso de compilación y coloque los resultados en un "
  • Pruebas de aceptación: su equipo tiene muchos errores que corregir porque ha subcontratado las pruebas adecuadas para sus usuarios, y esto hace que su jefe se enoje bastante. Sus desarrolladores son perezosos, creen que otra persona debería hacer las pruebas (como evaluadores dedicados) y claramente no mantienen un conjunto de pruebas automatizadas. Necesita pruebas que se ejecuten en cada fusión, en cada compilación de producción, en cada implementación en cada entorno de prueba y en cada implementación de producción. Desea una amplia cobertura a través de la generación de pruebas aleatorias y una extensa validación de datos dentro de su código. Este es un tema completo en sí mismo, pero también es fundamental para su problema. No necesita escribir miles de casos de prueba para tener un conjunto de pruebas de aceptación útil. Pero sí necesita encontrar un buen marco de prueba, sentirse muy cómodo con él y convertirlo en su nuevo mejor amigo.
  • Revisión de código: muchos desarrolladores no obtienen el valor de la revisión de código que está fácilmente disponible. En primer lugar, la revisión del código debería ayudar a mantener un estilo y un enfoque coherentes en todo el equipo. No creo que los desarrolladores necesiten escribir código como si fueran todos clones, al estilo XP. Pero sí ayuda a hacer cumplir algunos estándares comunes, sin convertirse en guerras de formato. Esto se extiende a patrones de diseño y lenguajes de codificación que ocurren con frecuencia en el espacio de su problema. En segundo lugar, la revisión del código es una oportunidad de aprendizaje, tanto para el autor como para los revisores. Es una manera especialmente buena para que los desarrolladores junior aprendan buenas prácticas de los más veteranos (suponiendo que los seniors sean realmente buenos programadores). Los revisores deben hacer muchas preguntas siempre que el código no esté claro y el proceso debe ser colaborativo en lugar de confrontación. Tercero, los buenos revisores a menudo pueden detectar errores simplemente leyendo el código. Esto no sucederá todo el tiempo y no reemplaza las pruebas. pero es unbuen bono , y uno que obtienes "gratis" solo porque te molestaste en pedirle a otras 2 personas que leyeran tu código. Cada fusión debe tener una revisión de código .
  • Escribir una buena documentación es pasado por alto por aproximadamente el 95% de todos los desarrolladores, dado mi juicio altamente poco científico. No necesita documentación a nivel de la NASA para mejorar su base de código, ni todos los códigos requieren el mismo nivel de documentación. En general, cuanto más código se reutiliza, más documentación debe tener. Por lo tanto, cualquier tipo de biblioteca/clase/módulo compartido debe obtener documentación adicional, especialmente para cosas como seguridad de subprocesos, seguridad de excepciones, uso previsto, API de funciones detalladas, manejo nulo, etc. El código de la aplicación a medida debe tender más a ser claro y autónomo. documentando Una vez más, no puede saber qué tan buena es su documentación hasta que la genera como parte del proceso de compilación y la publica en un servidor web local. Muchos errores ocurren porque hay suposiciones y expectativas que no coinciden entre los ingenieros (sobre valores válidos para los campos, dónde ocurre la validación, etc.). La documentación ayuda a mitigar este modo de falla.
  • Refactorización: esta es una de las cosas más valiosas que puede hacer por las bases de código crujientes que han adquirido una gran deuda técnica. Es quizás el segundolo que debe hacer (¡después de escribir pruebas unitarias, por supuesto!). Para una pequeña empresa o una startup, hay momentos en los que moverse rápido y romper cosas es el curso de acción correcto. Pero eso no puede sostenerse indefinidamente. Si no presiona con fuerza para refactorizar las pausas, su equipo eventualmente caerá por un precipicio de deuda técnica (suena como si se estuviera aferrando a una pequeña rama mientras hablamos). Los buenos ingenieros deberían impulsar la refactorización de todos modos. El hecho de que no haya mencionado ningún remedio defendido por los desarrolladores me dice que carece de tales ingenieros. El código no tiene que ser perfecto la primera vez que lo escribes (y casi nunca lo será). Pero deberías poder mejorarlo cada vez que lo toques. La refactorización debe ser una segunda naturaleza para todo su equipo, y todos deben sentirse capacitados para hacerlo. cuando los cambios son claramente beneficiosos para todo el equipo. Obviamente, desea evitar la refactorización gratuita. Pero dudo que esto sea incluso un riesgo para su equipo.
  • Operaciones/métricas: no solo necesita pruebas a nivel de código y externas a su producto, también necesita métricas operativas para ver el rendimiento de su producto. Y estas métricas deben incluir parámetros de calidad (recuento de transacciones, velocidad, recuentos/tasas de errores, etc.). Tu jefe no debería ser el que te exija que arregles los errores. Debe tener sus propios objetivos de calidad definidos por el equipo que lo obliguen a entrar en modo de limpieza cuando se desvíe de ellos.

Próximos pasos

Curiosamente, lo único que no ha mencionado es que su jefe exige que entregue 20 funciones nuevas para la próxima semana, además de corregir todos los errores. Asumo que existe cierta presión de este tipo, pero su fracaso para resaltarlo me da esperanza. Sugiere que tiene espacio para solicitar una pausa en la entrega de funciones mientras su equipo paga la enorme deuda técnica que ha acumulado. Si elabora un plan detallado para su jefe sobre cómo va a mejorar sistemáticamente la calidad de su producto y mantener un alto nivel de calidad en el futuro , entonces quizás encuentre apoyo para dicho plan.

Por supuesto, debe trabajar con su equipo en el plan y aceptar qué pasos serán los más apropiados y efectivos. Y seguramente habrá compromisos que deberán hacerse en todos los lados. Es posible que deba amortizar la refactorización en algunos ciclos de productos, mientras que su jefe puede reconocer la urgencia de crear un conjunto de pruebas decente de inmediato, incluso a costa de la congelación de funciones.

En resumen, creo que su situación es totalmente salvable. Sin embargo, creo que requiere un gran cambio en el pensamiento y la actitud de todo tu equipo. En lugar de ver a su jefe como el enemigo, debe comenzar a pensar en el jefe como un aliado en una nueva era de calidad del software. Y asegúrese de usar el enfoque en la calidad como su munición cuando venda su plan de remediación: "Bueno, nos dijo que desea corregir todos los errores. Tenemos un plan para hacerlo, pero requerirá que se encuentre con nosotros a mitad de camino". . Esto es lo que proponemos..."

¡Buena suerte!

Tanto su respuesta como la suya se basaron en la suposición falsa de que, de hecho, trabajamos horas extra para corregir el error. Pero este está en mí. No puedo culparte.
Si puede enumerar muchas razones por las que la calidad del código es mala, me sorprendió ver que no mencionó el avance de las características, ¡que en realidad es la razón número 1 de nuestra situación actual!
@Qiulang Entonces, con "desplazamiento de funciones", ¿quiere decir que se informan errores, que en realidad son nuevos requisitos porque el software "funciona según lo diseñado"?
Con el aumento de funciones, definitivamente era necesario redefinir el cronograma original, pero lamentablemente no siempre es así. El cronograma fue el mismo, los ingenieros se apresuran a implementar las nuevas funciones y definitivamente introducen errores. Luego trabajamos horas extras para arreglar el error.
Todavía se trata de gestionar la calidad. Debe explicarle a su jefe que las funciones apresuradas generarán errores. Si quiere un software libre de errores, debe aceptar las características con las que todos están de acuerdo cuando comienza un sprint. Cuando se agregan características, pégalas al siguiente sprint.

Hay otras formas de aumentar la productividad en la corrección de errores además de trabajar más tiempo. Solicitaría ideas de su equipo sobre eso y les daría tiempo para implementar sus ideas. El empoderamiento contribuye en gran medida a la moral. Para algunas ideas:

  • Mejore las pruebas y haga que las pruebas se ejecuten antes de cada fusión.
  • Refactorización de código problemático.
  • Priorice sus errores para que los importantes se solucionen primero.
  • Averigüe qué código causa la mayoría de los errores y asigne tiempo para mejorar su calidad general.
  • Utilice herramientas de análisis estático o de pelusa.
  • Solucione las advertencias y active -Wall -Werror o el equivalente en su idioma.
Todo esto está bien, pero OP no es el jefe, él no es el único que decide si las personas deben hacer horas extra.

Centrarse en los empleados. Asegúrese de tener (mejores prácticas) sesiones individuales semanales para hablar sobre metas más grandes, grandes ideas, desarrollo profesional. Aquí hay un gran recurso, con una combinación de ofertas pagas y gratuitas: hay un valor real en las cosas gratis: https://www.manager-tools.com/

Específicamente, busque información sobre las reuniones "uno a uno".

Tuve una situación hace años en la que mi jefe le informó a uno de mis muchachos que su contrato no se renovaría, dentro de un año. ¿Puedes imaginar? Esto es lo que hice. Me concentré en trabajar con el chico para pulir su currículum. ¿Qué quieres que diga tu currículum? Hagamos algo de eso realidad. ¿Adónde quieres ir desde aquí? ¿Cómo puedo ayudarte a llegar allí? Esto funcionó muy bien, hasta que el chico encontró otra oportunidad, momento en el que prácticamente todo estaba sobre rieles. Pero ayudó inmensamente.

Las reuniones individuales son la clave para relacionarse con su gente, como personas. Por cierto, estas no son reuniones de proyecto o actualización. Este es usted como gerente haciendo un aspecto del liderazgo, una persona a la vez.

Hay un viejo dicho que dice que, por lo general, las personas no renuncian a sus trabajos: renuncian a los gerentes.

Dado que su gente es "simplemente" maltratada, en lugar de ya despedida, tiene más opciones que yo. Asegúrese de que su gente sepa que está haciendo lo que puede para su beneficio, ya sea en este trabajo o en el siguiente.

¿Está utilizando un proceso formal? Supongo por las pistas contextuales y su otra pregunta que usted está a) creando software yb) en China. 'a' es relevante, 'b' puede no serlo, pero tenga en cuenta que vengo de una perspectiva de Estados Unidos/Canadá y puede haber comportamientos culturales/aprendidos que afecten la viabilidad de mis sugerencias o requieran adaptarlas. Estas sugerencias se basan en más de 20 años desarrollando software profesionalmente y habiendo trabajado en compañías que van desde pequeñas empresas emergentes hasta empresas globales masivas y que tienen de todo, desde una administración extremadamente solidaria hasta déspotas que gobiernan por miedo.

  1. Si aún no lo está haciendo, comience a realizar un desarrollo basado en pruebas o una solución similar de retroalimentación rápida para informarle de inmediato si las nuevas confirmaciones rompen algo (suponiendo que el paso 0 esté terminado y esté utilizando el control de código fuente, si no lo está). t, implementarlo inmediatamente ). Las pruebas deben ser automáticas y realizarse en cada confirmación.
  2. Adopte un proceso para recibir, realizar y entregar nuevos trabajos. Scrum es muy popular. La clave aquí es ser extremadamente transparente sobre cómo estima y entrega, y proporciona comentarios continuos sobre el progreso. Mantenga la línea en lo que puede ofrecer de manera realista: rápido, económico, bueno: elija 2. Como parte de esto, cree una acumulación de errores conocidos y trabaje para reducirlos.
  3. Priorizar no introducir nuevos errores. Si el n.° 1 muestra algo roto, arréglelo antes de acumular aún más cambios. Si sigue agregando nuevos errores, nunca se pondrá al día y la productividad nunca mejorará. Y un ciclo constante de errores interminables es una forma segura de drenar la productividad y la motivación.
  4. Realice un seguimiento de su progreso: tiempo de entrega, tasa de creación de errores, recuento de errores atrasados, etc. Demuestre a través de datos que cuando el equipo se ve presionado para entregar más de lo que dicen que pueden entregar cómodamente, la calidad del producto disminuye. Celebre las mejoras incrementales y trate los contratiempos como oportunidades de aprendizaje, no como una excusa para repartir castigos.
  5. Ayude a los miembros del equipo a reconocer que el trato de la gerencia hacia un empleado no es un reflejo del valor de esa persona. Esto es algo que cada persona de su equipo debe comprender. Están trabajando en un ambiente tóxico y eso tiene un gran impacto en su salud mental. Es posible que ni siquiera se den cuenta de cómo les está afectando hasta que alguien se lo indique.

El último elemento es probablemente el más importante, pero los primeros 4 son los que ayudarán a tu equipo a llegar allí. No puedes obligar a las personas a "concentrarse", al menos no de manera efectiva.

Una observación que he hecho a lo largo de los años es que las empresas dirigidas por propietarios que constantemente interfieren con los profesionales que realizan el trabajo y tratan de exprimir la productividad a través de amenazas de castigo también han tendido a ser las menos exitosas.

Vine aquí para escribir esto, pero no con tanto detalle. Bien hecho.

Respondiendo a este bit específicamente:

a veces observo que los miembros de mi equipo no trabajan tan concentrados como deberían porque todos sabemos que necesitamos trabajar horas extras nuevamente

Lo que probablemente esté sucediendo aquí es que se han dado cuenta de que no solo están en la oficina hasta que se corrigen algunos errores, sino que están atrapados allí durante la cantidad de horas que la alta gerencia ha elegido, y la cantidad de trabajo que hacen es irrelevante.

Arréglalo estableciendo la meta para el día en que el equipo pueda trabajar: "3 errores más y todos podemos irnos a casa. X, si has terminado tu error, ¿puedes emparejarte con Y para que todos podamos irnos a casa más rápido?" ?"

Pero en realidad, como todos han dicho, tu trabajo es luchar por tu equipo, no explotarlos. El arrastre de características debe retroceder a la siguiente iteración.

Las malas condiciones de trabajo afectarán a sus empleados, no importa quién tenga la culpa.

Lo mejor que puede hacer es convencer a la gerencia de que las horas extra no pagadas son contraproducentes y que la tasa de la que están extrayendo el 'tiempo extra ocasional' según lo que es probable en los contratos de sus empleados podría ser ilegal (depende de la jurisdicción).

EDITAR: Según el comentario de virolino, esto debe hacerse con cuidado . No podemos decirle qué enfoque funcionará mejor con su gerencia porque no los conocemos. Si no puede responder esto usted mismo, puede ser mejor evitar esta opción.

convince management- Simplemente no lo hagas demasiado fuerte. Podrías pegarte un tiro en la pierna, o algo peor. He estado allí, he hecho eso ;) En este caso, los objetivos personales de la alta dirección son mucho más fuertes que los objetivos de la empresa.
Si revisa mi otra pregunta (mencionada en esta pregunta), sabrá que no funcionará. Pero agradezco tu respuesta!
@Quilang Bueno, expresarlo de una manera que explique lo que puso en su pregunta anterior, seguramente permitir que su personal entre en un estado mental tal que los errores obvios están ingresando en su código debería ser una fuente de vergüenza. Después de todo, es mejor prevenir que curar, y evitar que estos errores sucedan en primer lugar le da a su equipo tiempo para solucionar otros problemas que están desperdiciando en errores que no habrían aparecido si no hubieran trabajado demasiado.
Una vez trabajé bajo el látigo de un tirano, muy similar al jefe de OP. No duré tres meses en la empresa ya que me rebelé abiertamente y traté de organizar una huelga. No fue el primer empleado en rebelarse allí y no será el último. Mientras tanto, el código era/es/será horrible y el software lento y defectuoso y nada puede cambiarlo si la cultura de la empresa es mala.

Respondiendo a tu primera actualización:

Por otro lado, si es domingo pero estamos en la oficina trabajando horas extras, ¿cuánto tiempo es aceptable para usar las redes sociales?

¿En un domingo? Yo diría que al menos ocho horas es aceptable. ¡Aunque espero que se aburran antes que eso!

Para empezar, ¿por qué no haces que el trabajo de fin de semana sea más divertido?

Todos tienen que venir a la oficina los fines de semana mientras aún hay errores por corregir, esa es la desafortunada realidad de su situación.

Pero ya sabes que nadie va a poder arreglar ningún bug el sábado y el domingo habiendo trabajado ya de lunes a viernes.

Así que acepte que nadie va a hacer nada de todos modos, seguramente puede pensar en algo mejor que hacer que navegar por las redes sociales.

Puede comenzar jugando juegos de programación como TIS-100 y Shenzhen I/O , competir entre sí por puntajes altos.

Una vez que todos se hayan relajado un poco y se estén divirtiendo, ¿tal vez podrían pensar en un proyecto de programación en el que los diez podrían trabajar juntos? ¿Quizás algunos de ustedes ya tienen algunas ideas?

¡Es el fin de semana! No te están pagando. Así que haz lo que quieras.

Luego, tal vez , si te apetece , durante la última hora de cada sábado y domingo, puedes decir "¡Está bien, muchachos! ¡Tomemos cada uno de nosotros un error y dediquemos la última hora de hoy a solucionarlo!".

Un equipo energizado y motivado arreglará más en una hora que un equipo desmotivado en un fin de semana.

El título de mi otra pregunta puede ser un poco engañoso. El aumento de funciones es una de las razones principales por las que tenemos muchos errores que corregir. ¡Desarrollamos nuevas funciones en nombre de la corrección de errores!

¿Cómo estás trabajando? Parece que tiene una nueva lista de funciones a la que se sigue agregando, que es en lo que trabaja durante la semana; y una lista de errores que también sigue creciendo, que es en lo que trabajas durante los fines de semana.

Si puede corregir la lista de errores, entonces ya no necesitará venir los fines de semana (por mucho que desee después de implementar el último bit ;-))

Divide tu trabajo en sprints. Planifica cada uno con tu equipo. Priorice la corrección de errores sobre el desarrollo de nuevas funciones. Haz retrospectivas. Todas las cosas buenas en la respuesta de Lawnmower Man , básicamente.

Pero solucione primero el problema de la moral para que el equipo vuelva a estar al día.

Entonces, antes de que pueda hacer el trabajo el domingo para poder ir a casa, ¿tendría que jugar y pensar en proyectos futuros?
@guest si eso es lo que se necesita para sacarte de las redes sociales y estar motivado para empezar a trabajar, sí, ¿por qué no?
Porque la gente verá esto como que la empresa les está robando su tiempo. Si sé que tengo que hacer X e Y y luego puedo irme a casa y pierdo media hora en Facebook, eso depende de mí. Pero si un gerente me dice que tenemos que jugar juegos hasta la última hora y luego solo podemos comenzar a trabajar (¡y solo si el gerente tiene ganas!), hay algo terriblemente mal en la empresa.
@guest, la forma en que entendí el OP es que tienen que entrar los domingos, les guste o no. No me pareció que tuvieran la opción de irse a casa después de terminar su trabajo, porque el trabajo nunca se termina. Si tienes que ir a trabajar un día que deberías tener libre para hacer un trabajo que nunca termina, ¿por qué no intentarlo y disfrutarlo? Mi respuesta no es tratar de decir "¡debes jugar!" pero en cambio está tratando de mejorar el problema de la moral. Como usted dice: "hay algo terriblemente mal con la empresa"!
Como mínimo, destruiría completamente mi moral si tengo que venir porque la empresa me necesita y luego tengo que jugar.
@guest si tiene otras ideas, también podría escribir una respuesta
Podría, pero también hay suficientes buenas respuestas.

Creo que nadie ha abordado lo siguiente hasta ahora: las personas se enfocan en "no hacer" (que apoyo completamente) o se enfocan en algunas prácticas de codificación.

Si no puede abolir por completo las horas extraordinarias no pagadas (como vienen de arriba), ¿qué puede hacer?

  • ¿Puede proporcionar horarios de trabajo flexibles? "Chicos y chicas, lo sé, necesitamos trabajar 80 horas a la semana, pero en mi equipo puedes ir y venir cuando quieras, solo necesitas marcar esas horas, porque no puedo cambiar esto todavía".
  • ¿Tiene fondos para compensar? Algún vudú financiero podría estar en tus manos. "Lo sé, la empresa no paga las horas extra, pero cada empleado de mi equipo recibe una bonificación de 1000 dólares si eliminamos 100 errores para fin de año".
  • Obtenga una compensación no monetaria, a la Google lo hizo para mantener a la gente en la oficina por más tiempo. "La gente que hace horas extra recibe tres comidas gratis, obtiene un pase para el gimnasio interno y puede visitar a un terapeuta gratis en las pocas horas no laborales". Exagero, por supuesto.
  • Cosas que no se me ocurrieron, pero apoya a tu equipo de todas las formas posibles. Consígales computadoras más elegantes. Muévalos a una oficina mejor. Cortar la garganta del gerente superior y abolir las horas extras no pagadas. Tales cosas.
  • Si todo falla: renuncia con todo el equipo y encuentra un nuevo trabajo / lanza una startup.
Para la última sugerencia, no conozco otros lugares, pero en China, un ingeniero de software de más de 40 años (yo) es muy difícil encontrar un nuevo trabajo :(. Creo que mi jefe lo sabe muy bien y lo usa para su beneficio. .
El pago de horas extras debe ser al menos tan alto como el pago normal. Las comidas gratis o los bonos que son una pequeña fracción de lo normal son insultantes, ya que implican que no puedes hacer los cálculos.
Mi punto es: OP no puede instalar un pago de horas extra adecuado ya que va en contra de la política de la empresa. Pero OP aún podría tener algunos recursos que, incluso si son mucho menos monetariamente que la cantidad adeudada de pago de horas extra, podrían ayudarlo a ganar algo de gratitud y lealtad de estos trabajadores. (Por supuesto, si OP tiene los fondos para reembolsar por completo las horas extra a su equipo y es posible pasar de contrabando los pagos bajo el radar de la alta dirección/convencer directamente al propietario de la empresa de que se deben realizar los pagos de horas extra, entonces OP debería hacerlo). .)

¿Cómo puedo administrar a mis miembros para mantener una productividad razonable cuando mi empleador no trata bien a los empleados?

La última mitad de la pregunta es irrelevante. Si los empleados no están siendo productivos, disciplínelos ya que otros enfoques no han funcionado. Si no está preparado para disciplinar, entonces está fallando en su rol.

Adivina quién es el peor y disciplínalo primero para animar a los demás.

Es posible que tengas que repetir esto varias veces. Mientras tanto, vea qué puede hacer con el jefe en términos de hacer algunas concesiones a la moral del personal, siga repitiendo eso también. No socave a su jefe ante los trabajadores, pero haga lo mejor que pueda por ellos y por sus responsabilidades.