Agiles y furiosos Un panorama del desarrollo ágil en aplicaciones Android

Post on 13-Apr-2017

702 views 1 download

Transcript of Agiles y furiosos Un panorama del desarrollo ágil en aplicaciones Android

Á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