BAQUIA

Gestión y modelos para la eficiencia en empresas de desarrollo de software

Según como afrontan las organizaciones el desarrollo del software, éste puede comportarse como factor de riesgo para el negocio o como una poderosa oportunidad de negocio. El problema que pueden encontrar quienes deciden implantar métodos más eficientes es caer en la desorientación ante el abanico de modelos de calidad, de procesos y de técnicas de trabajo desplegado en la última década (CMMI, ISO 15504, Extreme Programming, DSDM, Scrum, MSF, RUP…), o abrazar al primero que se presenta en la puerta de la organización como “solución” de eficiencia y calidad.

Trabajar sin ningún método es una opción, pero no una metodología

Las organizaciones que desarrollan o mantienen software pueden optar por seguir una metodología o trabajar \”a la buena de Dios\”. Esta opción no es tan rara. Es la primera forma que se empleó para desarrollar programas:

\”Aquí tenemos unos ordenadores, aquí unos señores a los que les encanta leer los manuales de programación, y se trata sencillamente de conseguir que estas máquinas terminen imprimiendo facturas\” (o haciendo lo que sea).

El éxito o fracaso de las organizaciones que trabajan sin metodologías depende del conocimiento tácito de su personal, pero teniendo en cuenta que se trata del conocimiento que cada uno traía ya de la calle o del que adquiere motu proprio, porque hablamos de \”ninguna metodología\”, lo que implica que como mucho los procesos de formación de la empresa llegan al \”ahí tienes manuales y libros, por si hubiera algo que no sabes\”.

Este es sin duda el modelo con el que empiezan muchas start-ups: un equipo de emprendedores con talento, capaces de construir sistemas de software con calidad. Los resultados serán tan buenos como ellos los sepan hacer. El cumplimiento de agendas dependerá de su capacidad de previsión y organización. Pero no hay que engañarse: en este caso no se trata de empresas que saben hacer software, sino de personas que saben hacer software.

Y esta situación dibuja el guión común a todas las pequeñas organizaciones de desarrollo de software que surgen de cero, impulsadas tan sólo por el empuje de sus emprendedores: pueden llegar todo lo lejos que la combinación del talento y de la capacidad de marketing de sus creadores les permitan. Es decir, en ocasiones acabarán cerrando, y en otras alcanzarán un nivel de estabilidad tan mediocre o tan brillante como dicha combinación les permita.

Y si una vez logrado ese nivel de equilibrio desean proyectar mayor crecimiento a su organización, se enfrentan a un reto importante: pasar de personas que saben hacer software a empresa que sabe hacer software. Salto que supone que no va a ser ya el talento individual, sino la empresa quien deberá producir resultados de calidad de forma eficiente y repetible en todos sus proyectos.

La teoría de la gestión empresarial recomienda para esta travesía tomar como medio de transporte la gestión por procesos. No es nada nuevo, pero conviene no olvidar que en el triángulo personas – procesos – tecnología cada elemento actúa con un peso específico, diferente en función del tipo de producción, e incluso de las características de personalidad de cada empresa.

Por eso, el ámbito de la teoría generalista tiene un límite, y cada sector y cada empresa, más que importar una metodología estándar, debe comenzar por el gnosce te ipsum, y a partir de ahí analizar y descubrir la potencia de cada uno de los tres elementos de la producción para componer el diseño de un sistema de producción a su medida.

Las combinaciones posibles para cada negocio son muchas, y factores como la innovación en la tecnología, en los procesos o la formación del personal pueden abrir la horquilla de potencial de cada elemento. La homogeneidad y calidad de los resultados, y la eficiencia del sistema en su conjunto serán consecuencia del equilibrio logrado.

La obsesión por la excelencia mal entendida o la desorientación sobre las funciones del propio puesto lleva a muchos gestores a centrar sus esfuerzos en la incorporación de modelos o técnicas (bien de procesos, bien de recursos humanos o de innovación tecnológica, o de todos a la vez) sin una visión sistémica de su organización.

Esta es al fin y al cabo la razón del escepticismo y las críticas que finalmente verterán sobre modelos, métodos o técnicas contrastadas y eficaces; cuya debilidad no radica en ellas sino en una interpretación o implementación incorrectas, o sobre sistemas para los que no resultan apropiadas.

Industria del software

