Cómo crear un "culto a la calidad" [cerrado]

21

DeMarco y Lister (Peopleware) sugieren que cree un "culto a la calidad" dentro de su equipo de programación. Frustrantemente, ¡no sugieren cómo hacer eso!

¿Alguien tiene alguna idea sobre cómo lograr esto?

Craig Schwarze
fuente
1
Su "culto a la calidad" solo será efectivo en la medida en que el tiempo lo permita. Cuando el jefe dice "Tiene que hacerse antes del viernes" , entonces se ve obligado a perder calidad por la velocidad. Obviamente, esto no es lo que prefieren los codificadores. ¡Idealmente preferimos el tiempo para garantizar la calidad!
invertir
1
@WesleyWerner: Buen punto. Pero creo que un 'culto a la calidad' también debería abarcar el cuidado de la deuda técnica, que (eventualmente) resolverá el problema del jefe que usted menciona.
talonx
@invert: típicamente respondo en tales casos, que tenemos una situación análoga al teorema CAP aquí. Tenemos calidad, velocidad y mano de obra, y él puede elegir dos.
JensG

Respuestas:

37

Mi experiencia es que los equipos de desarrollo (pero en general, cualquier equipo) constan de 3 tipos de personas:

  • aquellos con un disco incorporado de calidad,
  • aquellos que solo están por el dinero (cerveza / chicas / lo que sea) y no les importa lo que trates de motivarlos,
  • los "mediocres" (por falta de una palabra mejor).

El último grupo es el más grande y tienden a seguir al partido gobernante. Si hay suficientes personas de calidad en el equipo, pueden atraer a la mayoría consigo mismos, creando una fuerte espiral ascendente en el espíritu y la motivación del equipo. Sin embargo, si hay demasiados holgazanes, pueden crear fácilmente el efecto contrario, una espiral de muerte.

Entonces, la tarea principal para el gerente es elegir y mantener a las personas adecuadas y deshacerse de los malos lo antes posible . Sin embargo, no son los "mediocres": pueden verse influidos para comenzar a mejorar, para prestar apoyo a las buenas ideas de los demás, y algunos de ellos eventualmente podrían convertirse en creadores de tendencias positivos por derecho propio.

[Actualización2] reflexionando sobre la respuesta de Alb : en mi opinión, no es necesario que los desarrolladores de calidad tengan una clara mayoría dentro del equipo (aunque no hace daño :-). Hay un "umbral de establecimiento de tendencias" , por encima del cual las opiniones y el comportamiento de un subgrupo pueden convertirse rápidamente en la "corriente principal" dentro de una comunidad , por lo que otras personas se dan cuenta y comienzan a seguir. Puede ver esto en el trabajo en la sociedad en general todo el tiempo (por ejemplo, hábitos (no) de fumar, salud y dietas, modas, alimentos orgánicos). Mi estimación aproximada es que puede estar en algún lugar alrededor del 25-30%, pero depende de muchos factores. Aquí es donde las personas malas pueden lastimar mucho. Incluso un par de personas malas dentro de su equipo pueden aumentar ese umbral significativamente. [/ Actualización2]

Por supuesto, no siempre es posible contratar suficientes de los mejores. Entonces, cuando la primera facción no es lo suficientemente fuerte como para manejar las cosas por sí misma, la gerencia necesita ayudarlos. Un par de pensamientos sobre esto:

  • Creo que Scrum tiene una buena idea para esto con demostraciones de productos. Demostrar la función que implementó frente a una audiencia que consiste no solo en sus compañeros de equipo, sino también en desarrolladores de otros equipos, la administración e incluso los usuarios de la aplicación puede ser una gran fuente de orgullo y también un factor importante para ayudar al equipo a meditar.

  • Otra cosa es que la gerencia escuche en serio al equipo de desarrollo con respecto a la calidad. DeMarco y Lister incluso mencionan que hay empresas / departamentos donde los equipos de desarrollo tienen un veto sobre lo que puede pasar a la producción. Si consideran que la aplicación aún no está lista para el horario de máxima audiencia, pueden posponer el lanzamiento independientemente de lo que le gustaría a la administración. Ahora, eso es difícil para la administración, pero puedo imaginar que desarrolla el espíritu de equipo y comunica fuertemente el mensaje de que la calidad es realmente importante aquí, no solo en el nivel de las palabras.

  • Esto lleva al siguiente punto: para crear un "culto a la calidad", la gerencia debe comprender a fondo lo que la mayoría de los desarrolladores experimentados ya saben: que la calidad no es una ocurrencia tardía: debe integrarse en el producto desde el principio. Por lo tanto, se debe alentar a las personas (y recompensarlas) a pensar en la mantenibilidad a largo plazo, esforzándose por las buenas soluciones, en lugar de las rápidas .

Actualizar

@Machado en su comentario dio un nuevo giro a la pregunta (al menos para mí):

¿Qué puedo hacer yo, como miembro del equipo, no como gerente, para mejorar la calidad del código de mi equipo?

Algunas reflexiones:

  • Sigue aprendiendo y difunde el conocimiento a cualquiera que escuche. Aprenda y use las mejores prácticas dentro de sus áreas de especialización.
  • Enorgullécete de tu trabajo .
  • Estos dos casi naturalmente te permitirán convertirte en un modelo positivo para otros , especialmente para los recién llegados y los juniors; sea ​​consciente de esto y aproveche su papel para el beneficio de todo el equipo. La mejor manera de influir en los demás es con un ejemplo positivo.
  • Mire no solo el código, sino todo el proceso de desarrollo de software; siga haciendo preguntas y proporcionando comentarios para optimizar el proceso de desarrollo .

