1 of 132

Diseña y ejecuta tu propia estrategia de ingeniería

Aleix Morgadas

@aleixmorgadas

2 of 132

@aleixmorgadas

3 of 132

Aleix Morgadas

Head of Engineering en�AtomicJar

Quién soy

$whoami

@aleixmorgadas

4 of 132

Quién soy

@aleixmorgadas

5 of 132

Quién soy

@aleixmorgadas

6 of 132

Pausa

@aleixmorgadas

7 of 132

Qué vamos a ver hoy

@aleixmorgadas

8 of 132

Qué vamos a ver hoy

@aleixmorgadas

9 of 132

Qué vamos a ver hoy

@aleixmorgadas

10 of 132

Qué vamos a ver hoy

@aleixmorgadas

11 of 132

Qué vamos a ver hoy

@aleixmorgadas

12 of 132

2014

@aleixmorgadas

13 of 132

Nuestra estrategia es Lean. Vamos a innovar para nuestros clientes creando aplicaciones móviles y web responsive a través de Domain-Driven Design, Continuous Integration y Test-Driven Development.

Usando Scrum y tecnologías open source, entregamos valor a nuestros clientes de forma rápida y eficiente, permitiéndonos tener un equipo pequeño pero efectivo.

2014

@aleixmorgadas

14 of 132

2015

@aleixmorgadas

15 of 132

Nuestra estrategia es Lean. Vamos a innovar para nuestros clientes creando aplicaciones móviles y web responsive a través de Domain-Driven Design, Continuous Delivery, Test-Driven Development y AWS.

Usando Kanban y tecnologías open source, entregamos valor a nuestros clientes de forma rápida y eficiente, permitiéndonos tener un equipo pequeño pero efectivo.

2015

@aleixmorgadas

16 of 132

2018

@aleixmorgadas

17 of 132

2018

@aleixmorgadas

18 of 132

2020

@aleixmorgadas

19 of 132

¿Qué no es estrategia?

Hablemos de estrategia

@aleixmorgadas

20 of 132

¿Qué no es estrategia?

La mala estrategia no es simplemente la ausencia de buena estrategia. Surge de conceptos erróneos específicos y de disfunciones del liderazgo. Una especie de:

  • Fluff. Utiliza palabras de moda y conceptos aparentemente esotéricos para crear la ilusión de un pensamiento de alto nivel.
  • No afronta o no reconoce el reto.
  • Confundir objetivos con estrategia. Ser sólo una declaración de deseos en lugar de planes para superar obstáculos.
  • Malos objetivos estratégicos. Cuando no abordan cuestiones críticas o cuando son impracticables.

📙 Good Strategy/Bad Strategy: The difference and why it matters - Richard Rumelt

Hablemos de estrategia

@aleixmorgadas

21 of 132

¿Qué es estrategia?

Hablemos de estrategia

@aleixmorgadas

22 of 132

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

The strategy cycle

5 factores de Sun Tzu

Hablemos de estrategia

@aleixmorgadas

23 of 132

Todo se basa en el

¿por qué?

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

Hablemos de estrategia

@aleixmorgadas

24 of 132

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

The strategy cycle

5 factores de Sun Tzu

2 por qués

Hablemos de estrategia

@aleixmorgadas

25 of 132

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

26 of 132

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

27 of 132

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

28 of 132

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

The strategy cycle

5 factores de Sun Tzu

2 por qués

Hablemos de estrategia

@aleixmorgadas

29 of 132

¿Qué es estrategia de ingeniería?

Hablemos de estrategia

@aleixmorgadas

30 of 132

Estrategia de ingeniería es

cómo abordamos un problema de negocio de alto riesgo desde la perspectiva de ingeniería

Hablemos de estrategia

@aleixmorgadas

31 of 132

¿Qué principios vamos a seguir?

  • Prever-Explorar frente a Planificar-Hacer
  • Adaptativa frente a prescriptiva
  • Estrategia impulsada por el valor para el cliente y el negocio
  • Tecnología en el centro
  • Comunicar y colaborar primero y documentar después.

Hablemos de estrategia

@aleixmorgadas

32 of 132

