SlideShare una empresa de Scribd logo
1 de 23
Descargar para leer sin conexión
Kit de
Supervivencia
para CTOs y Engineering Managers
Carlos @Buenosvinos, SalmorejoTech 2022
7 cosas que meter en el botiquín si emprendes un viaje inesperado
Kit de
Supervivencia
para CTOs y Engineering Managers
Carlos @Buenosvinos, SalmorejoTech 2022
7 cosas que meter en el botiquín si emprendes un viaje inesperado
¿Esta semana somos mejores que la anterior?
Calidad: # bugs netos (creados - resueltos), % Code Coverage, % Mutation
Score Indicator (MSI) en caso de hacer Mutant Testing (super recomendado)

Delivery: # deploys/day, (no muy fan de velocities y demás métricas de Agile)

Servicio: # de Errores 50X/40X/30X, Tiempo caídas 

Rendimiento: Google Analytics / Lighthouse contra 3 páginas más importantes,
1 KPI por Infra (# MySQL Slow Queries, % Redis Hit Ratio, etc.), avg. Response
time (o percentil 90/95)

Iniciativas y Negocio: # widgets jQuery pendientes por migrar a React (cuando
llega a 0 está migrado y se elimina el KPI), # total de pedidos incompletos, etc.
1. KPIs
- Revisión Semanal / Fácil de Medir / Empezad fácil (ya complicaréis si es necesario): ¡Delta en verde, ni se discute!

- Google Spreadsheet / Notion Page / Con
fl
uence

- Rellenado a mano (la gente se lo mira, se implica, investiga a ver qué ha pasado)

- Cada persona del equipo involucrado en rellenar 1 ó 2 (distribuir responsabilidad y hacer partícipes)

- Usar en retrospectivas (cómo ha ido el partido)

- Seleccionar un subconjunto y llevarlo a la reunión con l@s CXO.

- “Living Document”, entran y salen KPIs en función de su utilidad para el equipo

Ejercicio para casa: Isla Desierta
Si te fueras de vacaciones durante 3 meses a una isla desierta y sólo pudieras mirar una pantalla del tamaño de un folio, qué
información te gustaría ver para saber que el equipo “va bien”. Coge papel y lápiz.
1. KPIs
¿Esta semana somos mejores que la anterior?
Behaviour Driven Development para Team Members
User Experience / User Story
“As a non logged user, I want to log in with my GitHub Account”
Team Member Experience / Team Member Story
“As a team member, when deploying I stay until production is stable and orders are happening”
“Las Stand-ups Dailies las hacemos a las 9:00 AM por Slack”

“El Códing Standard del proyecto es PSR-4”

“Cuando nos vamos a comer ponemos el emoji 🍔 de la hamburguesa en Slack”

“Subimos a producción sólo si podemos validar después de subida que las métricas en Datadog están estables”

“Si tenemos que montar una base de datos, usamos preferiblemente PostgreSQL”

“Cada una rellenamos un KPI antes de la reunión semanal, si varía en negativo, investigamos el motivo”

“Durante el sprint, tan pronto encontramos un problema técnico que pone en riesgo la estimación, hablamos con el/la PO”

…
2. Working Agreements
Behaviour Driven Development para Team Members
- Google Docs / Con
fl
uence / Notion Page / Code Repository

- No son ley, se puede hacer challenge, propuesta, cambios de forma regular

- Reduce el tiempo de on-boarding y la curva de aprendizaje hacia la cultura del equipo

- Más efectivo (y sincero) que muchas job descriptions

- Evita falsas expectativas y males entendidos sobre “cómo trabajamos”

- Se puede hacer al estilo Architectural Decision Record (Context, Problem, Solution, Positive Results,
Negative E
ff
ects to Mitigate): https://adr.github.io/

- Combinar con Boy Scout Rule: “Dejar el campo mejor que como lo encontramos”

Ejercicio para casa: Hacer Explícito lo Implícito
Antes de la daily, que cada persona del equipo escriba lo que crea que es un Working Agreement del
equipo. En la retro, validar las propuestas e incluir las aceptadas por el equipo en un documento sencillo.
2. Working Agreements
El pulso al equipo
1:1s: Checks individuales (reuniones/charlas) con cada persona que os reporta
para comprobar estado emocional, objetivos profesionales, desarrollo
profesional, formación, situación con el equipo, etc. (NO CURRO DIARIO). Cada
15 días aprox.

