Aunque hay cierta confusión y debate acerca de qué engloba y qué no un desarrollo multimedia, es posible afirmar con seguridad que incluye la generación de productos y contenidos, en especial en los nuevos medios e Internet como entornos nativos; asimismo, es patente la necesidad tanto de planificación como de un modelo común de trabajo y terminología, que son necesarios tanto para el arranque como para la consecución de las metas fijadas en un proyecto multimedia.
En el presente artículo, se ofrece información básica ampliamente consensuada por la industria acerca del significado y las características de los desarrollos multimedia con el fin de facilitar la comprensión de conceptos, modelos y estrategias clave a aquellos que comienzan su carrera en el universo multimedia, tan prometedor y apasionante como complejo.
¿Qué es un desarrollo multimedia?
Un desarrollo multimedia es el núcleo de trabajo de todo proyecto multimedia y trabaja los aspectos clave para la creación de un producto o servicio completo, que cumpla de manera eficaz y eficiente los objetivos fijados y responda con la mayor calidad posible a todas las áreas y principios de las disciplinas que se han aplicado para crearlo, desde la programación hasta el diseño de interfaces.
Si nos ceñimos a las definiciones más extendidas y estrictas en la industria del software y los nuevos medios, un desarrollo multimedia es una parte del proceso de producción de un producto o servicio multimedia que está centrada en la construcción del producto en sí, independientemente de otras áreas como presupuesto, marketing o gestión de equipos.
En definitiva, lo que en realidad importa en ese asunto es distinguir semánticamente y con claridad los conceptos clave del vocabulario del proyecto, en especial en la comunicación con otras personas implicadas en el proyecto y en la documentación del mismo, sea cual sea la terminología que se prefiera utilizar.
Un desarrollo multimedia se puede abordar de muchas maneras, ya sean lineales o no lineales. Antes de arrancar el proceso de desarrollo, es clave conocer los métodos y estrategias disponibles para seleccionar y aplicar los más adecuados al proyecto.
Similitudes con otros procesos de desarrollo
Hay que tener en cuenta que, al tratarse de una disciplina joven, heredera en cierto modo de muchos aspectos de otros ámbitos, como los viejos medios o la ingeniería industrial, tiene una gran influencia de los métodos utilizados en dichos ámbitos, y estos se pueden extrapolar a veces de manera muy directa a las necesidades del proyecto multimedia.
En especial, hay una relación estrecha entre el proceso de desarrollo multimedia y la producción de contenidos audiovisuales y los proyectos de desarrollo de ingeniería de software, tanto en la creación de elementos como en su ensamblaje. De hecho, ambas aproximaciones son necesarias por ser complementarias a las necesidades de un proyecto multimedia. Los ciclos y modelos de desarrollo de software no ofrecen guías o modelos normalizados en los aspectos puramente creativos del desarrollo multimedia, pero proveen de una sólida definición de estrategias y pautas de trabajo, como la definición de requisitos o el testeo de los productos, sobre las que los métodos creativos y audiovisuales pueden acomodarse.
Fases de desarrollo
El proceso de desarrollo de un proyecto multimedia se puede estructurar en múltiples fases. A continuación se listan las más habituales, aunque pueden variar de proyecto a proyecto por la diversa naturaleza que pueden llegar a tener:
- Análisis: definición de los objetivos y requisitos base del proyecto.
- Planificación: identificar necesidades y problemáticas clave para el desarrollo, así como establecer un plan estratégico de trabajo.
- Implementación/desarrollo/creación/producción: generación y ensamblaje de componentes necesarios. A veces, también se puede utilizar el término implementación para definir una posible fase, en la que el producto se instala en otra infraestructura una vez terminado o próximo a estarlo (en inglés también se usa para dicha fase el término deployment, despliegue).
- Testeo: validación del trabajo llevado a cabo y corrección de errores y problemas.
- Documentación: mantenimiento de un registro del proceso de desarrollo, creación de guías de usuario, libros de estilo, entre otros.
- Mantenimiento: corrección de errores una vez que se ha lanzado el producto/servicio. Lo habitual es preparar herramientas y protocolos de control y gestión, así como pasar en adelante el resto de las tareas a otro personal, ya sea bajo las órdenes del product manager del proyecto o de terceros.
Es muy importante tener en cuenta que la lista anterior se debe tomar con extrema precaución, tanto porque las fases pueden variar mucho de un modelo de trabajo a otro, como porque los desarrollos multimedia no suelen ser procesos estrictamente lineales, donde cabe concluir una fase para poder avanzar hacia la siguiente.
Modelos de desarrollo
Aunque las fases de desarrollo pueden variar, en especial a grandes rasgos, los modelos de trabajo posibles son claros y explícitos, y responden a múltiples escenarios y características de los proyectos, lo que permite la hibridación entre ellos para alcanzar una gestión óptima del proyecto. Hay una gran variedad, por lo que en este artículo se indican los métodos de uso más extendido y con mayor afinidad con los desarrollos multimedia.
Cascada (waterfall)
El equipo debe seguir en estricto orden las fases de análisis de requisitos, diseño, implementación, validación, instalación y mantenimiento. Solo es recomendable en proyectos muy estructurados y lineales, pues su rigidez dificulta los procesos de revisión y mejora de fases ya concluidas.
Iterativo e incremental
En especial, es adecuado para desarrollos de gran complejidad. Durante el proceso, se producen a la vez múltiples iteraciones del ciclo de desarrollo, de manera evolutiva e incremental respecto a la creación del producto. La relación entre iteraciones e incrementos en la construcción del producto así como su número depende de la naturaleza del proyecto en cuestión.
Desarrollo rápido de aplicaciones (RAD, del inglés rapid application development)
Minimiza la planificación en favor del prototipado, por lo que también se conoce como de rápido prototipado. El proceso de planificación se entrelaza directamente y avanza en paralelo con el de desarrollo. El ahorro de tiempo en planificación acelera el desarrollo y lo hace más fácil de cambiar si se dan alteraciones en los requisitos y objetivos. Es recomendable para pequeños proyectos de alcance muy limitado, pruebas preliminares para evaluar la viabilidad de un proyecto o en las fases iniciales de un proyecto que después será migrado a otro modelo.
Espiral
Su filosofía es controlar y gestionar el riesgo en las diferentes fases de desarrollo. Combina aspectos de los modelos en cascada y el RAD. Es especialmente adecuado en proyectos complejos de gran envergadura. El desarrollo se visualiza como una espiral que pasa a través de un número de iteraciones (giros completos), sobre cuadrantes que representan la determinación de objetivos, la identificación y resolución de riesgos, el desarrollo y testeado y la planificación de la siguiente iteración.
Agile
Se trata de uno de los métodos más populares actualmente. Utiliza como base un desarrollo de tipo iterativo, pero con un enfoque más centrado en el personal implicado, que relega la planificación a un segundo plano en favor del feedback como primer mecanismo de control. El feedback se gestiona mediante pruebas sobre versiones incrementales del producto/servicio en desarrollo.
Agile se ha utilizado como base para modelar múltiples variantes, tales como:
- Programación extrema (XP): las fases se culminan en pasos extremadamente cortos en duración o incluso continuos, y no necesariamente se completan, lo que hace avanzar el proceso de desarrollo de manera muy rápida. Una de las primeras tareas es precisamente preparar tests automatizados para concretar los objetivos de desarrollo, y entonces es cuando se comienza a programar. La creación de nuevos tests y fases de programación es iterativa. La arquitectura suele llevarse a cabo con posterioridad como refactoring, y la ejecutan los mismos programadores. Solo en las fases finales se aborda el diseño y se ensambla al código. El resultado, incompleto pero ya funcional, se muestra a los usuarios y algunos miembros del equipo de desarrollo. Se reanuda el ciclo escribiendo más tests para la nueva parte clave del sistema que hay que desarrollar.
- Scrum: se centra en gestionar proyectos en los casos en los que es difícil realizar planificaciones completas o a largo plazo. Utiliza mecanismos de control empíricos, como loops de feedback, como técnica central de gestión del proyecto. Su estrategia en planificación y gestión es la toma de decisiones basadas en certezas y propiedades de funcionamiento, y en el ámbito de la operación la unidad básica de trabajo es el sprint, una tarea acotada en el tiempo que arranca con una reunión para su planificación y termina con otra de análisis en retrospectiva.
- DSDM (dynamic systems development method): su objetivo clave es gestionar proyectos caracterizados por presupuestos y calendarios estrictos. El DSDM se centra en prevenir los errores más comunes en los proyectos (en especial aquellos de sistemas de información) tales como los anteriores, así como en la falta de implicación de los usuarios y el compromiso de la alta dirección de la organización.
Exploratory programming
Implementa una solución inicial para definir las especificaciones y se va modificando hasta la satisfacción del cliente o hasta aclarar los datos y estructuras necesarios que modelarán los requisitos para una futura implementación. Es altamente iterativo, requiere un elevado nivel de programación y se usa más en el desarrollo de videojuegos.
Code & fix
Traducible literalmente como “programa y arregla”, más que un método es una técnica que se usa en casos de alta presión respecto a entregas por desarrolladores veteranos así como por aquellos inexpertos en métodos de desarrollo. Centrándose solamente en el código, evitando el diseño, el programador se dedica a producir el mayor código posible de manera inmediata, tras lo cual se testea y se vuelve a programar para solventar los bugs encontrados, hasta que el producto o elemento del mismo se puede entregar. Este método solo es recomendable para programadores extremadamente expertos en el área del proyecto en cuestión y los lenguajes utilizados, ya que los riesgos inherentes son muy elevados (por ejemplo, producir código espagueti).
Estados de producto
Aunque los desarrollos multimedia no siempre llevan asociados la producción de software y servicios, es habitual usar su terminología de versiones para llevar un seguimiento del estado de desarrollo de los mismos:
- Alfa: Primer estado en el que el producto se puede testear. Funcionalidad básica o limitada, que indica las funcionalidades que se desean para la versión terminada.
- Beta: El producto es capaz de realizar todas o casi todas las funcionalidades objetivo, aunque con problemas operativos y de rendimiento, bugs e interfaces no finalizadas. La variante perpetual beta se aplica a productos que están en constante evolución, y a veces para liberar a los desarrolladores del producto de determinadas responsabilidades respecto a los usuarios.
- Release candidate: Producto prácticamente terminado, pendiente de nuevos tests, resolución de bugs y mejoras, pero que resulta ya un producto sólido para ser utilizado por los usuarios finales. Se difunde principalmente a beta testers o grupos seleccionados de usuarios con fines de marketing, y para recoger feedback.
- Final/release to marketing/general availability (going live)/release to web: Dependiendo de la naturaleza del producto, se utilizará el término más adecuado. Release to marketing se utiliza para productos que van a ser distribuidos junto con otros productos; general availability se usa para lanzamientos al público en general, y release to web es para productos que utilizan Internet como principal medio de distribución.
Áreas de diseño y perfiles profesionales
Hay tres áreas principales de diseño implicadas en el desarrollo de un proyecto multimedia, y cada miembro del equipo de desarrollo pertenece a una de ellas (o, en casos excepcionales, a varias):
- Media: diseño visual (imagen, animación y vídeo) y audio, alta complejidad, gran número de especialistas disponibles.
- Software: arquitectura, patrones de programación, objetos, alta complejidad, gran número de especialistas disponibles.
- Interacción: diseño centrado en el usuario, interacción persona-ordenador, complejidad media, pocos especialistas disponibles.
Mientras que los especialistas en las dos primeras áreas suelen trabajar sin muchas intersecciones de tareas entre áreas, los especialistas en interacción a menudo interactúan en el equipo con las otras dos tipologías.
Técnicas
Algunas de las técnicas de trabajo más habituales en un desarrollo multimedia son las siguientes:
- prototipado (wireframes y mockups),
- diagramas de flujo (de algoritmos o procesos),
- storyboards,
- diagramas de flujo de datos,
- técnicas de orientación a objetos,
- diagramas de clase,
- modelos entidad-relación,
- diagramas de estado,
- diagramas de casos de uso.
Roles/profesiones
El desarrollo de un producto multimedia puede llegar a requerir de una elevada variedad de especialistas, tales como:
- mánager de proyecto,
- programador,
- administrador de bases de datos,
- director técnico,
- diseñador gráfico,
- especialistas en imagen (fotografía, vídeo, 3D, animación),
- especialista en UX,
- ingeniero de sonido,
- director creativo,
- copywriter,
- editor/gestor de contenidos,
- experto en la materia sobre la que trata el producto,
- investigador (de mercado, productos, entre otros),
- administrador de redes,
- especialista en learning & development.
Desarrollos en la vida real
En la práctica, cada proyecto y equipo tiene sus propias peculiaridades, por lo que las teorías y modelos se deben usar de manera inteligente, e incluso adaptados, para adaptarse a muy diversas circunstancias y llevar el proyecto a cabo con éxito. Algunas de las más habituales son las que presentamos a continuación:
- Parte de las tareas de desarrollo o producción, por ejemplo desarrollo de contenidos audiovisuales, las puede ejecutar el cliente o terceros.
- A menudo, hay que trabajar con proveedores externos del cliente final o del equipo de desarrollo.
- El equipo puede estar distribuido geográficamente. Esto puede implicar una distancia temporal debido a las diferencias en los husos horarios.
- La media de tiempo necesaria para el desarrollo de un proyecto oscila entre los seis meses y el año.
- En las fases de programación intensiva, el tiempo consumido por los programadores es muy elevado, y se hace crucial una gestión óptima de los recursos.
- Los managers de proyecto invierten más tiempo que cualquier otro miembro del equipo.
- La necesidad de horas extras es habitual.
- La variedad de retos que se deben afrontar todos los días es extremadamente elevada.
- El nivel de satisfacción a medida que se acerca la finalización del proyecto aumenta, pero también lo hace el nivel de presión sobre el equipo.
A continuación, se muestran algunos diagramas que ilustran las curvas tipo que indican las fases que experimenta la adopción social o el desarrollo de tecnologías (imágenes tomadas de la Wikipedia). Es habitual encontrar la misma curva o una muy similar en muchas de las tecnologías y proyectos y, por lo tanto, prever cómo las distintas fases y estados del equipo o la tecnología en cuestión pueden afectar a un desarrollo, ya que la pendiente de iluminación o slope enlightenment suele coincidir con el final del proyecto o su proceso de mantenimiento (ved la imagen Drupal mood cycle más adelante). El término específico, acuñado por Gartner para definir este fenómeno, es hype cycle.
Aplicado a un proyecto de desarrollo en Drupal (Drupal mood cycle, de Dries Buytaert, http://buytaert.net), resultaría en:
Videografía
A continuación, dos vídeos introductorios a variantes del método Agile:
Intro to Agile Scrum in Under 10 Minutes: http://www.youtube.com/watch?v=XU0llRltyFM
Agile: An Introduction: https://www.youtube.com/watch?v=OJflDE6OaSc
Recursos adicionales
Getting Real. The smarter, faster, easier way to build a successful web application: http://gettingreal.37signals.com
Overview of Multimedia Authoring, Virginia Tech: http://www.itma.vt.edu/modules/spring03/multimed/assignments.htm
An Introduction to Digital Multimedia: http://my.safaribooksonline.com/book/digital-media/9780763750527/multimedia-development/section_11.1
A Survey of Multimedia and Web Development Techniques and Methodology Usage: http://ir.library.nuigalway.ie/xmlui/bitstream/handle/10379/270/A%20Survey%20of.pdf?sequence=1
Multimedia Development Process, Tom McEwan de la Universidad Napier de Edimburgo: http://www.soc.napier.ac.uk/~tommc/modules/mm8413307/methodologies.htm
Software Development Methodologies, Wikipedia: http://en.wikipedia.org/wiki/Software_development_methodologies
Hype cycle, Gartner: http://en.wikipedia.org/wiki/Hype_cycle