SlideShare ist ein Scribd-Unternehmen logo
1 von 51
Downloaden Sie, um offline zu lesen
Un día en un equipo ágil 
de desarrollo móvil 
Javier Armendáriz 
Mikel Elorz
¿De dónde venimos? 
Tus tarjetas de fidelización en el móvil
¿Qué hacemos?
¿Qué vamos a contar? 
● Metodología Ágil: Scrum 
● Test Driven Development (TDD) 
● Control de versiones 
● Preguntas
Metodología Ágil 
Scrum
Herramientas 
JIRA + JIRA Agile 
● 20$ - 10 usuarios
Herramientas 
Tablón físico
Tareas 
● Tipo 
○ Bugs 
○ Historias 
○ Improvements 
● Historias desde un punto de vista 
● Bugs describen el problema
Iteraciones 
1 semana 
● Reunión Scrum diaria 
● Demo 
● Retrospectiva 
● Planificación de Sprint
Reunión Scrum diaria 
● Hora fijada, 9:15am 
● De pie 
● Cada uno: 
○ ¿Qué hice ayer? 
○ ¿Qué voy a hacer? 
○ Problemas 
● Burndown
Demo 
● Viernes a la tarde 
● Compilar alphas de antemano 
● Tarde: 1€/5 min 
● Demostrar bugs 
● Demostrar tareas 
● Agrupar por funcionalidad 
● Apuntar nuevos bugs 
● ¡Cuidado con alargarse!
Retrospectiva 
¿Qué ha ido bien? 
¿Qué ha ido mal? 
¿Qué se puede mejorar?
Planificación de Sprint 
● Reordenar tareas 
● [Planning poker] 
● Valoramos los bugs: cantidad y dificultad 
● Elegimos cuánto entra
Planning Poker 
● Leemos el nombre de la historia 
● Explicamos su alcance 
○ Surgen preguntas interesantes 
● Estimación individual 
● Discusión de discrepancias 
● Acuerdo
Test Driven Development 
TDD
¿Porqué? 
Al principio usábamos TDD siempre que 
podíamos 
● Inexperiencia 
○ Al plantear los tests 
○ En el lenguaje de programación
TDD no es el Santo Grial de la 
programación
Tips (Do's & Don'ts) 
Si nos excedemos en el uso de TDD, pueden 
darse malas prácticas.
Tips (Do's & don'ts) 
● Abusar de los mocks 
a. Los test se vuelven tediosos de mantener 
b. Acabamos probando el resultado de los mocks en 
lugar del SUT 
c. Probablemente la clase a implementar tenga 
demasiados parámetros.
Tips (Do's & Don'ts) 
Esto nos lleva a tener clases poco usables (y 
que induce a errores)
Tips (Do's & Don'ts) 
Over-engineering
Tips (Do's & Don'ts)
Tips (Do's & Don'ts) 
● Hacer tests de implementaciones concretas 
en lugar de guiarnos por las 
especificaciones 
○ Suele ocurrir cuando hacemos tests después de 
implementar 
○ Por ejemplo: si una clase realiza acciones sobre un 
Collection, no hacer los tests asumiendo que 
recibiremos un ArrayList. Podríamos recibir un 
TreeSet y debería funcionar (Principio de 
sustitución de Liskov)
Tips (Do's & Don'ts) 
● Otras malas prácticas: 
○ Introducir dependencias entre tests 
○ "Romper" las reglas para maximizar la cobertura de 
los tests (ej: comprobar métodos privados) 
○ Limitarse a probar los resultados esperables. Las 
excepciones y los casos límite son importantes. 
○ No refactorizar las clases de tests unitarios.
Lecciones positivas 
Aplicar los principios del TDD en el día a día 
nos ha enseñado valiosas lecciones 
● Buenas prácticas de desarrollo 
○ Principios SOLID 
● Criterios de nombrado de clases, 
métodos… 
● El valor de hacer refactor 
● Un estilo de programación común
Single responsibility principle 
ScanIM 
CardPoints 
RewardCatalog 
Promos 
CardImage
Open-Close principle 
BaseActionBarActivity 
DialogActivity 
RequestHandlerActivity
Liskov substitution principle
Interface segregation principle
Dependency inversion principle
En definitiva... 
● TDD es una herramienta de trabajo 
○ Bien usado ayuda a escribir buen código y facilita 
su mantenimiento 
○ Usado en exceso da lugar a problemas y se 
convierte en una carga 
● Si una herramienta resulta una carga, no 
hay que temer en abandonarla
¿Cuándo usaríamos TDD? 
Librerías/APIs 
● Código estable con pocos cambios en el 
futuro 
● Documentación para el cliente 
Nuevos proyectos 
● Utilidades: clases de peticiones a red, base 
de datos, helpers...
Control de versiones
¿Cuál escoger? 
$ git + Bitbucket
Trabajo en equipo 
● ¿Colaborar y compartir sin dolores de 
cabeza? 
¿ ?
Trabajo en equipo 
● Modelo de ramas 
git-flow 
● Adaptado 
○ Desarrollo: «3.5.x» 
○ Maintenance: «3.4.x-maintenance 
» 
○ Cada funcionalidad 
una rama: 
«feature/user-list»
Trabajo en equipo 
Evitar: 
conflictos++
Trabajo en equipo 
Solución: rebase
Trabajo en equipo 
Resultado: 
conflictos--
Trucos 
● git merge --no-ff 
○ Preserva la estructura de 
ramas 
○ Por defecto git aplasta 
(squash) los commits 
● git rebase -vip 
○ [v] Verbose 
○ [i] Previsualizar y modificar 
qué commits se aplican 
○ [p] Conservar el árbol de 
commits
Trucos 
● gitx 
○ Interfaz visual 
● git mergetool 
○ Indispensable para resolver 
conflictos 
● git commit --amend 
○ Arregla el último commit 
○ Añadir cambios olvidados 
○ Cambiar el nombre del commit
Trucos 
● git cherry-pick 
○ Intenta aplicar los cambios de un commit 
cualquiera 
○ Útil para aplicar un parche de una rama a otra 
● git blame 
○ ¡WTF! ¿Quién ha hecho semejante burrada? 
○ Quién, cuándo y en qué commit se cambió 
cada línea
Trucos 
git config --global alias.hist "log --color --graph -- 
pretty=format:'%Cred%h%Creset |%C(yellow)%d%Creset %s % 
Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" 
git hist
¿ 
¿? 
? ? 
? 
¿ ? 
? 
¿? 
¿? 
? 
¿ 
? 
? 
¿? 
? 
? 
? 
¿ 
? 
¿? 
? 
¿? 
¿ 
? 
¿ 
? 
? 
¿ 
¿ 
? 
? 
Preguntas 
Descarga: bit.ly/quomai-agile-slides

