Métodos aplicados al desarrollo de aplicaciones móviles

Por

En el mundo del desarrollo de software existen muchos métodos de desarrollo, cada uno con sus puntos fuertes y sus puntos débiles. En el caso del desarrollo de aplicaciones móviles sucede lo mismo, y cuando te planteas qué método elegir tienes que escoger aquella funcion que vaya acorde a tus necesidades. 

 

Algunos de los métodos más conocidos son los siguientes:


• Modelo waterfall

• Desarrollo rápido de aplicaciones

• Desarrollo ágil (cualquiera de sus variantes)

• Mobile-D

 

Una de las características importantes de la gran mayoría del desarrollo de aplicaciones móviles es su corta duración. Esto se debe a factores como la gran competencia en el sector, los cambios en el mismo con la aparición, casi constante, de novedades tanto software como hardware, el hecho de que muchas aplicaciones nacen con un desarrollo precoz en forma de prototipo (y van evolucionado después) o incluso la simplicidad de las aplicaciones, que no requieren grandes desarrollos. Esta suele ser, salvo algunas excepciones, la norma de los desarrollos de aplicaciones para dispositivos móviles.

 

Modelo waterfall

El modelo waterfall es el modelo más estático y predictivo. Es aplicable en proyectos en los que los requisitos están fijados y no van a cambiar durante el ciclo de vida del desarrollo. Esta aproximación divide el proyecto en fases y en este modelo, el desarrollo se interpreta como el agua que va cayendo de un estanque al siguiente. Se le da mucho énfasis a la planificación, a los tiempos, a las fechas límite y al presupuesto.

 350px-El_modelo_de_desarrollo_en_cascada.svg.png

 

En el contexto del desarrollo de aplicaciones móviles, el modelo waterfall puede ser aplicable a proyectos realmente controlados y previsibles, en los que no hay mucha incertidumbre por lo que se desea hacer y para los que no son importantes los cambios constantes en la industria.

 

Desarrollo rápido de aplicaciones

El desarrollo rápido de aplicaciones es un método de desarrollo interactivo cuyo objetivo es conseguir prototipos lo antes posible para mejorarlos después, poco a poco.

 psd-trec.png

 

Se suele priorizar la implementación sobre la planificación, y se utilizan muchos patrones de diseño conocidos para poder adaptarse de la mejor manera a cambios en los requerimientos.

 

El desarrollo rápido de aplicaciones es un método muy útil para el desarrollo de proyectos realmente urgentes con tiempos de entrega muy cortos.

 

Desarrollo ágil

El desarrollo ágil es un modelo de desarrollo basado en iteraciones, donde en cada iteración se realizan todas las fases del ciclo de desarrollo.

 images-1.png

El desarrollo ágil se basa en los principios del manifiesto ágil y sus valores éticos, que tratan de dar más valor a algunos conceptos, pero sin dejar de lado los demás. Son los siguientes:


1) Dar más valor a los individuos y a sus interacciones que a los procesos y herramientas.

2) Dar más valor al software que funciona que a la documentación exhaustiva.

3) Dar más valor a la colaboración con el cliente que a la negociación contractual.

4) Dar más valor a la respuesta al cambio que al seguimiento de un plan.

 

Con estos valores se intenta conseguir, entre otras cosas, entregar algo lo más pronto posible y evitar problemas originados por cambios de requisitos. Esto es muy apropiado para proyectos cambiantes, ya sean grandes o pequeños, ya que mediante estos valores se pueden mitigar los riesgos.

 

Para conseguir proyectos que puedan cambiar fácilmente, se pone especial atención en la calidad de los productos conseguidos, cosa que es realmente importante en proyectos de software para dispositivos móviles. Para conseguir esto, se basan en las pruebas de la aplicación y, a menudo, las automatizan.


Los métodos ágiles suelen ser muy adecuados para el desarrollo de aplicaciones móviles por las siguientes razones:


Alta volatilidad del entorno: Con cambios en entornos de desarrollo, nuevos terminales y nuevas tecnologías a un ritmo mucho más elevado que en otros entornos de desarrollo.


• Equipos de desarrollo pequeños: Dado que los desarrollos móviles suelen ser proyectos relativamente pequeños, los equipos no suelen ser muy grandes. Generalmente son llevados a cabo por desarrolladores individuales o por PYME.


• Software no crítico: No suelen ser aplicaciones de alto nivel de criticidad, dado que suelen ser aplicaciones para entretenimiento o gestión empresarial no crítica.


• Ciclos de desarrollo cortos: Dada la evolución constante de la industria, se requieren ciclos de vida realmente cortos para poder dar salida a las aplicaciones a tiempo.

 

Mobile-D

El método Mobile-D se desarrolló junto con un proyecto finlandés en el 2004. Fue realizado, principalmente, por investigadores de la VTT (Instituto de Investigación Finlandés) y, a pesar de que es un método antiguo, sigue en vigor (se está utilizando en proyectos de éxito y está basado en técnicas que funcionan).


El objetivo es conseguir ciclos de desarrollos muy rápidos en equipos muy pequeños (de no más de diez desarrolladores) trabajando en un mismo espacio físico. Según este método, trabajando de esa manera se deben conseguir productos totalmente funcionales en menos de diez semanas.

 

mobile-d-3-638.jpg


Se trata de método basado en soluciones conocidas y consolidadas: Extreme Programming (XP), Crystal Methodologies y Rational Unified Process (RUP), XP para las prácticas de desarrollo, Crystal para escalar los métodos y RUP como base en el diseño del ciclo de vida.

 

Cada fase (excepto la inicial) tiene siempre un día de planificación y otro de entrega. Las fases son:


• Exploración. Se dedica a la planificación y a los conceptos básicos del proyecto. Es diferente del resto de fases.


• Inicialización. Se preparan e identifican todos los recursos necesarios. Se establece el entorno técnico.
Enlace de interés


• Fase de producto. Se repiten iterativamente las subfases, con un día de planificación, uno de trabajo y uno de entrega. Aquí se intentan utilizar técnicas como la del test driven development para conseguir la mayor calidad.

• Fase de estabilización. Se llevan a cabo las acciones de integración para asegurar que el sistema completo funciona correctamente.


• Fase de pruebas y reparación. Tiene como meta la disponibilidad de una versión estable y plenamente funcional del sistema según los requisitos del cliente.

 

DEMO Emprendedor