Bidireccional: Buen momento para recabar información sobre cómo lo
estamos haciendo. “¿Cómo viste aquella situación?”, “¿Qué podría haber
mejorado en aquella comunicación?”, “¿No fui demasiado clar@, no? ¿Qué
opinas?”

1:Ns: Checks grupales. Cada 4-8 semanas. Genial para introducir cambios que
van a venir, reforzar resultados positivos, felicitar al equipo, presentar nuevos
working agreements, etc.
3. 1:1s / 1:Ns
Experimentamos con Org, Working Agreements, Tech, etc.
4. Experiments / Change Management
Preparando y Reforzando el Cambio
- Cada semana

- Temas que van a entrar como Working Agreement en las próximas semanas
(testing, hexagonal, devops, slack, etc.)

- Rotando por dentro del equipo

- Momento perfecto para hacer 1:N previo a la formación

Ejercicio para casa: ¿Qué hemos aprendido?
En las retros, ¿qué ha aprendido el equipo esta semana para ser mejor en la
siguiente iteración? ¿Nos falta algún tipo de habilidad o conocimiento? ¿La
podemos enseñar?
5. Formación Interna Semanal
Facilitan que nuestras aplicaciones sean testeables
Arquitecturas para nuestras aplicaciones: Semánticas con el Negocio (User Story Driven / Behaviour Driven),
Fáciles de Testear y que mantienen las opciones abiertas a nivel de qué infraestructura utilizamos.

Ejemplos de Arquitecturas Desacopladas: Onion Architecture, Clean Architecture, Ports and Adapters (aka
Hexagonal Architecture), etc.

Bonus Point: Monolitos vs. Monolitos Modulares vs. Micro-servicios
6. Arquitecturas Desacopladas
En cualquier deporte, la victoria se construye desde la defensa
- Buen Testing: barato, rápido de ejecutar,
sin falsos positivos, y con amplia cobertura
- Testing Unitario es el que mejor cumple, pero
le falta cobertura en proyecto ya arrancados

- Estrategia práctica y efectiva: Basarse en
Unit Testing (con Arquitectura Hexagonal)
testeando Outside-In (desde el Caso de Uso).
No testeamos conexión con Infraestructura.

- En proyecto existentes, mientras sube la
cobertura de testing unitario, nos protegemos
con tests de GUI.
7. Testing
1. KPIs
2. Working Agreements
3. 1:1s / 1:Ns
4. Experiments / Change Management
5. Formación Interna Semanal
6. Arquitecturas Desacopladas
7. Testing Unitario Outside-In
https://cto.camp
Kit de Supervivencia para CTOs y Engineering Managers

Más contenido relacionado

La actualidad más candente

Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessDerek Collison
 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0The Linux Foundation
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)Suhyun Park
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
 
Microfrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedVinci Rufus
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것NAVER Engineering
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with SwooleAlbert Chen
 
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧升煌 黃
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들Chris Ohk
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교Woo Yeong Choi
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Minchul Jung
 
Garbage collection
Garbage collectionGarbage collection
Garbage collectionsoeun Lee
 
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...Simplilearn
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴Terry Cho
 
Scrum retrospective
Scrum retrospective Scrum retrospective
Scrum retrospective Priyanka Rana
 

La actualidad más candente (20)

Scalable and Available, Patterns for Success
Scalable and Available, Patterns for SuccessScalable and Available, Patterns for Success
Scalable and Available, Patterns for Success
 
Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0Xen Project Contributor Training - Part 1 introduction v1.0
Xen Project Contributor Training - Part 1 introduction v1.0
 
애자일의 모든것
애자일의 모든것애자일의 모든것
애자일의 모든것
 
Git internals
Git internalsGit internals
Git internals
 
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
코딩 테스트 및 알고리즘 문제해결 공부 방법 (고려대학교 KUCC, 2022년 4월)
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
Microfrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased basedMicrofrontends Monoreops & Trunkbased based
Microfrontends Monoreops & Trunkbased based
 
[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것[24]안드로이드 웹뷰의 모든것
[24]안드로이드 웹뷰의 모든것
 
The Integration of Laravel with Swoole
The Integration of Laravel with SwooleThe Integration of Laravel with Swoole
The Integration of Laravel with Swoole
 
Atelier de simulation DevOps
Atelier de simulation DevOpsAtelier de simulation DevOps
Atelier de simulation DevOps
 
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
Angular Taiwan 2019 - 大型 Angular 專案的的管理心得與技巧
 
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
 
mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교mongodb와 mysql의 CRUD 연산의 성능 비교
mongodb와 mysql의 CRUD 연산의 성능 비교
 
Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1Ch6 대용량서비스레퍼런스아키텍처 part.1
Ch6 대용량서비스레퍼런스아키텍처 part.1
 
Garbage collection
Garbage collectionGarbage collection
Garbage collection
 
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
DevOps Training | DevOps Training Video | DevOps Tools | DevOps Tutorial For ...
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)
 
