Eficiencia de recursos y eficiencia de flujo

Eficiencia de recursos y eficiencia de flujo en el software


La eficiencia es una palabra que siempre se ha utilizado de cara a buscar mejoras en equipos y departamentos, especialmente en el mundo del software. A priori cualquier persona pensará que maximizar la eficiencia es positivo. Existe un pequeño problema con la eficiencia, y es que la hay de varios tipos. Principalmente tenemos la eficiencia de recursos y eficiencia de flujo, y no siendo del todo opuestas, no es posible maximizar una sin penalizar la otra.

Eficiencia de recursos

La eficiencia de recursos es el modelo que impera en las grandes corporaciones, organizada en departamentos y con una serie de roles y grupos especializados. Los managers en esta situación se encuentran que les exigen que maximicen los resultados, y que además lo demuestren. Ante la imposibilidad de medir el rendimiento de un trabajador del conocimiento, el reflejo inmediato es intentar que las personas estén ocupadas al máximo en lo que son buenas.

Para ello se crean departamentos como por ejemplo: departamento de marketing online, de sistemas, de diseño, de desarrollo, de testing, de análisis de datos, etc. Incluso dentro de los departamentos encontraremos más especialización. Por ejemplo en sistemas encontraremos mantenimiento, helpdesk, bases de datos, monitorización, etc. Cada uno de estos roles lo desempeñará una o varias personas, y de alguna manera les llegará el trabajo especializado desde los otros departamentos (alguien quiere que le creen una BBDD nueva, alguien quiere que se actualice un servidor, alguien necesita revisar un servicio caído, etc.).

Eficiencia de recursos

En esta configuración encontramos con frecuencia las metodologías de trabajo en cascada (waterfall) para gestionar proyectos. Un proyecto se asigna al primer elemento de la cadena (primer departamento), y cuando éste termina se lo pasa al siguiente, y así sucesivamente hasta que lo completa el último y queda finalizado. Es una cadena de montaje, al más puro estilo industrial taylorista.

Con esta manera de trabajar se maximiza el trabajo hecho, esto es, el número de horas “haciendo” es máximo. Esto que tiene tan buena pinta, sin embargo, tiene una contrapartida. Como todo el mundo está siempre por encima del 100% (siempre tiene más trabajo del que puede completar) se produce siempre una espera desde que se le pide a alguien que haga algo hasta que lo acaba haciendo, pues cualquier petición entra en una cola. Es un pez que se muerde la cola, ya que las tareas paradas en una cola provocarán que quien está esperando esa tarea, como no puede avanzar con ella, coja otra tarea del montón y la comience, hasta que se vuelva a atrancar en otra cola, y tenga que coger otra, y otra, y otra. Es como tener una carretera con mucho tráfico colapsada con semáforos e intentar remediarlo metiendo más coches.

Eficiencia de flujo

Existe otro tipo de eficiencia, la eficiencia de flujo, que busca maximizar la velocidad en lugar de las horas trabajadas. En un esquema en el que se busca la eficiencia de flujo encontramos equipos de trabajo donde las personas desempeñan varios roles a la vez. No importa del departamento que seas ni tu especialización, lo importante es que entre todas las personas que integran el equipo sean capaces de llevar un proyecto entero desde el inicio hasta el final. No es que todo el mundo sea el bombero torero, sino que haya al menos una persona que sepa hacer cualquier tarea necesaria. Cuando la tarea esté lista para hacerse, si la persona que sabe está ocupada con otra cosa, existen opciones para no parar, como por ejemplo priorizar la tarea para que sea la siguiente en la lista de esta persona, o que otro se ocupe de lo que estaba haciendo para que el especialista se pueda poner con la nueva de inmediato. La decisión siempre debería ser qué configuración dentro del equipo se puede hacer para que nada crítico quede parado.

Eficiencia de flujo

En este modo de trabajo es posible que en algunos momentos haya gente que se quede parada. En esos momentos el impulso de una persona adulta y responsable deberá ser ayudar a sus pares, o en el peor de los casos hacer tareas de mantenimiento, refactoring, mejoras o investigación. En otras palabras, no se busca el 100% de ocupación de las personas, porque se asume que si se llega al 100% se producirán los temidos bloqueos.

Esta forma se trabajar es propia de metodologías de desarrollo de software más modernas como Scrum o Kanban (las denominadas Agile). Se busca centrase en el valor y en sacar cosas rápidamente al mercado, más que en sacar mucha cantidad.

