paint-brush
Derribar barreras organizacionales para acelerar el desarrollo de softwarepor@hacker9096769
Nueva Historia

Derribar barreras organizacionales para acelerar el desarrollo de software

por Illia Halashko9m2024/07/13
Read on Terminal Reader

Demasiado Largo; Para Leer

Los retrasos en la entrega de funciones en las empresas de tecnología a menudo se deben a problemas organizativos más que a problemas puramente técnicos. Al comprender la estructura de la empresa, la jerarquía de los empleados, las responsabilidades del equipo y el proceso de entrega de funciones, puede identificar las causas fundamentales e implementar cambios incrementales para mejorar.
featured image - Derribar barreras organizacionales para acelerar el desarrollo de software
Illia Halashko HackerNoon profile picture
0-item


Comprender por qué no se ofrecen determinadas funciones a menudo puede resultar un desafío. La dirección podría culpar a los equipos técnicos, mientras que los equipos técnicos señalan con el dedo a la dirección. Mientras tanto, el lado empresarial está atrapado en el medio, tratando de identificar la causa raíz mientras presiona para obtener resultados independientemente de las circunstancias. Este escenario suele surgir después de un crecimiento significativo de la empresa o cuando problemas anteriores, que antes eran fáciles de solucionar, se han descuidado con el tiempo. Es un error común pensar que todos los problemas en una empresa de tecnología son puramente técnicos; Esto está lejos de la verdad.

En este artículo, describiré áreas dentro de la organización de una empresa que pueden obstaculizar significativamente la entrega de funciones. También sugeriré instrucciones para investigar para identificar las causas fundamentales, que luego pueden escalarse o resolverse dentro de su nivel de autoridad.

Es fundamental comprender nuestro entorno de trabajo antes de implementar cualquier cambio o mejora. Aunque se han escrito muchos libros esclarecedores sobre este tema, no todos los enfoques se adaptarán a todas las empresas. Esto no es un reflejo de haber hecho algo mal, sino más bien un reconocimiento de la naturaleza única de cada empresa.

Una nota importante es que los conocimientos compartidos aquí están relacionados principalmente con el desarrollo de software y son más aplicables a empresas o departamentos con 50 o más empleados.

Estructura organizativa

En primer lugar, comprenda el tamaño y la estructura de su empresa. Identifique los distintos departamentos y aclare sus expectativas de cada uno. Valorar si todos estos departamentos son necesarios. Cree un diagrama de la estructura organizacional, detallando cada departamento y sus funciones, asegurándose de comprender qué hacen y por qué existen. A menudo, cada departamento consta de varios equipos; inclúyalos también en su diagrama, pero no los describa por ahora, solo permanezcan en los nombres de los equipos.

A medida que las empresas crecen, las estructuras organizativas pueden volverse complejas, lo que dificulta el seguimiento del progreso. En esta complejidad, es posible que se pierda de vista la lógica original detrás de la creación de ciertos departamentos o equipos. Es posible que se hayan creado algunos equipos para abordar problemas que ya no son relevantes. Aquí, cómo puede verse a alto nivel.



Una vez que tenga un diagrama claro de su estructura organizacional, ¿qué sigue?

Jerarquía de empleados

A continuación, es esencial trazar la jerarquía de sus empleados. Comprender quién reporta a quién y por qué es crucial. Los gerentes de línea necesitan comunicarse efectivamente con sus subordinados, ya sea que administren una gran unidad de negocios o un equipo pequeño. La comunicación debe ser clara, ya sea en lenguaje técnico o comercial, ya que manejar ambos puede ser un desafío. En empresas más grandes, puede haber gerentes directos y funcionales con distintas áreas de responsabilidad, que deben estar claramente representadas en su diagrama jerárquico.

Una jerarquía de empleados no solo aclara las líneas jerárquicas sino que también ayuda a identificar verticales dentro de la organización. Las verticales son estructuras jerárquicas que sirven como recursos compartidos entre múltiples departamentos, como diseñadores, recursos humanos, DevOps e incluso desarrolladores. Si bien las verticales pueden ser muy beneficiosas, a veces pueden convertirse en cuellos de botella, particularmente cuando los desarrolladores trabajan en diferentes proyectos e informan a gerentes que no están familiarizados con los objetivos comerciales o los desafíos técnicos. Como resultado, los desarrolladores no reciben la retroalimentación adecuada y los gerentes no tienen el contexto adecuado. Por lo tanto, comprender la jerarquía es vital para identificar y analizar posibles problemas o priorizaciones de las tareas. Al final tendrás algo como esto.



Anotación

Director ejecutivo - Director ejecutivo
CPO: director de productos
CTO: director técnico
Director de operaciones: director de operaciones
HD — Jefe de Diseño
PO - Propietario del producto
HE - Jefe de Ingeniería
HS — Jefe de Ventas
HM - Jefe de Marketing
D-Desarrollador
PM - Gerente de Producto
TL - Líder tecnológico
EM — Gerente de Ingeniería
S - Gerente de Ventas
M - Comercializador