4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴4. 대용량 아키텍쳐 설계 패턴
4. 대용량 아키텍쳐 설계 패턴
 
Scrum retrospective
Scrum retrospective Scrum retrospective
Scrum retrospective
 
The Devops Handbook
The Devops HandbookThe Devops Handbook
The Devops Handbook
 

Similar a Kit de Supervivencia para CTOs y Engineering Managers

Gestión basada en Metodologías Ágiles
Gestión basada en Metodologías ÁgilesGestión basada en Metodologías Ágiles
Gestión basada en Metodologías Ágilesnetmind
 
La alternativa ágil - Uniencounter
La alternativa ágil - UniencounterLa alternativa ágil - Uniencounter
La alternativa ágil - UniencounterGailen Tecnologías
 
Una introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadUna introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadJorge Hernán Abad Londoño
 
Curso agile barcelona 2015
Curso agile barcelona 2015Curso agile barcelona 2015
Curso agile barcelona 2015Agile-Barcelona
 
Ejecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intelEjecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intelHospital Español
 
FACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESFACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESafrancoing
 
La Alternativa Ágil 1.0
La Alternativa Ágil 1.0La Alternativa Ágil 1.0
La Alternativa Ágil 1.0Agile Spain
 
Introducción a Scrum
Introducción a ScrumIntroducción a Scrum
Introducción a ScrumMatias Iacono
 
Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...
Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...
Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...Jorge Hernán Abad Londoño
 
Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)
Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)
Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)Luis Mulato
 
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...TestingUy
 

Similar a Kit de Supervivencia para CTOs y Engineering Managers (20)

Gestión basada en Metodologías Ágiles
Gestión basada en Metodologías ÁgilesGestión basada en Metodologías Ágiles
Gestión basada en Metodologías Ágiles
 
La alternativa ágil - Uniencounter
La alternativa ágil - UniencounterLa alternativa ágil - Uniencounter
La alternativa ágil - Uniencounter
 
Curso scrum 2017
Curso scrum 2017Curso scrum 2017
Curso scrum 2017
 
Una introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abadUna introducción a Scrum - Por Jorge Abad @jorge_abad
Una introducción a Scrum - Por Jorge Abad @jorge_abad
 
Curso agile barcelona 2015
Curso agile barcelona 2015Curso agile barcelona 2015
Curso agile barcelona 2015
 
Agile Scrum
Agile ScrumAgile Scrum
Agile Scrum
 
Scrum
ScrumScrum
Scrum
 
Calidad en Agile - EducacionIT
Calidad en Agile - EducacionITCalidad en Agile - EducacionIT
Calidad en Agile - EducacionIT
 
Scrum y craftsmanship
Scrum y craftsmanshipScrum y craftsmanship
Scrum y craftsmanship
 
Ejecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intelEjecutando proyectos de innovación tecnológica de software en intel
Ejecutando proyectos de innovación tecnológica de software en intel
 
FACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILESFACCI METODOLOGIAS AGILES
FACCI METODOLOGIAS AGILES
 
La Alternativa Ágil 1.0
La Alternativa Ágil 1.0La Alternativa Ágil 1.0
La Alternativa Ágil 1.0
 
Scrum
ScrumScrum
Scrum
 
Introducción a Scrum
Introducción a ScrumIntroducción a Scrum
Introducción a Scrum
 
Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...
Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...
Estimación, Priorización y Seguimiento de un Proyecto Ágil Empleando el User ...
 
Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)
Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)
Prácticas Ágiles en entornos hostiles de desarrollo (Parte 2)
 
Spanish Redistributable Intro To Scrum
Spanish Redistributable Intro To ScrumSpanish Redistributable Intro To Scrum
Spanish Redistributable Intro To Scrum
 
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...
Meetup TestingUy 2019 - Contribuir con la definición de requerimientos para e...
 
OKR Canvas - Ágiles 2018
OKR Canvas - Ágiles 2018OKR Canvas - Ágiles 2018
OKR Canvas - Ágiles 2018
 
