BOGOTÁ D.C. DICIEMBRE 2016-II
ARTICULO
ESTUDIO
Y ANÁLISIS DEL DESARROLLO DE SOFTWARE ÁGIL
Por:
Edison Ladino, Jhon Alexander Reyes, Juan Carlos Moroy, Alex Moreno
UNAD
Universidad Nacional a Distancia
Bogotá,
Colombia.
Abstract:
Este
articulo se desarrolla con el fin de dar a conocer el funcionamiento
eficaz de la tecnología desarrollo de software ágil en el proceso
de implementación de una aplicación creada en la organización
salud total en el área de desarrollo, performance y pruebas de
software con el fin de dar la solución respectiva al entorno del
problema en cuanto a la total administración y coordinación de los
procesos que los ingenieros deben hacer siguiendo los parámetros
permitidos en todo lo requerido para el desarrollo de software
INTRODUCCION
El
desarrollo de software ágil se enfoca en la toma de decisiones para
todo el desarrollo de proyectos de software donde su metodología se
basa en la ingeniería de software el cual fundamenta y formaliza los
requisitos, planteamientos y soluciones que tienen diversas
evoluciones en el trascurrir de un proyecto. Esta metodología
enfatiza la tecnología en cada iteración de los ciclos de vida de
este enfocados en su planeación, análisis de requerimientos,
diseño, codificación, pruebas y documentación teniendo su gran
importancia en toda la calidad de ejecución de todos los pasos antes
mencionados. Este método evoluciono a mediados de los años 90 en
reacción de muchos análisis más estructurados y estrictos
originados desde un modelo en cascada evidenciando procesos realmente
estructurados.
PALABRAS
CLAVE
Desarrollo
Ingeniería
de software
Metodologías
livianas
Proyectos
Pruebas
Software
ágil
OBJETIVOS
1.
Fundamentar,
desde un principio, la ingeniería de sistemas como ciencia, a través
de la conceptualización teórica de los sistemas, de las ciencias de
la computación y de la informática.
2.
Relacionar las tendencias, teorías y técnicas de análisis y
solución de problemas con la aplicación de las ciencias de la
computación.
3.
Conocer e identificar de manera clara los elementos, características
y propiedades de un sistema y su relación con el medio.
4.
Determinar y sustentar la aplicación de la ingeniería de sistemas,
según su desarrollo histórico y su proyección hacia el siglo XXI.
CONTENIDO
El
software ágil busca optimizar el desarrollo de software a partir de
metodologías livianas, las cuales derivan en conceptos como el
Manifiesto Ágil, donde se describen otros conceptos como la
Programación Extrema o XP, Cruz y Kanban.
Los
proyectos de tamaño mediano o pequeño son ideales para poner en
práctica esta tendencia tecnológica, basta con aplicar uno o los
tres conceptos (XP, Cruz y Kanban) tal es el caso de XP, este tiene
como objetivo el incluir al cliente por medio de interacción
constante, pruebas unitarias y abstraer la documentación pre
desarrollo del software donde están incluidos los requerimientos,
además describe el lenguaje de programación, de esta forma se llega
a un desarrollo de forma detallada.
CONCEPTO
El
concepto Cruz busca también la interacción con el usuario final del
software, pero este hace énfasis en las buenas prácticas, con eje
en el trabajo en equipo y con enfoque a obtención de resultados.
Cruz es ideal para aplicar en proyectos complejos y con exigencia de
entrega de resultados inmediatos, por lo cual exige al programador
ser creativo, competitivo y productivo.
Por
otra parte Kamban adapta el sistema que se encuentre en desarrollo a
los requerimientos reales del cliente durante el ciclo del desarrollo
del software, además
presenta
metodologías didácticas como lo es la implementación de
herramientas visuales para que los desarrolladores de software hagan
seguimiento del progreso del proyecto, además de su avance, sin que
tenga que generarse desplazamientos innecesarios para conocer esta
parte.
Actualmente,
la metodología ágil más popular para la gestión de proyectos es
Scrum el cual es un proceso en el que se aplican de manera regular un
conjunto de buenas prácticas para trabajar colaborativamente, en
equipo, y obtener el mejor resultado posible de un proyecto. Estas
prácticas se apoyan unas a otras y su selección tiene origen en un
estudio de la manera de trabajar de equipos altamente productivos.
En
Scrum se realizan entregas parciales y regulares del producto final,
priorizadas por el beneficio que aportan al receptor del proyecto.
Por ello, Scrum está especialmente indicado para proyectos en
entornos complejos, donde se necesita obtener resultados pronto,
donde los requisitos son cambiantes o poco definidos, donde la
innovación, la competitividad, la flexibilidad y la productividad
son fundamentales.
En
cuanto a la metodología SCRUM se pudo determinar que agiliza el
proceso, porque se divide el problema en pequeñas tareas y las
tareas tienen un tiempo que se ha determinado con anterioridad, El
cliente puede comenzar a utilizar el producto rápidamente. Promueve
el trabajo en equipo (los desarrolladores se comunican entre sí y se
ayudan cuando alguna actividad da problemas), se reduce el tiempo
perdido y da facilidad para añadir mejoras.
Por
otra parte, también se disponen de metodologías específicas para
el desarrollo de software que pretenden ser alternativas a estándares
como ISO/IEC 15504, ISO/IEC 12207 y CMMI. Por ejemplo:
■ Extreme
Programming (XP): La metodología ágil más radical y popular. XP se
centra en el ciclo de vida del desarrollo de software.
■ Agile
Modeling: Metodología para el modelado y la generación de
documentación que se encuentra alineado con los principios del
desarrollo ágil y que puede ser utilizado como substituto del UML
estándar.
Las
metodologías ágiles presentan un enfoque diametralmente opuesto a
las metodologías predictivas, ofreciendo un enfoque más adecuado
para determinados proyectos como el desarrollo de software. No
obstante, es importante no caer en el extremo y dar por malo todo
aquello que sea de un bando u otro.
En
cada una de las entregas del software por parte del grupo de
desarrollo se realizan diferentes pruebas y verificaciones con el fin
de validar los siguientes ítems:
La
visualización de los datos.
La
respuesta y realización de las transacciones.
Que
los estados de las actividades y documentos generados en el sistema
se reflejen de acuerdo a la secuencia lógica requerida por el
usuario.
La
secuencia lógica de las funcionalidades y transacciones.
Cumplimiento
de estándares de desarrollo y presentación.
Pruebas
funcionales.
Pruebas
no funcionales.
Verificación
de documentación entregada.
Validación
de ejecución de pruebas por parte del grupo de desarrollo.
Solución
/ corrección de incidentes reportados en el proceso de pruebas.
Otros
que sean pertinentes.
Dentro
de la metodología ágil fue creado un manifiesto que nos indica que
lo que se valora es:
Responder
a los cambios más que seguir estrictamente un plan. La habilidad de
responder a los cambios que puedan surgir alo largo del proyecto
(cambios en los requisitos, en la tecnología, en el equipo, etc.)
determina también el éxito o fracaso del mismo. Por lo tanto, la
planificación no debe ser estricta sino flexible y abierta. Los
valores anteriores inspiran los doce principios del manifiesto. Son
características que diferencian un proceso ágil de uno
tradicional. Los dos primeros principios son generales y resumen
gran parte del espíritu ágil. El resto tienen que ver con el
proceso a seguir y con el equipo de desarrollo, en cuanto metas a
seguir y organización del mismo. Los principios son:
La
prioridad es satisfacer al cliente mediante tempranas y continuas
entregas de software que le aporte un valor.
Dar
la bienvenida a los cambios. Se capturan los cambios para que el
cliente tenga una ventaja competitiva.
Entregar
frecuentemente software que funcione desde un par de semanas a un
par de meses, con el menor intervalo de tiempo posible entre
entregas.
La
gente del negocio y los desarrolladores deben trabajar juntos a lo
largo del proyecto.
Construir
el proyecto en torno a individuos motivados. Darles el entorno y el
apoyo que necesitan y confiar en ellos para conseguir finalizar el
trabajo.
El
diálogo cara a cara es el método más eficiente y efectivo para
comunicar información dentro de un equipo de desarrollo.
El
software que funciona es la medida principal de progreso.
Los
procesos ágiles promueven un desarrollo sostenible. Los promotores,
desarrolladores y usuarios deberían ser capaces de mantener una paz
constante.
La
atención continua a la calidad técnica y al buen diseño mejora la
agilidad.
La
simplicidad es esencial.
Las
mejores arquitecturas, requisitos y diseños surgen de los equipos
organizados por sí mismos.
En
intervalos regulares, el equipo reflexiona respecto a cómo llegar a
ser más efectivo, y según esto ajusta su comportamiento.
Si
se toma un problema en un entorno real, se analiza y se implementa la
tecnología de software Ágil, se desprenderán una serie de pasos en
los cuales se inicia con el conocimiento del síntoma, esto es
identificar los problemas que causan impacto negativo en el
desarrollo del software.
A
partir del conocimiento de los síntomas, se puede dar un pronóstico
que ayuda a la caracterización real del problema, posteriormente con
este conocimiento se puede dar un control al pronóstico donde se
proponen acciones para superar el problema.
PLANEACIÒN
Para
la planeación de de la solución existen herramientas que permiten
abstraer las ideas que se conciben para la formulación de una
solución, tal es el caso de la herramienta Decálogo de Bernal,
consiste en una matriz en la cual se responden a unos conceptos
representados por preguntas breves.
Cuando
esta matriz es respondida en su totalidad, se logra mejor
dimensionamiento de la solución que se va a abordad, sin embargo se
necesita también de la comprensión de la gerencia de proyectos para
poder aplicar de manera efectiva las ideas que apuntan a la solución,
con el fin de evolucionarlas para que sean viables.
Con
la gerencia de proyectos se logra la administración y organización
de los recursos y los procesos, para que un proyecto culmine
exitosamente dentro de los tiempos establecidos y con las técnicas
necesarias para su ejecución, de carácter asertivo y efectivo.
En
la gerencia de proyectos es importante incluir la identificación de
los requisitos y condiciones, así se plantean objetivos claros y
realizables, además se debe lograr el balance entre el alcance y el
costo, sin dejar de lado las expectativas de los interesados en que
el proyecto genere satisfacción en el usuario.
Puede
haber varios factores
que influyen en que un desarrollo ágil no llegue a buen puerto.
Estos son algunos de ellos:
Equipo
poco experimentado. Puede dar la sensación, si se compara con otros
esquemas, de que la carga de trabajo es menor cuando se llevan a cabo
desarrollos ágiles (precisamente por dividir el ciclo de desarrollo
global en pequeñas iteraciones). Eso se puede deber a una falta de
experiencia por parte de los desarrolladores, ya que el trabajo queda
perfectamente planificado y distribuido si se conoce correctamente la
metodología.
Falta
de análisis inicial. Que las metodologías ágiles estén abiertas
al cambio no significa que no haya que realizar una planificación
inicial. Llevar a cabo un desarrollo ágil no es sinónimo de ir
diseñando sobre la marcha, sino de ir afinando y perfeccionando,
pero la fase de análisis inicial es imprescindible. Eso sí, el caso
contrario es igual de perjudicial: no es necesario como hemos dicho
que, de partida, se sepa perfectamente cómo se va a comportar el
producto final y definir cada caso de uso al milímetro, ya que en
las iteraciones se podrá ir mejorando y completando el desarrollo
El
rol de “Representante del cliente” no está cubierto
correctamente. A menudo se intenta asignar esta labor a uno de los
desarrolladores, y esto puede ser un problema si se pierde la visión
de negocio que hay por detrás del desarrollo en sí.
Equipos
poco enfocados. Es necesario, en cada iteración, entregar un
software funcional como resultado de la misma. Para ello, el equipo
de desarrollo debe enfocarse en ese proyecto, tratando de huir de
tareas paralelas siempre que sea posible.
Usar
la reunión diaria del equipo (la famosa daily) para resolver
problemas. En las reuniones diarias, el equipo debería hablar de su
avance en el proyecto, pero por lo general no es el mejor lugar para
tratar de resolver problemas. Si surgieran temas que requieran de la
ayuda de distintas personas para ser resueltos, habría que intentar
acometerlos tras la daily por las personas adecuadas, liberando al
resto del equipo.
Intentar
abarcar demasiado en una iteración. Hay que tener claro hasta dónde
se debe llegar en cada ciclo, ya que la sensación puede ser de un
continuo cambio global sin principio ni final, pero esto es un error.
Fijando los objetivos de cada iteración se ayuda a gestionar mejor
el tiempo de cada persona y a enfocar sus esfuerzos para el
entregable más próximo.
Cambios
en los plazos, en la calidad, en los recursos o en el alcance. Se
debe tratar de fijar, antes de cada iteración, lo que se va a llevar
a cabo en ella, qué recursos se usarán o el nivel de calidad a
alcanzar. Si variamos estos conceptos durante un ciclo, podemos
encontrarnos con problemas que afectarán a sucesivas iteraciones.
Cuando decimos que la metodología ágil está abierta al cambio nos
referimos a que de una iteración pueden surgir nuevas ideas, nuevos
enfoques, aspectos a mejorar… que pueden ser llevados a cabo
posteriormente. Pero hay que evitar, en la medida de lo posible, que
esto afecte a la iteración en curso.
CONCLUSIONES
■
El
jefe de proyecto puede no tener conocimientos técnicos y dedicarse
exclusivamente al control siguiendo los procedimientos establecidos y
limitándose a la generación de informes, actas, diagramas de Gantt,
WBS, etc… herramientas que facilitan la gestión pero que no forman
parte del objetivo del proyecto. Un jefe de proyecto con estas
características no podrá participar activamente en la toma de
decisiones técnicas.
■
En
proyectos largos, ceñirse a un plan estático puede provocar que el
producto final ya no se cubra la totalidad de las necesidades del
cliente dado que estas han cambiado desde el inicio. Por tanto,
durante el propio desarrollo del producto, es posible que se deban
ampliar las características diseñadas inicialmente con tal de que
no sea obsoleto antes de su salida al mercado.
■
Incertidumbre:
vivimos en un entorno rápido e inestable, donde cumplir el plan
inicial no garantiza el éxito. La idea de “producto terminado”
puede perder su sentido en determinados sectores (p.ej. software),
dado que el producto siempre está en evolución. La capacidad de
adaptación a partir de la retroalimentación e incorporación de
nuevas ideas es fundame
PREGUNTAS:
¿De
qué forma se da el ciclo de vida del desarrollo del Software Ágil?
De
forma perpendicular
De
forma cíclica
De
forma piramidal
De
forma descendente
Kamban
permite:
Disponer
de un mínimo de espacio en la infraestructura
Mejorar
la actitud del cliente hacia el desarrollador de software
Aplazar
el tiempo de entrega del software
Añadir
requerimientos innecesarios al desarrollo del software
¿Cuál
es la mejor forma de conocer los resultados de la tecnología de
software ágil?
Por
medio de simulaciones en entornos virtuales, donde se da
personalidad a los desarrolladores
Implementando
la tecnología en un entorno real
Preguntando
a quien tienen algo de idea en el tema pero no han puesto en
práctica la tecnología
Leyendo
blogs en la Internet
¿Que
se busca con el control al pronóstico?
Proponer
solución al problema de un entorno real
Proponer
dejar de lado los problemas e iniciar de ceros
Ignorar
el problema y seguir con el desarrollo
Anotar
todo lo que tenga que ver con el problema
En
el proceso de pruebas y control de calidad de software se puede
encontrar?
Un
ajuste o modificación del software para ser verificado en cuanto a
su funcionalidad y calidad
Modificación
de todos los parámetros de calidad en el software
Ejecución
de todos los procesos del ciclo de vida de un proyecto
Seguimiento
y control en el proceso de calidad
Entre
las diferentes actividades del proceso de pruebas y control de
calidad encontramos algunas tales como?
Entrega
de requerimientos, actualización de software, verificación de
calidad
Recibir
y asignar requerimiento, Verificar requerimiento, agendar fecha
pruebas, Actualizar manuales usuario
Pruebas
y controles de requerimientos, funciones especificas, software
detallado, análisis de pruebas
Funcionalidad
de procesos de calidad, ajustes de fechas, actualización de
manuales de usuario
Cuál
es el objetivo del plan de pruebas?
Verificar
los objetivos específicos del sistema o proyecto
Ajustar
los procesos de software para todo lo requerido en los procesos de
software
Establecer
las actividades para la planeación, diseño, ejecución y
evaluación de pruebas que permitan identificar y corregir los
defectos encontrados en las diferentes modificaciones hechas al
software
Funcionalidad
de procesos de calidad, ajustes de fechas, actualización de
manuales de usuario
Que
determina el alcance de un proyecto?
Identificar
todos los problemas que el proyecto necesite
Verificar
los objetivos específicos del sistema o proyecto
Ajustar
las fechas que el grupo de desarrollo necesite
Las
entregas del software por parte del grupo de desarrollo para
posteriormente entrar en pruebas y verificaciones
Que
actores principales intervienen en el ciclo de vida de un proyecto?
Personal
de aseo, modelos del ciclo de vida, fases del proyecto
Empleados,
jefes de seguridad, área de sistemas, coordinadores
Director
del proyecto, cliente, Equipo de trabajo, coordinadores,
patrocinadores, productores, ingenieros
Implementación
de software, planificación, ejecución, iniciación, control y
entrega.
En
las entregas de software se realizan diversas pruebas con el fin de
validar?
La
visualización de los datos con su respuesta y realización de las
transacciones.
Validaciones
requeridas por el usuario
Interacción
con el cliente indicándole su implementación
Funcionalidad
de procesos de calidad, ajustes de fechas, actualización de
manuales de usuario
Cuáles
son las fases de un proyecto?
Prototipo,
antecedentes, control, planeación
Planeación,
Ejecución, Iniciación, Control, Entrega
Entrega,
cronograma, tablas ejecución y entrega
Control,
prototipo, cronograma, actividades definidas
Que
debe conocer un ingeniero de sistemas para la ejecución de un
proyecto?
Implementación
de software, planificación, ejecución, iniciación, control y
entrega.
Implementación
de Software, Desarrollador, Programador y análisis de información
Funcionalidad
de procesos de calidad, ajustes de fechas, actualización de
manuales de usuario
Modificación
de todos los parámetros de calidad en el software
Que
determina el Project Managment Office?
Interacción
con el cliente indicándole su implementación y funcionalidad
Ajustar
los procesos de software para todo lo requerido en los procesos de
software
Mantener
los estándares de los procesos que relacionan la gestión en una
organización hacia el ciclo de vida de un proyecto.
Ejecución
de todos los procesos del ciclo de vida de un proyecto
Cuáles
son los roles en la metodología SCRUM?
Prototipo,
antecedentes, control, planeación
Ingenieros,
desarrolladores, Coordinadores, Empleados
Control,
prototipo, cronograma, actividades definidas
Product
Owner, Stakeholders, Usuarios
Que
caracteriza mejor a la Gerencia de Proyectos:
La
disciplina que se necesita para administrar y organizar recursos y
procesos
La
cantidad de productos a entregar en un proyecto
El
cumplimiento de los pasos para terminar exitosamente un proyecto
cumpliendo los tiempos y costos planeados
El
interés por liderar mas empresas a lo largo de la Administración
Qué
incluye el gerenciamiento de un proyecto?
1.
Permitir que los requisitos se vayan manifestando por si solos
2.
Establecer objetivos complejos y que reten al Administrador
3.
Identificar los requisitos y condiciones
4.
Establecer objetivos que sean claros y realizables
A
continuación seleccione las dos respuestas correctas a las
anteriores preguntas:
Si
las respuesta son 1 y 2
Si
las respuestas son 3 y 4
Si
las respuestas son 1 y 3
Si
las respuestas son 2 y 4
Según
PMI cuales son áreas del conocimiento para la Gerencia de
Proyectos:
1.
Gerencia de Adquisición de contratos
2.
Gerencia de la dirección de las áreas mas grandes
3.
Gerencia de tiempo
4.
Subgerencia de gobierno
A
continuación seleccione las dos respuestas correctas a las
anteriores preguntas:
Si
las respuesta son 1 y 2
Si
las respuestas son 3 y 4
Si
las respuestas son 1 y 3
Si
las respuestas son 2 y 4
Cuáles
acciones mejoran las interacciones entre áreas y sub áreas de
desarrollo de software con mejor rendimiento y optimización de
recursos para brindar mejor calidad?
1.
La visualización del equipo
2.
La visualización de los datos
3.
La intervención de la gerencia
4.
La verificación de la documentación entregada
A
continuación seleccione las dos respuestas correctas a las
anteriores preguntas:
Si
las respuesta son 1 y 2
Si
las respuestas son 3 y 4
Si
las respuestas son 1 y 3
Si
las respuestas son 2 y 4
Qué
se logra con la técnica SCRUM al aplicarla?
1.
Un acuerdo de entrega posterior a la fecha establecida con el cliente
2.
Un convenio con el cliente para que no solicite cambios
3.
Promueve el trabajo en equipo
4.
El cliente puede comenzar a usar el software de manera rápida
A
continuación seleccione las dos respuestas correctas a las
anteriores preguntas:
Si
las respuesta son 1 y 2
Si
las respuestas son 3 y 4
Si
las respuestas son 1 y 3
Si
las respuestas son 2 y 4
¿Los
métodos de modelado son de dos tipos dirigidos y ágiles que
diferencia tienen?
Los
modelos dirigidos se llevan de acuerdo a un plan establecido donde
están las actividades que fueron planeadas por anticipado y los
avances de cada proceso se miden de acuerdo a este plan; mientras
que los modelados agiles la planeación es incremental y es más
fácil modificar el proceso para reflejar los requerimientos
cambiantes del cliente.
Los
modelos dirigidos no permiten al programador hacer su labor sin
antes tener un análisis previo de lo que va realizar mientras que
en los modelos agiles hacen que el programador comienza su labor lo
más pronto posible y entregar el software lo más rápido posible.
Los
modelos dirigidos plantean que antes de seguir con cualquier otra
fase del proceso de desarrollo se cumpla la anterior de forma
rígida; mientras que los modelados agiles permiten ir haciendo
modificación sobre un proceso anterior y avanzar de forma rápida.
Todas
las anteriores
¿Cuáles
son los modelos de procesos de software?
Modelo
de Desarrollo incremental.
Modelo
de Ingeniería de software orientada a la reutilización
Modelo
en cascada.
Todas
las anteriores.
¿Dentro
del modelo en cascada existen unas etapas cuáles son?
Evolución
del software
Diseño
e implementación del software.
Especificación
del software.
Validación
del software.
Todas
las anteriores.
¿Por
qué se hace necesario hacer un levantamiento de requerimientos
antes de desarrollar un sistema software?
Estos
requerimientos deben estar claros puesto que partimos de ellos para
modelar el software y estos requerimientos son lo que el cliente
pide que desarrollemos y los que al final debemos entregarle de
forma funcional.
Vamos
a necesitar un punto de partida para saber lo que vamos a
desarrollar
Para
obtener información referente de que es lo que se trata de
desarrollar y que cumpla con las necesidades del usuario
¿En los
métodos ágiles, en que parte el cliente interviene en el proceso
de desarrollo?
Confiablidad
en el diseño
Diseño
rápido, liberaciones frecuentes de software
Estructura
de la documentación
¿En
que se basa la decisión de usar un enfoque de desarrollo ágil?
Tipo
de software que se elabora y capacidades del equipo de desarrollo
La
programación extrema
Actualizaciones
de software
La
programación extrema, que característica integra para que existan
buenas prácticas de programación.
Mejoramiento
continuo de software
Poca
agilidad en el desarrollo
Ausencia
del cliente en el equipo de desarrollo
¿Para
crear características importantes en cuanto a la programación
extrema, que se debe desarrollar?
Reducción
de gastos en el proceso
Desarrollar
pruebas automatizadas
Liberaciones
frecuentes de software
¿Qué
ofrece el método Scrum para mejorar el diseño?
Planeación
en mejorar el trabajo
Marco
de referencia para la administración del proyecto
Marco
de referencia para mejorar la documentación
¿En
qué se centran los conjuntos sprints?
Son
métodos agiles para sistemas grandes
Son
periodos fijos cuando se desarrolla un incremento de un sistema
Integra
muchos equipos de desarrollo para el proyecto
¿Dentro
de la metodología Scrum en que se basa la planeación?
Controlar
los cambios de un sistema
Dedican
recursos significativos para el proceso del cambio.
Priorizar
un atraso de trabajo y seleccionar las tareas de importancia
Una
de estas opciones
NO
es correcta para una metodología ágil:
Proceso
mucho más controlado, con numerosas políticas/normas
Grupos
grandes y posiblemente distribuidos
No
existe contrato tradicional o al menos es bastante flexible
La
arquitectura del software es esencial y se expresa mediante modelos
La
siguiente se afirmación es VERDADERO ó FALSO:
“Los
ingenieros de software deben “tener buenos reflejos” para dar
cabida a los cambios descritos”
-VERDADERO
Con
el software ágil qué otras cosas podemos lograr?:
Los
ingenieros de software deben “tener buenos reflejos” para dar
cabida a los cambios descritos.
La
agilidad reconoce que la planificación bajo condiciones de
incertidumbre tiene sus límites y el plan de un proyecto debe ser
flexible.
La
agilidad también fomenta actitudes y estructuras grupales que
facilitan la comunicación (entre
integrantes
del equipo, entre tecnólogos y ejecutivos, y entre ingenieros de
software y gerentes).
¿Qué
es un proceso adaptable?
Un
proceso es adaptable cuando es posible cambiar rápidamente el
proyecto y las condiciones técnicas.
Los
principios definen el espíritu ágil de los procesos de desarrollo
de software.
Satisfacer
al cliente mediante la entrega temprana y continua de software
útil.
El
proceso de copia de seguridad adaptable de sub archivos de
inclusión/exclusión es válido sólo para procesos de copia de
seguridad y de restauración.
PREGUNTAS
DE SELECCIÓN MÚLTIPLE
La
agilidad puede aplicarse a un proceso de software siempre y cuando:
El
proceso permite al equipo adaptar tareas y hacerlas más
eficientes.
La
planificación debe comprender la fluidez del enfoque ágil.
Dejar
sólo los productos de trabajo que sean esenciales y concisos.
El
cliente reciba software funcional de forma incremental lo más
rápido posible para el tipo de producto y ambiente de operación.
Para
muchos tipos de software el diseño y la construcción se
entrelazan.
¿Cómo
se logra alcanzar la agilidad del software?
Satisfacer
al cliente mediante la entrega temprana y continua de software
útil.
Aceptar
los cambios de requerimientos, incluso en fases avanzadas del
desarrollo.
Un
proceso ágil debe ser adaptable, lo cual ayuda a lidiar con la
imprevisibilidad.
Los
partidarios del desarrollo ágil argumentan que un proceso ágil
bien diseñado permite la incorporación tardía de cambios sin
impacto drástico en tiempo y costo.
La
agilidad reconoce que la planificación bajo condiciones de
incertidumbre tiene sus límites y el plan de un proyecto debe ser
flexible.