Estoy haciendo software listo para usar (aplicaciones de escritorio).
Estoy liderando un grupo de 10 desarrolladores+diseñadores (básicamente todo el tipo de trabajadores del conocimiento) y les doy mucha libertad de acción para hacer su trabajo. No hago cumplir el horario de oficina y no los pego a sus sillas durante 8 horas al día, no miro por encima de sus hombros, no hago cumplir el código de vestimenta, etc., etc.
Sin embargo, lo hago
Eso es todo, sin reuniones de pie, sin monitoreo diario, etc. Confío plenamente en que mis desarrolladores sean honestos en su estimación de tiempo y en los informes de tiempo de trabajo/progreso.
Como desarrollador, entiendo la tendencia de los desarrolladores a sobreestimar su capacidad y la posibilidad muy real (casi certeza en realidad) de que los proyectos de software se retrasen a menos que lo impidan fuerzas sobrenaturales, por eso no los hago estrictamente responsables por no poder entregar todas las tareas que se comprometen al comienzo de un sprint.
Todo suena bastante bien desde el punto de vista centrado en el desarrollador, ¿verdad? ¡No soy el gerente de cabello puntiagudo como se describe en esta pregunta ! Esto debería asegurar la mejor relación de trabajo entre los empleadores y los trabajadores del conocimiento, ¿no?
La realidad es que, algunos de los desarrolladores tienen dificultades para
Podría haber imaginado lo peor y asumir que su incapacidad para completar todas las tareas y proporcionar un progreso diario constante como una señal de que están holgazaneando. Al menos este es mi sentimiento visceral. Pero quiero ser un jefe más ilustrado; Quiero darles el beneficio de la duda. Mientras reviso su hoja de tiempo en redmine todos los días, mi corazón se hunde si la hoja de tiempo no está actualizada. Pero aún así, me gustaría creer que los desarrolladores están haciendo su trabajo y simplemente se están olvidando de actualizar la hoja de tiempo (es decir, confío en ellos , ¡quiero hacerlo!). No obstante, la incapacidad de los programadores para indicarme claramente su progreso (o la falta de él) me pone a prueba mi parte emocional.
¿Qué debo hacer en este caso? Por un lado, entiendo que la cantidad de tiempo dedicado a una tarea/la capacidad de terminar todas las tareas durante un sprint realmente no se correlaciona con el verdadero rendimiento de un trabajador creativo. Pero, por otro lado, necesitaría una forma de comprender realmente el verdadero rendimiento del trabajador creativo y recompensarlo adecuadamente.
¿Cómo medir la producción de los trabajadores creativos que no completan la hoja de tiempo?
La razón por la que les pido que completen el tiempo dedicado es por su propio bien, para que puedan mejorar cada vez más en la estimación del tiempo comparando el tiempo estimado y el tiempo dedicado. Pero, digamos que si están demasiado ocupados para esforzarse en mejorar su capacidad de estimación, dado que los datos están ahí, podemos usar los complementos de Redmine para permitirnos predecir mejor cuándo finalizará el software (piense en EBS en fogbugz) . Es no con el propósito de controlarlos.
En segundo lugar, Redmine permite indicar el progreso (% completado), por lo que me gustaría que mis desarrolladores actualicen el progreso realizado. Me gustaría que indicaran la cantidad de tiempo que queda para una tarea, pero esto no es realmente posible a través del sistema actual.
En tercer lugar, ¿por qué quiero que completen la hoja de tiempo y estimen el progreso ? La razón es que nuestro software necesita tener una hoja de ruta, para que sepamos cuándo podemos entregar qué. Necesitamos ser responsables con nuestros clientes y clientes y por responsable, quiero decir, debemos poder decirles que la función que solicitaron se puede implementar en qué fecha .
En cuarto lugar, cuando hablo de la recompensa después de completar un proyecto, no me refiero a usar palos monetarios para moverlos hacia mi objetivo , sino que quiero saber qué desarrolladores son más capaces y, por lo tanto, pueden ser promovidos, etc. Sé que es bastante es difícil hacer todo el sistema de recompensas correctamente sin afectar la moral de la empresa , pero debe tener un sistema para reconocer los buenos de los malos. Como mínimo, necesito saber cómo pagarles a todos de manera justa . Si tratas a todos por igual (los buenos y los malos, los trabajadores y los vagos), muy pronto los buenos sentirán que su contribución no es apreciada y simplemente se irán.
Caíste en el mito de que los equipos se autogestionan y ahora estás atascado con el desagradable hecho de que la mayoría de ellos no lo hacen.
Sí, el 10% de los mejores programadores se autogestionan muy bien. Eso es parte de lo que los convierte en el 10% superior. Pero la realidad es que la mayoría de las empresas no tienen programadores en el 10 % superior. A la mayoría de los programadores les gusta fingir que son estrellas de rock que merecen un trato especial, pero la realidad es que la mayoría no lo es.
Así que primero tu error es que entregaste toda tu autoridad, lo cual es muy, muy difícil de recuperar. Siempre es más fácil empezar de manera más estricta y relajar las cosas a medida que la gente produce que al revés.
Confió en que sus desarrolladores produjeran y no lo hicieron, entonces, ¿cómo lo soluciona? Primer paso, deja de confiar. Sí, han abusado de su confianza (generalmente cuando las personas piensan que están siendo estafadas por otros, confíe en su instinto) y necesita controlarlas.
Primero debe comprender por qué las estimaciones están tan alejadas. Debido a que ha realizado un trabajo de gestión tan deficiente, hay muchas razones por las que será difícil obtener la información que necesita para solucionar el problema porque actualmente no está solicitando ninguna información. Rutinariamente podrían estar prometiendo lo que no pueden cumplir incluso trabajando duro. O podrían estar prometiendo lo que creen que quieres escuchar y holgazaneando porque no hay inconveniente en no cumplir con las expectativas. Entonces, antes de que pueda arreglar algo, necesita saber si podrían cumplir con la fecha límite si quisieran o si trabajaron las horas reales que deberían trabajar (al menos 40).
Creo que lo mejor que puedes hacer, dada la ridícula cantidad de libertad que les diste, es comenzar con reuniones diarias a las que todos deben asistir y horarios centrales en los que todos deben estar presentes (podría ser de 11 a 3, no tiene que ser de 9 a 6). . Todos los días, cada persona debe ponerse de pie y decir qué progreso hizo el día anterior y qué problemas tiene actualmente y cómo eso podría afectar la fecha límite. Obtienes lo que esperas y, francamente, no esperabas nada.
Así que ahora tienes que empezar a hacer preguntas. Uno de los beneficios de la reunión diaria es que nadie quiere informar que no hizo nada ni avanzó el día anterior. Entonces, si el problema realmente es que te están jugando, solo tener la reunión diaria debería comenzar a ver más progreso. Cuando hay un problema que impide que alguien progrese (por ejemplo, la persona que trabaja en un módulo al que debe hacer referencia no progresa o no se presenta a trabajar hasta las 3), depende de usted eliminar los obstáculos que tiene que superar. haciendo progreso.
Pero también es probablemente cierto que las estimaciones de tiempo están equivocadas. Por lo tanto, también debe observar cómo estima las tareas. También debe darse cuenta de que la estimación del tiempo es difícil y que es posible que deba mantener registros de las estimaciones contra el tiempo real para mejorar la estimación. Las estimaciones grupales también tienden a ser más realistas, ya que los sobreestimadores tienden a ser derribados por los subestimadores. Para obtener estos datos, debe informar el tiempo por tarea para poder compararlo con la estimación. Conviértalo en un sistema de informes simple que no tome más de 5 minutos al día para completar. Y hágales saber que se está utilizando para mejorar las estimaciones para futuros sprints. Es posible que también deba cambiar específicamente su formulario de estimación de tiempo para incluir tiempo para pruebas unitarias, comunicaciones, control de calidad y corrección de errores de control de calidad, implementación, etc.
Ahora, debido a que abdicó de sus responsabilidades como gerente, tendrá cierto rechazo a lo que son expectativas razonables. Bueno, cualquiera que no dedique cinco minutos a completar una hoja de tiempo o que no pueda manejar una reunión diaria (incluso las tiendas Agile hacen esto) y las horas principales no es alguien que desee emplear a largo plazo de todos modos. Estas no son expectativas irrazonables. Hay más en el trabajo que hacer lo que quiere cuando quiere hacerlo y si trabaja en equipo, no puede permitir que una prima donna (que en realidad es solo una programadora promedio y bastante reemplazable) le impida realizar su trabajo. .
Tengo algunos pensamientos aquí
Dicho todo esto, no veo que nadie haya respondido realmente a su pregunta. La respuesta está en el repositorio. Mire para ver qué personas se registran y con qué problemas se relacionan sus registros. Eso te puede dar mucha información sobre lo que está pasando. Si los diseñadores utilizan una ubicación para colocar activos, vea qué está listo y qué falta. Si su construcción es buena y sabe cómo construir el producto, constrúyalo y vea dónde está.
Si está seguro de que es bueno en los otros puntos, y realmente siente que es importante que todos usen su registro de tiempo, debe darse cuenta de que debe lograr que todos asoman la cabeza por encima del parapeto al mismo tiempo. porque nadie quiere ir primero. Esto significa que debe estar preparado para poner su pie en el suelo con algunas consecuencias reales por no hacer esto, sin importar quién sea el "perpetrador" (o no perpetrador, según sea el caso). Piensa largo y tendido si quieres "ir allí".
Una cosa a considerar es que si usted es un líder un poco "húmedo", puede haber algunos en su equipo que estarán muy agradecidos si brinda algo de liderazgo, pero debe brindarlo en todos los ámbitos, no solo en esta cosa
Usted aborda muchos problemas diferentes en la pregunta.
El propósito
Comenzaría con su propósito de preparar todo el asunto. ¿Su objetivo principal es saber cómo avanza el trabajo para tener una mejor visibilidad de lo que está sucediendo? O tal vez quieras controlar a tu equipo hasta cierto punto. O lo tratas como la base del sistema de recompensas. (Usted menciona los tres.)
Comience respondiendo esta pregunta, ya que las soluciones para abordar cada una de ellas serían diferentes.
Conociendo el trabajo
Si el objetivo principal es conocer el progreso, recomiendo enfáticamente la visualización como una herramienta que generalmente hace milagros. Las herramientas simples, como los tableros de tareas o los tableros kanban , no solo ayudan a los líderes a obtener el estado de las tareas que se realizan en un equipo, sino que también mejoran enormemente el conocimiento sobre el trabajo entre el equipo.
Es más, son divertidos. Significa que, por lo general, es bastante fácil introducirlos en el equipo. Sin embargo, el truco consiste en hacer que las personas trabajen con la pizarra de manera constante. En realidad, el mayor riesgo de trabajar con la placa es que no esté actualizada . La diferencia entre la herramienta de administración de tareas junto con el rastreador de tiempo y el tablero de tareas/kanban es que, en el último caso, aprende sobre nuevas tareas en el tablero, por lo que va allí de todos modos: existe un incentivo natural para actualizar la tarea cada vez que cambia su estado.
Controlando el equipo
Mencionas la confianza un par de veces. Al mismo tiempo señala la necesidad de controlar a las personas. Si bien no diría que tiene que elegir uno sobre el otro, creo que al menos debe saber en qué dirección se dirige.
Si elige confiar, no obligaría a las personas a rendir cuentas de cada hora de su trabajo todos los días a menos que trabaje a tiempo y materialmente y esta es una información básica que necesita para saldar cuentas con sus clientes.
Me centraría más en el flujo de trabajo como un todo, por ejemplo, medir la rapidez y la fluidez de los elementos de trabajo que se desplazan desde la acumulación hasta la finalización, y prestaría atención a los elementos que están atascados por cualquier motivo. Si tiene un elemento de trabajo que está en desarrollo mucho más tiempo de lo normal, definitivamente es una llamada para investigar el caso y saber qué está sucediendo. O encuentra un problema que abordar o, si alguien lo defrauda, también recibe una señal clara al respecto.
Esto también significa que no impone una contabilidad de trabajo muy estricta en el equipo, lo que debería apreciarse. Más aún, su equipo no parece ser un gran fanático del enfoque actual, dado que no actualizan los datos con bastante frecuencia.
Recompensas
En cuanto a la información de la que estamos hablando aquí, desaconsejaría encarecidamente su uso como base para cualquier sistema de recompensas.
En primer lugar, soy un gran admirador del trabajo de Dan Pink sobre la motivación . En realidad, como mencionaste las recompensas, no creo que el dinero motive a las personas de la forma en que solíamos pensar. La motivación es intrínseca y muy individual.
Lo que aconsejaría aquí es aprender qué impulsa a su gente y tratar de abordar estos puntos en lugar de construir un sistema de recompensas único para todos, que generalmente introduce muchas más emociones negativas y comportamientos disfuncionales que cualquier cosa positiva.
Peor aún, si basas la recompensa en el trabajo realizado individualmente por los miembros del equipo, desincentivas la ayuda, la aglomeración de problemas y el trabajo colaborativo. Si terminé el 90%, es probable que luche solo con el resto en lugar de pedir ayuda (incluso si es lo más razonable y eficiente) porque temo que no será "mi" éxito. sino "nuestra". Otra perspectiva podría ser que no estoy dispuesto a ayudar ya que tengo mi propio trabajo que hacer y no estoy seguro de que lo que me preguntas no sea una especie de pantano donde perderé mucho tiempo.
En general, desaconsejaría el uso de datos que obtiene de los sistemas de seguimiento de tareas para recompensar, motivar o incentivar a las personas.
"The reason I ask them to fill in spent time is for their own purpose, so that they can get better and better at estimation time by comparing their estimated time and their spent time. It's not for the purpose of controlling them."
El problema no es que él quiera que la gente mejore sus estimaciones; en cambio, el problema es que él está dictando cómo la gente debe hacer las estimaciones. Pídales a los desarrolladores que trabajen para mejorar las estimaciones, luego déjelos resolver esta parte por sí mismos. +1"The reason I ask them to fill in spent time is for their own purpose..."
. Quiero decir, no mencionaste la velocidad en tu pregunta, así que deberías darme un poco de holgura. ;) Creo que si explicaras la velocidad a los desarrolladores, sonaría mucho mejor que "esto te obligará a hacer mejores estimaciones", porque es posible que tus desarrolladores estén haciendo un seguimiento en Excel, o en sus propias herramientas, por su cuenta. propósitos ¡Espero que esto ayude!Haría la observación de que, si bien ha utilizado alguna terminología Agile/Scrum (Sprints, estimación) e indica que no utiliza un stand-up diario, sin embargo, algunos aspectos de lo que está haciendo parecen más de mando/control (" Asigno tareas a los desarrolladores / Saco o pongo tareas..")
Si desea tener un equipo autoorganizado, que (de manera más crítica) identifique y resuelva sus propias fallas (como completar el 50-60% del trabajo en el Sprint), entonces probablemente tendrá que ir más allá en el camino Agile/Sprint. , lo que significa darle más control al equipo.
Los puntos clave serían:
Si tiene una reunión "retrospectiva" bien facilitada para el equipo, deben identificar el hecho de que no alcanzaron sus objetivos y, de manera más crítica, proponer formas de mejorar.
Sospecho por lo que ha dicho que la pérdida de control que esto implica le dará bastante miedo. De mi parte:
Si no le gusta cómo suena esto, le sugiero que siga discutiendo sus problemas con su equipo y pídales sugerencias para mejorar. Si confías en ellos, responderán de manera positiva.
Una hoja de tiempo no es una forma de realizar un seguimiento del progreso. En los lugares donde he trabajado, se requería la hoja de tiempo para asignar horas al cliente adecuado. Nunca siguió el progreso de la tarea.
En realidad lo retiro. Una empresa intentó rastrear información más detallada. Tuvimos que actualizar una base de datos de Access a través de una GUI especial para designar en incrementos de un minuto el tiempo dedicado a revisar los requisitos, investigar, diseñar, codificar, construir, probar y depurar. También teníamos que contabilizar el tiempo dedicado a reuniones y tareas indirectas. Esto fue para que pudieran intentar hacer mejores estimaciones. Nunca les permitió saber día a día qué tan bien estábamos trabajando o qué tan cerca estábamos de terminar la tarea.
El hecho de no completar una tarjeta de tiempo simple no está relacionado con ser un desarrollador. Sólo viene de la comprensión de que se requiere. Si es un contratista del gobierno de los EE. UU., es obligatorio. Pueden hacer comprobaciones de tarjetas de tiempo bajo demanda. La mayoría de las empresas ahora han configurado sistemas automatizados que envían correos electrónicos cuando no se completan antes de la medianoche de cada día.
El porcentaje completado siempre va a ser problemático. A menos que las tareas se realicen en pequeñas porciones que se puedan realizar en menos de un día, las estimaciones serán incorrectas. Si la tarea tomará varios días, tenderán a querer comprometerse con porcentajes solo cuando se les obligue.
Está rebotando entre muy poco control y demasiado control. Los requisitos de la hoja de horas diarias que desea son muy estrictos, pero luego les permite comenzar tareas sin su estimación. Está tomando partes incompatibles de diferentes metodologías de gestión y preguntándose por qué no encajan.
He eliminado por completo el tiempo de seguimiento dedicado a los problemas por parte de los equipos que dirijo. No requiere reflexión por parte del individuo y no da información real sobre el estado de desarrollo. En cambio, les pido que actualicen periódicamente cuánto tiempo les queda a cada problema. Encuentro que es más fácil convencer a la gente para que haga esto, ya que hay un propósito más claro y se percibe como menos seguimiento de las personas y más seguimiento de los esfuerzos.
También cuestiono su afirmación de que no es un "PHB". Usted administra 10 desarrolladores, pero todavía realiza asignaciones de problemas individuales para todos los desarrolladores. Eso me parece tal vez demasiada microgestión. Consideraría tratar de dejar que los desarrolladores elijan sus problemas y los organicen entre ellos. Mi experiencia es que un desarrollador se sentirá más dueño de un problema si él o ella lo escogió en lugar de que se lo asignen. Trate de hacer estimaciones en una sesión de planificación grupal, en lugar de dejarlas en manos de individuos, como lo está haciendo hoy. Una vez más, según mi experiencia, eso generará estimaciones más precisas y con menos desviación a lo largo del tiempo. También fortalecerá la sensación de que está cumpliendo como un equipo en lugar de un grupo de personas en un organigrama.
No olvides realizar retrospectivas después de cada sprint. Como dices, a menudo no consigues tus objetivos. Explora por qué es así. Desafía a tu equipo a identificar las razones por las que fallas y sugiere formas de superarlas. Tu equipo no es una caja negra, necesitan decirte por qué están fallando. Y luego usted (como gerente) debe hacer lo necesario para ayudarlos a tener éxito.
Parece que estás haciendo algunas cosas ágiles, pero no todas. Agile permite flexibilidad en la forma en que administra sus equipos, pero hay cosas que simplemente deben suceder en Agile, sin importar cómo las haga, y hay una pelota que es crítica para Agile que está dejando caer; retroalimentación rápida.
Quieres el stand-up diario. Todos se reúnen en un círculo alrededor de un gráfico de quemado y les cuentan a los demás lo que han hecho desde la última reunión. Esto es algo bueno para todos; los desarrolladores obtienen una sensación diaria de logro y usted obtiene datos diarios sobre lo que está programado y lo que no. Si es necesario hacer ajustes, aquí es donde lo aprende.
Ahora, en este standup, como gerente de proyecto, usted no es un participante activo. Eres una gallina". Los desarrolladores y cualquier analista comercial o personal de control de calidad que tenga son "cerdos". La analogía proviene de un chiste:
Un cerdo y un pollo caminan por el camino. El pollo dice: "¡Oye, cerdo, estaba pensando que deberíamos abrir un restaurante!". Pig responde: "Hm, tal vez, ¿cómo lo llamaríamos?". El pollo responde: "¿Qué tal 'jamón y huevos'?". El Cerdo piensa por un momento y dice: "No, gracias. Yo estaría comprometido, ¡pero tú solo estarías involucrado!"
El resultado es que usted está "involucrado" en el proceso, pero los miembros del equipo son los que están "comprometidos" con la entrega del trabajo. El standup es su herramienta para asegurarse de que puedan cumplir y, como tal, lo ejecutan ellos, no usted. Su único requisito es asegurarse de que lo tengan y, si es necesario, asegurarse de que no se disuelva en una gran discusión (las reuniones de pie deben tomar de 5 a 10 minutos como máximo). Este puede ser un concepto difícil para un gerente, pero parece estar en el paradigma de los equipos autogestionados, por lo que espero que sea una transición más fácil.
Otros consejos:
En tu larga lista de quejas no te vi decir que no cumplen con sus tareas. Los desarrolladores pueden quedarse atascados girando sus ruedas a veces, por lo que desea cierto nivel de supervisión.
Supervise al equipo de una manera que sea conveniente para ellos . Hay más de ellos que usted, por lo que es más importante que la comunicación sea fácil para ellos.
¿Cómo pueden comunicar su progreso? Standups, informes diarios, informes semanales, hojas de tiempo (debe tener una sección de notas para la comunicación fuera de banda): elija el que sea más conveniente para los miembros de su equipo
Veo un par de problemas.
La primera es que parece que las "tareas" que tiene son demasiado grandes. Divídalos en partes más pequeñas, preferiblemente aquellas que deben completarse en un solo día.
A continuación, no les pidas que controlen el tiempo que dedican a las tareas. Lo hace si las tareas se dividen según las expectativas diarias, esto debería ser fácil para usted y el progreso debe informarse en una reunión diaria. En su mayor parte, estoy de acuerdo con Amy y HLGEM acerca de los autoinformes de los empleados; sin embargo, primero debemos llegar a ese punto.
Lo principal que busco aquí es que si el equipo no puede estimar adecuadamente las tareas que duran más de un día, entonces debemos capacitarlos. La mejor manera de llegar allí es hacer que estimen tareas pequeñas. Un beneficio secundario es que la gente se entusiasme por mostrar el progreso. Otra es que si tiene personas que repetidamente no pueden completar tareas fáciles en un solo día, entonces sabe a quién reemplazar. Por cierto, "creativo" no significa "cuando lo hagan"
Una vez que pueda completar tareas pequeñas rápidamente, comience a pasar a tareas de varios días. En este punto, deberían poder proporcionar estimaciones mucho mejores que usted pueda mantener.
Hay más, pero creo que ahí es donde debes comenzar.
Señor Fox
canto mate
jmort253
Gravitón
jmort253
Donald
Sahil Mahajan Mj
Thorbjorn Ravn Andersen
jpmc26
Nicolás Barbulesco
Nicolás Barbulesco
Nicolás Barbulesco
Nicolás Barbulesco
Juha Untinen