Imagen obtenida de: Techknol.net |
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 funcionales, 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 @PMOInformatica, pá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”
>> 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”
Errores comunes en Desarrollo de Software
Errores clásicos en la gestión de desarrollo de software
Errores comunes en el desarrollo software: Recopilación
Errores clásicos en la gestión de desarrollo de software
Errores comunes en el desarrollo software: Recopilación
Desarrollo de Carrera
Las 15 certificaciones que serán mejor pagadas en 2013
10 habilidades (skills) de desarrollo de software demandadas en 2013
Habilidades interpersonales cada vez más demandadas en los profesionales de Tecnologías
de Información
Las Habilidades y Conocimientos más buscados en el área de Tecnología de Información (TI)
ITIL
10 pasos para estudiar para el examen ITIL Intermediate (2da Parte)
10 pasos para estudiar para el examen ITIL Intermediate (1era Parte)
Recomendaciones para el exámen ITIL Intermediate
ITIL Intermediate: ¿Ciclo de vida de servicios o capacidades de servicio?
La Certificación ITIL v3 Nivel Intermedio
ITIL y el Desarrollo de Software
No hay comentarios :
Publicar un comentario