BLOG

NUEVAS TECNOLOGÍAS

MARKETING

INGENIERÍA

Debemos comprender qué es la Inteligencia Artificial (IA): Se trata de una disciplina de la informática, en la que se desarrolla software para el aprendizaje automático de las máquinas. Es decir, programar máquinas...
En un mundo globalizado, repleto de llamadas de atención, es importante distinguirse, ser directo, honesto y sobretodo, fácil de llegar. Y no nos referimos a tiendas offline, con escaparates y luces de neón, no. Nos...
La industria 4.0 y la transformación digital se están extendiendo a todos los sectores de la producción, y llegados a este punto, debemos preguntarnos, ¿Cuál será la mejor opción de dispositivo wereable profesional...
A veces, buscando vuelos u hoteles , después de mucho mirar nos damos cuenta de que los precios han aumentado. ¿Esto ocurre porque han decidido aumentar los precios o porque las cookies rastrean e incrementan los...
Los Términos y condiciones de uso y la Política de Privacidad de las empresas cambian constantemente, incluido los del famoso WhatsApp . La aplicación de mensajería instantánea cambió el pasado agosto sus condiciones....
Todos admitimos saber lo que significa la transformación digital pero cuando tratamos de explicarlo, nos cuesta identificar su concepto. También sabemos lo que significa IoT ( internet de las cosas ) y el concepto Big...
En el último año se han escuchado mucho los términos de “Realidad Aumentada” y de “Realidad Virtual”. Para muchos estos términos son muy conocidos y no hay lugar a confusión, sin embargo la gran mayoría de las personas...
Hoy empiezo mi nueva singladura como director de I+D+i. No es nueva mi dedicación en el mundo de la investigación, lo que es novedad es mi nuevo puesto de trabajo como responsable de esta ilusionante tarea de aportar...
Se acerca San Valentín y comenzamos a buscar ese regalo perfecto y original para nuestra pareja. Se escuchan comentarios como: “San Valentín es todos los días del año”, “Demostrar el amor no se hace solo en San...

 

Desarrollo Ágil de Software: Scrum

Buenos días a tod@s,

Como ya comenté en mi primer post, "El Rincón de Joaquín" iba a ser un espacio abierto en el que otras personas relacionadas con la tecnología aplicada a la informática pudieran compartir sus visiones o conocimientos al respecto. Esta semana, mi compañero David Julián (Responsable del proyecto de la plataforma de gestión de Realidad Aumentada MiRA) nos aporta su conocimiento sobre metodologías ágiles de desarrollo de software. Personalmente, me parece muy interesante y le agradezco que nos aporte este conocimiento de metodologías de desarrollo de software:

"Una de las primeras cosas de las que un imberbe informático es consciente cuando se enfrenta por primera vez a proyectos reales de gran envergadura, es la ineficacia de las metodologías tradicionales del desarrollo de software como herramientas para la mayoría de los proyectos actuales. Y es en ese mismo momento en el que uno se pregunta por qué no dedicó más tiempo a los últimos temas de aquella asignatura cuyo título rezaba algo así como Dirección y Gestión de Proyectos, temas por los que la profesora pasaba de soslayo, apresurada por el poco tiempo con el que habitualmente llegan al último tramo del curso.

Uno pronto se da cuenta de que estas metodologías tradicionales en muchos casos están obsoletas para hacer frente a proyectos de software actuales. Se soportan en procesos detallados y rigurosos propios de otras ingenierías y el principal problema de este enfoque es el coste que suponen muchas de las actividades que se deben llevar a cabo para seguir esta metodología, lo que retrasa la etapa de desarrollo. Todo se vuelve muy controlado por políticas y normas en un proceso secuencial que va en una sola dirección y sin marcha atrás.

Fue en los años noventa cuando surgieron metodologías de desarrollo ligeras dirigidas a proyectos de desarrollo de software. Pero como en toda buena comunidad de vecinos, hacía falta un documento, algo que sentara las bases de lo que debía ser y no ser. Y así fue. El término ágil aplicado a desarrollo de software nació en febrero de 2001, en una reunión entre diecisiete representantes de diferentes metodologías ligeras en una estación de esquí en Utah (EEUU). Fue allí, en aquel resort, preocupados entre comidas, deporte y relax, donde redactaron el Manifiesto del Desarrollo de Software Ágil. Este manifiesto consta de doce principios (http://agilemanifesto.org/iso/es/principles.html) que deben regir la vida de un responsable de un proyecto de software.

En cuanto uno se adentra en este mundo, descubre la tendencia de definir a XP y Scrum como los métodos de desarrollo ágil más relevantes. Pese a lo que pueda parecer, XP no hace referencia al Sistema Operativo ni a los puntos de experiencia de algún videojuego de moda, si no a Extreme Programming, puede que la metodología ágil más conocida.

Sin embargo, no hablaré de XP, sino de Scrum. La metodología con la que más he trabajado desde que dejé de considerarme como un imberbe informático. Su nombre no corresponde a ninguna sigla, sino que hace referencia al rugby, a la formación requerida para la recuperación rápida del juego ante una infracción menor.

Veamos una definición de los términos más importantes de Scrum, pero antes he preparado el siguiente diagrama con su ciclo de vida:



Metodología Desarrollo ScrumProduct Backlog: Es una lista –ordenada por valor, riesgo, prioridad y necesidad- de los requerimientos que el dueño del producto define, actualiza y ordena. La lista tiene como característica particular el que nunca está terminada, pues evoluciona durante el desarrollo del proyecto.

Sprint: Corresponde a una ventana de tiempo donde se crea una versión utilizable del producto (incremento). Cada Sprint, como en el rugby, es considerado como un proyecto independiente. Su duración máxima es de un mes, aunque generalmente suelen comprender el período de dos o tres semanas.

Sprint planning: En esta reunión se define el plan de trabajo: qué se va a entregar y cómo se logrará. Es decir, el diseño del sistema y la estimación de cantidad de trabajo que el equipo puede asumir.

Daily Scrum: Es un evento del equipo de desarrollo de quince minutos aproximadamente, que se realiza cada día con el fin de explicar lo que se ha alcanzado desde el día anterior, lo que se hará durante el día y los obstáculos que se han presentado. Este evento se desarrolla mediante una reunión que normalmente es llevada a cabo de pie con los participantes reunidos en círculo, para evitar que se extienda demasiado y para no tener la sensación de ser una reunión excesivamente formal.

Sprint Review: Ocurre al final del Sprint y en esta reunión se revisa lo que se ha hecho a lo largo del Sprint, se identifica lo que no se hizo y se discute acerca del Product Backlog. El equipo cuenta los problemas con los que se encontró y muestra el producto y su funcionamiento.

Sprint Backlog: Es un subconjunto de ítems del Product Backlog y el plan para realizar el incremento del producto. Debido a que el Product Backlog está organizado por prioridad, el Srpint Backlog es construido con los requerimientos más prioritarios del Product Backlog y con aquellos que quedaron por resolver en el Sprint anterior. Una vez construido, el Sprint Backlog debe ser aceptado por el equipo de desarrollo.

Hace tiempo que en Mítica Technology pusimos en práctica esta metodología y el resultado ha sido un proyecto capaz de hacer frente a las necesidades de nuestros clientes, donde existe una comunicación constante con ellos, un trabajo en equipo mucho más eficiente y donde las entregas constantes de software hacen que nuestro producto de Realidad Aumentada sea un producto ambicioso y fiable.

¡Espero que os haya resultado útil!

Y recuerda…

¡Sumérgete en el cambio! ;-)"

¡Hasta la semana que viene! ¡Muchas gracias David!