Introducción a SCRUM
Introducción a SCRUMIntroducción a SCRUM
Introducción a SCRUM
 

Más de Carlos Buenosvinos

Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)
Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)
Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)Carlos Buenosvinos
 
Eventos, mensajería y otras fábulas - PulpoCon 2019
Eventos, mensajería y otras fábulas - PulpoCon 2019Eventos, mensajería y otras fábulas - PulpoCon 2019
Eventos, mensajería y otras fábulas - PulpoCon 2019Carlos Buenosvinos
 
Road From Hex. Architecture to Event Sourcing
Road From Hex. Architecture to Event SourcingRoad From Hex. Architecture to Event Sourcing
Road From Hex. Architecture to Event SourcingCarlos Buenosvinos
 
Primeros Pasos Liderando Equipos Técnicos - Techne 2018
Primeros Pasos Liderando Equipos Técnicos - Techne 2018Primeros Pasos Liderando Equipos Técnicos - Techne 2018
Primeros Pasos Liderando Equipos Técnicos - Techne 2018Carlos Buenosvinos
 
A Journey from Hexagonal Architecture to Event Sourcing
A Journey from Hexagonal Architecture to Event SourcingA Journey from Hexagonal Architecture to Event Sourcing
A Journey from Hexagonal Architecture to Event SourcingCarlos Buenosvinos
 
Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016Carlos Buenosvinos
 
Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015
Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015
Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015Carlos Buenosvinos
 
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / MedioDesarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / MedioCarlos Buenosvinos
 
Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)
Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)
Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)Carlos Buenosvinos
 
PHP 2014/15 - Visión global del ecosistema PHP
PHP 2014/15 - Visión global del ecosistema PHPPHP 2014/15 - Visión global del ecosistema PHP
PHP 2014/15 - Visión global del ecosistema PHPCarlos Buenosvinos
 
Desarrollo móvil con Titanium, PhoneGap y otros
Desarrollo móvil con Titanium, PhoneGap y otrosDesarrollo móvil con Titanium, PhoneGap y otros
Desarrollo móvil con Titanium, PhoneGap y otrosCarlos Buenosvinos
 
Introducción a Agile y Scrum (BetaBeers.com)
Introducción a Agile y Scrum (BetaBeers.com)Introducción a Agile y Scrum (BetaBeers.com)
Introducción a Agile y Scrum (BetaBeers.com)Carlos Buenosvinos
 
Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Carlos Buenosvinos
 
Scrum al Detalle: Revision práctica y perversiones humanas
Scrum al Detalle: Revision práctica y perversiones humanasScrum al Detalle: Revision práctica y perversiones humanas
Scrum al Detalle: Revision práctica y perversiones humanasCarlos Buenosvinos
 
Zend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestZend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestCarlos Buenosvinos
 
Aplicaciones Php Para Empresas
Aplicaciones Php Para EmpresasAplicaciones Php Para Empresas
Aplicaciones Php Para EmpresasCarlos Buenosvinos
 

Más de Carlos Buenosvinos (20)

Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)
Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)
Deliveritis Crónica - CAS Spain 2020 (Agile Is The New Normal)
 
Eventos, mensajería y otras fábulas - PulpoCon 2019
Eventos, mensajería y otras fábulas - PulpoCon 2019Eventos, mensajería y otras fábulas - PulpoCon 2019
Eventos, mensajería y otras fábulas - PulpoCon 2019
 
Road From Hex. Architecture to Event Sourcing
Road From Hex. Architecture to Event SourcingRoad From Hex. Architecture to Event Sourcing
Road From Hex. Architecture to Event Sourcing
 
Primeros Pasos Liderando Equipos Técnicos - Techne 2018
Primeros Pasos Liderando Equipos Técnicos - Techne 2018Primeros Pasos Liderando Equipos Técnicos - Techne 2018
Primeros Pasos Liderando Equipos Técnicos - Techne 2018
 
A Journey from Hexagonal Architecture to Event Sourcing
A Journey from Hexagonal Architecture to Event SourcingA Journey from Hexagonal Architecture to Event Sourcing
A Journey from Hexagonal Architecture to Event Sourcing
 
Scrum, no eres tú, soy yo
Scrum, no eres tú, soy yoScrum, no eres tú, soy yo
Scrum, no eres tú, soy yo
 
Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016Integrating Bounded Contexts Tips - Dutch PHP 2016
Integrating Bounded Contexts Tips - Dutch PHP 2016
 
Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015
Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015
Economía del Desarrollo de Software - PHP Barcelona - Marzo 2015
 
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / MedioDesarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
Desarrollo Profesional con PHP 2014/15 - Nivel Bajo / Medio
 
Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)
Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)
Hexagonal Architecture - PHP Barcelona Monthly Talk (DDD)
 