¿Qué relación tienen

los sistemas complejos y la estrategia?

Hablemos de estrategia

@aleixmorgadas

33 of 132

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

34 of 132

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

35 of 132

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

36 of 132

📙 Cynefin Framework by @snowded

Hablemos de estrategia

?

@aleixmorgadas

37 of 132

📙 Cynefin Framework by @snowded

Hablemos de estrategia

?

@aleixmorgadas

38 of 132

?

Ejecutamos

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

39 of 132

?

Ejecutamos

📙 Cynefin Framework by @snowded

@aleixmorgadas

40 of 132

?

Ejecutamos

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

41 of 132

?

La mayor parte del del tiempo estamos aquí

Ejecutamos

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

42 of 132

?

La mayor parte del del tiempo estamos aquí

Ejecutamos

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

43 of 132

?

La mayor parte del del tiempo estamos aquí

Ejecutamos

📙 Cynefin Framework by @snowded

Hablemos de estrategia

@aleixmorgadas

44 of 132

¿Cómo diseñamos y ejecutamos una estrategia de ingeniería?

Hablemos de estrategia

@aleixmorgadas

45 of 132

¿De qué se compone una estrategia?

Hablemos de estrategia

@aleixmorgadas

46 of 132

📙 Good Strategy/Bad Strategy: The difference and why it matters - Richard Rumelt

Hablemos de estrategia

@aleixmorgadas

47 of 132

📙 Good Strategy/Bad Strategy: The difference and why it matters - Richard Rumelt

Hablemos de estrategia

@aleixmorgadas

48 of 132

📙 Good Strategy/Bad Strategy: The difference and why it matters - Richard Rumelt

Hablemos de estrategia

@aleixmorgadas

49 of 132

📙 Good Strategy/Bad Strategy: The difference and why it matters - Richard Rumelt

Hablemos de estrategia

@aleixmorgadas

50 of 132

Vamos a verlo en acción con una estrategia real

Hablemos de estrategia

@aleixmorgadas

51 of 132

2021

@aleixmorgadas

52 of 132

Acto I

¿Dónde me he metido?

Acto I - ¿Dónde me he metido?

@aleixmorgadas

53 of 132

Propósito

Ayudar a madurar la parte tecnológica

Acto I - ¿Dónde me he metido?

@aleixmorgadas

54 of 132

Contexto de negocio

  • Dos de los tres productos están fase de beta privada
  • Llevan más de un año de desarrollo
  • No conseguimos entregar

Acto I - ¿Dónde me he metido?

@aleixmorgadas

55 of 132

Saber de dónde partimos es igual de importante que saber hacia dónde vamos

Acto I - ¿Dónde me he metido?

@aleixmorgadas

56 of 132

Acto I

¿Dónde me he metido?

Entender

Acto I - Entender

@aleixmorgadas

57 of 132

Acto I - Entender

@aleixmorgadas

58 of 132

Architectura

Monolito distribuido

Acto I - Entender

@aleixmorgadas

59 of 132

Arquitectura del servicio

Acto I - Entender

@aleixmorgadas

60 of 132

Arquitectura del servicio

Acto I - Entender

@aleixmorgadas

61 of 132

Equipos

  • Mucha rotación de liderazgo
  • No hay equipos full stack
    • “Yo terminé la parte de backend, el frontend se encarga ese equipo”
  • Handovers entre varías personas y equipos

Acto I - Entender

@aleixmorgadas

62 of 132

Entender

📙 Kanban Maturity Model

@aleixmorgadas

63 of 132

Entender

📙 Kanban Maturity Model

@aleixmorgadas

64 of 132

Acto I

¿Dónde me he metido?

Dirección

Acto I - Dirección

@aleixmorgadas

65 of 132

Dirección

Vamos a crear un nuevo equipo de 0 para adoptar las prácticas y metodología que se centre en entregar E2E.

  • Apuesta 1: Empezar un equipo nuevo
  • Apuesta 2: El equipo es full stack
  • Apuesta 3: Reducir la complejidad accidental.

Acto I - Dirección

@aleixmorgadas

66 of 132

Acto I

¿Dónde me he metido?

Acciones coherentes