Compare su estructura organizacional con sus líneas jerárquicas para obtener información sobre la participación de cada empleado en diversas actividades. Además, alinear su estructura organizacional con la jerarquía de empleados puede ayudar a determinar si las personas están trabajando dentro de los mismos departamentos y equipos y hacia un objetivo común. La plantilla de mapeo depende totalmente de usted, pero podría gustarle esto.


Mapear la jerarquía de sus empleados en un departamento

Responsabilidades del equipo

Es importante definir claramente el área en la que opera cada equipo. Si un equipo trabaja con código, especifique los servicios que utiliza y los que posee. Sorprendentemente, a menudo pueden ser diferentes. Determine si el equipo opera únicamente dentro de un departamento o si es un equipo de plataforma que trabaja en funciones principales utilizadas por otros equipos sin alterarlas directamente.

Crear una tabla puede ser muy útil, con las siguientes columnas: nombre del equipo, departamento, lista de servicios propios, lista de servicios generales que el equipo puede modificar pero que no posee (idealmente, no debería haber dichos servicios) y una breve descripción. . Esta tabla le ayudará a examinar si varios equipos están trabajando en la misma base de código, lo que genera conflictos o si hay una falta de claridad con respecto a sus áreas de responsabilidad. También puede revelar si un equipo se dedica principalmente a corregir errores o a incursionar en diversas tareas sin un enfoque claro.

Este nivel de detalle es crucial para identificar superposiciones, conflictos y brechas en las responsabilidades del equipo, lo que garantiza una colaboración más fluida y una ejecución más eficiente del proyecto.

Responsabilidades del empleado

Además de describir los equipos, es fundamental comprender los puestos generales de los empleados y preparar una descripción detallada de sus responsabilidades. A menudo, lo que la dirección imagina puede diferir significativamente de lo que los empleados realmente hacen. La industria del desarrollo de software tiene una variedad de posiciones y las expectativas pueden variar mucho de una empresa a otra. Por ejemplo, el rol de un gerente de ingeniería puede variar ampliamente, sin mencionar roles como gerentes de entrega, científicos de datos, arquitectos, líderes técnicos, etc. En algunas empresas, se puede esperar que una sola persona desempeñe múltiples funciones.

Establecer expectativas claras para cada puesto es esencial. Esta claridad no sólo ayuda a realizar un seguimiento adecuado de las actividades, sino que también garantiza que los empleados comprendan lo que se espera de ellos y lo que queda fuera de su alcance. Esto se aplica a todos los puestos dentro de la organización. Las definiciones claras de funciones ayudan a evitar superposiciones, reducir la confusión y garantizar que todos trabajen para alcanzar objetivos comunes de manera eficiente y organizada.

Proceso de entrega de funciones

A estas alturas, debería tener una comprensión clara de la estructura de su empresa, la jerarquía de los empleados y sus responsabilidades. Aunque las cosas puedan parecer confusas, el objetivo es comprender primero el estado actual antes de realizar cambios. Ahora es el momento de describir su proceso de entrega de funciones: cómo las funciones comerciales pasan de la idea inicial a la producción.

Por favor, no se centre aquí en los aspectos técnicos como CI/CD, sino en el flujo de la empresa a los desarrolladores, asumiendo que los desarrolladores escriben el código y lo implementan directamente en producción. El objetivo es identificar cualquier problema en su proceso, desde la empresa hasta el equipo, y ver qué tan bien los empleados se alinean con él.

Considere estos aspectos:

  • ¿Con qué frecuencia planifica nuevas funciones y asigna trabajo para cada departamento y equipo?
  • ¿Cómo se establecen y miden los indicadores clave de desempeño?
  • ¿Utilizas hitos? ¿Quién participa en su preparación inicial? ¿Cómo los planificas con el equipo?
  • ¿Quién coordina el proceso de planificación y ejecución?
  • ¿Eres realmente una empresa ágil? ¿Utiliza marcos como SAFe, Prince2 o PMP, o tiene algo personalizado que funcione para usted?
  • ¿Cómo manejas tareas complejas entre equipos y controlas el progreso? ¿Tiene un enfoque estructurado o confía en que las cosas se resuelvan de alguna manera?

Recuerde, cada nivel de gestión y presentación de informes añade complejidad e incertidumbre, independientemente de la dirección. En última instancia, su diagrama de proceso debería responder a una pregunta simple: "¿Cómo?"

Puedes jugar con las plantillas y ajustarlas a tus necesidades. Aquí hay un ejemplo de muy alto nivel de un proceso de entrega sin actores clave que regule la entrega pero con plazos.



Si no está seguro de cómo crear este diagrama, considere utilizar BPMN (modelo y notación de procesos de negocio) o un formato más simple como rectángulos y líneas para garantizar la claridad y la comprensión entre todas las partes interesadas. La clave es hacer que el proceso sea claro y comprensible.

Recopilar comentarios

