Desarrollo de Software
Desarrollo de Software
Desarrollo de Software
Desarrollo de Juegos
Muicro-controladores
Robótica
Comunicaciones
Multimedia
Seguridad Informática
Base de Datos
Procesamiento de Datos
Testing
Educación
Todavía no sé
Otra
¡Comenzamos!
En nuestro caso, será de interés una empresa que se dedique al desarrollo de software
y para eso requerirá procesos especializados que abarquen desde la creación hasta la
administración de un sistema de software.
1. Modelo de cascada
El modelo de cascada original se desarrolló entre las décadas de los años 60 y 70. Se
define como una secuencia de actividades o etapas, donde la estrategia principal es
seguir el progreso del desarrollo de software hacia puntos de revisión bien definidos
mediante entregas programadas con fechas precisas. En este modelo, no se muestra
una etapa específica de documentación, ya que ésta se lleva durante todo el proceso
de desarrollo.
Este modelo fue muy aceptado debido a que las etapas son lógicas y se comprenden
fácilmente por los usuarios no técnicos. Pero este modelo no explica cómo modificar
un resultado, en especial teniendo en cuenta lo difícil que puede llegar a especificar
toda la funcionalidad, y los requisitos de un sistema desde el comienzo y que estos se
mantengan estables durante todo el proceso.
Otra desventaja es que toma demasiado tiempo en tener un resultado tangible para el
usuario y retrasa la detección de errores hacia las etapas finales del desarrollo.
Análisis de requisitos
Consiste en la recopilación de los requisitos del software. Se debe comprender el
ámbito de información del software, así como la función, el rendimiento y las interfaces
requeridas. Estos requisitos se deben documentar y revisar de tal manera que los
entiendan tanto los usuarios como el equipo de desarrollo del software. En esta fase se
desarrollará el documento de requisitos del software que consistirá en una
especificación precisa y completa de lo que debe hacer el sistema.
Diseño
Consiste en descomponer y organizar el sistema en elementos componentes que
puedan ser desarrollados por separado. El resultado del diseño es la colección de
especificaciones de cada elemento componente. En esta fase se desarrollará el
Documento del diseño del Software que será una descripción de la estructura global
del sistema.
Implementación
En esta fase se traduce el diseño a un lenguaje legible para una computadora. También
se harán las pruebas o ensayos necesarios para garantizar que dicho código funciona
correctamente. La documentación de esta fase será el Código fuente.
Verificación
Consiste en probar el sistema completo para garantizar el funcionamiento correcto del
conjunto antes de ser puesto en producción. Aquí tendremos el Sistema Software
ejecutable.
Mantenimiento
Puede ocurrir que durante el uso del sistema sea necesario realizar cambios para
corregir errores que no han sido detectados en las fases anteriores o bien para
introducir mejoras. Tendremos que hacer un Documento de cambios ante cualquier
modificación. En todas estas fases la verificación y validación se han de tener en
cuenta. La verificación consiste en comprobar que el software que se está
desarrollando cumple los requisitos y la validación lo que hace es comprobar que las
funciones del software son las que el usuario desea.
2. Modelo incremental
El modelo incremental consiste en el desarrollo inicial de la arquitectura completa del
sistema, seguida de incrementos y versiones parciales. Cada incremento tiene su
propio ciclo de vida, típicamente siguiendo el modelo de cascada. Los incrementos
pueden construirse de manera serial o paralela dependiendo de la naturaleza de la
dependencia entre versiones y recursos.
¿Ventajas?
Este modelo tiene como ventaja que permite que la administración del proyecto sea
más simple en incrementos pequeños. Además, al tener una menor funcionalidad por
incremento, cada etapa es más simple de comprender y de probar. Otra ventaja es que
el usuario tendrá una versión más temprana del sistema, ya que se encontrará con una
pequeña funcionalidad para ir probando y verificando.
Con respecto a los cambios, este modelo permite resolverlos en un mismo período de
tiempo. De esta manera el modelo es tolerante a modificaciones en los requerimientos,
algo que hoy en día sucede con mucha frecuencia.
3. Modelo evolutivo
Ahora te presentamos el modelo evolutivo, el cual es una extensión del modelo
incremental. En este modelo, los incrementos se hacen de manera secuencial, en lugar
de en paralelo.
Desde el punto de vista del cliente, el sistema evoluciona según vayan siendo
entregados los incrementos. Desde el punto de vista del desarrollador, los
requerimientos que son claros al principio del proyecto determinan el incremento
inicial, mientras que los incrementos para cada uno de los siguientes ciclos de
desarrollo se definirán a través de la experiencia de los incrementos anteriores. Este
modelo considera que el desarrollo de sistemas es un proceso de cambios progresivos
mediante deltas (cambios) de especificación de requerimientos.
Un prototipo puede ser cualquier cosa, desde un trozo de papel con sencillos dibujos a
un módulo de software.
Los prototipos apoyan la evaluación del producto, clarifican los requisitos del
usuario y definen alternativas.
4. Modelo espiral
Este modelo fue desarrollado en la década del 80 y surgió como una extensión del
modelo de cascada. El modelo espiral se basa en una estrategia para reducir el riesgo
del proyecto en áreas de incertidumbre, como por ejemplo tener requerimientos
iniciales incompletos e inestables.
El modelo enfatiza ciclos de trabajo, cada uno de los cuales estudia el riesgo antes de
proceder al siguiente ciclo. Cada ciclo comienza con la identificación de los objetivos,
soluciones alternas y restricciones asociadas con cada alternativa y, finalmente, se
procede a su evaluación.
Cuando se encuentra que existe cierta incertidumbre, se utilizan diversas técnicas para
reducir el riesgo de las distintas alternativas. Cada ciclo del modelo espiral termina con
una revisión que discute los logros actuales y los planes para el siguiente ciclo.
1. Determinar Objetivos.
2. Análisis del riesgo.
3. Desarrollar y probar.
4. Planificación.
• Su orientación al riesgo evita, y hasta elimina, muchas de las posibles dificultades.
• Es difícil adaptarlo al software contratado debido a la poca flexibilidad y libertad que
posee un software de estas características.
= cascada
En el modelo incremental, cada incremento agrega ................... adicional o mejorada sobre el sistema.
= funcionalidad
El modelo evolutivo considera que el desarrollo de sistemas es un proceso de .................. progresivos mediant
modificaciones en la especificación de requerimientos.
= cambios
El modelo ................ se basa en ciclos de trabajo, cada uno de los cuales estudia el riesgo antes de
proceder al siguiente ciclo.
= espiral
Comentario:
¡Respuesta correcta!
Continuar
◄ Una pregunta para comenzar...
Disciplinas que conforman la Ingeniería de Software
Durante el proceso de desarrollo de software, como te habrás dado cuenta, intervienen
muchas personas con distintos roles que realizan actividades diferentes.
¿Qué son las disciplinas entonces? ¿Por qué hablamos de disciplinas que conforman el
desarrollo de Software?
De esta manera podemos observar que durante el ciclo de desarrollo intervienen más
de una disciplina. Entre las principales disciplinas que intervienen podemos
mencionarte las siguientes:
Modelado de Negocios
El propósito de esta disciplina es entender el contexto del cliente, y la aplicación que
tendrá el sistema dentro del mismo. Las actividades del modelado de negocios más
comunes son la realización de:
• Modelado de contexto. Esto es, mostrar cómo tiene cabida tu sistema dentro del
ambiente general.
Requerimientos
Aquí se aplican métodos de ingeniería a los requerimientos del proyecto, incluyendo la
identificación, modelado y documentación de dichos requerimientos. El entregable
principal de esta disciplina es el documento donde se especifican los Requerimientos
del Software.
Análisis y Diseño
El propósito de esta disciplina es crear una arquitectura robusta para el sistema basada
en los requerimientos del cliente, transformar dichos requerimientos en un diseño, y
asegurarse de que los problemas del ambiente dentro del cual se implementará el
sistema se reflejen en el diseño.
Implementación
Esta disciplina define la organización del código, implementa el diseño de elementos,
prueba los componentes desarrollados como unidades e integra los resultados
individuales en un sistema ejecutable. En esta disciplina es donde aparece el
Desarrollador, quien tiene el plan de construcción que muestra qué entidades o clases
se integrarán unas a otras. También se encargará de codificar un grupo de clases u
operaciones de clases.
Pruebas
Esta disciplina es la encargada de evaluar todos los componentes del sistema y de
asegurar la calidad del producto desarrollado. Las actividades que se llevan a cabo son:
Validar y probar que se han cubierto los requerimientos y el diseño del sistema.
Transición
En esta disciplina se describen las actividades asociadas con el aseguramiento de la
entrega y disponibilidad del producto de software hacia el usuario final.
Administración de Proyectos
Es la disciplina que provee un marco de trabajo para administrar los proyectos
intensivos de software, además de guías prácticas para el desarrollo del mismo. El
Administrador del Proyecto es quien crea los casos de negocio y un plan general para
todo el proyecto. También planea, rastrea y administra los riesgos para cada iteración.
Con la experiencia que habrás tenido en el cursado de los otros módulos, habrás
notado que el software es un producto que se realiza en base a una especificación y
que luego puede ser modificado, ya sea porque esas especificaciones cambian o bien
por algún otro motivo incluso ajeno al cliente.
Mantenimiento Correctivo
Tiene como finalidad corregir errores en el software que no han sido detectados y
eliminados durante el desarrollo inicial del mismo.
Mantenimiento Adaptativo
Se produce en aplicaciones que se están utilizando desde hace mucho tiempo, de
manera que los elementos básicos HW y SW que constituyen la plataforma o entorno
en que se ejecutan evolucionan, modificándose parcialmente la interfaz ofrecida a las
aplicaciones que corren sobre ellos.
Mantenimiento Perfectivo
Es necesario para obtener versiones mejoradas del producto que permitan mantener o
aumentar su éxito.
El mantenimiento, por lo tanto, es una tarea que puede durar mucho tiempo y
abarcar distintas etapas, es por eso que se necesita una buena gestión sobre los
cambios y el testing. En las siguientes secciones te contaremos en más detalle cómo
realizar estas gestiones.
Gestión de la configuración
Seguramente te estarás preguntando qué es configurar software.
Te contamos que la configuración es la manera en que diversos elementos se
combinan para construir un software bien organizado.
Para mantener bajo control la configuración del software nos vamos a apoyar en dos
técnicas que son:
Desde el punto de vista del usuario y del desarrollador se consideran como elementos
componentes de la configuración todos los que intervienen en el desarrollo. Estos
elementos serán, por tanto:
Gestión de cambios
Más allá del objetivo concreto del mantenimiento, las actividades a realizar durante el
mismo son básicamente la realización de cambios significativos sobre el software ya
realizado.
Normas y estándares
Al igual que muchas otras actividades de ingenierías que están reguladas, en la
ingeniería de software también hay normas, algunas han sido recogidas por
organizaciones internacionales y establecidas como estándares.
Te mostramos ejemplos:
Testing de Software
Como te hemos estado contando durante toda esta Unidad, la calidad de un software
se determina por la etapa que sigue a su desarrollo. Un sistema no finaliza cuando
termina de desarrollarse, ya que, en el modelo de ciclo de vida, las actividades de
revisión y pruebas tienen como objetivo controlar la calidad del producto.
Factores de calidad
Existe un esquema de mediciones de la calidad del software establecido en 1977. Este
modelo se utiliza para especificar software de calidad y está basado en valoraciones a
tres niveles diferentes.
• Seguridad: Dificultad para el acceso a los datos u operaciones por parte de personal
no autorizado
• Documentación requerida.
Revisiones
Te contamos que una revisión consiste en inspeccionar el resultado de una actividad
para determinar si es aceptable o no.
• El grupo que realice la revisión debe ser reducido (3-5 personas).
• No deben ser realizadas por los autores del software y así poder garantizar la
imparcialidad del criterio.
• Se debe revisar el producto, pero no al productor ni al proceso de producción.
• Si la revisión tiene que decidir la aceptación o no del producto, se debe establecer
previamente una lista formal de comprobaciones a realizar
Pruebas
Las pruebas consisten en hacer funcionar un software o una parte de él en condiciones
determinadas y comprobar si los resultados son los correctos. Por lo tanto, el objetivo
de las pruebas será descubrir los errores que pueda contener el software probado.
Pregunta 1
Correcta
Marcar pregunta
Enunciado de la pregunta
Si se va a desarrollar un sistema muy complejo, no hace falta tener un proceso de
desarrollo.
Seleccione una:
Verdadero
Falso
Retroalimentación
Para poder administrar la complejidad de tales sistemas, es necesario contar con
modelos de procesos y tecnologías de software apropiadas.
Pregunta 2
Correcta
Marcar pregunta
Enunciado de la pregunta
¿Cuáles de los siguientes son modelos de desarrollo de software?
a. Incremental
b. Espiral
c. Seguridad
d. Cascada
e. Evolutivo
Retroalimentación
Respuesta correcta
Pregunta 3
Correcta
Marcar pregunta
Enunciado de la pregunta
La disciplina de Análisis y Diseño tiene como propósito:
Seleccione una:
a. Crear una arquitectura robusta para el sistema basada en los requerimientos
del cliente.
Retroalimentación
Respuesta correcta
Pregunta 4
Correcta
Marcar pregunta
Enunciado de la pregunta
¿Qué tipo de mantenimiento tiene como finalidad corregir errores en el software que
no han sido detectados y eliminados durante el desarrollo inicial del mismo?
Seleccione una:
a. Mantenimiento Correctivo
Se realiza para solucionar los errores que no han sido detectados en el momento de la
implementación.
b. Mantenimiento Perfectivo
c. Mantenimiento Adaptativo
Retroalimentación
Respuesta correcta
Pregunta 5
Correcta
Marcar pregunta
Enunciado de la pregunta
Mediante las revisiones del sistema se podrá determinar si una actividad es aceptable.
Seleccione una:
Verdadero
Falso
Retroalimentación
Se utilizan las revisiones para inspeccionar el resultado de una actividad para
determinar si es aceptable o no.
Unidad 2
Comencemos…
Con el software no pasa lo mismo ya que, aunque se pretenda emular ese modo de
fabricación, el software es algo que tendrá cambios y, por eso, deberás tener muy en claro
que es casi imposible cerrar un diseño en una primera etapa para pasarlo a programación
sin tener que modificarlo posteriormente.
En nuestro caso, que desarrollamos software, por su naturaleza, es más fácil de modificar.
Cambiar líneas de código tiene menos impacto que cambiar las columnas de un edificio ya
construido. De ahí que estas nuevas metodologías ágiles se basan en nuevas propuestas que
recomiendan construir rápido una versión software y modificarla evolutivamente.
Diferenciar el cómo se construye software del cómo se construyen los productos físicos es
uno de los fundamentos de las metodologías ágiles
< Anterior
Siguiente >
De esta manera, un proyecto ágil se podría definir como una manera de enfocar el
desarrollo de software mediante un ciclo iterativo e incremental, con equipos que
trabajan de manera altamente colaborativa y autoorganizados.
Así,
El Manifiesto Ágil
El 12 de febrero de 2001, un grupo de 17 destacados y conocidos profesionales de la
ingeniería del software escribían en Utah elManifiesto Ágil.
Individuos e interacciones
Valorar a los individuos y las interacciones del equipo de desarrollo sobre el proceso y
las herramientas. Se tendrán en cuenta las buenas prácticas de desarrollo y gestión de
los participantes del proyecto (siempre dentro del marco de la metodología elegida).
Esto facilita el trabajo en equipo y disminuyen los impedimentos para que realicen su
trabajo. Asimismo, compromete al equipo de desarrollo y a los individuos que lo
componen.
Software funcionando
Desarrollar software que funciona más que conseguir una documentación exhaustiva.
No es necesario producir documentos a menos que sean necesarios de forma
inmediata para tomar una decisión importante. Los documentos deben ser cortos y
centrados en lo fundamental. La variación de la cantidad y tipo de documentación
puede ser amplia dependiendo del tipo de cliente o del proyecto. El hecho de decir
que la documentación es el código fuente y seguir esa idea sin flexibilidad puede
originar un caos. El problema no es la documentación sino su utilidad.
A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para, a
continuación, ajustar y perfeccionar su comportamiento en consecuencia.
Product owner
Ahora te presentamos un nuevo rol que surge en la metodología ágil, el Product
Owner. Y para eso te contamos que el “product owner” (o propietario del producto) es
aquella persona con una visión muy clara del producto que se quiere desarrollar, que
es capaz de transmitir esa visión al equipo de desarrollo y, además, está altamente
disponible para transmitirla.
Es importante explicarte que este rol puede ser ocupado por una persona interna o
externa a la organización. Entre sus principales responsabilidades te podemos
mencionar:
Colaborar con el equipo para planificar, revisar y dar detalle a los objetivos de
cada iteración.
Historias de usuario
Ahora te vamos a presentar un componente que se utiliza en las metodologías ágiles,
las Historias de usuario.
Para eso, te contamos que la descripción de las necesidades se realiza a partir de las
historias de usuario (user story) que son, principalmente, lo que el cliente o el usuario
quiere que se implemente; es decir, son una descripción breve, de una funcionalidad
de software tal y como la percibe el usuario.
La función del product owner es vital, debe ser quien decida las historias de usuario
que entrarán en el product backlog (las historias que van a desarrollarse) y cuáles no;
además debe fijar la prioridad de las historias del product backlog.
De esta manera, una historia de usuario está compuesta por los siguientes elementos:
Es importante que tengas en cuenta que si bien las historias de usuario son lo
suficientemente flexibles como para describir la funcionalidad de la mayoría de los
sistemas, no son apropiadas para todo.
Si por cualquier razón, necesitás expresar alguna necesidad de una manera diferente a
una historia de usuario, podrás utilizar las interfaces o pantallas de usuario.
Del mismo modo puede ocurrir con documentos de especificaciones de seguridad,
normativas, etc.
...requisitos funcionales?
Las historias de usuario, frente a mostrar el “cómo”, sólo dicen el “qué”. Es decir,
muestran funcionalidad que será desarrollada, pero no cómo se desarrollará. De ahí
que aspectos como que “el software se escribirá en Java” no deben estar contenidos
en una historia de usuario.
De esta manera, no se deben equiparar las historias de usuario con las especificaciones
de requisitos ya que por definición, las historias de usuario no deben tener el nivel de
detalle que suele tener la especificación de un requisito.
Para resolver el anterior problema hay que entender que el objetivo de las historias de
usuario es, entre otros, lograr la interacción entre el equipo y el cliente o el usuario por
encima de documentar, por lo que tanto no se deben sobrecargar de información.
...casos de uso?
Otro concepto que suele crear confusión sobre las historias de usuario son los casos
de uso. Aunque hay quien ha logrado incluir casos de uso en su proceso ágil, no quiere
decir que las historias de usuario sean equivalentes a los casos de uso.
Básicamente, si pensamos que una historia de usuario es el “qué” quiere el usuario, el
caso de uso es un“cómo” lo quiere.
El método se usa para comprobar la calidad de una historia de usuario revisando que
cumpla las características que te describimos a continuación:
Independient (independiente)
Es importante que cada historia de usuario pueda ser planificada e implementada en
cualquier orden. Para ello debería ser totalmente independiente (lo cual facilita el
trabajo posterior del equipo). Las dependencias entre historias de usuario pueden
reducirse combinándolas en una o dividiéndolas de manera diferente.
Negotiable (negociable)
Una historia de usuario es una descripción corta de una necesidad que no incluye
detalles. Las historias deben ser negociables ya que sus detalles serán acordados por el
cliente/usuario y el equipo durante la fase de “conversación”. Por tanto, se debe evitar
una historia de usuario con demasiados detalles porque limitaría la conversación
acerca de la misma.
Valuable (valiosa)
Una historia de usuario tiene que ser valiosa para el cliente o el usuario. Una manera
de hacer una historia valiosa para el cliente o el usuario es que la escriba él mismo.
Estimable (estimable)
Una buena historia de usuario debe ser estimada con la precisión suficiente para
ayudar al cliente o usuario a priorizar y planificar su implementación. La estimación
generalmente será realizada por el equipo de trabajo y está directamente relacionada
con el tamaño de la historia de usuario (una historia de usuario de gran tamaño es más
difícil de estimar) y con el conocimiento del equipo de la necesidad expresada (en el
caso de falta de conocimiento, serán necesarias más fases de conversación acerca de la
misma).
Small (pequeña)
Las historias de usuario deberían englobar como mucho unas pocas semanas/persona
de trabajo. Incluso hay equipos que las restringen a días/persona. Una descripción
corta ayuda a disminuir el tamaño de una historia de usuario, facilitando su estimación.
Testable (comprobable)
La historia de usuario debería ser capaz de ser probada (fase “confirmación” de la
historia de usuario). Si el cliente o usuario no sabe cómo probar la historia de usuario
significa que no es del todo clara o que no es valiosa. Si el equipo no puede probar
una historia de usuario nunca sabrá si la ha terminado o no.
Riesgos de implementarla.
Uno de los aspectos más importantes aquí es que la definición de "valor" para cada
cliente puede ser distinta. Por lo tanto te recomendamos que incluyas algún tipo de
escala cualitativa.
Una manera rápida de empezar a asignar valor a las historias es dividirlas en 3 grupos,
según sean imperativas, importantes o prescindibles. Dentro de cada grupo te
resultará más fácil realizar una ordenación relativa por valor numérico y después
asignarlo. Todo ello servirá para que en cada iteración se entregue el producto al
cliente maximizando su valor.
Existen otro tipo de ponderaciones, por ejemplo la técnica MoSCoW. Esta técnica fue
definida en el año 2004. Su fin es obtener el entendimiento común entre cliente y el
equipo del proyecto sobre la importancia de cada requisito o historia de usuario. La
clasificación es la siguiente:
M - MUST -> Se debe tener la funcionalidad. En caso de que no exista la solución a
construir fallará.
W - WON'T -> No está en los planes tener esta funcionalidad en este momento.
Posteriormente puede pasar a alguno de los estados anteriores.
= descripción
= valiosa
Scrum
Como te comentamos previamente, Scrum es una metodología ágil que proporciona un marco
para la gestión de proyectos. Podríamos decir que hoy en día es la metodología ágil más popular,
y, de hecho, se ha utilizado para desarrollar software desde principios de la década de los 90.
Transparencia
Todos los aspectos del proceso que afectan al resultado son visibles para todos aquellos que
administran dicho resultado. Por ejemplo, se utilizan pizarras y otros mecanismos o
técnicas colaborativas para mejorar la comunicación.
Inspección
Se debe controlar los diversos aspectos del proceso con la frecuencia suficiente para que se
le puedan detectar variaciones o desvíos.
Revisión
El producto debe estar dentro de los límites aceptables. En caso de desviación se procederá
a una adaptación del proceso y el material procesado.
El equipo en Scrum
Uno de los aspectos más importantes en cualquier proyecto, y por lo tanto también en los
proyectos ágiles, es el establecimiento del equipo. Los roles y responsabilidades deben ser
claros y conocidos por todos los integrantes del mismo.
Equipo de desarrollo
El equipo está formado por los desarrolladores, que convertirán las necesidades del
Product Owner en un conjunto de nuevas funcionalidades, modificaciones o
incrementos del software final. El equipo de desarrollo tiene características especiales,
te contamos algunas de las más importantes:
El Product Backlog
Ahora te proponemos volver a repasar lo que se conoce como la pila de producto
o Product Backlog,ahora aplicado a Scrum. En esta metodología es uno de los
elementos fundamentales.
A partir del Product Backlog se logra tener una única visión durante todo el proyecto.
Y, por lo tanto, los fallos en el Product Backlog repercutirán profundamente en el
proyecto.
Seguramente también recordarás que este listado estará ordenado. Aunque no existe
un criterio preestablecido en Scrum para ordenar las historias de usuario, el más
aceptado es partir del valor que aporta al negocio la implementación de la historia de
usuario.
El responsable de ordenar el Product Backlog es el Product Owner, aunque también
puede ser ayudado o recibir asesoramiento de otros roles como, por ejemplo, el Scrum
Master y el equipo de desarrollo.
Un Product Backlog cuenta esencialmente, con cuatro cualidades: debe estar detallado
de manera adecuada, estimado, emergente y priorizado. Ahora te contamos con
mayor detalle cada una de ellas:
Detallado adecuadamente
El grado de detalle dependerá de la prioridad. Las historias de usuario que tengan una
mayor prioridad se describen con más detalle. De esta manera las siguientes
funcionalidades a ser implementadas se encuentran descritas correctamente y son
viables. Como consecuencia de esto, las necesidades se descubren, se descomponen, y
perfeccionan a lo largo de todo el proyecto.
Estimado
Las estimaciones a menudo se expresan en días ideales o en términos abstractos.
Saber el tamaño de los elementos del Product Backlog te ayudará a darle prioridad y a
planificar los siguientes pasos.
Emergente
Las necesidades se van desarrollando y sus contenidos cambian con frecuencia. Los
nuevos elementos se descubren y se agregan a la lista teniendo en cuenta los
comentarios de los clientes y usuarios. Así mismo, otros elementos podrán ser
modificados o eliminados.
Priorizado
Los elementos del Product Backlog se priorizan. Los elementos más importantes y de
mayor prioridad aparecen en la parte superior de la lista. Puede no ser necesario
priorizar todos los elementos en un primer momento, sin embargo sí es conveniente
identificar los 15-20 elementos más prioritarios.
El Sprint
Como te hemos comentado anteriormente, una de las bases de los proyectos ágiles es
el desarrollo mediante las iteraciones incrementales.
Scrum recomienda iteraciones cortas, por lo que cada Sprint durará entre 1 y 4
semanas. Y como resultado se creará un producto potencialmente entregable, un
prototipo operativo. Las características que van a implementarse en el Sprint provienen
del Product Backlog.
Algo importante que tenés que saber es que, aunque todos los Sprints dan como
resultado un incremento del software, no todos implican un paso a producción. Es
responsabilidad del Product Owner y los clientes decidir el momento en el que los
incrementos son puestos en producción. Una posibilidad para realizar esa puesta en
producción es con los denominados "Sprints de Release". Estos Sprints contendrán, en
general, tareas solamente relacionadas con el despliegue, instalación y puesta en
producción del sistema. Es decir, que no existen tareas donde se agreguen nueva
funcionalidad.
Reuniones
Las reuniones son un pilar importante dentro de Scrum. Se realizan a lo largo de todo
el Sprint como muestra la siguiente figura. Estas reuniones están representadas en los
cuadros con color gris. Se definen diversos tipos de reuniones:
Reunión diaria
Con una duración de no más de 15 minutos, participan el equipo de desarrollo y el
Scrum Master. En esta reunión cada miembro del equipo presenta lo que hizo el día
anterior, lo que va a hacer hoy y los impedimentos que se han encontrado.
Reunión de revisión del Sprint
Se realiza al final del Sprint. Participan el equipo de desarrollo, el Scrum Master y el
Product Owner. Durante la misma se indica qué ha podido completarse y qué no,
presentando el trabajo realizado al Product Owner. Por su parte el Product Owner (y
demás interesados) verifican el incremento del producto y obtienen información
necesaria para actualizar el Product Backlog con nuevas historias de usuario. No debe
durar más de 4 horas.
Entrega parciales
El cliente puede utilizar las primeras funcionalidades de la aplicación que se está
construyendo antes de que esté finalizada por completo. Por lo tanto, el cliente puede
empezar antes a recuperar su inversión. Por ejemplo, puede utilizar un producto al que
sólo le faltan características poco relevantes, puede introducir en el mercado un
producto antes que su competidor, puede hacer frente a nuevas peticiones de clientes,
etc.
Mejores estimaciones
La estimación del esfuerzo y la optimización de tareas es mejor si la realizan las
personas que van a desarrollar la historia de usuario, dadas sus diferentes
especializaciones, experiencias y puntos de vista. De la misma manera, con iteraciones
cortas la precisión de las estimaciones aumenta.
Síntesis de la Unidad
En esta última unidad te presentamos la METODOLOGÍA ÁGIL, que se implementa en
un CICLO DE VIDA ITERATIVO E INCREMENTAL. Esta metodología fue definida por el
MANIFIESTO ÁGIL,que establece VALORES y PRINCIPIOS ÁGILES.
También te presentamos las historias de usuario, que identifican los requerimientos del
cliente. Te contamos el método INVEST que puede comprobar la calidad de una
historia de usuario. También vimos la técnica MoSCoW que te servirá para clasificar y
valorar las historias de usuarios.
Finalmente, te presentamos la metodología SCRUM y sus tres pilares fundamentales:
transparencia, inspección y revisión. Vimos cómo está conformado el EQUIPO SCRUM
y te contamos los componentes de SCRUM, el PRODUCT BACKLOG, el SPRINT y las
REUNIONES.
Estado Finalizado
Puntos 90,75/99,00
Marcar pregunta
Enunciado de la pregunta
Indicá cuáles de las siguientes son cualidades que debe tener el product backlog:
Las historias de usuario que tengan una mayor prioridad se describen con más detalle.
b. Estimado
c. Emergente
d. Pequeño
e. Priorizado
Retroalimentación
Respuesta parcialmente correcta.
Ha seleccionado correctamente 3.
Pregunta 2
Correcta
Enunciado de la pregunta
Indicá cuáles de las siguientes no son beneficios de Scrum:
Seleccione una:
a. Entregas parciales
e. Mejores estimaciones
Retroalimentación
Respuesta correcta
Pregunta 3
Correcta
Marcar pregunta
Enunciado de la pregunta
Emparejá la funcionalidad con cada uno de los roles de Scrum:
Es el responsable de asegurar que el equipo Scrum siga las Respuesta 1
prácticas de Scrum.
La respuesta correcta es: Es el responsable de asegurar que el equipo Scrum siga las
prácticas de Scrum. → Scrum Master, Es la persona responsable de gestionar las
necesidades que serán satisfechas por el proyecto. → Product Owner, Convertirá las
necesidades en un conjunto de nuevas funcionalidades, modificaciones o incrementos
del software final. → Equipo de desarrollo