¿Qué tipo de eficiencia escoger?

La mayor diferencia se encuentra en dónde se pone el foco: Con la eficiencia de recursos se busca que la gente no se quede parada, mientras que con la eficiencia de flujo lo que querremos es que los proyectos no se queden parados.

Es cuestión de qué encuentres más interesante para tu empresa, si sacar las cosas rápidas al mercado o tener más volumen de proyectos hechos en el año. Puede parecer interesante maximizar el volumen de trabajo hecho para ser eficiente, ya que es una forma de maximizar beneficios. Pero hay que considerar otro tipo de costes en los que se incurren por no sacar rápido proyectos interesantes para la compañía.

Por poner un ejemplo equivalente, si imaginas que tienes una compañía de autobuses tienes 2 opciones: puedes mejorar tu beneficio si aumentas tiempos de espera reduciendo frecuencias, o también puedes mejorar tu servicio al cliente aumentando la frecuencia. Muy probablemente si el servicio es mejor cogerá más gente el autobús y acabarás sacando más rendimiento igualmente. Aplicado al software, es más probable acertar con los productos que sacas al mercado si aumentas el feedback entregando rápido.

Modelo híbrido: Combinar eficiencia de recursos y eficiencia de flujo

En las grandes empresas es muy complicado que no se forjen los trabajos especializados. Si se contrata a un manager experto en comercio electrónico de zapatos no es para meterlo en un equipo a hacer ganchillo. En estos casos lo mejor es que esta persona se centre en 2 tareas. Una será formar a los equipos para hacer aquellas tareas más simples dentro de la especialización, y la segunda es ocuparse de aquellas tareas críticas especializadas para los proyectos que requieran de su expertise, esto es, que no las puede hacer cualquiera.

Aplicado al software de nuevo es lo mismo que decir que el equipo sea autónomo para cambiar el tipo de un campo de la base de datos sin ayuda del DBA o que pueda cambiar la clase CSS de una página web sin ayuda de un maquetador. Esto es muy positivo también para estos expertos, pues se centran en tareas de muy alto valor mientras que delegan la mayoría de tareas “de relleno” que no suelen gustar.

Preocupaciones frecuentes

El modelo de eficiencia de flujo es también mucho más difícil de conseguir y construir, ya que exige crear equipos de alto rendimiento, conscientes y comprometidos, y que los managers sean capaces de motivarlos y comunicar claramente los objetivos de cada equipo. Las personas de cada equipo también deben también aprender más capacidades y escapar del perfil ultra-especialista.

Una de las cosas que más asustan a los managers del modelo de eficiencia de flujo es que la responsabilidad es del equipo en lugar de una persona o rol en concreto. Por eso es tan importante saber transmitir al equipo que los objetivos y tareas son compartidos, y que depende de todos el que se completen con éxito, por lo que la responsabilidad es de todos y de todos es tanto el éxito como los fracasos.

Otra preocupación recurrente es que las personas tenderán a hacer cada vez menos si no hay una presión encima en forma de tareas pendientes asignadas. Curiosamente siempre se tiene ese temor respecto a los demás, pero nunca sobre ti mismo (todos somos super-responsables siempre no?). La motivación nuevamente es esencial. Si se consigue motivar al equipo a través de proyectos retadores, la respuesta positiva está garantizada. Estar parado es una de las peores cosas que te puede pasar en el trabajo del conocimiento. Si estás en un equipo pequeño no puedes estar perdiendo tiempo mientras tu compañero que está al lado está hasta arriba, te sale de dentro echar un cable en lo que puedas. En el peor de los casos si una persona baja el ritmo deliberadamente será rápidamente identificada por el equipo y nos enteraremos tarde o temprano.

¿Qué modelo de eficiencia impera en tu organización?¿Está alineado con los principios y objetivos de la misma?

También te puede interesar...

Resumen User Stories Applied de Mike Cohn ¿Qué es una historia de usuario?¿qué elementos debe cumplir?¿cómo se crean? El libro User Stories Applied de Mike Cohn nos da respuesta a éstas y c...
Resumen Lean Software Development El libro Lean Software Development de Mary y Tom Poppendieck es una lectura obligatoria para todos aquellos que quieran entender muchos de los princip...
Agile BCN Open Space primavera de 2017 (II) Este pasado sábado se celebró el Barcelona el Open Space de la comunidad Agile BCN. Cerca de 70 personas nos reunimos en las oficinas de Netmind IT co...

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *