Post on 13-Apr-2017
ÁGILES Y FURIOSOSUn panorama del desarrollo ágil en aplicaciones Android
HOLA #rsgpe2016
Marco AvendañoCSM/CSD/CSPODesarrollador Web y Mobile@marcoviaweb
• Mobile• Desarrollo agil• Practicas agiles
MOBILE,MOBILE EVERYWHERE
Parte de nuestra vida
DESARROLLOAGIL
Agilidad significa ser capaz de moverse con rapidez y facilidad.
“La Agilidad es una mentalidad definida por valores, guiada por principios y manifestada a través de muchas prácticas diferentes”.
Agilidad
Ser HacerM
enta
lidad
Valo
res
Prin
cipi
os
Prác
tica
s
Beneficios de las metodologías ágiles en el proceso de desarrollo de software
• Acelera la entrega de software ante las necesidades cambiantes.
• Logra que el proceso sea flexible para adaptarse a las tecnologías emergentes.
PRACTICAS AGILESEN EL DESARROLLO MOVIL
Las aplicaciones móviles tienen algunos requisitos adicionales que son menos comunes que el software tradicional, incluyendo
• Dispositivo en movimiento.
• Tamaño de la pantalla.
• Riesgos de seguridad.• Compatibilidad
multiplataforma.• Complejidad de
pruebas.• Consumo de energía.• Proceso de
desarrollo.
Características del proceso de desarrollo móvil
• La industria del software móvil se centra más en el lanzamiento que en el proceso de desarrollo.
• Las aplicaciones están siempre cambiando y evolucionando.
• En la mayoría de los casos, los miembros del equipo comparten roles.
¿Se puede encarar de mejor manera esta situación?
SI… empleando prácticas
agiles
Las prácticas agiles mejoran el desarrollo de aplicaciones para dispositivos móviles
• Experimentación y adaptación natural.
• Capacidad de respuesta a los cambios de requerimientos y tecnología.
• Extensión de uso de sprints.
• Entrega escalonada del conjuntos de características.
¿.. y por donde iniciar?
Agile DevOps
Agile Development Continuous Testing
Continuous Delivery Continuous Integration
Agile development
Mobile Process Description Techniques
Mobile D An agile approach for Mobile Application Development XP, Crystal, RUP
RaPiD 7 Rapid Production of Documentation – 7 steps AM
Hybrid Methodology Desing
Designing an Agile Methodology for Mobile Software Development - A Hybrid Method Engineering Approach
ASD, NDP
MASAM Development Process of Mobile Application SW Based on Agile Methodology XP, RUP, SPEM
SLeSSA Scrum and Lean Six Sigma Integration Approach for the Development of Software Customization for Mobile Phones
Scrum, Lean Six Sigma
También se debería considerar
• Definición de la plataforma.
• Estrategia de monetización.
• Análisis de la competencia.
Continuous Testing
¿Por qué hacer pruebas?
• Identificar errores de manera temprana.
• Realizar cambios con confianza.
• Construir pruebas de regresión.
• Extender la vida útil del código fuente.
Cuadrante de pruebas
Patrón del cono de helado
Pirámide de pruebas agiles
Otras alternativas
Pruebas Automatizadas • Unit Tests• E2E Tests (UI Tests)
Pruebas Unitarias • JUnit
Assertion Description
assertEquals Test that two values are the same
assertTrue Test Boolean condition is true
assertFalse Test Boolean condition is false
assertNull Check that the object is null
assertNotNull Check that the object is not null
assertSame Test that both values refer to the same object reference
assertNotSame Test that both values do not refer to the same object reference
assertThat Test that the first value (object) matches the second value(or matcher)
fail Test should always fail
Mejorando laspruebas unitarias
• Hamcrest: mejorar los assertions.
• JaCoCo: medir la cobertura del codigo Junit.
• Mockito: mantenerse enfocado en el código.
Pruebas GUI
• Android JUnit3 framework.
• UIAutomator.• Robotium.• Cucumber-type
Android framework such as Calabash.
• Google’s Espresso.
ESPRESSO
Continuous Integration
Herramientas• Travis.• TeamCity.• Bamboo.• Jenkins.
Continuous Delivery
Google Play Developer Publishing API
• Subir nuevas versiones.
• Release de Apps mediante tracks.
• Creación y modificación de Google Play Store listing.
Conclusiones
• Las App tienen características particulares.
• Las practicas agiles contribuyen al desarrollo móvil.
• Existen diversos de recursos que se pueden usar.
GRACIAS!@marcoviawebmarcoviaweb@gmail.com