Investigadores de la Facultad de Informática de la Universidad Politécnica de Madrid (UPM) han desarrollado un modelo de trabajo que aplica de forma eficiente la gestión del conocimiento a la ingeniería de software. El modelo promueve el aprendizaje continuo en este ámbito y ayuda a reutilizar las buenas prácticas en el futuro.
La 'gestión del conocimiento' es un concepto aplicado en las empresas con la finalidad de transferir el conocimiento desde el lugar dónde se genera hasta el lugar en el que se va a emplear. Por su parte, la 'ingeniería de software' es la ingeniería que ofrece métodos y técnicas para desarrollar y mantener software de calidad. Ahora, investigadores de la Facultad de Informática de la UPM han desarrollado un modelo de trabajo que aplica el primer concepto al segundo, permitiendo la reutilización de los procesos de desarrollo de software de una forma eficiente y organizada.
La gestión del conocimiento aplicada al campo de la ingeniería de software es un área de investigación aplicada que se enfoca a la identificación, captura y preservación del conocimiento y a la experiencia adquirida durante el desarrollo de proyectos de software, con el propósito de alentar y facilitar su reutilización en nuevos proyectos.
El modelo desarrollado, pionero en su género, permite gestionar el conocimiento y la experiencia de los miembros de un equipo que trabaja en ingeniería de software, de tal modo que su aprendizaje se realiza de forma continuada, para que las buenas prácticas actuales realizadas puedan volver a ser utilizadas en el futuro.
Se trata de un proceso en el que cada fase tiene su 'reflejo' posterior en una acción que refuerza a su par. Así, al llegar al momento deintegración, se produce un recordatorio de la fase de familiarización, dado que están íntimamente ligadas. Además, este ciclo se puede alternar y continuar en distintos procesos que sigan el mismo orden y las mismas fases. De este modo, la implementación del proceso es análoga a la elaboración del proyecto para el que se ha desarrollado ese proceso.
Reflective Guides
Un elemento central en el modelo son las denominadas reflective guides (guías de reflexión), dado que gracias a su integración a las tareas del proyecto que se lleva a cabo, estas guías evitan que se pierdan, tanto el conocimiento como los procesos y la experiencia, una vez que ha finalizado el proyecto, incluso aunque los miembros del equipo abandonen la organización o sean asignados a nuevos proyectos.
Este modelo va más allá de la simple captura de la experiencia: implica la prestación de determinadas instrucciones sobre cómo utilizar esta experiencia para identificar los procedimientos aprendidos y proponer las mejores prácticas que luego serán integradas en un repositorio general para su uso futuro.
Bajo este marco general, la compañía uruguaya Arkano Software ha desarrollado un programa piloto de gestión del conocimiento que le permite optimizar y reutilizar los procedimientos de ingeniería de software.
El desarrollo de este programa viene dado por la necesidad de que Arkano Software, dedicada al desarrollo de plataformas con base Microsoft, pueda institucionalizar un proceso de identificación y captura de conocimientos, tanto técnicos como de gestión y organización, que le permitirá definir un flujo de circulación de dicho conocimiento para su uso óptimo por parte de las casi 50 personas que forman la empresa, lo que les permitirá optimizar su trabajo de cara a sus clientes, tanto en Uruguay como en Chile, Brasil, Colombia, México y Estados Unidos, países en los que esta empresa desarrolla su actividad.
La investigación ha sido desarrollada como tesis doctoral por Gerardo Matturro, de la Universidad ORT Uruguay, Montevideo (Uruguay), y fue dirigida por Andrés Silva, profesor de la Facultad de Informática de la Universidad Politécnica de Madrid. Sus resultados se publicaron en el Journal of Universal Computer Science.
Referencia bibliográfica:
Gerardo Matturro, Andrés Silva. "A Model for Capturing and Managing Software Engineering Knowledge and Experience". Journal of Universal Computer Science 16 (3): 479-50, 2010.