PHP 2014/15 - Visión global del ecosistema PHP
PHP 2014/15 - Visión global del ecosistema PHPPHP 2014/15 - Visión global del ecosistema PHP
PHP 2014/15 - Visión global del ecosistema PHP
 
Desarrollo móvil con Titanium, PhoneGap y otros
Desarrollo móvil con Titanium, PhoneGap y otrosDesarrollo móvil con Titanium, PhoneGap y otros
Desarrollo móvil con Titanium, PhoneGap y otros
 
Introducción a Agile y Scrum (BetaBeers.com)
Introducción a Agile y Scrum (BetaBeers.com)Introducción a Agile y Scrum (BetaBeers.com)
Introducción a Agile y Scrum (BetaBeers.com)
 
Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011Team Engagement PHP Barcelona 2011
Team Engagement PHP Barcelona 2011
 
"Al rico" PHP
"Al rico" PHP"Al rico" PHP
"Al rico" PHP
 
Scrum al Detalle: Revision práctica y perversiones humanas
Scrum al Detalle: Revision práctica y perversiones humanasScrum al Detalle: Revision práctica y perversiones humanas
Scrum al Detalle: Revision práctica y perversiones humanas
 
Zend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification TestZend PHP 5.3 Demo Certification Test
Zend PHP 5.3 Demo Certification Test
 
Scrum en Grupo Intercom
Scrum en Grupo IntercomScrum en Grupo Intercom
Scrum en Grupo Intercom
 
Comparativa Zend vs Symphony
Comparativa Zend vs SymphonyComparativa Zend vs Symphony
Comparativa Zend vs Symphony
 
Aplicaciones Php Para Empresas
Aplicaciones Php Para EmpresasAplicaciones Php Para Empresas
Aplicaciones Php Para Empresas
 

