INTRODUCCIÓN
Microsoft Patterns & Practices son una serie de recomendaciones probadas y seguidas por el equipo de desarrollo de Microsoft, que explican cómo se debe diseñar, desarrollar, desplegar y operar una aplicación para que pueda operar con la arquitectura de la plataforma Microsoft. El equipo de desarrollo sigue la filosofía de las metodologías ágiles, empleando un híbrido entre Scrum y Extreme Programming. Gracias a esto pueden entregar de forma incremental versiones del producto para que el cliente pueda retroalimentar al equipo lo más rápido posible y que el resultado final satisfaga sus exigencias de la forma más completa posible.
Otro punto importante es la distribución del equipo. En los equipos que siguen una metodología ágil, prima la idea de agrupar a todo el equipo de desarrollo y al cliente en una única habitación, pero no siempre será posible pues existen algunos elementos externos que hacen que los equipos sean más distribuidos:
- Mercados mundiales (Global Markets): en muchas ocasiones las empresas se expanden hacia nuevos mercados, necesitando pues equipos especializados en estos mercados, quizá se lleven a cabo fusiones o adquisiciones, teniendo parte del equipo en una localización diferente.
- Talento global (Global Talent): las empresas suelen buscar empleados experimentados en otras ciudades o incluso otros países. Para ello es necesario disponer de visas de trabajo, soportar los costes de reubicación y contar con el deseo del nuevo empleado de trasladarse.
- Reducción de los costes: a menudo las empresas buscan reducir costes mediante la externalización de ciertos servicios, teniendo pues equipos en diferentes países. En cualquier caso habrá que tener en cuenta una serie de factores como la reducción de la productividad o los costes adicionales de los viajes para saber si es una opción rentable ya que la reducción de los costes de desarrollo no siempre será suficiente.
Usualmente, el equipo de Patterns & Practices, se compone de owners (propietarios o dueños), developers (desarrolladores), testers (probadores) y documentation writers (redactores de documentación o documentalistas), además si es necesario se unen al equipo expertos de la materia sobre la que se va a trabajar.
En cualquier caso existen una serie de roles con unas responsabilidades asociadas a cada uno:
- Product Owner: es el responsable de representar al cliente, además ayuda al equipo de desarrollo para que puedan entender de forma correcta los requerimientos del mismo.
- Coach: El coach o Scrum Master es el principal responsable de cómo trabaja el equipo, se encarga básicamente de supervisar todo el trabajo y de aportar la retroalimentación necesaria para que todo el equipo trabaje en equipo.
- Team Member: el equipo está compuesto por desarrolladores, testers o probadores y documentalistas.
- Expertos en la materia: se trata de expertos que se incluyen en el equipo siempre que sea necesario pues aportan información valiosa sobre temas concretos.
CARACTERÍSTICAS
Enfocado a la comunicación: los miembros del equipo han de poder comunicarse fácilmente en caso de haber alguna reunión, tener dudas a la hora de realizar una tarea, necesitar la ayuda de un miembro del equipo o comunicarse con el cliente. Por ello, han de tener a su alcance software que les permita comunicarse, por ejemplo por videoconferencia, o una sala cercana a todos ellos con las herramientas necesarias para una reunión (proyector...). Para ello, Microsoft patterns & practices utiliza para comunicarse, teléfonos de mesa, Windows Live Messenger y Office Communicator.
Viajes: en Microsoft patterns & practices en muchas ocasiones se realizan viajes al comienzo, durante y al final del proyecto en los que se reúnen los equipos del mismo con el fin de hacer mejoras en los proyectos, tener retroalimentación entre los equipos o por la necesidad mandar un especialista a otro proyecto en el que no hay este tipo de especialista.
Distribución del equipo: en Microsoft patterns & practices los equipos están distribuidos en diferentes partes del mundo con diferencias horarias significativas. A pesar de ello, son capaces de coordinar a cada uno de los equipos para que cuando cada uno de los equipos llegué a su puesto de trabajo sea capaz de saber que tiene que hacer en función de que han hecho los demás equipos.
Enfocado a dirigir al equipo: en Microsoft patterns & practices se ha guiado al equipo de forma que ellos eligan que metodología es mejor para su forma de trabajo.
Distribución del trabajo: en muchas ocasiones, debido a la distribución del trabajo en diversas partes del mundo, puede que en un proyecto se perciba inconsistente. Por ello, en Microsoft patterns & practices, los distintos equipos se comunican y transfieren sus conocimientos mediante sesiones de emparejamiento y diseño. Todo ello con el objetivo de emparejar y revisar el código independientemente de la zona geográfica.
Construcción del equipo: en múltiples ocasiones no se mantienen los mismos equipos y se contrata a nuevos miembros. El problema de esta situación es que los nuevos miembros pueden tardar en adaptarse a la forma de trabajo del equipo ya existente por falta de docmentación de anteriores proyectos y retrasar el desarrollo de nuevas veriones de un proyecto. Por ello, en Microsoft patterns & practices se intenta mantener al menos a la mitad del equipo, que hizo un proyecto, para la realización de otra versión de dicho proyecto. También se utiliza SharePoint wikis para almacenar la documentación de los proyectos y así poder documentar y poner al día a los nuevos miembros.
Proporcionar la herramientas adecuadas: Microsoft patterns & practices utiliza una serie de herramientas útiles para un seguimiento progresivo y entornos distribuidos:
- Visual Studio Team System
- Scrum for Team System
CONCLUSIONES
Utilizar el desarrollo ágil en equipos distribuidos en mayor o menor grado puede ser satisfactorio para el negocio ya que podemos formar un equipo con mucho talento buscando los mejores miembros en ámbito mundial para cada rol del proceso de desarrollo, disminuyendo además los costes.
Microsoft con sus equipos patterns & practices ha conseguido llegar a esta meta con éxito, aunque siempre siendo consciente de unos posibles inconvenientes que pueden generarse a partir de crear un equipo de desarrollo distribuido, sabiendo que hay que apoyar en todo momento al equipo, facilitando siempre la comunicación entre los miembros, ya sea facilitando y proveyendo los medios para que esta comunicación sea satisfactoria.
Además, otra característica de patterns & practices es centrarse en las historias de usuario ante todo, y desarrollar en base a estas historias, y no en base a funcionalidades o componentes. También es importante para mantener la disciplina en un desarrollo ágil, y más en un equipo distribuido, establecer un rol de coach que ayude a supervisar el trabajo realizado. Otro punto de vital importancia es no realizar cambios drásticos en el equipo de desarrollo de un proyecto a otro, es decir, intentar mantenerlo en el tiempo, o realizar los cambios lenta y gradualmente.
En definitiva, seguir las pautas que Microsoft ha establecido en patterns & practices puede ser satisfactoria y tener un alto grado de éxito para un equipo ágil y distribuido, siempre buscando la mejor forma para mantener un buen ambiente en el equipo y a su vez desarrollando software provechoso y que cumpla las expectativas iniciales.
Enlaces utilizados:
- http://msdn.microsoft.com/en-us/practices/ff921345
- http://www.google.es/url?sa=t&rct=j&q=&esrc=s&source=web&cd=3&cts=1331660450287&ved=0CEAQFjAC&url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F4%2F4%2Fa%2F44a2cebd-63fb-4379-898d-9cf24822c6cc%2Fdistributed_agile_development_at_microsoft_patterns_and_practices.pdf&ei=oIZfT5PJGuPS0QW4vdiPBw&usg=AFQjCNFj33D_qk-IiFQ7IivjuM15v1NbNQ&sig2=kUxflQCH6hAUGcc_Tg37ZQ
- http://netindonesia.net/blogs/wely/archive/2008/07/28/microsoft-patterns-and-practices-an-introduction.aspx
Preguntas tipo test:
- Product Owner, Coach o Scrum Master, Team Member, Expertos en la materia (opional)
- Product Owner, Team Member
- Product Owner, Coach o Scrum Master, Team Member
- Product Owner, Coach o Scrum Master, Team Member, Expertos en la materia
- En la nube
- De escritorio
- Web
- Todas las anteriores
- Scrum y Extreme Programming
- Kanban y Extreme Programming
- Kanban y Scrum.
- Ninguna de las anteriores.
- En una comunidad pública conocida como CodePlex.
- De forma privada, por un equipo de desarrollo conocido como CodePlex.
- Únicamente por el equipo de desarrollo de Microsoft.
- Ninguna de las anteriores.
- Sigue metodologías tradicionales
- No externaliza parte de su equipo
- No emplean roles
- Ninguna de las anteriores.
- Recomienda hacer nuevos equipos o grupos de trabajo para cada nuevo proyecto.
- Recomienta reorganizar el equipo para cada nuevo proyecto.
- Recomienta no reorganizar continuamente el equipo para cada nuevo proyecto.
- Ninguna de las anteriores.
- Obligatoriamente deben estar físicamente presentes en un mismo lugar.
- Igualmente que los equipos de Microsoft, están en un mismo edificio.
- Suelen estar distribuidos en mayor o menor grado.
- Ninguna de las anteriores.
- Debe hacerse pensando siempre en las funcionalidades del sistema, y no en las historias de usuario.
- Debe hacerse pensando individualmente en cada historia de usuario.
- Debe hacerse en función de la localización geográfica de los miembros del equipo.
- Las anteriores son correctas.
No hay comentarios:
Publicar un comentario