Weitere ähnliche Inhalte

Was ist angesagt?

TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasOrlando Bustos Mateluna
 
Cómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCMCómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCM233 Grados de TI
 
Compartiendo cómo trabajamos haciendo uso de Kanban
Compartiendo cómo trabajamos haciendo uso de KanbanCompartiendo cómo trabajamos haciendo uso de Kanban
Compartiendo cómo trabajamos haciendo uso de Kanban233 Grados de TI
 
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...Federico Peinado
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutosRoberto Segura
 
TDD y Python
TDD y PythonTDD y Python
TDD y PythonJavier_J
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true historyidealistacreamcode
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development TechniquesEduardo Turiño
 
Como hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intentoComo hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intentoHernan Wilkinson
 
Pedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testingPedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testing233 Grados de TI
 
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)233 Grados de TI
 

Was ist angesagt? (17)

TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
Cómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCMCómo trabajamos en Plastic SCM
Cómo trabajamos en Plastic SCM
 
Compartiendo cómo trabajamos haciendo uso de Kanban
Compartiendo cómo trabajamos haciendo uso de KanbanCompartiendo cómo trabajamos haciendo uso de Kanban
Compartiendo cómo trabajamos haciendo uso de Kanban
 
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
 
Kata tdd
Kata tddKata tdd
Kata tdd
 
Plugin para-joomla-45-minutos
Plugin para-joomla-45-minutosPlugin para-joomla-45-minutos
Plugin para-joomla-45-minutos
 
Creando rascacielos con tdd
Creando rascacielos con tddCreando rascacielos con tdd
Creando rascacielos con tdd
 
Cobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBairesCobertura de pruebas unitarias - NetBaires
Cobertura de pruebas unitarias - NetBaires
 