Acto I - Acciones coherentes

@aleixmorgadas

67 of 132

Acciones coherentes

  • Isolar al nuevo equipo al producto menos importante. #A1
  • Trainings para las tecnologías del equipo. #A2 #A3
  • Quitar la arquitectura hexagonal en servicios CRUD. #A3

Acto I - Acciones coherentes

@aleixmorgadas

68 of 132

Acto I - Resultado

  • ✅ Equipo de 4 personas
  • ✅ Varías entregas visibles
    • Se crea confianza con los stakeholders
  • ✅ Trainings de ReactNative
  • ✅ Equipo entrega E2E sin traspasos entre equipos

Acto I - Resultados

@aleixmorgadas

69 of 132

Entender

📙 Kanban Maturity Model

@aleixmorgadas

70 of 132

Acto II

El desorden

Acto II - El desorden

@aleixmorgadas

71 of 132

Contexto de negocio

  • Tenemos muchas incidencias con los clientes. Tanto en la parte B2C (la que hemos estado trabajando), como en la B2B donde hay un equipo dedicado.

Acto II - El desorden

@aleixmorgadas

72 of 132

Acto III

El desorden

Entender

Acto II - El desorden

@aleixmorgadas

73 of 132

Acto II - El desorden

@aleixmorgadas

74 of 132

¿Qué es core y que no?

Acto II - El desorden

@aleixmorgadas

75 of 132

Core Domain

Supporting

Subdomain

Generic

Subdomain

  • Ventaja competitiva
  • Complejo/Complicado
  • Cambia frecuentemente
  • Construcción propia
  • Sin ventaja competitiva
  • Generalmente simple
  • No cambia frequentemente
  • Preferiblemente comprar o off-the-shelf
  • Sin ventaja competitiva
  • Generalmente complejo
  • No cambia frequentemente
  • Preferiblemente comprar, off-the-shelf, externalizar

Acto II - El desorden

@aleixmorgadas

76 of 132

Acto II - El desorden

@aleixmorgadas

77 of 132

Acto II - El desorden

@aleixmorgadas

78 of 132

Team Relationships

Acto II - El desorden

@aleixmorgadas

79 of 132

Context Map Patterns

Acto II - El desorden

@aleixmorgadas

80 of 132

Context Map Patterns

Acto II - El desorden

@aleixmorgadas

81 of 132

Context Map Patterns

Acto II - El desorden

@aleixmorgadas

82 of 132

Context Map Patterns

Acto II - El desorden

@aleixmorgadas

83 of 132

Context Map Patterns Ejemplos

OHS

Acto II - El desorden

@aleixmorgadas

84 of 132

Context Map Patterns Ejemplos

OHS

Acto II - El desorden

@aleixmorgadas

85 of 132

Context Map Patterns Ejemplos

Acto II - El desorden

@aleixmorgadas

86 of 132

Context Map Patterns Ejemplos

Acto II - El desorden

@aleixmorgadas

87 of 132

Acto II - El desorden

@aleixmorgadas

88 of 132

Hay mucha

Anti-Corruption Layer y

Supplier-Consumer

Acto II - El desorden

@aleixmorgadas

89 of 132

¿Cuál es el cognitive load del equipo?

Acto II - El desorden

@aleixmorgadas

90 of 132

Acto II - El desorden

@aleixmorgadas

91 of 132

Building

Testing

Deploying

Operating

Acto II - El desorden

@aleixmorgadas

92 of 132

Introducimos WardleyMapping

Acto II - Wardley Mapping

@aleixmorgadas

93 of 132

Acto II - Wardley Mapping

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

94 of 132

Acto II - Wardley Mapping

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

95 of 132

Acto II - Wardley Mapping

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

96 of 132

Acto II - Wardley Mapping

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

97 of 132

Acto II - Wardley Mapping

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

@aleixmorgadas

98 of 132

Necesidades del usuario

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

Acto II - Wardley Mapping

@aleixmorgadas

99 of 132

Value chain

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

Acto II - Wardley Mapping

@aleixmorgadas

100 of 132

Value chain

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

Acto II - Wardley Mapping

@aleixmorgadas

