Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería en sistemas
Análisis de Sistemas I
Sección A.
GRUPO #2
Integrantes:
Tipos de un prototipo
La palabra prototipo se utiliza en muchas formas; principalmente
los analistas utilizan cuatro prototipos que son:
1. Prototipo de parches
El primer tipo sugiere la construcción de un sistema
funcional, parchado o construido totalmente de un circuito
integrado uniendo partes.
Se trata de un modelo funcional, con todas las características
necesarias, pero eficientes. Los usuarios pueden interactuar con
el sistema y acostumbrase a la interfaz y a los tipos de salidas
disponibles. Los procesos de recuperación y almacenamiento de
información pueden ser ineficientes debido a que los programas se
escribieron con rapidez, con el objetivo de que fuera funcional en
vez de eficiente.
(Kendall, 2011)
2. Prototipo no operacional
El segundo tipo es la del modelo a escala no funcional,
empleado para probar ciertos aspectos del diseño.
Un modelo a escala no funcional para un sistema cuyas
aplicaciones requirieran una codificación demasiado extensa como
para incluirla en el prototipo, pero fuera útil hacerse una idea
de la entrada y salida necesarias solamente. Los usuarios de todas
formas podrían tomar decisiones en cuanto a la utilidad del sistema
con base en el prototipo de la entrada y salida.
(Kendall, 2011)
(Kendall, 2011)
(Kendall, 2011)
1. Framer
Es una herramienta de diseño para macOS que requiere
codificación y se utiliza cuando se crean prototipos interactivos.
Esta herramienta tiene una amplia gama de funcionalidades que van
desde diseño, creación y colaboración de prototipos.
2. Origami Studio
Es una herramienta de creación de prototipos propiedad de
Facebook que se ha utilizado para crear maquetas para varias
aplicaciones, incluidas Instagram, Messenger y Paper. Ofrece una
extensa biblioteca de documentación completa con foros, videos
tutoriales y guías.
3. InVision
Es una herramienta de prototipos basada en la web que permite
a los diseñadores crear maquetas altamente interactivas para
proyectos web y móviles. Si bien no puede crear diseños directamente
dentro de la aplicación, puedes cargar tus diseños de páginas
estáticas y puede sincronizarse con los demás documentos de Sketch
o Photoshop. Ofrece una variedad de animaciones de transición y
gestos móviles.
Desarrollo de un prototipo
Los prototipos son un medio excelente para obtener
retroalimentación sobre el sistema propuesto y el grado en que cumple
con las necesidades de información de sus usuarios. El primer paso de
un prototipo es estimar los costos involucrados en la construcción de
un módulo del sistema. Si los costos del tiempo de los programadores y
analistas, los costos del equipo están dentro del presupuesto, se puede
continuar con la construcción del prototipo. Esta es una excelente manera
de facilitar la integración del sistema en la cultura y sistema de la
organización.
(Kendall, 2011)
3. Modificar el prototipo
Un tercer lineamiento es que su construcción debe admitir
modificaciones. Para lograr esto hay que crearlo en módulos que no
tengan un alto grado de interdependencia. Encontraremos menos
resistencia cuando haya que modificar el prototipo.
El prototipo se modifica varias veces, pasa a través de varias
iteraciones. Cada modificación requiere de otra evaluación por
parte de los usuarios.
El prototipo no es un sistema terminado. Entrar a la fase de
creación del prototipo con la idea de que requerirá modificaciones
es una postura útil que demuestra a los usuarios que tan necesaria
es su retroalimentación para mejorar el sistema.
(Kendall, 2011)
Desarrollo rápido de aplicaciones (RAD)
Es una metodología orientada a objetos para el desarrollo de
sistemas, la cual incluye un método de desarrollo así como herramientas
de software. Los prototipos y RAD son muy parecidos. Ambos tienen como
objetivo acortar el tiempo que se necesita comúnmente en un SDLC
tradicional entre el diseño y la implementación del sistema tratan de
cumplir en mejor grado con los requerimientos de las empresas que cambian
rápidamente. Considerando que se aprenden los conceptos sobre
prototipos, es mucho más fácil de entender de RAD, que se puede
considerar como una implementación especifica de la creación de
prototipos.
Algunos consideran que RAD es una metodología útil para los nuevos
entornos de comercio electrónico basado en Web, donde el denominado
estatus del primer participante de un negocio podría ser importante.
Fases de RAD
Hay tres amplias fases en las que se involucran tanto a los usuarios
como a los analistas en la evaluación, el diseño y la implementación.
Fase de implementación
Los analistas trabajan intensamente con los usuarios para
diseñar los aspectos de negocios o los aspectos no técnicos del
sistema. Se llega a una aprobación sobre estos aspectos, y se crean
y refinan los sistemas, se prueban los nuevos sistemas o las nuevas
partes de estos y después se introducen a la organización.
El taller debe haber generado emoción, la sensación de que
los usuarios son propietarios de la nueva aplicación y aceptación
de esta. El cambio que se produce de esta forma es menos traumático
que cuando un sistema se entrega y el usuario tuvo poca
participación.
(Kendall, 2011)
(Kendall, 2011)
Cuando usar RAD
Es conveniente que aprenda sobre todas las metodologías y
herramientas que le sea posible para facilitar el proceso de hacer su
trabajo de la manera más apropiada. El trabajo en algunas aplicaciones
y sistemas requerirá el uso de ciertas metodologías. Considere usar RAD
cuando:
1. En su equipo incluya programadores y analistas que tengan
experiencia con este método y se dé cualquiera de las siguientes
condiciones.
2. La empresa tendrá motivos para presionar de manera que se pueda
agilizar ciertas partes del desarrollo de una aplicación.
3. Cuando trabaje con una aplicación original que sea de comercio
electrónico y su equipo de desarrollo crea que la empresa puede
obtener una ventaja considerable frente a sus competidores por
ser innovadora, si esta aplicación esta entre las primeras en
aparecer en Web.
4. Cuando los usuarios sean sofisticados y se involucren mucho con
los objetivos organizacionales de la empresa.
Características de RAD
1. Equipos híbridos: Equipos compuestos por alrededor de seis
personas incluyendo desarrolladores y usuarios de tiempo
completo del sistema así como aquellas personas involucradas con
los requisitos. Los desarrolladores RAD deben ser analistas,
diseñadores y programadores en uno.
2. Herramientas especializadas:
a. Desarrollo visual.
b. Creación de prototipos falsos.
c. Creación de prototipos funcionales.
d. Múltiples lenguajes.
e. Herramientas colaborativas y de trabajo en equipo.
f. Interfases estándares.
g. Control de versiones.
3. Timeboxing: Las funciones secundarias son eliminadas como sea
necesario para cumplir con el calendario.
4. Prototipos iterativos y evolucionarios:
a. Reunión JAD (Joint Application Developmet):
i. Se reúnen los usuarios finales y los desarrolladores.
ii. Lluvia de ideas para obtener un borrador inicial de los
requisitos.
b. Iterar hasta acabar:
i. Los desarrolladores construyen y limpian el prototipo
basado en los requisitos actuales.
ii. Los diseñadores revisan el prototipo.
iii. Los usuarios prueban el prototipo, limpian los
requisitos.
iv. Los usuarios y desarrolladores se reúnen para revisar
juntos el sistema, refinar los requisitos y generar
solicitudes de cambios. Los cambios para los que no hay
tiempo no se realizan.
Desventajas de RAD
Las dificultades con RAD surgen debido a que los analistas tratan
de apurar demasiado el proyecto.
También existen otras tres desventajas claras dentro de RAD, estas
son:
1. El uso de RAD para proyectos grandes por escalas requiere de
recursos humanos suficientes para crear el número correcto de
equipos RAD.
2. RAD requiere usuarios y desarrolladores comprometidos en las
rápidas actividades necesarias para completar un sistema en un
marco de tiempo determinado.
3. No todos los tipos de aplicaciones son apropiados para RAD. Si
un sistema no se puede modulizar adecuadamente, la construcción
de los componentes necesarios para RAD será problemático.
Modelo ágil
Es una colección de metodologías innovadoras para el desarrollo de
sistemas, las cuales se centran en los usuarios. Aprenderán sobre valores
y principios, actividades, recursos, practicas, procesos y herramientas
relacionadas con las metodologías ágiles. a estos métodos se les
acreditan muchos proyectos exitosos, así como también se les acredita
el haber rescatado empresas con un sistema fallido diseñado mediante el
uso de metodologías estructuradas.
1. Tiempo
Hay que asignar tiempo suficiente para completar el sistema,
y entender que lo necesita para varias actividades distintas:
escuchar a los clientes, diseñar, codificar y probar.
El método ágil insiste en terminar a tiempo el sistema.
2. Costo
Es la segunda variable que podríamos ajustar.
El tiempo extra no ayuda tampoco. Aumenta el costo, pero no
siempre aumenta la productividad. Los programadores cansados son
menos efectivos que los programadores que se mantienen en alerta
tardan mucho tiempo en completar una tarea y también en comenten
errores que cuestan incluso más tiempo para corregirlos.
Incluso el nuevo hardware podría ser un gasto que valga la
pena. Las computadoras portátiles y los teléfonos inteligentes
mejoran la productividad cuando uno está alejado de la oficina.
Las pantallas de mayor tamaño, los teclados y ratones inalámbricos
y tarjetas gráficas más potentes también pueden mejorar la
productividad.
3. Calidad
La tercera variable de control de recursos es la calidad.
Permite al analista ajustar este recurso y tal vez hacer un menor
esfuerzo por mantener la calidad que si se utilizara otro método.
La calidad se puede ajustar en forma externa e interna: la interna
involucra la prueba de software con base en factores tales como la
funcionalidad y el cumplimento. No es útil experimentar con la
calidad interna.
En el extremo del desarrollo ágil es permisible sacrificar
ciertas cuestiones de calidad externas. Para que el sistema se
pueda liberar a tiempo, tal vez el cliente tenga que lidiar con
algunos errores en el software.
4. Alcance
Para determinar el alcance hay que escuchar a los clientes y
hacer que escriban sus historias, que se examinaran después para
determinar cuánto se puede hacer en un tiempo dado para
satisfacerlos. Las historias deben ser breves y fáciles de
comprender.
Lo ideal sería que el analista pudiera determinar cuánto
tiempo y dinero se requieren para completar cada una de estas
historias, y que pudieran establecer el nivel de calidad para cada
una de ellas también.
Las prácticas ágiles permiten medidas extremas, por lo que
para mantener la calidad, administrar el costo y completar el
proyecto a tiempo, tal vez sea conveniente para el analista ágil
ajustar el alcance del proyecto. Para lograr esto hay que hacer
que el cliente este de acuerdo en retrasar una o más de las
historias hasta la siguiente versión del software.
El analista ágil puede controlar cualquiera de las cuatro variables
de recursos de tiempo, costo, calidad y alcance. La agilidad exige
medidas extremas y considera muy importante el hecho de completar un
proyecto a tiempo. Para ellos hay que hacer sacrificios y el analista
ágil descubrirá que es difícil decidir en cuanto a las concesiones que
debe hacer.
(Kendall, 2011)
SRUM
Es otra de las metodologías ágiles. Es el nombre con el que se
denomina a los marcos de desarrollo ágiles caracterizados por:
• Adoptar una estrategia de desarrollo incremental, en lugar de
la planificación y ejecución completa del producto.
• Basar la calidad del resultado más en el conocimiento
implícito de las personas en equipos autoorganizados, que en
la calidad de los procesos empleados.
• Esconder las diferentes fases del desarrollo, en lugar de
realizar una tras otra en un ciclo secuencial o en cascada.
La palabra scrum proviene de una posición inicial en el rugby,
donde los equipos forman un grupo y pelean por la posesión de la pelota.
Scrum se refiere al trabajo en equipo, algo similar a lo que se necesita
para jugar rugby.
Los equipos de desarrollo empiezan el proyecto con un plan de alto
nivel que se pueden modificar al instante, a medida que avanza. Los
miembros del equipo deben tener en cuenta que el éxito del proyecto es
lo más importante y que su éxito individual es secundario. El equipo de
sistemas trabaja dentro de un estricto periodo de igual forma que un
equipo de rugby juega dentro de un tiempo estrictamente limitado.
Es una metodología de alta intensidad, y es solo una de las
filosofías que el modelado ágil adopta.
Podemos describir los componentes de la metodología de scrum de la
siguiente manera:
1. Acumulación de productos (backlog), en donde se deriva una lista
a partir de las especificaciones de los productos.
2. Acumulación de corrida (sprint), una lista que cambia en forma
dinámica sobre las tareas que se van a completar en la siguiente
corrida.
3. Corrida, un periodo de 30 días en donde el equipo de desarrollo
transforma la acumulación en software que se puede demostrar.
4. Scrum diaria, una reunión breve en donde la comunicación es la
regla número uno. Los miembros del equipo necesitan explicar lo
que hicieron desde la última reunión, si se toparon con
obstáculos y lo que planean hacer antes del siguiente scrum
diaria.
5. Demo, software funcional que se puede demostrar al cliente.
Características de Scrum
Scrum es un modelo de referencia que define un conjunto de
prácticas y roles, y que puede tomarse como punto de partida para
definir el proceso de desarrollo que se ejecutara durante un
proyecto.
Scrum permite la creación de equipos autoorganizados
impulsando la colocalización de todos los miembros del equipo, y
la comunicación verbal entre todos los miembros y disciplinas
involucradas en el proyecto.
Principales características de Scrum
1. Gestión regular de las expectativas del cliente, resultados
anticipados, flexibilidad y adaptación, retorno de
inversión, mitigación de riesgos, productividad y calidad,
alineamiento entre cliente y equipo, por último equipo
motivado.
2. Se hace uso de equipos-dirigidos y autoorganizados.
3. Se realiza a diario una reunión de Scrum, que es una reunión
de avance diaria que no dura más de 15 minutos con el
objetivo de obtener retroalimentación sobre las tareas del
equipo y los obstáculos que se presentan.
Cada uno de estos puntos mencionados hacen que el Scrum
sea utilizado de manera regular en un conjunto de buenas
prácticas para el trabajo en equipo y de esta manera obtener
resultados posibles.
Existen varias implementaciones de sistemas para
gestionar el proceso de Scrum, que van desde notas amarillas
"post-it" y pizarras hasta paquetes de software.
Una de las mayores ventajas de Scrum es que es muy fácil
de aprender, y requiere muy poco esfuerzo para comenzarse
a utilizar. Así, si se utiliza una pizarra con notas
autoadhesivas cualquier miembro del equipo podrá ver tres
columnas: trabajo pendiente ("backlog"), tareas en proceso
("in progress") y hecho ("done"). De un solo vistazo, una
persona puede ver en qué están trabajando los demás en un
momento determinado.
Roles de Scrum
Roles principales
Product owner
Se segura que el equipo trabaje de forma adecuada
desde la perspectiva del negocio. Ayuda al usuario a
escribir las historias de usuarios, las prioriza y las
coloca en el Product Backlog.
ScrumMaster (o Facilitador)
Su trabajo primario es eliminar los obstáculos que
impiden que el equipo alcance el objetivo del sprint.
El ScrumMaster no es el líder del equipo, sino que
actúa como una protección entre el equipo y cualquier
influencia que le distraiga. El ScrumMaster se asegura
de que el proceso Scrum se utiliza como es debido. El
ScrumMaster es el que hace las reglas se cumplan.
Equipo de desarrollo
El equipo tiene la responsabilidad de entregar el
producto. Es recomendable un pequeño equipo de 3 a 9
personas con las habilidades necesarias para realizar
el trabajo.
Roles auxiliares
Son aquellos que no tienen un rol formal y no se involucran
frecuentemente en el proceso, sin embargo deben ser tomados
en cuenta. Un aspecto importante de una aproximación ágil
es la práctica de involucrar en el proceso a los usuarios,
expertos del negocio y otros interesados. Es importante que
esa gente participe y entregue un reporte de
retroalimentación con respecto a la salida del proceso a
fin de revisar y planear cada sprint.
Stakeholders (Clientes, proveedores, Vendedores, etc.)
Son las personas que hacen posible el proyecto y
para quienes el proyecto producirá el beneficio
acordado que justifica su desarrollo. Solo participan
directamente durante las revisiones del “sprint”.
Administradores (Managers)
Son los responsables de establecer el entorno para
el desarrollo del proyecto.
Beneficios de Scrum
1. Flexibilidad a cambios: Gran capacidad de reacción ante
los cambiantes requerimientos generados por las
necesidades del cliente o la evolución del mercado. El
marco de trabajo está diseñado para adecuarse a las nuevas
exigencias que implican proyectos complejos.
2. Reducción del Time to Market: El cliente puede empezar a
utilizar las características más importantes del proyecto
antes de que esté completamente terminado.
3. Mayor calidad del software: El trabajo metódico y la
necesidad de obtener una versión de trabajo funcional
después de cada iteración, ayuda a la obtención de un
software de alta calidad.
4. Mayor productividad: Se logra, entre otras razones, debido
a la eliminación de la burocracia y la motivación del
equipo proporcionado por el hecho de que pueden
estructurarse de manera autónoma.
5. Maximización del retorno de la inversión (ROI): creación
de software solamente con las prestaciones que contribuyen
a un mayor valor de negocios gracias a la priorización por
retorno de inversión.
6. Predicción de tiempos: A través de este marco de trabajo
se conoce la velocidad media del equipo por sprint, con lo
que es posible estimar de manera fácil cuando se podrá
hacer uso de una determinada funcionalidad que todavía está
en el Backlog.
7. Reducción de riesgos: El hecho de desarrollar, en primer
lugar, las funcionalidades de mayor valor y de saber la
velocidad a la que el equipo avanza en el proyecto, permite
despejar riesgos efectivamente de manera anticipada.
(Kendall, 2011)
La primera lección es que las entregas pequeñas permiten a los
sistemas evolucionar. Las actualizaciones de los productos se realizan
con frecuencia y los cambios se incorporan con rapidez.
La segunda lección es que la programación en parejas mejora la
calidad en general. Aunque este tipo de programación es controversial,
en definitiva promueve otras actividades positivas necesarias en el
desarrollo de sistemas: una buena comunicación, lograr identificar con
el cliente, enfocarse en los aspectos más valiosos del proyecto primero,
evaluar todo el código a medida que se desarrolla e integrar el nuevo
código una vez que pase las pruebas con éxito.
La tercera lección es que los clientes en el sitio son benéficos
tanto para la empresa como para el equipo de desarrollo ágil. Los
clientes actúan como una referencia preparada y una comprobación de la
realidad.
La cuarta lección es la semana de trabajo de 40 horas mejora la
efectividad. Incluso los desarrolladores más resistentes son
susceptibles a errores y agotamiento si trabajan demasiado por un periodo
muy extenso.
La quinta lección que existen dentro de la metodología ágil son
los recursos y las actividades equilibradas apoyan a los objetivos del
proyecto. Administrar un proyecto no significa solo reunir todos los
recursos y tareas. Significa que el analista tiene que lidiar con varias
concesiones. Las variables de control de recursos de tiempo, costo,
calidad y alcance necesitan estar balanceadas en forma apropiada con las
actividades de codificación, diseño, prueba y escucha.
La última lección es que los valores ágiles son imprescindibles
para el éxito. Es esencial para el éxito en general del proyecto que los
analistas adopten sin reservas los valores de comunicación, simpleza,
retroalimentación y valentía en todo el trabajo que realicen.
(Kendall, 2011)
Cultura de la organización
Es la cultura en general de la organización y cómo encaja en ella
la cultura del equipo de desarrollo. Una cultura organizacional
conservadora con muchas características estables que no busca innovar
puede ser un contexto inapropiado, e incluso inhóspito, para que el grupo
de desarrollo de sistemas adopte las metodologías ágiles. Los analistas
deben tener cuidado al introducir nuevas técnicas en este tipo de
entorno, ya que su éxito dista mucho de estar asegurado; además los
miembros de mucho tiempo del equipo de desarrollo u otros miembros de
la organización pueden sentirse amenazados por las nuevas formas de
trabajar que difieren de las metodologías acostumbradas y confiables,
que han producido resultados comprobados.
Una organización que depende de la innovación para retener su
ventaja competitiva en su industria podría ser la que esté en mejor
condición de aceptar las innovaciones ágiles en los métodos de desarrollo
de sistemas. La cultura de la organización ya está impregnada con el
entendimiento de la naturaleza crítica de muchos de los principios
básicos de las metodologías de desarrollo ágil.
Entre estos dos extremos se encuentran las organizaciones que no
dependen de la innovación como fortaleza estratégica clave pero que tal
vez les convendría la adopción de prácticas innovadoras en pequeñas
unidades o grupos. Es evidente que esos pequeños centros o núcleos
innovadores podrían en un momento dado impulsar el crecimiento o la
ventaja competitiva de este tipo de organización.
Sincronización
Las organizaciones deben hacer y responder la pregunta acerca
de cuándo es el mejor momento para innovar con la adopción de
nuevas metodologías de desarrollo de sistemas, cuando se tienen en
cuenta todos los proyectos y factores. Las organizaciones deben
tener en cuenta toda la variedad de proyectos en los que están
invirtiendo, mirar más allá de los tiempos de entrega de los
proyectos, programar la actualización de las plantas físicas y
absorber las proyecciones clave en la industria y la economía.
Costo
Otro de los riesgos en cuanto a la adopción de metodologías
ágiles para las organizaciones es el costo involucrado en la
educación y capacitación de los analistas de sistemas y
programadores en relación con la nueva metodología. Esto puede
implicar costos de seminarios y cursos fuera del sitio de trabajo,
hay costos de oportunidad involucrados cuando los desarrolladores
de sistemas se tienen que desviar por necesidad de los proyectos
existentes para aprender nuevas habilidades. La relación entre
cliente y analista debe ser lo bastante elástica como para absorber
y adaptarse a los cambios en los comportamientos esperados.
Reacciones de los clientes
Cuando los clientes se involucran como usuarios o iniciadores
de los esfuerzos de desarrollo de sistemas, las reacciones en cuanto
al uso de nuevos métodos requeridos por la metodología ágil también
son una consideración clave. Algunos clientes reaccionan de manera
alegre una vez que se les describen los beneficios de la
conveniencia en tiempo y la participación.