Desarrollo ágil de software: Los procesos de fabricación de software determinan la competitividad de cada fabricante y, por ende, su futuro. Cuando buena parte de la energía (esfuerzo) se consume en procesos de bajo (o nulo) valor añadido, la productividad de sus equipos de trabajo, su velocidad y eficacia, se evapora. ¡Y vuelta!
El diagnóstico es sencillo:
midiendo … el esfuerzo por unidad producida
o el ratio de tiempo dedicado a incidencias (-) frente al dedicado a construir (+)
En este artículo revelaremos cómo revitalizar el ciclo de vida en la fabricación de software. Cuestión de lógica y economía.
Las pautas de esta “revelación” son claras:
- Protege todo producto elaborado.
- No improvises … sistemáticamente.
- Descarga a las personas de trabajos repetitivos.
- Aprende y aplica lo que aprendes.
- Cuida la maquinaria, te va la vida.
Para evitar caer en el misticismo, vamos a predicar con nuestro ejemplo.
Desde el año 2009, la Factoría de Software de @PanelSistemas ha ejercido de locomotora, consolidando procedimientos y herramientas, como sustento para nuestra metodología de trabajo: OGMA. Las acreditaciones en CMMi-DEV e ISO 15504 nivel 3 de madurez reconocen este esfuerzo.
Sin embargo, la economía pide más: más rentabilidad, más productividad, ¡más!. Y la lógica invita a menos: menos rozamiento, menos dispersión, menos consumo, ¡menos!.
Toca “digievolucionar“, toca fabricación económica y lógica, toca …
¡Fabricación ecoLógica!
Maximizar el rendimiento de los procedimientos y conocimientos adquiridos gracias a una cadena de producción integrada, automatizada, adaptable y sostenible.
Aunque hemos llegado por la vía de la evolución, no se trata de un paso trivial. Supone trabajar duro en adaptar procesos ya consolidados, pero de carácter manual, poco automático o demasiado complejos (si necesitas un ingeniero de la NASA para fregar las mesas … humm … tienes margen de mejora ¿comprendes?). También supone trabajar en refactorizar algunas arquitecturas para seguir centralizando recursos. Supone aceptar que el rendimiento (la economía y la lógica) pide sumar esfuerzos en tareas de mayor valor añadido y delegar en especialistas para el mantenimiento de la maquinaria.
En particular, en Panel Sistemas hemos necesitado formación especializada junto con pilotos técnicos para establecer las pautas de adaptación de cada herramienta a nuestra realidad. Tanto en lo relativo a desarrollos existentes (migración para nuevas versiones) como a nuevos proyectos.
Para la parte de “maquinaria” nos hemos apoyado en nuestro Ecosistema para el desarrollo de software de cabecera: Clinker. Sería muy prolijo analizar este producto ahora, así que os invito a consultar la página de la gente de Klicap. Sólo señalaré que con Clinker tienes un conjunto de reconocidas herramientas instaladas, soportadas, con un sistema de autenticación unificada y administración centralizada (Clinker Desktop). Piénsalo.
La visión conceptual que hemos podido materializar gracias al ecosistema Clinker es la de canalizar el valor en el ciclo de vida de la fabricación de software para poder “subirlo de revoluciones”. Una visión similar a la que preconiza The Open Group para la información en la empresa con su Boundaryless Information Flow™.
A continuación vamos a repasar -muy someramente- las aportaciones más destacadas para nuestra fabricación ecoLógica, por módulos del ecosistema. Recordad, la fuerza está en el conjunto.
-
Control de versiones (Subversion y Git)
“Elemental mi querido Watson”.
-
Gestión del ciclo de vida del proyecto (Apache Maven)
Esta es mi favorita, la considero la piedra angular de la fábrica ecoLógica. Se trata del director de orquesta de todo nuestro proceso de construcción de software. Es el heredero de la función que hemos estado realizando con Apache Ant ™ hasta ahora. Lógicamente, la experiencia en migración entre Apache Ant™ y Maven es de alto interés.
Los beneficios de su utilización son:
-
- Institucionaliza las pautas establecidas en la metodología de trabajo (OGMA en @PanelSistemas). Aporta un interfaz para la orquestación en lugar de los secuencias (“scripts”) propias de Apache Ant™.
- Coordina entregas frecuentes (diarias, versiones, …), compilaciones, pruebas unitarias, controles de calidad automáticos, artefactos e integraciones.
- Permite gestionar las dependencias de las librerías del proyecto.
- Estandariza la estructura de proyectos y su ciclo de vida, favoreciendo la reutilización e integración de componentes software.
- Automatiza la ejecución de procesos de pruebas (pruebas unitarias, funcionales y de integración).
- Permite controlar métricas y generar reportes de calidad del proyecto (apoyándose en Sonar).
- Se integra de forma transparente con entornos de integración continua (Jenkins para nosotros).
- Para despliegue desatendido en los diversos entornos, se apoya en herramientas de despliegue automatizado (Vagrant, Puppet) y en datos de configuración de cada despliegue.
Economía y Lógica en su máxima expresión: librerías centralizadas, buenas prácticas, control de avance, centralización de infraestructuras, parcheos.
-
Repositorio de artefactos centralizado (Nexus)
Los beneficios que aporta su utilización son:
- Centraliza el acceso a las librerías de desarrollo.
- Favorece la distribución de componentes software.
- Facilita la búsqueda de artefactos.
- Administración de repositorios privados.
- Actúa como “proxy” de librerías (lo que supone optimización del ancho de banda y ahorro de tiempo en las descargas).
- Automatización de tareas de generación software (Jenkins)Se trata del abnegado asistente del Sr. director Maven, eso sí, no le perdona ninguna “cita”. Los beneficios que os aportará su utilización sistemática son:
- Permite pasar de tareas manuales a automáticas, lo que libera tiempo para otras actividades y posibilita seguir mecanizando fases posteriores.
- Es muy versátil, abarca desde procesos simples o repetitivos hasta procesos largos y complejos. Ahorra tiempo de persona y permite que ésta contribuya en tareas de mayor valor añadido. Por ejemplo: la generación de binarios integrando el trabajo de varios desarrolladores, la ejecución de pruebas, la generación de informes de estado, el empaquetado de instaladores o la notificación de versiones.
- Facilita la integración continua gracias a sus diferentes posibilidades de comunicación de éxitos y errores entre procesos.
- Gracias a los múltiples sistemas de notificaciones que soporta (correo, chat, mensajería, twitter, etc. ), es sencillo estar informado y poder tomar decisiones rápidamente.
-
Control de la Calidad Software (Sonar)
Este módulo facilita la gestión de la calidad estática del software, permite analizar y medir de forma continua la calidad del código generado. Los beneficios que os aportará su utilización son:
-
- Métricas: eficiencia, portabilidad, usabilidad, complejidad ciclomática, comentarios, grado de cobertura de las pruebas y su resultado, etc.
- Multi-lenguaje (Java, C/C++ Comunidad, PHP).
- Cumplimiento de reglas de calidad software (errores estáticos, buenas prácticas).
- Cuadro de mandos.
Desde este módulo podríamos enlazar con todos los beneficios que la prácticas de aseguramiento de calidad software nos pueden aportar, pero entonces no terminaríamos este artículo.
Resumiendo:
Os hemos presentado nuestra fábrica ecoLógica, de bajo consumo, sostenible y humana. Para la maquinaria hemos confiado en el ecosistema para el desarrollo de software de Clinker, mientras que los procesos de trabajo emanan de nuestra metodología OGMA.
De esta forma, revitalizamos el ciclo de vida en la fabricación de software:
- Protege todo producto elaborado – Retención del valor añadido.
- No improvises … sistemáticamente – Institucionaliza.
- Descarga a las personas de trabajos repetitivos – Automatiza.
- Aprende y aplica lo que aprendes – Conocimiento reutilizable.
- Cuida la maquinaria, te va la vida – Clinker by Klicap.
Si te has quedado con ganas de visitar la fábrica, no lo dudes, nuestro departamento de Marketing estará encantado de organizarlo …
“For your eyes only”
PD: Gracias @jturegano por ordenarme las ideas y traer la ecoLogía a casa.;)
————————-
Me gustaría señalar que ese Proceso ya comienza en el proceso de elaboración de Oferta, y qse extiende hasta la
Me gustaría señalar que este Proceso comienza desde la fase de elaboración de ofertas, en la que trabajamos con “artefactos documentales” directamente relacionados con los artefactos gestionados, que establecen el ámbito tecnológico que podemos prometer.
Lógicamente, igual que en el Desarrollo propiamente dicho, hay que ensamblarlos bien…
Cierto Javier, ¡ecoLógico al extremo!
(ahorramos papel y rentabilizamos el esfuerzo)
Como decían aquellos, si hay que, se va. Pero “pa” ir sin artefactos documentales …. 😉
Sería un interesante artículo 😉
Saludos,
MAN
Pingback: Calidad Software: Inspección Continua, aplicada y ecoLógica | El Blog de Panel Sistemas
Pingback: Calidad Software: Gestión del Ciclo de Vida | El Blog de Panel Sistemas
Pingback: Cantidad vs Calidad Software - el Yin y el Yang | El Blog de Panel Sistemas
Pingback: Calidad software en servilletas de papel | El Blog de Panel Sistemas
Pingback: El cambio Kotter - Hacia la fabricación ecoLógica | El Blog de Panel Sistemas
Pingback: Panel Sistemas renueva el nivel 3 de madurez en CMMi-DEV | El Blog de Panel Sistemas
Pingback: Software QA - DevOps hacia la calidad continua del software | El Blog de Panel Sistemas
Pingback: #Integración Continua - Madrid DevOps | El Blog de Panel Sistemas
Pingback: Calidad Software: Gestión de artefactos ... y otras especies | El Blog de Panel Sistemas | TI, Desarrollo y Calidad Software
Pingback: Software QA – Razones para practicar la Integración Continua
Pingback: Software QA – Razones para practicar la Integración Continua | Tecnoblog
Para celebrar el segundo aniversario de este artículo estamos trabajando en un renovado ecosistema que impulse la fabricación ecoLÓGICA de software hasta el infinito ¡y más allá! 😉
Espero que podamos compartir con todos vosotros el resultado de esta aventura intro-retrospectiva. Firmes sobre nuestro decálogo ecoLÓGICO y con los principios como cinturón de seguridad avanzaremos hacia nuestro ecosistema 2015.
¿Te animas a compartir tu ecosistema favorito?
Pingback: Git: control de versiones en la fabricación #ecoLógica SW
Pingback: Calidad Software: Gestión del Ciclo de Vida - Panel Sistemas Informáticos, compañía española de desarrollo de software, servicios de calidad software y outsourcing TI.
Pingback: Calidad Software: Inspección Continua, aplicada y ecoLógica - Panel Sistemas
Pingback: El cambio Kotter - Hacia la fabricación ecoLógica. - Panel Sistemas