ALM la parte olvidada de la arquitectura

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

TWITTER

@vs_anywhere

TWITTER

Luis Fraile

Luis.fraile@vsanywhere.com

@lfraile

Recommended