101 of 132

Value chain

📙 Wardley Maps by @swardley Licensed under CC BY-SA 4.0

Acto II - Wardley Mapping

@aleixmorgadas

102 of 132

WardleyMaps + Context Mapping

Acto II - Wardley Mapping

@aleixmorgadas

103 of 132

Acto II - Wardley Mapping

@aleixmorgadas

104 of 132

📙 Adaptive Systems with Domain-Driven Design, Wardley Mapping, and Team Topologies by @suksr

Acto II - Wardley Mapping

@aleixmorgadas

105 of 132

📙 Adaptive Systems with Domain-Driven Design, Wardley Mapping, and Team Topologies by @suksr

Acto II - Wardley Mapping

@aleixmorgadas

106 of 132

WardleyMapping

nuestro dominio

Acto II - Wardley Mapping

@aleixmorgadas

107 of 132

Acto II - Wardley Mapping

@aleixmorgadas

108 of 132

Situational awareness

  • ¿Para quién es?
  • ¿Cuál es su necesidad?
  • ¿Qué es necesario para cubrir esta necesidad?
  • ¿Este componente está realmente aquí?
  • ¿Cómo lo hace el resto de la industria?

Acto II - Wardley Mapping

@aleixmorgadas

109 of 132

Acto II - Wardley Mapping

@aleixmorgadas

110 of 132

Acto II - Wardley Mapping

@aleixmorgadas

111 of 132

Acto II - Wardley Mapping

@aleixmorgadas

112 of 132

Acto II - Wardley Mapping

@aleixmorgadas

113 of 132

Componentes muy usados que fallan

Acto II - Wardley Mapping

@aleixmorgadas

114 of 132

🔍

Acto II - Wardley Mapping

@aleixmorgadas

115 of 132

Acto II - Wardley Mapping

@aleixmorgadas

116 of 132

Acto II - Wardley Mapping

@aleixmorgadas

117 of 132

Acto III

Inversión de dependencias

Dirección

Acto II - Dirección

@aleixmorgadas

118 of 132

Dirección

Quitar los handovers entre business units y thin platforms en vez de big platforms.

  • Apuesta 1: Equipo B hace B2C y B2B
  • Apuesta 2: El equipo de plataforma solo da soporte al equipo B

Acto II - Dirección

@aleixmorgadas

119 of 132

Acto III

Inversión de dependencias

Acciones coherentes

Acto II - Acciones coherentes

@aleixmorgadas

120 of 132

Pasamos de

Acto II - Acciones coherentes

@aleixmorgadas

121 of 132

Ahora colaboramos

Acto II - Acciones coherentes

@aleixmorgadas

122 of 132

Acto II - Wardley Mapping

@aleixmorgadas

123 of 132

Para dejar de colaborar

Acto II - Acciones coherentes

@aleixmorgadas

124 of 132

Para que otros puedan adoptar la plataforma “sin necesidad” de colaborar

Acto II - Acciones coherentes

@aleixmorgadas

125 of 132

Acto II - Wardley Mapping

@aleixmorgadas

126 of 132

Acto II - Wardley Mapping

@aleixmorgadas

127 of 132

Acto II - Wardley Mapping

@aleixmorgadas

128 of 132

Para terminar…

Conclusión

@aleixmorgadas

129 of 132

Nuestra estrategia es adaptativa. Vamos a innovar para nuestros clientes usando Domain-Driven Design, Wardley Mapping, Team Topologies, Dynamic Reteaming, Kubernetes y ChatGPT.

Aplicando la metodología correcta en cada situación y siendo conscientes de nuestro entorno, vamos a adquirir más cuota de mercado que nuestra competencia.

Conclusión

@aleixmorgadas

130 of 132

Hemos nacido para vagar por un campo de caos. Y, sin embargo, no nos perdemos irremediablemente, porque cada caminante que nos precede deja tras de sí una huella que podemos seguir.

- Robert Moor

Cita de alguien importante

@aleixmorgadas

131 of 132

Suscribete a mi canal para más

@aleixmorgadas

132 of 132

Gràcies!

Eskerrik Asko!

Fin

@aleixmorgadas