Barra Superior

PMOinformatica.com
La oficina de proyectos de informática
La web sobre gerencia de proyectos de informática, software y tecnología.
Síguenos en:     

miércoles, 14 de agosto de 2013

Guía de desarrollo de aplicaciones para Móviles - 2da Parte: Desarrollo

Imagen obtenida de: Techknol.net
En la primera parte de la serie “Guía de desarrollo de aplicaciones para móviles”, exploramos los diferentes conjuntos de habilidades y enfoques que se requieren aplicar al diseñar aplicaciones para teléfonos móviles inteligentes (Smartphone) y las tabletas.

Pmoinformatica.com, “La Oficina de Proyectos de Informática” presenta a continuación la segunda entrega de la serie, en la cual nos enfocaremos a establecer las diferencias en el proceso de desarrollo de software que debe aplicarse en proyectos de aplicaciones móviles, en comparación con los proyectos típicos o tradicionales de las TIC.

Para establecer las diferencias del desarrollo para móviles del de un aplicación de software normal, discutiremos los siguientes puntos: El enfoque metodológico a utilizar (Desarrollo de Software tradicional o Desarrollo Ágil), Desarrollo de Apps nativas, especificas del dispositivo y del sistema operativo, y por último el desarrollo para browser web de los móviles (HTML5).

¿Desarrollo de Software Tradicional o Desarrollo Ágil?

Lo primero que debemos seleccionar al iniciar un proyecto de desarrollo de un App para móviles es la metodología de desarrollo de software a utilizar.

Si aplicáramos un desarrollo en cascada (tradicional), deberíamos seguir religiosamente estos pasos: primero obtener los requerimientos, y firmarlos, luego escribir los documentos de diseño funcional y técnico, construir la aplicación, hacer pruebas unitarias, pasara por el proceso de QA y luego la salida (Reléase).

Sin embargo, el enfoque tradicional tiene un problema para proyectos de aplicaciones móviles, y es que depende en gran medida que las especificaciones de diseño sea lo que el usuario realmente quiere para tener éxito, ¿Quién define estas especificaciones?, como no podemos entrevistar a todos los miles de usuarios potenciales de nuestro App, tenemos que recurrir a un grupo de expertos en producto quienes tendrán que interpretar los deseos de este usuario.

¿Qué sucedería si diseñamos las 40 funcionalidades (features) de nuestro App?, desarrollamos el App y al lanzar el producto nos damos cuenta que esto no era lo que el usuario final quería.

En lugar del enfoque tradicional, podríamos optar por lanzar un “mínimo producto viable”, con algunas pocas funcionalidades, y luego utilizar la retroalimentación de nuestros clientes para incorporarlo en el resto de las 40 funcionalidades, este enfoque “ágil” nos permite tener mayor seguridad que estamos invirtiendo el esfuerzo en el producto que el cliente realmente quiere y necesita.

De hecho, la mayoría de la comunidad en la web coincide que el desarrollo para móviles se adapta mejor a métodos de desarrollo ágil de software, aunque existe una minoría de proyectos en el área empresarial (por ejemplo extensiones del ERP de la empresa) en el cual se aplican métodos predictivos tradicionales.

Desarrollo de aplicaciones nativas

Cada uno de los principales fabricantes de teléfonos móviles y tabletas (Apple, Android, Blackberry) dispone de su propio sistema operativo, por ejemplo Apple cuenta con el iOS y los dispositivos Android utilizan ese sistema operativo.

Desarrollar aplicaciones nativas implica utilizar las herramientas que proporcionan estos sistemas operativos, por ejemplo Android se basa en Java y iOS en Objetive C, estos son los lenguajes de programación en el cual deben ser desarrolladas las aplicaciones. Estas aplicaciones residen en el dispositivo, y pueden interactuar con componentes de servidor.

Debe definirse un proceso de construcción para cada tecnología o sistema operativo involucrado en el proyecto, por ejemplo, si se tiene un proyecto de desarrollo de un App que se va a distribuir en Apple iPhone (iOS), teléfonos Android (iOS) y BlackBerry, el proceso de construcción se debe diagramar de la siguiente forma:

Imagen obtenida de: Mobile Effect

Si a esto añadimos dispositivos adicionales como Tablets Apple o Android, u otros dispositivos como el Windows Phone, o dispositivos Windows 8, pues como veremos tendríamos que abrir un proceso de construcción distinto para cada dispositivo, con diferentes conocimientos y habilidades requeridos de los desarrolladores de software que intervendrían en el proceso. El proyecto puede crecer en tamaño y complejidad rápidamente.

