Empezando con Windows Phone 7.1 (y IV) – Esquema de Ramas

Bien,

Ya tengo mi Backlog definido y mis Historias de Usuario más o menos ordenadas. Finalmente, para empezar a concretar (y que luego no se diga) dejadme que os haga un esbozo de esta primera aplicación.

La idea es simple (y nada fuera de lo común). Se trata simplemente de realizar una pequeña aplicación que sirva como una especie de diario personal que permita comentar lugares que uno ha visitado. Probablemente muy sencilla al principio pero (siguiendo con los principios ágiles) iremos incorporando valor a medida que vaya creciendo, tratando desde el primer momento que la aplicación sea capaz de aportar alguna utilidad desde la primera versión que vea la luz.

¿Cuál es el objetivo de la primera iteración? (Probablemente la más dura). Proporcionarme una idea sobre cómo ajustar mi solución de Visual Studio, habituarme a trabajar con los rudimentos de Expression Blend (siempre que sea posible) y proporcionar una primera versión que permita almacenar información sobre un lugar de interés para el usuario.

Empezando por el principio, he creado una estructura de ramas en el control de código (aquí TFS pero aplicable a cualquier otro de vuestro gusto, revisad, eso sí, la consabida guía de Branching en Codeplex). Inicialmente he empezado por considerando un esquema muy sencillo de tres ramas:

  1. Development
  2. Main
  3. Release
Basic Branching Scheme

Esquema Básico de Branching

Este esquema tiene la potencia de ser simple, permitiendo manejar lo más fundamental. Una rama principal de la que sale y hacia la que va la rama de desarrollo y luego N ramas de Release (relacionadas con cada una de las versiones sacadas de la herramienta, aunque potencialmente valdría con la “última versión”). Así mismo, si tenemos un problema con la última versión (que, por supuesto, ha sido adquirida masivamente en el “Market Place” de Windows Phone) podemos sacar una corrección para dicha versión sin invadir la rama de desarrollo.

Para más detalles, echadle un vistazo a la guía en Codeplex. Viene con unos casos de prueba que facilitan la comprensión y la implementación de estos esquemas en Team Foundation Server 2010.

Con este esquema, me he creado una nueva solución en Visual Studio 2010 del tipo Silverlight for Windows Phone Application /Panorama (OS v7.1)

CreandoElProyectoEnVS2010

Silverlight for Windows Phone 7.1 - Panorama App.

Y recordad que, al asociarlo al control de código fuente, la rama estable es “Main” así que esta es la primera rama que creo y, a partir de ella, se crearán “Develop” y “Release”

CreandoLaRamaMain

La primera rama que se crea es Main y, a partir de esta, Develop y Release

Hasta aquí todo sencillo. Los siguientes pasos serán comenzar con el diseño de la apliación (será muy sencillito, espero) y hacer una primera, y horrible, versión operativa en la que el usuario pueda registrar nuevos lugares así como ver qué lugares ha registrado (y el detalle de cada uno).

Mis Sitios de Interés: Vamos allá.

Anuncios

Empezando con Windows Phone 7.1 (y III) – Definición del Backlog

Mientras esperamos a que llegue el nuevo TFS Express (echadle un vistazo en el blog aquí) estos días me he montado un pequeño entorno de pruebas con un Team Foundation Server 2010 donde voy a llevar el control de mi pequeño proyecto.

De momento, por no complicarme la vida e ir arrancando, he escogido la plantilla de metodología Ágil por defecto (MSF for Agile v5.0) más adelante siempre habrá posibilidades de arrancar nuevos proyectos con nuevas plantillas (o con modificaciones a las existentes). He seguido algunos pasos añadidos como instalarme las TFS Power Tools en mi entorno de desarrollo (si dispones de una versión Express de Visual Studio 2010 de momento no te será posible).

Bueno, me he marcado una fecha (primeros de abril) y varias iteraciones. De momento mi idea es colgar de cada “Historia” de aprendizaje una o varias historias relacionadas con el funcionamiento de mi aplicación.

Por cierto, si alguien quiere ir metiendo los datos uno por uno en el TFS a través de las fichas, me parecerá de lujo pero, en mi opinión existe una alternativa mucho más ágil (de lejos). Se llama excel y permite arrastrar, soltar, copiar filas completas, pegar… En fin, luego siempre hay tiempo para un ajustes fino, pero he tardado lo mismo en introducir las dos primeras historias vía el formulario de TFS que el resto vía Excel.

User Story 45 via TFS Form

Historia de Usuario #45 introducida vía formulario de Team Foundation Server

No hay color.

TFS Backlog

Backlog en Team Foundation Server

Siguientes pasos: Completar el Backlog con un poco más de detalle funcional y empezar a asignar “Story Points” que reflejarán el esfuerzo que creo que cada una de las historias tendrá asociado.

Nos vemos en breve.

Empezando con Windows Phone 7.1 (y II) – Definición del Backlog

Que no parezca que me estoy demorando más de la cuenta en empezara a meterle mano al código… Estuve montando el entorno (sin comentarios dignos de mención: siguiente – siguiente – siguiente). Y el resultado es que ya tengo el IDE operativo para empezar a trabajar con Windows Phone.

El siguiente paso es ver qué queremos hacer. Creo que un Hola Mundo! puede aportar más bien poca cosa, así que vamos a ser valientes y comenzaremos con algo más ambicioso.

Para darle un poco más de sentido a todo esto voy a intentar hacer uso de algunas buenas prácticas de Metodologías Ágiles (os recomiendo echar un vistazo al blog de El Bruno para empezar por algo bueno). Si os atrevéis con el inglés, os pongo un enlace a un documento interesante (de Leonard Woody) que explica el proceso guiado, paso por paso, de tareas, actividades y procesos a tener en cuenta en un proyecto en el que se haga uso de la metodología ágil Microsoft Solution Framework for Agile Development v5.0

Así que, en eso estamos. Vamos a empezar pensando qué es lo que quiero que haga mi nueva aplicación. Como el objetivo es aprender (y no hacerme rico con una aplicación rompedora, aunque tampoco le haría feos a eso) los requerimientos que voy a poner sobre la mesa van a estar más orientados a mis objetivos de aprendizaje que a la funcionalidad de la aplicación.

A esta lista de requisitos, en términos de metodologías ágiles, nos podemos referir de varias formas (History List, Product Backlog, etc…) dependerá de la metodología que escojas. En mi caso, todavía no lo he decidido pero estoy dándole alguna vuelta al respecto. Os mantendré actualizados. De momento, he aquí la lista de funcionalidades con las que me gustaría jugar en Windows Phone 7.1.

Backlog

El siguiente paso es empezar con cierto realismo. Al fin y al cabo estoy yo solo, así que la velocidad de mi equipo (es decir, yo) probablemente sea muy baja. Empecemos con objetivos realistas y luego. ¡Cambiemos de opinión! Al fin y al cabo así es como funcionan las cosas. ¿No?

Nos vemos en el siguiente artículo.