Review: Scrum y XP desde las Trincheras

Título: Scrum and XP from the Trenches
Autor: Henrik Kniberg
Nº Páginas: 140

En Scrum and XP from the Trenches su autor Henrik Kniberg habla sobre su experiencia con estas metodologías. Cuenta como ha aplicado y combinado estas dos metodologías los equipos de desarrollo de su empresa. Esto hace que se trate de un libro muy práctico, ameno y de fácil lectura.

Henrik no profundiza mucho en los conceptos, pero sí que hace una descripción breve sobre ellos. Se centra más en explicar cómo ha aplicado las diferentes herramientas de Scrum y cuáles han sido sus conclusiones después de ver cómo funcionaban. Además habla de cómo ha combinado Scrum con XP y de los resultados obtenidos de ello.

Lo interesante de este libro es justo el enfoque dado por el autor. Ver Scrum desde la práctica y la experiencia y no solamente desde el papel y la teoría.

A lo largo del libro, Henrik habla de cómo realizar las pilas de producto, de cómo planificar los Sprints, cómo hacer retrospectivas del sprint, de cómo hacer pruebas, etc.… Concretamente el índice es el siguiente:

 

  1. Introducción
  2. Cómo hacemos pilas de producto
  3. Cómo nos preparamos para la planificación de Sprint
  4. Cómo hacemos la planificación de Sprint
  5. Cómo comunicamos los Sprints
  6. Cómo hacemos pilas de Sprint
  7. Cómo distribuimos la sala del equipo
  8. Cómo hacemos Scrum diarios
  9. Cómo hacemos la demo de sprint
  10. Cómo hacemos retrospectivas de sprint
  11. Descansos entre Sprints
  12. Cómo combinamos Scrum con XP
  13. Cómo hacemos pruebas
  14. Cómo manejar múltiples equipos Scrum
  15. Cómo gestionamos equipos distribuidos geográficamente
  16. Lista de comprobación del Scrum Master

Además al final de libro, el propio autor recomienda una serie de lecturas bastante interesantes sobre el tema:

El libro lo podréis contra en varios idiomas, también en español, aunque personalmente os recomiendo la versión en inglés.

Localización de una Aplicación Basada en PRISM

Es difícil localizar una aplicación WPF con las herramientas proporcionadas en el .Net Framework 3.5. El proceso para realizarlo sería el siguiente:

  • Generar un diccionario de recursos.

  • Enlazar el diccionario a la aplicación en el App.xaml.

  • Ejecutar el MSBuild script para generar un Id único para cada control localizable en la aplicación.

  • Ejecutar la herramienta LocBaml (incluida en el SDK) para extraer todos los Aid en un archivo separado por comas.

  • Copiar el archivo generado por LocBaml a una carpeta (una para cada lenguaje).

  • Volver a ejecutar la herramienta LocBaml para importas todas las entradas dentro del diccionario.

  • Compilar.

Esta forma de hacerlo tiene algunos problemas:

  • Sólo puedes tener un archivo de diccionario de recursos por aplicación. Cada módulo no podrá tener el suyo propio.

  • El proceso es difícil y propenso a los errores. Lo que hace que sea costoso de mantener.

  • No puedes cambiar el lenguaje de la aplicación en tiempo de ejecución. Es necesario reiniciar la aplicación para poder reflejar el cambio de idioma.

Para arquitecturas como PRISM (Composite Application Guidance for WPF), que se basan en módulos, es muy importante que cada módulo pueda tener sus propios archivos de recursos. Puede que estos módulos sean desarrollados por separado y equipos diferentes. Además es interesante que el proceso de localización sea sencillo y fácilmente mantenible. Normalmente los textos de las traducciones suelen cambiar bastante.

Para solucionar esto, y solventar todos los problemas existe WPFLocalizeExtension. Se trata de un framework open source. Este framework ha sido modificado para soportar localización de assemblies (plug-in) cargados dinámicamente.

Este framework se basa en archivos de recursos lo que hace que sea bastante sencillo mantener las traducciones de los diferentes idiomas. Así que cada módulo puede tener su propio archivo de recursos con sus traducciones. Además, permite cambios de idioma en caliente.

Ahora el proceso de localización es más sencillo:

  • Modificar el archivo de proyecto .csproj añadiendo <UICulture>en-US</UICulture> en el primer tag PropertyGroup. Este será el lenguaje neutral de la aplicación.

  • Crear un archivo de recursos para el Lenguaje Neutral (Shell.resx) y añadir una entrada por cada control que se necesite localizar:

    • Para añadir otro idioma copiar y pegar el archivo de recursos (Shell.resx) y renombrarlo a Shell.es-ES.resx. Traducir todas las etiquetas a español, en este caso.

    • Para localizar una vista (un archivo .xaml):

      • Añadir una referencia a la librería de WPFLocalizeExtension. xmlns:loc="clr-namespace:LocalizeExtension.Localization;assembly=LocalizeExtension".

      • Para la propiedad que haya que traducir utilizar: {loc:LocText loc:Key=CustomerLabel, loc:Dict=Shell, loc:Assembly=MyAssembly.Shell}.

      • Key: Es el nombre del texto a mostrar.

      • Dict: Es el nombre del archivo de recursos.

      • Assembly: Es la dll donde se encuentra el archivo de recursos.

  • Compilar.

Este proceso es mucho menos complejo que el estándar y facilita bastante las cosas como se puede ver.