¿Cómo manejar esta complejidad?, pues existen varias alternativas: 

  • Construir aplicaciones para un solo sistema operativo, construiremos un equipo de desarrollo y capacidades de la organización cohesionados, pero podemos perder clientes potenciales en otros sistemas, ¿Qué ocurrirá si desarrollamos sólo para Android y nos piden un App para Apple?, ¿diríamos que no?, en eso debemos pensar.
  • Construir aplicaciones en un solo sistema operativo, luego cuando tengamos la retroalimentación del cliente, desplegar en otros sistemas operativos. Esto nos permite reducir la complejidad de nuestro desarrollo inicial, sobre todo cuando es un nuevo producto que está definiendo un nuevo mercado. 
  • Construir en tres o cuatro sistemas operativos, pero debemos tener en cuenta la complejidad del proyecto, por ejemplo si vamos a construir para tablets y smartphones en los sistemas Apple, Android y Blackberry, podríamos necesitar entre 3 y 6 equipos de desarrollo, lo cual puede ser más complejo de gestionar. 

Desarrollar en HTML5 (para el Browser Web)

Para minimizar el impacto de desarrollar aplicaciones nativas, algunas compañías han considerado el HTML5 o un enfoque híbrido entre aplicaciones cliente servidor. Esto es, desarrollar la aplicación del lado de servidor, en la tecnología que se seleccione (por ejemplo Java, PHP o .NET), utilizando componentes para hacer la interfaz gráfica más amigable, y que se acceda a estas aplicaciones por medio del browser web que se puede instalar en cada dispositivo móvil.

Sin embargo, es necesario recordar que igualmente, es necesario producir código diferente para acomodar las diferentes plataformas (iOS, Android, Blackberry, etc.) y si estamos desarrollando una aplicación con funcionalidades gráficas avanzadas, terminaremos en un escenario similar al de las aplicaciones nativas.

Adicionalmente, se debe lidiar con el hecho que HTML5 es un estándar que aún está en constante evolución, lo cual ha resultado en muchas variantes en los browsers, para lo cual en un proyecto como este se necesitaría una versión de aplicación para cada uno.

Cual enfoque es el adecuado

Desarrollar aplicaciones nativas o basadas en el browser pueden ser ambos enfoques válidos, todo dependerá de las necesidades del producto que estemos desarrollando y de los objetivos que necesitemos lograr, por ejemplo, necesitamos velocidad o vistosidad gráfica, facilidad para aplicar cambios, aplicaciones empresariales u orientadas a cliente final, es decir, deben considerarse todas las variables al tomar una decisión.

¿Y qué opinas tú? 

¿Eres desarrollador de aplicaciones para dispositivos móviles?, ¿puedes compartir recomendaciones con la comunidad?, ¿que aspectos consideras que deben tomarse en cuenta en el diseño y desarrollo que faltan en este artículo?, te invitamos a dejar tus comentarios en la Web de La Oficina de Proyectos de Informática (pmoinformatica) (Si lo deseas, puedes firmar tu comentario con la dirección de tu web). También puedes suscribirte por los distintos canales, incluyendo lista de correo electrónico, al Twitter @PMOInformaticapágina de Facebook o al feed RSS.

<< Artículo anterior: Guía de desarrollo de aplicaciones para Móviles - 1era Parte: Diseño


¿Interesado en libros sobre Gestión de Tecnología?










Learning iOS 
Design
Autor: William
Van Hecke
>> España (amazon.es)
>> Latinoámerica (amazon.com)
Android: guía de
desarrollo de aplicaciones
para smartphones y
tabletas

Autor: Sebastien Perochon
>> España (amazon.es)
>> Latinoamérica (amazon.com)
Desarrollo de
aplicaciones para 

Android 2013 
Autor: José Ribas Lequerica
>> España (amazon.es)
>> Latinoámerica (amazon.com)
Programación en Objective-C.
Programa
para MAC y
iPhone

Autor: Miguel
Ángel G. Arias
>> España (amazon.es)
>> Latinoamérica (amazon.com)

Novedades Amazon

¿Interesado en otros productos Amazon sobre Gestión de Tecnología de Información y Proyectos?
>> Sección de Productos Amazon

Fuente: 

5 Critical Ways Mobility Projects are Different | #2 of 5: Mobile Development

Otros artículos en “La Oficina de Proyectos de Informática”

No hay comentarios :

Publicar un comentario en la entrada

Pmoinformatica.com," La Oficina de Proyectos de Informática ", es un participante en el Programa de Servicios de Amazon Associates LLC, un programa de publicidad de afiliación diseñado para proporcionar un medio para que sitios web puedan ganar honorarios por la publicidad y enlaces a amazon.com y amazon.es.