Y por último, pero no menos importante: encuentra un lugar donde puedas ser un "tipo superior" . Si estás en el grupo "mediocre" en este momento, esfuérzate por desarrollarte, ojalá las ideas anteriores te ayuden. Pero si se encuentra en el "estrato inferior" de su equipo actual, le recomiendo que analice los motivos. ¿Qué es lo que te desmotiva? Malas condiciones de trabajo? Compañeros de equipo? ¿Administración? ¿Tipo de trabajo? ¿Y qué es lo que te emociona e interesa? Es posible que deba hablar con sus compañeros de trabajo y / o jefe al respecto. O puede que necesite buscar un mejor trabajo, o incluso una nueva profesión, donde pueda comenzar a brillar. Realmente no vale la pena pasar una parte importante de la vida con actividades insatisfactorias o deprimentes.

También puede ser que se vea obligado a continuar su trabajo actual, subóptimo debido a factores externos (falta de mejores oportunidades de trabajo, necesidad de pagar las facturas, etc.): esto sucede de vez en cuando. Incluso en este caso, intenta sacar lo mejor de él. Producir un trabajo de calidad (en la medida en que las circunstancias lo permitan) es una recompensa en sí misma, que ayuda a mantener su autoestima y mantenerse sano y abierto a largo plazo. Por lo tanto, cuando aparece una oportunidad para algo mejor, está mejor preparado para aprovecharla.

Péter Török
fuente
44
Un consejo peligroso. ¿Qué pasa si el OP pertenece al segundo / tercer grupo? ;)
1
gran respuesta, nunca lo había pensado así, pero tiene mucho sentido.
Alb
99
@Developer si lo fueran, no estarían leyendo a DeMarco y Lister o haciendo la pregunta aquí.
Alb
Pensé que la pregunta estaba más dirigida desde el punto de vista de un miembro del equipo. Si la gerencia realmente quiere calidad, escucharán a sus desarrolladores principales / principales. ¿Qué puedo hacer yo, como miembro del equipo, no como gerente, para mejorar la calidad del código de mi equipo?
Machado
1
@ Thorbjørn, excelente pregunta! Admito que me he perdido esto en la mayoría de mis lugares de trabajo hasta ahora. Con la esperanza de no sonar demasiado engreído, siempre he estado buscando compañeros de equipo para admirar y aprender, pero rara vez los encontré. Así que recurrí a los libros e internet. En la medida de lo posible, encontré modelos a seguir en Martin Fowler, tío Bob Martin et al. ¡Y últimamente en la comunidad SO! Es un excelente lugar para aprender. También es un potente "proveedor de verificación de la realidad". Las experiencias humillantes que revelan los límites y las lagunas en el conocimiento pueden ser difíciles de tomar, pero son muy saludables para mí.
Péter Török
2

Gran respuesta de Péter Török para destacar que solo lo logrará con la mayoría de las personas buenas. Una vez que tenga buenas personas, debe apuntar más al enfoque de zanahoria que al palo. Empoderar a los desarrolladores, dejar que se apropien de los proyectos / tareas y alentar la competencia en términos de calidad, tal vez hacer que las personas realicen breves presentaciones sobre cómo mejoraron la calidad de los proyectos. Los buenos desarrolladores estarán motivados para impresionar a sus compañeros.

Alba
fuente
+1 Buenos puntos sobre motivación. Aparentemente era incomprensible con respecto a la mayoría; Actualicé mi respuesta para aclarar.
Péter Török
2

Además de los comentarios de Peter (que son realmente el tema central), debe asegurarse de que la calidad no sea una característica que se agregue más adelante.

Más específicamente:

  • Elimine cualquier rastro del pensamiento "Lo limpiaremos más tarde". En su lugar, haga el esfuerzo al principio para hacerlo de la manera correcta.
  • Exija que los cambios se revisen y trabajen a través de algún tipo de proceso de control de calidad que involucre a alguien que no sea el desarrollador.
  • Forzar pensamientos sobre la calidad en las primeras fases de los proyectos. Mantenga en foco cosas como "cuán fácil será para otros mantener esto" durante el desarrollo.
  • Rastree e informe sobre errores que ocurran. Si hay tendencias, busque formas de combatir la causa raíz de los errores.
  • Presente la idea del software como un oficio que se puede mejorar y algo de lo que los creadores pueden estar orgullosos.
jzd
fuente
1

Yo diría que la mejor manera es fomentar la calidad sobre la producción. Esta es una de las premisas del movimiento Lean Software (basado en Lean Manufacturing). He escrito una larga publicación de blog discutiendo de qué se trata Lean . Te digo cómo crear un culto a la calidad. Invierta en sus empleados y permítales invertir en su empresa (no una inversión monetaria, sino más bien una inversión personal).

Dan Pink dio una gran charla en TED sobre lo que nos motiva. Si bien no lo hace referencia específicamente. La Jerarquía de necesidades de Maslow explica perfectamente el fenómeno observado. Siempre y cuando el empleador atienda las dos primeras necesidades (es decir, pague suficiente dinero para que el dinero no sea un problema), todo lo que queda es pertenencia, estima y autorrealización.

  • Proporcionar una comunidad sólida para pertenecer.
  • Ofrezca un entorno en el que el empleado se sienta libre de cometer errores para que pueda acumular estima cuando realice sus logros.
  • Entregue a sus desarrolladores las riendas para que puedan tomar las decisiones importantes para la autorrealización

La calidad no es algo que se pueda dictar ... más bien se habilita. Confíe en sus empleados para hacer lo mejor y salga del camino. Eventualmente, tendrás que decirles que deben irse. En lugar de pedirles que pasen más horas

Michael Brown
fuente