Jose Luis [email protected] - @jlsoriat
ALM como factor diferenciador
¿ALM?
Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management.
http://en.wikipedia.org/wiki/Application_lifecycle_management
¿Merece la pena invertir en ALM?
Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of application software. It encompasses requirements management, software architecture, computer programming, software testing, software maintenance, change management, project management, and release management.
http://en.wikipedia.org/wiki/Application_lifecycle_management
¿Nos podemos permitir no invertir
en ALM?
¿Cuánto merece la pena invertir en
ALM?
Source code is a liability, not an asset
http://blogs.msdn.com/b/elee/archive/2009/03/11/source-code-is-a-liability-not-an-asset.aspx
http://geeks.ms/blogs/jlsoria/archive/2013/03/25/charles-darwin-y-la-entrega-continua.aspx
How long would it take your organization to deploy a change that involves just one single line of code?
Do you do this on a repeatable, reliable basis?
Mary & Tom PoppendieckImplementing Lean Software Development
Gestión de proyecto
– Elementos de trabajo– Equipos– Planificación– Capacidad– Paneles– Métricas– Salas de equipo
Team Web Access
– Visual Studio, eclipse– SharePoint– Office: Excel, Word, PowerPoint– Project y Project Server
Otros clientes para gestión de proyecto
Demo: gestión de proyecto
Gestión de la configuración
Control de versiones
Control de Versiones Centralizado (TFVC)
Ventajas Recomendado para
Check-inCheck-out
EditCommit
Control de Versiones Distribuido (Git)
• Escala a repositorios de código muy grandes• Mucho control sobre los permisos• Permite monitorizar el uso
• Grandes repositorios de código integrados• Control exhaustivo y posibilidad de auditar el código hasta el nivel de fichero
• Soporta edición en modo desconectado• Es fácil editar ficheros fuera del IDE (Visual Studio / Eclipse)
• Repositorios integrados de tamaño medio• Balance entre un control exhaustivo y mayor flexibilidad de uso
• Experiencia desconectada completa• Repositorio completo con histórico transportable• Modelo simplificado de ramas
• Repositorios modulares de código• Integración con proyectos open source• Equipos altamente distribuidos
– Documentación: portales de proyecto en SharePoint– Binarios, dependencias: repositorio de NuGet– Entornos: Lab Management
Versionado de otros artefactos
Demo: gestión de la configuración
Integración continua
– Plataforma altamente escalable– Posibilidad de usar servicios de build en la nube– Personalización basada en workflow y en scripting
– Ejemplo: http://bit.ly/1it185f
– Para proyectos Java, integración con Maven y Ant
Team Foundation Build
Demo: integración continua
Pruebas
– Visual Studio: integración con distintos frameworks de pruebas: MSTest, NUnit, Xunit
– Eclipse: JUnit
Pruebas Q1
– Microsoft Test Manager
Pruebas Q2 y Q3
– Pruebas de rendimiento con Visual Studio– Pruebas de carga con Visual Studio– Pruebas de carga con Visual Studio Online
Pruebas Q4
Demo: pruebas
Gestión de la entrega
– Gestión de servidores– Gestión de entornos– Automatización de despliegues y otras operaciones– Orquestación– Monitorización y alertas
Visual Studio Release Management
– Monitor de estado de salud– Actividad de usuarios– Disponibilidad y tiempos de respuesta– Dashboards– Alertas
Application Insights
Demo: gestión de la entrega
Gracias!
[email protected]@jlsoriathttp://geeks.ms/blogs/jlsoria