Kit de Supervivencia para CTOs y Engineering Managers

  • 1. Kit de Supervivencia para CTOs y Engineering Managers Carlos @Buenosvinos, SalmorejoTech 2022 7 cosas que meter en el botiquín si emprendes un viaje inesperado
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7. Kit de Supervivencia para CTOs y Engineering Managers Carlos @Buenosvinos, SalmorejoTech 2022 7 cosas que meter en el botiquín si emprendes un viaje inesperado
  • 8.
  • 9.
  • 10. ¿Esta semana somos mejores que la anterior? Calidad: # bugs netos (creados - resueltos), % Code Coverage, % Mutation Score Indicator (MSI) en caso de hacer Mutant Testing (super recomendado) Delivery: # deploys/day, (no muy fan de velocities y demás métricas de Agile) Servicio: # de Errores 50X/40X/30X, Tiempo caídas Rendimiento: Google Analytics / Lighthouse contra 3 páginas más importantes, 1 KPI por Infra (# MySQL Slow Queries, % Redis Hit Ratio, etc.), avg. Response time (o percentil 90/95) Iniciativas y Negocio: # widgets jQuery pendientes por migrar a React (cuando llega a 0 está migrado y se elimina el KPI), # total de pedidos incompletos, etc. 1. KPIs
  • 11. - Revisión Semanal / Fácil de Medir / Empezad fácil (ya complicaréis si es necesario): ¡Delta en verde, ni se discute! - Google Spreadsheet / Notion Page / Con fl uence - Rellenado a mano (la gente se lo mira, se implica, investiga a ver qué ha pasado) - Cada persona del equipo involucrado en rellenar 1 ó 2 (distribuir responsabilidad y hacer partícipes) - Usar en retrospectivas (cómo ha ido el partido) - Seleccionar un subconjunto y llevarlo a la reunión con l@s CXO. - “Living Document”, entran y salen KPIs en función de su utilidad para el equipo Ejercicio para casa: Isla Desierta Si te fueras de vacaciones durante 3 meses a una isla desierta y sólo pudieras mirar una pantalla del tamaño de un folio, qué información te gustaría ver para saber que el equipo “va bien”. Coge papel y lápiz. 1. KPIs ¿Esta semana somos mejores que la anterior?
  • 12.
  • 13. Behaviour Driven Development para Team Members User Experience / User Story “As a non logged user, I want to log in with my GitHub Account” Team Member Experience / Team Member Story “As a team member, when deploying I stay until production is stable and orders are happening” “Las Stand-ups Dailies las hacemos a las 9:00 AM por Slack” “El Códing Standard del proyecto es PSR-4” “Cuando nos vamos a comer ponemos el emoji 🍔 de la hamburguesa en Slack” “Subimos a producción sólo si podemos validar después de subida que las métricas en Datadog están estables” “Si tenemos que montar una base de datos, usamos preferiblemente PostgreSQL” “Cada una rellenamos un KPI antes de la reunión semanal, si varía en negativo, investigamos el motivo” “Durante el sprint, tan pronto encontramos un problema técnico que pone en riesgo la estimación, hablamos con el/la PO” … 2. Working Agreements
  • 14. Behaviour Driven Development para Team Members - Google Docs / Con fl uence / Notion Page / Code Repository - No son ley, se puede hacer challenge, propuesta, cambios de forma regular - Reduce el tiempo de on-boarding y la curva de aprendizaje hacia la cultura del equipo - Más efectivo (y sincero) que muchas job descriptions - Evita falsas expectativas y males entendidos sobre “cómo trabajamos” - Se puede hacer al estilo Architectural Decision Record (Context, Problem, Solution, Positive Results, Negative E ff ects to Mitigate): https://adr.github.io/ - Combinar con Boy Scout Rule: “Dejar el campo mejor que como lo encontramos” Ejercicio para casa: Hacer Explícito lo Implícito Antes de la daily, que cada persona del equipo escriba lo que crea que es un Working Agreement del equipo. En la retro, validar las propuestas e incluir las aceptadas por el equipo en un documento sencillo. 2. Working Agreements
  • 15.
  • 16. El pulso al equipo 1:1s: Checks individuales (reuniones/charlas) con cada persona que os reporta para comprobar estado emocional, objetivos profesionales, desarrollo profesional, formación, situación con el equipo, etc. (NO CURRO DIARIO). Cada 15 días aprox. Bidireccional: Buen momento para recabar información sobre cómo lo estamos haciendo. “¿Cómo viste aquella situación?”, “¿Qué podría haber mejorado en aquella comunicación?”, “¿No fui demasiado clar@, no? ¿Qué opinas?” 1:Ns: Checks grupales. Cada 4-8 semanas. Genial para introducir cambios que van a venir, reforzar resultados positivos, felicitar al equipo, presentar nuevos working agreements, etc. 3. 1:1s / 1:Ns
  • 17. Experimentamos con Org, Working Agreements, Tech, etc. 4. Experiments / Change Management
  • 18. Preparando y Reforzando el Cambio - Cada semana - Temas que van a entrar como Working Agreement en las próximas semanas (testing, hexagonal, devops, slack, etc.) - Rotando por dentro del equipo - Momento perfecto para hacer 1:N previo a la formación Ejercicio para casa: ¿Qué hemos aprendido? En las retros, ¿qué ha aprendido el equipo esta semana para ser mejor en la siguiente iteración? ¿Nos falta algún tipo de habilidad o conocimiento? ¿La podemos enseñar? 5. Formación Interna Semanal
  • 19. Facilitan que nuestras aplicaciones sean testeables Arquitecturas para nuestras aplicaciones: Semánticas con el Negocio (User Story Driven / Behaviour Driven), Fáciles de Testear y que mantienen las opciones abiertas a nivel de qué infraestructura utilizamos. Ejemplos de Arquitecturas Desacopladas: Onion Architecture, Clean Architecture, Ports and Adapters (aka Hexagonal Architecture), etc. Bonus Point: Monolitos vs. Monolitos Modulares vs. Micro-servicios 6. Arquitecturas Desacopladas
  • 20. En cualquier deporte, la victoria se construye desde la defensa - Buen Testing: barato, rápido de ejecutar, sin falsos positivos, y con amplia cobertura - Testing Unitario es el que mejor cumple, pero le falta cobertura en proyecto ya arrancados - Estrategia práctica y efectiva: Basarse en Unit Testing (con Arquitectura Hexagonal) testeando Outside-In (desde el Caso de Uso). No testeamos conexión con Infraestructura. - En proyecto existentes, mientras sube la cobertura de testing unitario, nos protegemos con tests de GUI. 7. Testing
  • 21. 1. KPIs 2. Working Agreements 3. 1:1s / 1:Ns 4. Experiments / Change Management 5. Formación Interna Semanal 6. Arquitecturas Desacopladas 7. Testing Unitario Outside-In