Una vez que haya trazado la estructura de la empresa, la jerarquía de los empleados, los equipos y las responsabilidades de los puestos, y el proceso de entrega, comparta todos sus hallazgos con la organización y realice una encuesta, preferiblemente anónima. Esta línea de base destaca cómo opera su empresa. Si bien es posible que haya preparado esta descripción general usted mismo o haya delegado algunas tareas, es probable que los desarrolladores, diseñadores y analistas no hayan participado directamente. Sus comentarios son cruciales para evaluar la precisión de sus hallazgos.

Pida a los empleados que evalúen la calidad de su documentación. ¿Qué piensan sobre el proceso de entrega? ¿Refleja realmente cómo se hacen las cosas? ¿Dónde ven impedimentos?

Espere una variedad de quejas y comentarios que lo ayudarán a refinar sus hallazgos para que coincidan mejor con la realidad de las operaciones de la empresa. Esta retroalimentación es vital ya que el contexto a menudo se pierde a través de múltiples niveles de jerarquía, y la recopilación de aportes de todos los niveles proporcionará una imagen más clara y precisa de la organización.

Estimar resultados

Ahora que tiene una descripción completa de cómo operan su empresa o departamentos, puede comenzar a analizar y buscar posibles problemas. Esta línea de base proporciona un punto de partida claro para comprender y resolver problemas.

Aquí hay algunas áreas en las que centrarse:

  • ¿Están estructurados sus departamentos? ¿Están claras las líneas jerárquicas?
  • ¿Pueden realmente los gerentes de línea brindar retroalimentación sobre su área de responsabilidad?
  • ¿Existe confusión o incertidumbre al transformar los requisitos comerciales en tareas técnicas?
  • ¿Existen dependencias de otros equipos que provocan retrasos durante el desarrollo?
  • ¿Los empleados participan en actividades que están fuera de su área principal de responsabilidad, lo que dificulta sus tareas principales?
  • ¿Qué tan bien se alinea la jerarquía de los empleados con la estructura del equipo?
  • ¿Es eficaz la jerarquía de informes o existen lagunas en la comunicación y el contexto?
  • ¿Hay diferentes equipos trabajando en los mismos servicios, lo que genera conflictos y pérdida de tiempo al decidir la propiedad de la tarea?
  • ¿Hay equipos o departamentos sin responsabilidades claramente definidas o faltan jugadores clave?
  • ¿Algunos equipos no están integrados en ningún departamento?

Al final, puede preparar una lista de los problemas reales que tiene su empresa, eso es algo en lo que trabajará. Priorícelas desde las críticas que requieren una interacción inmediata hasta las mejoras "buenas para tener".

Cómo hacer cambios

Quizás se pregunte: "Todo esto suena genial, pero ¿cómo puedo mejorar las cosas?" Esa es una buena pregunta y la respuesta honesta depende de los problemas específicos que identifique y de las necesidades de su negocio. Sin embargo, un consejo crucial es evitar intentar cambiar todo a la vez. En su lugar, implemente pequeños cambios de forma incremental, evalúe los resultados y repita. Recuerde, el enfoque ágil no sólo funciona en el desarrollo de software sino que puede aplicarse a cualquier tipo de cambio organizacional.

Aquí hay algunos pasos para guiar su proceso de mejora:

  • Asegúrese de que los empleados sepan exactamente qué implican sus funciones y qué queda fuera de sus responsabilidades.
  • Cree departamentos o dominios bien definidos y asigne equipos específicos a cada dominio.
  • Defina áreas claras de responsabilidad y minimice las superposiciones de departamentos y equipos.
  • Considere familiarizarse con el enfoque de Topologías de equipo, que presenta equipos de plataforma, alineados con flujos, habilitadores y de subsistemas complicados para cubrir diversos aspectos del desarrollo de software.
  • Revise y ajuste la jerarquía de sus empleados para alinearla con los dominios y equipos recientemente establecidos.
  • Asegúrese de que las estructuras de presentación de informes sean claras y que el seguimiento del progreso sea sencillo.
  • Elija la metodología o el marco que utilizará para la entrega de funciones y el seguimiento de los resultados.
  • Pruebe los cambios en cualquier departamento, preferiblemente no crítico, evalúe el impacto y refine su enfoque en función de los comentarios y los resultados.
  • Mejorar continuamente aplicando la mentalidad elegida a los cambios organizacionales.


Si sigue estos pasos, podrá realizar cambios incrementales informados que mejoren gradualmente la eficiencia y eficacia de su organización.

Resumen

Mi objetivo era resaltar problemas comunes que pueden surgir en cualquier empresa o departamento. Evité intencionalmente recomendar marcos o enfoques específicos porque cada empresa tiene objetivos y estructuras únicos, y es crucial decidir qué funciona mejor para usted.

Nuevamente, es fácil echarle la culpa a los desarrolladores, pero recuerde, es posible que no estén al tanto de las prioridades comerciales o que se vean bloqueados por un proceso de entrega poco claro. A veces, el propio negocio crea obstáculos de forma inconsciente. Espero que este artículo ayude a dar los primeros pasos hacia la mejora.