Cómo organizar tus proyectos con Visual Studio Team Services
23/05/2018

Cómo organizar tus proyectos con Visual Studio Team Services

Desarrollo de apps

Bueno, ha llegado el momento de hablar sobre organización de proyectos. Hasta ahora siempre os he hablado de asuntos técnicos y muy rara vez abordamos la parte de gestión, ya que doy por supuesto que, de momento, en la mayoría de los casos vais a trabajar en solitario. Pero, ¿qué ocurre cuando alguien se une a nuestro equipo? Debemos llevar un control de nuestro código, tareas y otros aspectos para mantener un orden en el desarrollo. Hoy vamos a ver VSTS, siglas de Visual Studio Team Services, un servicio que ofrece Microsoft para organizar nuestro proyecto, usemos o no el IDE Visual Studio, que nos puede ser útil.

Git, Agile y otras herramientas con VSTS

Pese a que la metodología Agile la voy a dejar para otro post, es conveniente que saber que VSTS usa esta técnica, muy extendida en el desarrollo de software y usada por grandes empresas. Sin ir más lejos, en el casi año entero que llevo trabajando en mi actual empresa, una consultora de software, he estado en tres proyectos distintos, muy diferentes entre ellos. Y en todos, la metodología ágil ha jugado un rol importante, a mayor o menor grado. Entonces, ¿cómo empezamos? Os voy a guiar en todo el proceso, teniendo en cuenta que no vamos a usar Visual Studio.

Lo primero que debemos hacer es acceder a este enlace. Si no tenemos cuenta de Microsoft, deberemos crear un usuario con cualquier correo electrónico, es decir, Gmail, Outlook, iCloud, el que queramos. Una vez creado el usuario, si accedemos de nuevo al enlace que os he proporcionado, veremos una pantalla como esta:

Aquí es donde vamos a introducir el nombre de nuestro proyecto, y escogeremos un sistema de control de versiones. Para este ejercicio usaremos Git. Le damos a continuar y procederá a crear el proyecto nuevo con estas especificaciones. La siguiente pantalla que veremos la usaremos para clonar el proyecto en nuestro repositorio local. Si no sabéis que es Git, Github, etc, os recomiendo el siguiente post que escribí hace ya un tiempo. Si tenéis problemas con Git, también es interesante que visitéis este tutorial de su página oficial, el cual, cualquier duda, la podemos resolver juntos.

Muy bien, una vez tenemos la parte del control de versiones dominado, es hora de pasar al tablón de tareas, o dashboard. Aquí es donde se van a mostrar todo el listado de tareas que nosotros definamos.

Inicialmente, no veremos nada y solo habrá una presentación de la herramienta. También veremos que está muy orientado a integrarlo con Visual Studio, pero os digo una cosa, es un IDE muy bueno que, no solo se usa para desarrollo C# y .Net, si no también para desarrollo web con Angular, Cordova, etc. Además su versión Community es totalmente gratuita. ¿Cómo creamos una tarea nueva? Nos dirigimos al panel de “New Work Item” y podremos crear un elemento nuevo, introduciendo un título y luego una categoría, de las cuales tenemos las siguientes:

  • Bug, o fallo. Su nombre es muy autodescriptivo. Usaremos esta categoría para clasificar las tareas que tengan relación con partes del código que rompan nuestra aplicación.
  • Epic, es un tipo de tarea tan compleja que deberá ser dividida en subtareas más pequeñas. Suelen ser tareas que llevan muchas horas de completar, más de 20h, que se pueden desgranar en tareas muy pequeñas de menos de 4h.
  • Feature, o característica. Usaremos esta etiqueta para clasificar todos los desarrollos que impliquen nuevas funcionalidades en nuestro software.
  • Issue, o problema. Serán todas las tareas relacionadas con incidencias que no necesariamente romperán el programa. Una issue puede ser por ejemplo presionar un botón para mostrar un panel, y que dicho panel no aparezca. El programa no “peta” pero tampoco reacciona de la forma esperada. Eso es una incidencia.
  • Task, o tarea. Cualquier actividad, sea un desarrollo o no, necesario para el equipo, desde redacción de documentación hasta planificación o administración. Cualquier cosa que no esté dentro de Feature, es una Task.

Finalmente nos queda Test Case y User Story, pero no les haría mucho caso, ya que están más orientadas al testing de la aplicación, y no es de lo que hablaremos hoy.

Una vez hacemos una tarea nueva, sea de la categoría que sea, nos encontramos con un panel similar a este:

En el cual podemos rellenar más detalles del work element en cuestión, tales como el título, la descripción, si tiene tareas hijas (para las épicas), el nivel de prioridad, el esfuerzo (effort) en horas que va a llevar esta tarea, y muchas más opciones, las cuales os animo a investigar y experimentar con ella.

Pero detengámonos un momento en el effort. Aquí es donde suele haber más problemas, la estimación de las tareas. La estimación, en Agile, es la cantidad de horas que va a llevar terminar una tarea, incluyendo las pruebas necesarias para asegurarse que una funcionalidad está implementada correctamente. Esta estimación debe ser honesta y realista, ya que, internamente, VSTS realiza estudios de productividad semanales dentro de vuestro proyecto para que podáis controlar si el desarrollo avanza positivamente o hay bloqueos. Por lo que si estimáis que una tarea os va a llevar 100h, ajustadla de este modo, ya que es mucho peor tener que sobreestimar de nuevo, añadiendo horas en una tarea que inicialmente tenía menos, que el hecho de que nos sobren horas.

Una vez tengamos la tarea realizada, la podemos ver en la pestaña “Work”, donde además también podemos acceder al backlog. ¿De qué se trata? En el post de Agile os explicaré con más profundidad esta terminología.

Como podéis ver, gracias a esta herramienta podremos organizar las tareas y controlar el proceso de desarrollo de nuestro proyecto de una forma limpia y ordenada, trabajemos solos o acompañados. Junto a una buena integración con Git y Visual Studio, es la herramienta perfecta, de muchas, para fusionar la gestión de proyectos con la programación.

Curso relacionado: Curso Superior de Desarrollo de Aplicaciones para Móviles

Comparte en:

Grado Superior de Desarrollo de Aplicaciones informáticas en la Salle de Barcelona. Trabaja actualmente como desarrollador de aplicaciones para móviles, especialidad en videojuegos.

El auge de la tecnología beacon en las apps
25/03/2020
Jordi Mula

El auge de la tecnología beacon en las apps

El posicionamiento, la ubicación y la geolocalización son elementos cada vez más integrados en el desarrollo de aplicaciones. La geolocalización en exterior es un ...

¿Qué debe aportar el cliente para desarrollar una app?
27/02/2020
Jordi Mula

¿Qué debe aportar el cliente para desarrollar una app?

En muchas ocasiones el cliente por desconocimiento no sabe qué datos o elementos debe proporcionarnos para poder generar ese plan de asesoramiento inicial, vamos a ve...

Que es una game jam y que se puede esperar de una sesión
13/02/2020
Jordi Mula

Que es una game jam y que se puede esperar de una sesión

El mes pasado fue la Global Game Jam, y con motivo de este evento internacional que se da lugar en diferentes países y en diferentes sedes, vamos a hablar un poco sob...