View
751
Download
3
Category
Tags:
Preview:
DESCRIPTION
Cuando hablamos de arquitectura de software tenemos en cuenta diseños como DDD, patrones, persistencia, ORM y mucho más, pero ¿prestamos atención a la arquitectura de nuestro ALM? Vamos a ver como empezar en esta charla
Citation preview
VSANYWHERE.COM @VS_ANYWHERE
Luis Fraile, CTO, MVP Visual Studio ALM
ALM … la arquitectura olvidada
VSANYWHERE.COM @VS_ANYWHEREVSANYWHERE.COM @VS_ANYWHERE
luis.fraile@vsanywhere.com
CTO / Co-founder
MVP Visual Studio ALM
@lfraile - @vs_anywhere
Luis Fraile
VSANYWHERE.COM @VS_ANYWHERE
Arquitectura …
VSANYWHERE.COM @VS_ANYWHEREVSANYWHERE.COM @VS_ANYWHERE
VSANYWHERE.COM @VS_ANYWHEREVSANYWHERE.COM @VS_ANYWHERE
VSANYWHERE.COM @VS_ANYWHEREVSANYWHERE.COM @VS_ANYWHERE
VSANYWHERE.COM @VS_ANYWHERE
¿ALM?
VSANYWHERE.COM @VS_ANYWHERE
Application Lifecycle Management
Todo lo que pasa en la vida de la aplicación
TODO, desde el principio hasta el fin
VSANYWHERE.COM @VS_ANYWHERE
Planificar Desarrollar OperarDespliegar
Procesos modernos de ALM
VSANYWHERE.COM @VS_ANYWHERE
12 preguntas de Spolsky
http://www.joelonsoftware.com/articles/fog0000000043.html
1. Do you use source control?
2. Can you make a build in one step?
3. Do you make daily builds?
4. Do you have a bug database?
5. Do you fix bugs before writing new code?
6. Do you have an up-to-date schedule?
7. Do you have a spec?
8. Do programmers have quiet working conditions?
9. Do you use the best tools money can buy?
10. Do you have testers?
11. Do new candidates write code during their interview?
12. Do you do hallway usability testing?
VSANYWHERE.COM @VS_ANYWHERE
La arquitectura de ALM
1. Control de código fuente
2. Builds automatizadas
3. Builds frecuentes: integración continua y/o (al menos) frecuente
4. Información de requisitos, bugs, …
5. ¿Cómo vamos a iterar?¿qué podemos esperar?
6. Herramientas, si, people and interactions first, pero ayúdate de herramientas
7. CALIDAD, en el código, con pruebas cuantas más mejor,
Y también hay que pivotar …
VSANYWHERE.COM @VS_ANYWHERE
¿Por qué Visual Studio ALM?
Estamos en las oficinas de Microsoft no????
Disponemos de todas las herramientas en un único punto
Es nuestro “único punto de consulta (truth)”
Tenemos dos posibilidadesCloud (Visual Studio Online)
On-premises (Team Foundation Server)
Hay otros sistemas, buscad y escoger …
Ah bueno y soy MVP de Visual Studio ALM
VSANYWHERE.COM @VS_ANYWHERE
Control de código fuente
VSANYWHERE.COM @VS_ANYWHERE
¿De qué tipo?
Ahora se habla mucho de DVCS, especialmente Git
En Team FoundationTFVC
Git
¿Cuál escoger?Git: muy potente, especialmente en equipos distribuidos, pero más complejo
TFVC: cualquiera que venga de VSS sabra usarlo
No hay una respuesta concreta
VSANYWHERE.COM @VS_ANYWHERE
Estrategia de ramas
NO es necesario hacer algo al detalle inicialmente
Pero si algo que nos permita crecer
p.ej.: siempre empezar con un main
Una vez necesitada: NO la compliques
Los merge suelen doler
Y sobre todo
Merge frecuentes, alivian el dolor
Estrategia clara y sencilla de entender por todos
VSANYWHERE.COM @VS_ANYWHERE
One more thing …
Reglas básicas …
1. Nadie se va a casa con código desprotegido (bueno en Git …)
2. Nadie protege código que no compila
3. Git Stash o Shelvesets (suspend mejor) son tus amigos
VSANYWHERE.COM @VS_ANYWHERE
¿Un poco de código?
VSANYWHERE.COM @VS_ANYWHERE
Builds automatizadasIntegración continua, frecuente, …
VSANYWHERE.COM @VS_ANYWHERE
Compilación automatizada
¿A quién no le ha pasado ir a desplegar y no poder compilar?
Es algo a tener desde el principio
Podemos hacer de dos tipos:Continua: cada checkin, mi preferidaFrecuente: cada x tiempo, ideal para pruebas o despliegues complejos
Empezando desde cero:Integración continua básica, solo compilarIntroduce conjuntos de pruebasDespliegaContinous delivery …
VSANYWHERE.COM @VS_ANYWHERE
NO es complicado,
no hay excusas
Y si la build se
rompe: se arregla
One more thing
VSANYWHERE.COM @VS_ANYWHERE
Team Build
VSANYWHERE.COM @VS_ANYWHERE
Visibilidad y planes
VSANYWHERE.COM @VS_ANYWHERE
Sabéis responderme
¿cuantos bugs tenéis?
¿cuanto os queda por implementar?
¿cuál es el estado del arte?
¿Cómo va el sprint?
…
Necesitamos esta visibilidad, aunque sea a alto nivel
VSANYWHERE.COM @VS_ANYWHERE
Esto NO implica
Complicadas estructuras de tareas
Planificaciones detalladas a 6 meses
Estimaciones en minutos de tareas
El gantt de la muerte …
VSANYWHERE.COM @VS_ANYWHERE
Esto SI implica
Decidir como vamos a trabajar en base
Sprints, duración??
Plan inicial básico de expectativas
Información que vamos a necesitar, burndown? Kanban?
Sobre todo: estar dispuestos a inspeccionar y adaptar
VSANYWHERE.COM @VS_ANYWHERE
One more thing
Mantenerlo actualizado, sprint plannings, reviews, daily’s ….
Usarlo como algo descriptivo, no prescriptivo.
No está escrito en piedra, está vivo
VSANYWHERE.COM @VS_ANYWHERE
Un poco de planificación
VSANYWHERE.COM @VS_ANYWHERE
Calidad
VSANYWHERE.COM @VS_ANYWHERE
La calidad NO es opcional
Desde el principio, criterios de aceptación, DoD, DoR
Pasando por código, buenas practicas, TDD, BDD, …
Hasta el final con pruebas de UI, manuales, exploratorias …
VSANYWHERE.COM @VS_ANYWHERE
Definition Of Ready
¿Cuándo está listo un PBI/US/Bug para empezar?
Definir criterios de aceptación
Base para pruebas
Cobertura de pruebas:
TDD, BDD, …
Casos de prueba automatizados
VSANYWHERE.COM @VS_ANYWHERE
Cuadrantes Agile testing
Unit tests
Components tests
Automated
Functional tests
Examples
Prototypes
Simulations
Automated
Manuals
Exploration tests
Scenarios
Usability testing
User acceptance tests
Manuals
Load tests
Performance tests
Security tests
Tools
Facing the technology
Facing the business
Pro
gram
min
g h
elp
sC
riticismo
f the
pro
du
ct
VSANYWHERE.COM @VS_ANYWHERE
Calidad a vista de pájaro
VSANYWHERE.COM @VS_ANYWHERE
Conclusiones
Partir de un mínimo de arquitectura ALM
Permitidla crecer durante el proyecto
Inspeccionar y adaptar
NO abandonarla nunca (dolor al recuperarla)
Tiene que ser clara para toda persona involucrada en el equipo
Que proporcione ayuda al equipo día a día
VSANYWHERE.COM @VS_ANYWHERE
¡¡¡ Gracias !!!
CONTACTOVS Anywhere
contact@vsanywhere.com
https://vsanywhere.com
@vs_anywhere
Luis Fraile
Luis.fraile@vsanywhere.com
@lfraile
Recommended