He visto cómo se desarrolla este ciclo en una serie de situaciones, que van desde equipos de proyectos de ingeniería hasta empresas de inicio completas. Por ejemplo, el equipo está retrasado en la entrega de un importante lanzamiento de producto … Por lo tanto, se asigna un gerente de programa para realizar registros dos veces al día con el equipo. Lo que enfurece al ingeniero principal, que abandona la empresa. Dejando a los miembros restantes del equipo con poco personal, desmotivados y una fecha de entrega proyectada aún más tarde de lo previsto …
Cada situación es única y un factor crítico es qué tipo de choque causa la cascada. Por ejemplo, hace una diferencia si se trata de un problema de adopción del cliente frente a un tiempo de inactividad / crisis difícil frente a una parada debido a la deuda técnica, etc.
Un marco general que puede usar para pensar en la gestión de ingeniería es:
- Corrosión en las industrias petroleras y métodos de protección: ¿Cuáles son los problemas a los que se enfrentan, los materiales utilizados y el mecanismo de protección establecido?
- ¿Qué ingeniería no requiere ningún grado para convertirse en ingeniero?
- Después de mi duodécimo estándar (ciencias), ¿cuáles son las mejores universidades para ingeniería en orden de clasificación?
- ¿Qué debo hacer para ser un buen ingeniero civil?
- ¿Cuáles son las oportunidades de carrera para un ingeniero civil que domina 'solo' el diseño asistido por computadora (Autocad, Revit, Sap2000, etc.)?
Gente, Proceso, Tecnología ==> Producto (Éxito)
Lea: “El producto (pero no necesariamente el éxito) proviene de la alineación de personas, procesos y tecnología”
Lea de otra manera: “Las personas, los procesos y la tecnología adecuados son necesarios, pero no requisitos previos suficientes para productos exitosos”
En general, una espiral es un problema sistémico, y los problemas del sistema casi siempre se benefician de un enfoque de “ir lento para ir rápido”. Es decir, invierta el tiempo por adelantado en el reclutamiento cuidadoso, la definición del proceso, la arquitectura y la definición del producto: esa inversión pagará dividendos acumulados más adelante en términos de un progreso mucho más rápido. Algunas cosas en las que debe pensar un gerente de ingeniería al diagnosticar una situación espiral:
Gente equivocada
- Síntomas: no confiamos el uno en el otro y dudamos del trabajo del otro. Los miembros del equipo regularmente sobrescriben el trabajo de los demás (a propósito). Las personas hablan entre ellas en discusiones, o peor aún, se niegan a hablar entre ellas.
- Sugerencias: Limpie la casa y libere a los miembros del equipo que no están contribuyendo al nivel que necesita. Si no tiene un marco para evaluar el desempeño de los ingenieros (p. Ej., Cinco comportamientos de ingenieros impresionantes), formule rápidamente uno y califique a los miembros de su equipo. No retenga a los miembros del equipo que son técnicamente brillantes pero que no encajan en la cultura del equipo (ver: ¿Por qué es necesario disparar pendejos brillantes para construir una gran cultura de ingeniería?). Reduzca el equipo a los jugadores de nivel A que realmente desea retener y luego vuelva a crear / reclutar al equipo que lo rodea.
Proceso equivocado
- Síntomas: no estamos tomando decisiones de manera eficiente, las personas pasan mucho tiempo hablando entre ellas en las reuniones, pero no se van con acciones claras y fechas de vencimiento. Cuando tomamos decisiones, volvemos a revisar y adivinamos antes de que las decisiones tengan la oportunidad de implementarse. La gente no sabe quién está a cargo de cada decisión.
- Sugerencias: Existen muchas prácticas de ingeniería (incluso estándares IEEE) que definen cómo los equipos deben reunir los requisitos y tomar decisiones sobre en qué trabajar. Soy un fanático de la simplicidad y los roles estrictos aquí: “Los gerentes de producto deciden QUÉ y en QUÉ ORDEN trabajamos en las cosas. Los ingenieros de software deciden CÓMO y CUÁNTO trabajamos”. Esta opinión particular tiene sus raíces en las prácticas de desarrollo de software ágil y Scrum (desarrollo de productos); aunque hay muchos enfoques que podrías seguir. El punto es ser claro sobre quién toma qué decisiones, comprometerse como equipo a seguir las decisiones y luego responsabilizarse mutuamente por los compromisos asumidos con el equipo.
Tecnología equivocada
- Síntomas: pasamos todo nuestro tiempo luchando con herramientas y configuraciones de sistema en lugar de desarrollar características que impactan al cliente. Nuestra infraestructura técnica es demasiado complicada para que cualquiera pueda entenderla y tenemos miedo de hacer cambios debido a los efectos secundarios no deseados.
- Sugerencias: No tengas miedo de comenzar de nuevo. A veces, eso es lo más pragmático que puede hacer y puede ofrecer la oportunidad de probar diferentes conjuntos técnicos, marcos o DSL que pueden ser más adecuados para el dominio del problema en el que intenta trabajar. Ya sea que elija construir desde cero y reemplazar su sistema actual o intente refactorizar los sistemas existentes en el lugar, su pila técnica debe cumplir con dos requisitos de ingeniería:
- en todos los momentos, deberíamos poder determinar si el sistema se comporta de la manera que esperamos que funcione; idealmente a través de Test-Driven Development (ver: Introducción al Test Driven Development (TDD))
- El sistema debe ser lo suficientemente simple como para saber que un nuevo ingeniero puede hacer una contribución impactante para el usuario en su primer día.
Producto equivocado
- Síntomas: estamos cumpliendo los compromisos de sprint, enviando productos de alta calidad que funcionan según lo especificado, pero los clientes no lo están adoptando a las tarifas que esperábamos.
- Sugerencias: Esto puede parecer un problema menos inmediato que los demás porque, después de todo, el equipo de ingeniería puede estar funcionando sin problemas, enviando a tiempo y produciendo productos hermosos. Pero esta disfunción es quizás la más insidiosa de todas: un equipo que ha tenido un alto rendimiento durante unos meses puede caer repentinamente en una espiral descendente cuando comienzan a surgir temores sobre “¿mi trabajo es importante para alguien?” y “¿cuánta pista nos queda?” (Tenga en cuenta que los temores sobre la pista no están aislados de las nuevas empresas … El personal departamental en las grandes empresas a menudo es muy consciente de la posibilidad de recortes presupuestarios si el departamento no está contribuyendo al resultado final). Tan pronto como un gerente de ingeniería se da cuenta de que el hermoso producto su equipo recién enviado no está generando los niveles de adquisición, participación o retención de usuarios que su equipo esperaba, es hora de comenzar a pensar en cómo acercarse al cliente. Idealmente, esta es una buena ocasión para practicar Lean UX y Customer Development para ayudar al equipo a pasar menos tiempo creando código que nadie quiere.