Qué hay para decir de MSF (Microsoft Solution Framework)

 Que  las empresas opten en algún momento por imponer a sus desarrolladores la aplicación de una metodología rigurosa es algo que ocurre frecuentemente y por la necesidad de poner orden a las versiones que se distribuyen a los usuarios, frente a cambios caóticos y frecuentes donde es casi imposible determinar cada nuevo bug en base a qué resolución de requerimiento anterior (o bug anterior) fue introducido
 
Que las empresas opten en algún momento por permitir que sus desarrolladores dejen de aplicar rigurosamente la metodología es algo que ocurre frecuentemente y por la necesidad de no entorpecer la productividad de las versiones que se distribuyen a los usuarios, frente a necesidades de cambios donde es casi imposible determinar su ocurrencia dado los vaivenes de las necesidades de negocio
 
El primer problema con el proceso de desarrollo de aplicaciones es lograr que sea conocido (comprendido) por el equipo de trabajo. Luego viene el problema siguiente: conseguir que sea aceptado
 
Por qué ese malestar con las metodologías? Cuáles son las razones por las cuales las necesidades de cierta rigidez en los procesos terminan endureciendo la productividad? Acaso existe un punto de equilibrio entre formalismo y agilidad? De ser así, cómo se lo descubre? Cómo se lo alcanza?
 
A principios de los ’90 Microsoft comenzó a recopilar a nivel interno las mejores prácticas en términos de procesos de desarrollo de software, no con la intención de establecer una metodología, sino con la idea de tener una colección de prácticas individuales de lo que funciona, aplicables dentro de determinados contextos
 
Aquí no se buscó reinventar ninguna rueda sino que a esta colección iban a parar tanto prácticas made in Microsoft como prácticas populares de la industria, por ejemplo, la de formalizar como parte del proceso las pruebas unitarias
 
Así es como surge Microsoft Solution Framework (MSF o, pronunciado, em-es-ef), no una metodología en sí, sino prácticas que, de acuerdo al contexto de proyecto (tamaño del equipo, frecuencia de entregas, etc) serán más o menos recomendables de aplicar. De manera tal que para cada proyecto se podrán seleccionar aquellas prácticas que realmente agreguen valor al proceso (de ahí el concepto de framework, por si algún despistado pensó que podría tratarse de un framework de software como lo es Spring, Struts o la Enterprise Library)
 
Cada práctica se compone de una secuencia de actividades. Estas se describen en ETVX, un modelo de documentación de procesos introducido en los ’80 que sirve para representar Criterio de Entrada, Tareas, Verificaciones y Validaciones y Criterio de Salida. Un ejemplo de práctica puede ser Crear Arquitectura de Solución, la que a su vez se descompone en actividades como Particionar el Sistema, Determinar Interfaces, Crear el Prototipo de Arquitectura y Crear la Infraestructura, entre otras
 
Las prácticas generan resultados tangibles en la forma de work products (productos de trabajo), análogos aunque no necesariamente los mismos que los artifacts (artefactos) de UP. En el ejemplo del párrafo anterior, Diagrama de Aplicación, Diagrama de Sistema, Modelo de Amenazas de Seguridad son posibles work products
 
Como contaba al comienzo, todo esto puede sonar interesante como concepto, pero aplicarlo sin herramientas adecuadas, integradas a los mismos mecanismos por los cuales se generan los productos de trabajo obliga a los integrantes del equipo de desarrollo a usar distintas herramientas para completar las diferentes etapas. Esto desde luego genera un overhead que abre la puerta a la posibilidad de comenzar a incumplir con las formalidades del proceso
 
La próxima versión de Visual Studio Team System permite definir procesos MSF y crear proyectos de equipo que se enmarquen dentro de los mismos. Por defecto ya vienen dos procesos: uno ágil y el otro formal. Pero además pueden conseguirse adaptaciones de terceros o incluso adaptaciones hechas por uno mismo, ya que el nuevo Visual Studio tiene un manager de procesos
 