TDD y Python
TDD y PythonTDD y Python
TDD y Python
 
Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Swift migration. the true history
Swift migration. the true historySwift migration. the true history
Swift migration. the true history
 
[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques[ES] webcat 2014-03 Demystifying Development Techniques
[ES] webcat 2014-03 Demystifying Development Techniques
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Como hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intentoComo hacer tdd y no morir en el intento
Como hacer tdd y no morir en el intento
 
Pedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testingPedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testing
 
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
Enrique Sánchez. Cómo ser un agile tester (y no morir intentándolo)
 

Andere mochten auch

Maria medina presentación
Maria medina presentaciónMaria medina presentación
Maria medina presentaciónMaria Medina
 
Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02
Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02
Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02Adelaida Cabrero
 
Fisheye by Atlassian
Fisheye by AtlassianFisheye by Atlassian
Fisheye by AtlassianDeiser
 
Implementar kp is_v040811
Implementar kp is_v040811Implementar kp is_v040811
Implementar kp is_v040811faau09
 
Manual jira , Instalación, Creación de Proyecto, Incidencias, Usuarios
Manual jira , Instalación, Creación de Proyecto, Incidencias, UsuariosManual jira , Instalación, Creación de Proyecto, Incidencias, Usuarios
Manual jira , Instalación, Creación de Proyecto, Incidencias, UsuariosLeo Ruelas Rojas
 
ITIL de la Teoría a la Práctica
ITIL de la Teoría a la PrácticaITIL de la Teoría a la Práctica
ITIL de la Teoría a la PrácticaNbarros
 

Andere mochten auch (6)

Maria medina presentación
Maria medina presentaciónMaria medina presentación
Maria medina presentación
 
Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02
Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02
Caso de éxito Congreso itSMF Vision13 s3.03-t6ed02
 
Fisheye by Atlassian
Fisheye by AtlassianFisheye by Atlassian
Fisheye by Atlassian
 
Implementar kp is_v040811
Implementar kp is_v040811Implementar kp is_v040811
Implementar kp is_v040811
 
Manual jira , Instalación, Creación de Proyecto, Incidencias, Usuarios
Manual jira , Instalación, Creación de Proyecto, Incidencias, UsuariosManual jira , Instalación, Creación de Proyecto, Incidencias, Usuarios
Manual jira , Instalación, Creación de Proyecto, Incidencias, Usuarios
 
ITIL de la Teoría a la Práctica
ITIL de la Teoría a la PrácticaITIL de la Teoría a la Práctica
ITIL de la Teoría a la Práctica
 

Ähnlich wie Un día en un equipo ágil de desarrollo móvil

Taller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDAlea Soluciones, S.L.
 
Mitos y leyendas de la gestión ágil y scrum
Mitos y leyendas de la gestión ágil y scrumMitos y leyendas de la gestión ágil y scrum
Mitos y leyendas de la gestión ágil y scrumIEEE Uruguay
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturinowebcat
 
Trabajando con código heredado y ser feliz
Trabajando con código heredado y ser felizTrabajando con código heredado y ser feliz
Trabajando con código heredado y ser felizDiego Caballero
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesJobsket
 
Introducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric MignotIntroducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric MignotPablo Lischinsky
 
[Bachelor_project] Asignación de exámenes finales
[Bachelor_project] Asignación de exámenes finales[Bachelor_project] Asignación de exámenes finales
[Bachelor_project] Asignación de exámenes finalesUniversidad de los Andes
 
Plantillas en Drupal 6
Plantillas en Drupal 6Plantillas en Drupal 6
Plantillas en Drupal 6Manuel Garcia
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoFinizens
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoDavid Monllaó
 

Ähnlich wie Un día en un equipo ágil de desarrollo móvil (20)

Taller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDDTaller PyConEs 2016: Introducción a TDD
Taller PyConEs 2016: Introducción a TDD
 
Análisis/QA
Análisis/QAAnálisis/QA
Análisis/QA
 
Mitos y leyendas de la gestión ágil y scrum
Mitos y leyendas de la gestión ágil y scrumMitos y leyendas de la gestión ágil y scrum
Mitos y leyendas de la gestión ágil y scrum
 
"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino"Demystifying development techniques" por @eturino
"Demystifying development techniques" por @eturino
 
Scrum
ScrumScrum
Scrum
 
Trabajando con código heredado y ser feliz
Trabajando con código heredado y ser felizTrabajando con código heredado y ser feliz
Trabajando con código heredado y ser feliz
 
10 - Unidad 3: PROCESOS TI - 3.2 Kanban
10 - Unidad 3: PROCESOS TI - 3.2 Kanban10 - Unidad 3: PROCESOS TI - 3.2 Kanban
10 - Unidad 3: PROCESOS TI - 3.2 Kanban
 
Scrum à la Pablo (Español)
Scrum à la Pablo (Español)Scrum à la Pablo (Español)
Scrum à la Pablo (Español)
 
Scrum
ScrumScrum
Scrum
 
Gestión proyecto DroidClic android app
Gestión proyecto DroidClic android appGestión proyecto DroidClic android app
Gestión proyecto DroidClic android app
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
Introducción a tdd
Introducción a tddIntroducción a tdd
Introducción a tdd
 
Introducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric MignotIntroducción al Test-Driven Development (TDD) por Eric Mignot
Introducción al Test-Driven Development (TDD) por Eric Mignot
 
Programación Extrema (XP)
Programación Extrema (XP)Programación Extrema (XP)
Programación Extrema (XP)
 
[Bachelor_project] Asignación de exámenes finales
[Bachelor_project] Asignación de exámenes finales[Bachelor_project] Asignación de exámenes finales
[Bachelor_project] Asignación de exámenes finales
 
Plantillas en Drupal 6
Plantillas en Drupal 6Plantillas en Drupal 6
Plantillas en Drupal 6
 
Tw ¿Por qué elegir ágil?
Tw   ¿Por qué elegir ágil? Tw   ¿Por qué elegir ágil?
Tw ¿Por qué elegir ágil?
 
S1.pdf
S1.pdfS1.pdf
S1.pdf
 
Los reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológicoLos reinos de finizens - Nuestro stark tecnológico
Los reinos de finizens - Nuestro stark tecnológico
 
El equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigoEl equipo de integracion de Moodle HQ es tu muy mejor amigo
El equipo de integracion de Moodle HQ es tu muy mejor amigo
 

Un día en un equipo ágil de desarrollo móvil

  • 1. Un día en un equipo ágil de desarrollo móvil Javier Armendáriz Mikel Elorz
  • 2. ¿De dónde venimos? Tus tarjetas de fidelización en el móvil
  • 4. ¿Qué vamos a contar? ● Metodología Ágil: Scrum ● Test Driven Development (TDD) ● Control de versiones ● Preguntas
  • 6. Herramientas JIRA + JIRA Agile ● 20$ - 10 usuarios
  • 8. Tareas ● Tipo ○ Bugs ○ Historias ○ Improvements ● Historias desde un punto de vista ● Bugs describen el problema
  • 9. Iteraciones 1 semana ● Reunión Scrum diaria ● Demo ● Retrospectiva ● Planificación de Sprint
  • 10. Reunión Scrum diaria ● Hora fijada, 9:15am ● De pie ● Cada uno: ○ ¿Qué hice ayer? ○ ¿Qué voy a hacer? ○ Problemas ● Burndown
  • 11. Demo ● Viernes a la tarde ● Compilar alphas de antemano ● Tarde: 1€/5 min ● Demostrar bugs ● Demostrar tareas ● Agrupar por funcionalidad ● Apuntar nuevos bugs ● ¡Cuidado con alargarse!
  • 12. Retrospectiva ¿Qué ha ido bien? ¿Qué ha ido mal? ¿Qué se puede mejorar?
  • 13. Planificación de Sprint ● Reordenar tareas ● [Planning poker] ● Valoramos los bugs: cantidad y dificultad ● Elegimos cuánto entra
  • 14. Planning Poker ● Leemos el nombre de la historia ● Explicamos su alcance ○ Surgen preguntas interesantes ● Estimación individual ● Discusión de discrepancias ● Acuerdo
  • 16.
  • 17. ¿Porqué? Al principio usábamos TDD siempre que podíamos ● Inexperiencia ○ Al plantear los tests ○ En el lenguaje de programación
  • 18. TDD no es el Santo Grial de la programación
  • 19. Tips (Do's & Don'ts) Si nos excedemos en el uso de TDD, pueden darse malas prácticas.
  • 20. Tips (Do's & don'ts) ● Abusar de los mocks a. Los test se vuelven tediosos de mantener b. Acabamos probando el resultado de los mocks en lugar del SUT c. Probablemente la clase a implementar tenga demasiados parámetros.
  • 21. Tips (Do's & Don'ts) Esto nos lleva a tener clases poco usables (y que induce a errores)
  • 22. Tips (Do's & Don'ts) Over-engineering
  • 23. Tips (Do's & Don'ts)
  • 24. Tips (Do's & Don'ts) ● Hacer tests de implementaciones concretas en lugar de guiarnos por las especificaciones ○ Suele ocurrir cuando hacemos tests después de implementar ○ Por ejemplo: si una clase realiza acciones sobre un Collection, no hacer los tests asumiendo que recibiremos un ArrayList. Podríamos recibir un TreeSet y debería funcionar (Principio de sustitución de Liskov)
  • 25. Tips (Do's & Don'ts) ● Otras malas prácticas: ○ Introducir dependencias entre tests ○ "Romper" las reglas para maximizar la cobertura de los tests (ej: comprobar métodos privados) ○ Limitarse a probar los resultados esperables. Las excepciones y los casos límite son importantes. ○ No refactorizar las clases de tests unitarios.
  • 26. Lecciones positivas Aplicar los principios del TDD en el día a día nos ha enseñado valiosas lecciones ● Buenas prácticas de desarrollo ○ Principios SOLID ● Criterios de nombrado de clases, métodos… ● El valor de hacer refactor ● Un estilo de programación común
  • 27.
  • 28.
  • 29. Single responsibility principle ScanIM CardPoints RewardCatalog Promos CardImage
  • 30.
  • 31. Open-Close principle BaseActionBarActivity DialogActivity RequestHandlerActivity
  • 32.
  • 34.
  • 36.
  • 38. En definitiva... ● TDD es una herramienta de trabajo ○ Bien usado ayuda a escribir buen código y facilita su mantenimiento ○ Usado en exceso da lugar a problemas y se convierte en una carga ● Si una herramienta resulta una carga, no hay que temer en abandonarla
  • 39. ¿Cuándo usaríamos TDD? Librerías/APIs ● Código estable con pocos cambios en el futuro ● Documentación para el cliente Nuevos proyectos ● Utilidades: clases de peticiones a red, base de datos, helpers...
  • 41. ¿Cuál escoger? $ git + Bitbucket
  • 42. Trabajo en equipo ● ¿Colaborar y compartir sin dolores de cabeza? ¿ ?
  • 43. Trabajo en equipo ● Modelo de ramas git-flow ● Adaptado ○ Desarrollo: «3.5.x» ○ Maintenance: «3.4.x-maintenance » ○ Cada funcionalidad una rama: «feature/user-list»
  • 44. Trabajo en equipo Evitar: conflictos++
  • 45. Trabajo en equipo Solución: rebase
  • 46. Trabajo en equipo Resultado: conflictos--
  • 47. Trucos ● git merge --no-ff ○ Preserva la estructura de ramas ○ Por defecto git aplasta (squash) los commits ● git rebase -vip ○ [v] Verbose ○ [i] Previsualizar y modificar qué commits se aplican ○ [p] Conservar el árbol de commits
  • 48. Trucos ● gitx ○ Interfaz visual ● git mergetool ○ Indispensable para resolver conflictos ● git commit --amend ○ Arregla el último commit ○ Añadir cambios olvidados ○ Cambiar el nombre del commit
  • 49. Trucos ● git cherry-pick ○ Intenta aplicar los cambios de un commit cualquiera ○ Útil para aplicar un parche de una rama a otra ● git blame ○ ¡WTF! ¿Quién ha hecho semejante burrada? ○ Quién, cuándo y en qué commit se cambió cada línea
  • 50. Trucos git config --global alias.hist "log --color --graph -- pretty=format:'%Cred%h%Creset |%C(yellow)%d%Creset %s % Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit" git hist
  • 51. ¿ ¿? ? ? ? ¿ ? ? ¿? ¿? ? ¿ ? ? ¿? ? ? ? ¿ ? ¿? ? ¿? ¿ ? ¿ ? ? ¿ ¿ ? ? Preguntas Descarga: bit.ly/quomai-agile-slides