Por: Melvin Alvarado Ávila

|

23 Dic, 2015

El software representa hoy en día un elemento que puede permitir la innovación y la transformación de su empresa. Es por medio de este elemento tecnológico, que la mayoría de nuestra vida cotidiana (electrodomésticos, vehículos, ciudades, trabajos, etc.) y de nuestra interacción con la tecnología son posibles, a través de nuevas funcionalidades, nuevas formas de hacer las cosas, nuevos conceptos e ideas que se vuelven realidad a través de líneas de código.

Partiendo de esto, se puede decir de manera general que el desarrollo de software dentro de una empresa, puede llegar a brindar esa anhelada ventaja competitiva en los diferentes tipos de industria, ya sea banca, seguros, telecomunicación, salud, retail, entre otros. Es por ello, que su adecuado manejo y control puede representar el éxito o fracaso de negocios completos, un claro ejemplo de ello es Blockbuster LLC, una cadena de alquiler de películas en Estados Unidos, cuyo negocio llegó a tener más de 9,000 tiendas y 60,000 empleados a nivel mundial, pero que no logró superar a sus competidores con una estrategia orientada al software, entre ellos, Netflix. Hoy en día, Blockbuster ya no existe en Estados Unidos.

Considerando entonces la relevancia que el desarrollo de software tiene en su empresa, podría preguntarse rápidamente, ¿qué está haciendo para controlarlo?, ¿cómo mide el retorno de la inversión que está realizando en esta área?, ¿es realmente una pieza clave que le permite ser más competitivo y diferenciado? Las respuestas pueden ser inquietantes, pero más importante aún es plantearse qué hacer para mejorar la forma en la que se gestiona dicho proceso de desarrollo.

El complemento de este escenario es que el éxito no solo está basado en desarrollar aplicaciones innovadoras, sino también en cómo ponerlas en funcionamiento, operarlas, mantenerlas y mejorarlas a lo largo del tiempo, de una manera rápida, efectiva y sin pérdidas de servicio por defectos en el software o errores humanos.

Una de las propuestas que hoy en día se han hecho escuchar a partir de los buenos resultados obtenidos, es la descrita por medio del término DevOps. Este concepto, proveniente de la combinación de las palabras desarrollo (“development”) y operaciones (“operations”), busca tratar de conciliar áreas que tradicionalmente han estado aisladas.

En concreto, DevOps busca la integración de punta a punta del ciclo de vida del desarrollo de software, considerando dentro de esta integración, al equipo de operaciones/producción, quienes al final son los responsables de operar y mantener funcionando correctamente el software en los ambientes productivos.

Dicha integración no solo se basa en trabajar en forma secuencial a partir de una especificación, sino en llevar elementos como la colaboración, seguimiento de las tareas en tiempo real y automatización de etapas para lograr acelerar la entrega constante de nuevas funcionalidades y/o mejoras, detectadas a partir del monitoreo continuo de la experiencia de los usuarios de las aplicaciones. Todo esto con los controles necesarios para mantener el cumplimiento de las regulaciones requeridas por las diferentes industrias.

Sin embargo, esta integración entre áreas normalmente no existe, lo que sucede con regularidad es que cada unidad organizacional trabaja a su propio ritmo, con sus propias herramientas, con objetivos y metas propias. El enfoque de trabajo integrado busca eliminar esas barreras, permitiendo que todas las áreas formen parte de un engranaje productivo de entrega continua, permitiendo el flujo de información natural entre los diferentes participantes y roles, brindando la información actualizada en todo momento a la persona correcta.

Esta integración multidisciplinaria, permite obtener beneficios tangibles en corto tiempo, tales como entregas más rápidas de nuevas funcionalidades o correcciones, un mejor balance entre velocidad, costo, calidad y riesgos del software, y finalmente reducción del tiempo para obtener retroalimentación de parte de los usuarios de las aplicaciones.

Pero como ya podrán estar pensando, este enfoque conlleva retos importantes, el primero de ellos es cultural, dado que es normal que las personas tiendan a querer mantener cierto status, que de una u otra manera puede perjudicar el correcto desarrollo de este tipo de iniciativas.

El segundo es de procesos, la organización debe buscar la integración de las diferentes etapas y áreas, de manera que puedan homologarse conceptos, requisitos, documentos, formas de trabajo, tiempos de atención, entre otros.

Y finalmente, el tercero es tecnológico, contar con una plataforma que permita la integración de todas las áreas, con las diferencias en responsabilidades y funciones, con vistas y perspectivas de la información adecuadas a su rol dentro de todo el proceso, colaboración en todo momento entre los miembros de los equipos de trabajo, soporte a múltiples metodologías de desarrollo, control y seguimiento en tiempo real de las tareas asignadas, con transparencia e integridad para todas las áreas y roles. Finalmente, que permita la homologación de múltiples plataformas de desarrollo, como sucede normalmente con la heterogeneidad de la tecnología en nuestras empresas.

La clave para dar los primeros pasos en este proceso de mejora e innovación, está en definir el punto de ingreso, basado en aquellos puntos de dolor internos que puedan dar resultados de una manera rápida y visible. Para ello pueden existir diferentes enfoques:

  • Mejoras en planeamiento: buscar mejorar los esquemas de análisis, diseño y comprensión general del portafolio de proyectos de desarrollo de software.
  • Desarrollo colaborativo: por medio del cual las personas que forman parte de los equipos de desarrollo y operaciones puedan tener acceso a la información correcta en el momento correcto, además de poder contar con visibilidad de las tareas realizadas y pendientes.
  • Automatización de pruebas: acelerando las etapas de aseguramiento de la calidad, eliminando scripts manuales e incompletos, agregando control y documentación de los resultados de las pruebas, ya sean funcionales o de regresión, de una manera sistemática y rápida.
  • Automatización de despliegues: controlando los despliegues a producción a través de herramientas que minimicen el error humano, permitiendo controlar los entornos productivos.
  • Monitoreo continuo de las aplicaciones: atención proactiva y reactiva ante eventuales fallas, contando con visibilidad tanto a nivel de infraestructura como a nivel de experiencia de usuario en las aplicaciones monitoreadas.

 Retroalimentación y optimización continua de las aplicaciones: obteniendo insights que pueden servir para las áreas de mejora continua de las aplicaciones, buscando agregar nuevas características y/o funciones solicitadas por parte de las líneas de negocio.

Cualquiera que sea el punto de inicio, se debe tener una visión a partir de la cual los esfuerzos puedan irse complementando para alcanzar esa integración de inicio a fin.

En GBM podemos ayudarle a identificar esos posibles puntos de ingreso para dar los primeros pasos, permitiendo a mediano y largo plazo, alcanzar negocios más competitivos y prósperos, capaces de reinventarse una y otra vez con las herramientas que solo el desarrollo de software puede dar.


Edición #64

Business transformation Edicion #64

Contenido

  • Ponga su negocio en movimiento, sea una empresa móvil
  • Cómo matar 8 dragones de una implementación ERP
  • Nuevos: SAP SimpleLogistics y SimpleFinance
  • Infrastructure Experts
  • En búsqueda de una transformación relevante
  • Transformando su negocio por medio del desarrollo de software
  • Key Performance Indicators
  • ¿Cómo seleccionar un buen aliado en servicios gestionados?
  • ¿Cuán segura es su pequeña o mediana empresa?
  • SmartNet Total Care
  • LENOVO XClarity
  • Geek