Visual Studio y ALM como proceso crítico de negocio
El desarrollo de proyectos software es una de las labores o profesiones más atractivas de la actualidad. Nunca antes, desarrollar software en cualquiera de sus variantes (desarrollo web, aplicaciones tradicionales, movilidad, etc.) ha contado con tantas herramientas, metodologías e información como ahora.
Todo lo que nos rodea está relacionado con uno o varios componentes software: Nuestro móvil, el portátil o el PC del puesto de trabajo, los aparatos que utilizamos para nuestro ocio diario (consolas, reproductores de vídeo o música, etc.). Todo ello, en algún momento, depende de aplicaciones o servicios construidos gracias al software.
Pero, también es curioso cómo ante esta época dorada del software, con sus grandes avances y su espléndido horizonte, algunas cuestiones siguen ancladas en el pasado. Una de ellas es, por ejemplo, cómo se sigue contemplando el desarrollo software como una artesanía o en el mejor de los casos como una maestría. Y a menudo son personas con un tremendo bagaje técnico las que siguen viendo así las cosas. Cuántas veces hemos hablado con responsables de equipos de desarrollo o con directivos de departamentos de I+D+i, que siguen creyendo que el desarrollo del software que su organización precisa para funcionar y competir en el entorno actual es un conjunto de tareas desempeñadas por equipos que suponen empresarialmente un mero coste y no una inversión. Que esos equipos de desarrollo no precisan organización, ni herramientas, ni procesos porque son perfiles creativos y no técnicos. Que la inversión en herramientas y procesos para gestionar el desarrollo software no tiene una razón clara para ser tenida en cuenta dentro de sus planes tácticos o estratégicos. Llegando incluso más lejos, que las herramientas con las que esos equipos efectúan su labor son commodities y que da lo mismo una que otra, si total desarrollar software es un proceso de escribir código, y eso se puede hacer incluso con editores de texto plano como VI o Emacs se puede hacer.
En parte, esta visión que a muchos parecería de otras décadas, está causada por cómo se posiciona todo lo relativo al desarrollo software. Es decir, desde de un punto de vista de marketing de producto, la oferta se centra excesivamente en las características del producto: "Equipe a sus equipos de desarrollo con la solución X porque podrán utilizar la característica Y, la Z o la W". En la actualidad esos productos se ofertan comunicando a los potenciales compradores los beneficios que supondrán para ellos en cuestiones como fiabilidad, seguridad, comodidad, etc. Incluso, últimamente lo que se intenta es asociar esos productos con sensaciones o sentimientos que puedan resultar atractivos a los usuarios (por ejemplo las campañas de marketing de BMW de los últimos años).
Visual Studio: cerca de las necesidades del cliente
Pensando sobre todo esto, surgió la idea de intentar posicionar el desarrollo software y las herramientas de desarrollo de Visual Studio de una manera similar, para de esta manera intentar comunicar o posicionar mejor la oferta de esos productos. Vaya por delante que no pretendemos ofertar Visual Studio a nuestros potenciales compradores con aquello de: "¿Te gusta desarrollar?" que decían los spots de BMW, pero sí que intentamos salir de la mera oferta técnica o centrada en las características del producto o la solución, para ampliar el enfoque y hacer ver a nuestros potenciales compradores que la compra de soluciones de ALM debía estar fundamentada por cuestiones que resultarían más cercanas a sus necesidades o problemáticas.
Posicionar una solución ALM como Visual Studio centrándonos en las características no es tan efectivo como posicionarla indicándole a los potenciales clientes cómo con ella podrían solucionar problemas como la productividad de sus equipos de desarrollo, o el nivel de gestión y seguimiento que podrían tener sus proyectos, o cómo la calidad de sus aplicaciones, y por ende la satisfacción de sus usuarios, aumentaría.
Estas problemáticas o situaciones a las que nuestros clientes se enfrentan a diario, es lo que nosotros planteamos como escenarios ALM, es decir, situaciones comunes y recurrentes en buena parte de nuestros clientes, como la gestión de proyectos o equipos de desarrollo heterogéneo o multiplataforma, la gestión de equipos o proyectos de desarrollo con equipos geográficamente dispersos, el aseguramiento de la calidad en los desarrollos, entre otros, que gracias a las soluciones de desarrollo de Visual Studio podrían solventarse o mejorarse.
Uno de esos escenarios, y probablemente, uno de los más importantes es ALM como proceso crítico de negocio. Pero, ¿por qué el ALM es un proceso crítico de negocio?
Hoy en día, es un hecho aceptado que una empresa debe estructurar su funcionamiento sobre un conjunto de procesos de negocio que son los que harán latir su corazón. Si partimos de la definición del concepto “proceso de negocio" como: conjunto de tareas relacionadas, lógicamente llevadas a cabo para obtener un resultado de negocio definido, podemos inferir entonces cuáles serán sus principales características:
- Deben ser medibles y estar orientadas al rendimiento.
- Deberán producir resultados específicos.
- Aportarán valor a los clientes de la organización o a los promotores.
- Responderán a alguna acción o evento determinado.
- Las actividades que los componen deberán agregar valor a los elementos de entrada al proceso.
Como vemos, los procesos de negocio buscan ante todo producir beneficios concretos, predecibles y de la mejor manera posible. Por ello es tan importante para una organización que desea mejorar su rendimiento, mejorar sus procesos de negocio, haciéndolos repetibles, eficientes y eficaces.
Para que un proceso de negocio ayude a contribuir al éxito empresarial se requiere, ante todo, que dicho proceso esté definido correctamente, y una vez definido, que sea implantado y adoptado por la organización en el menor tiempo posible y con el menor esfuerzo. Imaginemos un proceso de negocio innovador pero que no llega a todos los niveles de la empresa implicados, y que además el coste de implantación del mismo es desorbitado. Claramente, dicho proceso de negocio, que podría hacer más competitiva a una organización, estaría abocado al fracaso.
Es aquí donde los sistemas software pueden ayudar a que dicha implantación sea exitosa. Como se puede leer en el artículo de David Chappell (https://www.davidchappell.com/writing/white_papers/ALM_as_a_Business_Process_v2.0--Chappell.pdf), en 2008 la publicación Harvard Review, publicó un artículo escrito por Andrew McAfee y Erick Brynjolfsson, en el que se indicaba que gracias a la facilidad con que un sistema software puede ser desplegado completamente dentro de una organización, y como un proceso soportado por un sistema software puede tener garantías de que es debidamente utilizado y seguido por los miembros de la organización, los procesos de negocio soportados por sistemas software serán más fácilmente implantables y más fácilmente medibles, optimizables y repetibles.
Hasta aquí, podemos ver cómo los sistemas software o las aplicaciones de línea de negocio ayudan a soportar los procesos de negocio de nuestra organización.
Procesos de negocio diferenciales
Ahora bien, puesto que los procesos de negocio serán los que hagan que nuestra organización funcione adecuadamente, ¿cómo pueden hacer esos procesos de negocio que seamos más competitivos? Evidentemente, si se desea que nuestra empresa sea competitiva, sus procesos de negocio deberán ser diferenciales respecto a los de nuestra competencia y proporcionar una ventaja competitiva siendo modificables y adaptables a las necesidades de nuestra organización y de su entorno. Y es, por tanto, el desarrollo software una pieza vital para el funcionamiento de nuestra organización. En conclusión, el proceso de desarrollo software dentro de nuestra organización pasa a ser también por sí mismo un proceso crítico de nuestro negocio.
¿Por qué ALM con Microsoft Visual Studio?
Hasta este punto, hemos visto por qué tenemos que dotar a nuestro proceso de gestión del ciclo de vida del desarrollo (ALM) de la importancia que realmente tiene. Y si el proceso ALM es vital para nuestro negocio, hemos de contemplarlo de la misma manera que otros procesos de negocio, es decir, debemos pedirle que sea definido, medible, optimizable y repetible.
La solución ALM ofrecida por Visual Studio permite contemplar el proceso del desarrollo de los sistemas software de una manera completa, de extremo a extremo, dotando a los participantes de un conjunto adecuado de herramientas en función de su rol, y con las que estén familiarizados, reduciendo la curva de aprendizaje y permitiéndoles ser más productivos, reduciendo el lastre de las tareas burocráticas y eliminando el sobrecoste que supone el cambio de contexto de una tarea a otra en sus asignaciones de trabajo.
Igualmente, Visual Studio permite dar soporte a cualquier proceso ALM independientemente de su trasfondo metodológico. Las plantillas de proceso que Microsoft Visual Studio Team Foundation Server ofrece son variadas (desde CMMi hasta Agile o Scrum) y además dichas plantillas de proceso pueden ser modificadas y adaptadas a las necesidades concretas de la organización. Incluso es posible diseñar y construir una plantilla de proceso desde cero con las herramientas incluidas dentro de Visual Studio. Por tanto, podemos hacer nuestro proceso de negocio ALM todo lo diferencial que nuestra organización precise en cada momento y en cada proyecto.
También, la necesidad de adaptar los procesos de desarrollo a las necesidades cambiantes del negocio y la preocupación por la generación de valor en los proyectos software han hecho, en los últimos años, que las metodologías denominadas “ágiles” estén teniendo gran seguimiento.
En el análisis realizado por Forrester/Dr.Dobb’s, ya en 2009, se indicaba que a nivel mundial, el 35% de los proyectos software están siendo guiados por metodologías ágiles, siendo la primera posición del ranking. Como curiosidad, la segunda posición, con un 30,6% son proyectos que no siguen ningún tipo específico de proceso o metodología, y luego estarían el resto de tipos de proceso como los modelos iterativos (RUP, Spiral) y por último los modelos en cascada (CMMI, ISO9000, etc.). La cuestión es que los equipos de desarrollo ágiles no se integran muy bien tal cual con los modelos de gestión y seguimiento de proyectos actuales.
Visual Studio permite, mediante su integración out-of-the-box con Microsoft Project server, que los equipos ágiles puedan seguir sus procesos y que, al mismo tiempo y sin necesidad de esfuerzo adicional, nuestra Oficina de Gestión de la Demanda tenga la información actualizada del progreso y el consumo de recursos de dichos proyectos. De igual forma, la integración permitirá que los cambios en las planificaciones de los proyectos sean comunicados a los equipos ágiles de forma natural y efectiva.
Visual Studio permite aprovechar toda la tecnología y los sistemas software proporcionados por Microsoft (SQL Server, SharePoint, MS Project y Project Server, e incluso Azure) para dotar a nuestro proceso ALM de los beneficios de estar soportado por sistemas software robustos, eficientes y de última generación. Aún más, con Visual Studio podemos integrar dentro de nuestro proceso ALM sistemas software y tecnologías de otros fabricantes del mercado de una manera sencilla y eficaz.
En conclusión, si nuestra organización precisa de procesos de negocio que le ayuden a competir, estos deben estar en sistemas software que deben ser diferenciales mediante el desarrollo ad-hoc, y para ello la adopción de un proceso de gestión del desarrollo software soportado por la última tecnología software es primordial. Visual Studio ofrece una de las mejores soluciones de gestión del ciclo de vida del desarrollo software del mercado actual y nos ayudará a mejorar la competitividad de nuestra organización.