Voy a profundizar en el proceso ágil. En otro post me voy a ocupar del proceso formal (que está pensado para certificación CMMI). El proceso MSF Ágil  es un típico proceso iterativo que incrementalmente va aproximando entregables de mayor fidelidad. En eso no es distinto de UP claro que este proceso ágil está pensado para equipos reducidos. Tampoco está dirigido unicamente por casos de uso (que aquí se llaman escenarios y cubren cierta info específica del actor o persona) sino también por requerimientos de calidad de servicio (como performance o seguridad). Otra diferencia con UP es que aquí tiene mayor relevancia el análisis de riesgos
 
Los roles intervinientes dentro del proceso MSF Ágil son mayormente 6: Analista de Negocio, Jefe de Proyecto, Arquitecto, Desarrollador, Tester y Administrador de Releases. No necesariamente esos roles deban ser mapeados a personas diferentes. Si bien ciertos roles pueden ser realizados por una misma persona, hay otras combinaciones en las que eso no es lo deseable
 
El proceso MSF Ágil se compone de un conjunto de 14 workstreams. Cada uno gira en torno a un rol responsable aunque sus actividades constituyentes pueden involucrar al resto de los miembros
 
Las actividades atómicas se asignan y trackean mediante el concepto de work items (ítem de trabajo). En el proceso MSF Ágil  los ítems de trabajo que encontraremos en general son Escenario, Requerimiento de Calidad de Servicio, Riesgo, Tarea a Desarrollar o Bug. En otros procesos más elaborados podríamos encontrar estos y/u otros ítems de trabajo
 
El proceso completo MSF Ágil puede obtenerse aquí. No obstante estar aún en beta, las actualizaciones se irán descargando allí mismo
 
Es interesante conocer, para que MSF no termine yendo a parar a la fuente de los buenos deseos como tantas otras iniciativas, el estupendo soporte que trae la herramienta de desarrollo Visual Studio 2005, que entre otras cosas nos permite extender tanto las guías de proceso como también las plantillas de los mismos, alterar los ítems de trabajo, las actividades y/o los flujos de trabajo
 
De ese modo, es sencillísimo lograr adaptar un proceso existente a uno más acorde a nuestro contexto, y que la herramienta nos garantice su adecuación (como debe ser) para evitarnos el tener que cumplir con un procedimiento en forma voluntaria
 
En otro post pienso cubrir con mayor detalle el proceso MSF Formal
Esta entrada fue publicada en Software Management. Guarda el enlace permanente.

4 respuestas a Qué hay para decir de MSF (Microsoft Solution Framework)

  1. Hans dijo:

    Encuentro un valor agregado el hecho de soportar un proceso dentro del mismo entorno de desarrollo (Visual Studio Team System). Esto da al proceso una coherencia tácita con el resto del entorno. En mi experiencia diaria, tengo que lidiar con inconsistencias producto de la diversidad de medios en los cuales esta soportado el proceso: desde aplicaciones Web, hasta documentos en word y planillas excel. Todo esto traé no solo una baja en la productividad, sino que a la vez, reduce la efectividad del proceso en sí.

  2. Guido dijo:

    Estimado Amigo, veo con buenos ojos q MS se haya entrado en lo q es la Ingeniería de Software, así tomar este modelo de desarrollo como la guía de nuestros proyectos, y poder derrotar al Software Libre que tanto daño hace a nuestra sociedad y economía con su discurso tan demagogo.

  3. Diego dijo:

    Cómo te va, Guido. Quizás fue un chiste tu comentario -si no fue así te pido disculpas- pero lo cierto es que no entendí tu motivación para decir que "el software libre daña a nuestra sociedad y economía con su discurso tan demagogo"  😦

  4. Marlon dijo:

    Me gustaria conocer si existe algun sitio donde pueda descargar información completa sobre MSF CMMI y MSF Agil,gracias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s