Para todas las industrias hay marcos de trabajo compuestos por normativas y estándares más o menos estables y consensuados, que en forma de modelos ayudan a mejorar o evaluar la calidad de sus sistemas de producción. Al mismo tiempo, cada ingeniería tiene delimitadas sus áreas de conocimiento, y reguladas las técnicas de trabajo para ofrecer las garantías necesarias en la construcción de sus respectivos artefactos.

Una diferencia importante entre la industria del software y otras industrias de ingeniería es la falta de consenso o inmadurez en los dos puntos anteriores, que deja a las empresas de nuestro sector en un cierto grado de orfandad a la hora de buscar ayuda en modelos, técnicas o patrones de referencia.

El problema en este momento no es la falta de estándares, modelos o técnicas, sino la abundancia de ellos, por lo que resulta aconsejable tomar un apunte del plano general para saber por dónde nos movemos.

En el texto completo del trabajo se analizan los principales métodos formales y ágiles para desarrollo y mantenimiento de software.

El oficio del gestor

El mayor o menor grado de éxito en la calidad y eficiencia en el desarrollo de software depende del equilibrio que se consiga al conjugar los siguientes factores:

  • Características de los proyectos de software gestionados.
  • Visión de la organización.
  • Cultura de la organización.
  • Diseño y gestión del equilibrio productivo personas-procesos-tecnología.

Cuando se desconocen las variables que actúan sobre un sistema, y su influencia, se habla de que presenta un comportamiento aleatorio (“caótico”). En sistemas complejos, aunque son varias las fuerzas, sí resulta posible su conocimiento, o el conocimiento de las más relevantes, y actuar con probabilidades de certidumbre muy altas sobre las consecuencias.

Desde este punto de vista, un entorno de desarrollo de software es un sistema complejo en el que se pueden combinar y poner en interacción múltiples elementos, con diferentes pesos y formas de gestión Aunque sobre los sistemas complejos, a diferencia de los aleatorios, sí es posible actuar con factores de predictibilidad elevados, si desconocemos su ecuación de fuerzas se presenta un comportamiento tan aleatorio como los sistemas caóticos.

Para diseñar y gestionar entornos de producción eficientes se debe trabajar con pensamiento sistémico, comprendiendo que todos los factores implicados en la producción de software componen un sistema interrelacionado, imbricado y alineado con la misión de la organización. No se trata por tanto de conocer cuál es la mejor metodología para el diseño de bases de datos, cuál el mejor modelo de procesos o cuáles las mejores técnicas de gestión de recursos humanos.

La multiplicidad de técnicas, modelos, herramientas, modos de gestión, es consecuencia de la diversidad de organizaciones y tipos de proyectos posibles. El error habitual es trabajar con gestión lineal y asistémica, administrando soluciones sintomáticas para cada situación.

La gestión lineal carece de la perspectiva necesaria, y responde de forma azuzada a la presión del día a día. Sin esa perspectiva no se ve el sistema, y el marco de trabajo se presenta como un campo de batalla desordenado que requiere actuaciones en cada uno de los frentes que presenta.

La presión del día a día ofrece dos atajos muy tentadores que se deben evitar:

  • Aplicar soluciones enfocadas en resultados en el corto plazo.
  • Obtener mediciones y datos que demuestren un buen comportamiento.

Gestión sistémica

La eficiencia es el resultado de la idoneidad y equilibrio de todos los componentes de la producción:

¿Cuál es el mejor modelo de procesos para el desarrollo de software?
¿La cultura de empresa más adecuada?
¿Las mejores técnicas de gestión de RRHH?
¿Las mejores plataformas de programación?

Los puntos que expone el texto completo del estudio, como claves para conseguir organizaciones eficientes del desarrollo son:

  • Personalidad de la organización.
  • Conocimiento de la propia empresa.
  • Conocimiento de la industria.
  • Gestión sistémica.
  • Gestión sistémica.

El conocimiento general de la naturaleza del software y del marco de nuestra industria son ingredientes necesarios tanto para abordar el diseño de procesos con recursos propios como para evaluar con acierto al un consultor que pueda servir de auténtica ayuda; porque a la consultoría le ocurre lo que a nuestra profesión, que no está normalizada, y en el peor de los casos uno puede acudir al curandero o a un traumatólogo cuando lo que necesita quizá es un alergólogo.

Para descargar el estudio completo en formato pdf, haga clic aquí.


Compartir en :


Noticias relacionadas

Recomendamos




Comentarios