CRYSTAL
Comunicacin cara a cara entre los miembros del equipo y aprendizaje basado en la
retroalimentacin para futuras operaciones.
SCRUM
https://prezi.com/qxjk5edz-nj4/metodologia-agil-dynamic-system-development-method-
dsdm/
http://ingenieriadesoftware.mex.tl/52827_DSDM.html
https://es.wikiversity.org/wiki/Dynamic_Systems_Development_Method
https://es.slideshare.net/MSJara/dsdm-74296631
https://www.scrummanager.net/bok/index.php?title=DSDM
CAPITULO 7: DSDM (METODOS DINAMICOS DE DESARROLLO DE SISTEMAS)
La versin ms reciente est inspirada en una ternera rtica, de la que deriva su nombre,
ya que personifica libertad, robustez y aptitud de colaboracin, por lo que es un marco de
desarrollo de software centrado en el desarrollador para la entrega a tiempo y en
presupuesto y de las caractersticas del proyecto de calidad controlada valorado por los
usuarios.
El mtodo DSDM es un mtodo de desarrollo gil que se apoya en una continua interaccin
con el usuario, consiguiendo una gran implicacin. Esto produce un sistema sensible a los
requisitos cambiantes del usuario, y que ser capaz de adaptarse mucho mejor a las
necesidades de la empresa. Fue creado para ser un sistema de resolucin sencilla de
tareas complejas, para ello se utilizan una serie de principios y valores, junto a una
organizacin de equipo especfica y con roles, y una serie de fases y etapas a seguir
durante el desarrollo del software.
Principios y Valores
Los mtodos de desarrollo giles tienen una serie de valores como son dar ms valor a
los individuos en lugar de a las herramientas, o valorar mejor un software que
funciona bien en lugar de una buena documentacin. El mtodo DSDM utiliza 9
principios para aplicar estos valores.
1.- La obligacin del usuario de implicarse:
Es considerado el ms importante de los principios. Esto es debido a que la implicacin del
usuario en el desarrollo reduce en gran parte el nmero de errores y, por consiguiente, el
dinero y tiempo utilizado para corregir los mismos. Por lo general, se trabaja con un pequeo
nmero de usuarios selectos, haciendo pequeas revisiones peridicas. Estos usuarios se
mantendrn durante el desarrollo del Software consiguiendo as una imagen ms fiel del
software deseado. La continuidad, por otra parte, es uno de los valores que se aplican en
los principios.
6.- Todos los cambios que se hagan durante el desarrollo han de ser reversibles.
Como el propio ttulo indica, cualquier cambio que nosotros realicemos debe de poder ser
revertido con facilidad y sin suponer excesivos costes. Esto es debido a que los principios
anteriores hacen que los cambios surjan continuamente y si no se tiene un control sobre
ellos puede que el tiempo que tardemos en realizarlos sea excesivo. Por ello todos los
cambios que se realicen han de ser escritos ideando que sean sencillos de eliminar o
revertir. Es cierto que este principio pueda hacer que realicemos trabajo para nada si
nuestros cambios se revierten al final, pero sin ello, los principios que sigue el mtodo
DSDM no sera aplicable dado que generara trabajo muy grande procedente de la continua
comunicacin con usuario y cliente.
7.- Los requisitos se describen en alto nivel y tendrn una lnea base.
El DSDM hasta el momento propone que haya una gran libertad a la hora de cambiar los
requisitos. Para limitarlos se establecen una serie de requisitos en alto nivel al comenzar el
proyecto, formando una Lnea Base sobre la que desarrollar. As se forma una idea del
alcance que deben tener los requisitos y nos aseguramos que los cambios no alteran
demasiado la funcionalidad del ECS.
Organizacin y Roles
Escriba: Toma nota de todos los requisitos, acuerdos y cambios que se realizan.
Como todo modelo de proceso de Ingeniera de software, el DSDM est dividido en fases
y etapas para organizar mejor las tareas a realizar en el desarrollo del software. El modelo
DSDM consta de 3 grandes fases, El pre-proyecto, Ciclo de vida del software, y Post-
Proyecto.
1.- El Pre-Proyecto:
En esta fase se producen varias sugerencias de proyectos candidato, entre las cuales se
elige una candidata. Adems en esta fase se realiza una estimacin de los fondos
necesarios para desarrollar el proyecto y se decide si el proyecto se va a realizar o no.
En esta fase se realizan reuniones para determinar aquellas ideas que no tienen que ver
con el proyecto en s, sino con la gestin del proyecto. Las respuestas ayudarn a
direccionar el desarrollo del proyecto determinando sus costes, la adaptacin de este al
modelo DSDM, los riesgos que existen, etc... Produciendo un documento de Viabilidad.
La principal tarea de esta fase es transformar los Modelos funcionales obtenidos de la fase
anterior y completarlos para que satisfagan totalmente las necesidades del usuario. Para
ello, crearemos Prototipos de diseo, y al igual que en la fase anterior, los verificaremos
con los usuarios.
2.4- Implementacin
Por ltimo, en la fase de implementacin, los usuarios verifican que los prototipos cumplen
con lo deseado y se realiza la implementacin de los mismos, as como el entrenamiento
de los futuros usuarios para que sepan utilizar la aplicacin.
3.- El Post-Proyecto.
Esta fase se utiliza para comprobar que el producto funciona correcta y eficientemente. En
esta fase se realizan tareas de mantenimiento, y de mejora del software si son requeridas.
Por lo general esta fase se produce durante los 6 meses siguientes a la entrega del proyecto
al cliente.
CAPITULO 8: CRYSTAL
https://es.slideshare.net/fvalerolujano/metodologias-giles-crystal-clear
https://es.slideshare.net/mikyWatt/metodologias-agiles-15338080
https://www.youtube.com/watch?v=wdImzanLf_U
https://www.youtube.com/watch?v=p3Rv7jS6f2s&t=66s
https://www.youtube.com/watch?v=-vVF7In63TU&spfreload=5
http://www.javiergarzas.com/2012/09/metodologias-crystal.html
https://es.scribd.com/doc/211905120/Metodologias-Crystal
Es una familia de metodologas de desarrollo que son flexibles, ligeras, y que se puede
adaptar a cualquier tipo de proyecto. Crystal se introdujo en la dcada de 1990 por Alistair
Cockburn, un pionero de agile y unos de los autores del manifiesto gil.
Segn Cockburn Crystal es una familia de metodologas impulsadas por humanos, adaptivo
ultraligero.
La familia de cristal incluye Crystal Clear, Crystal Yelow, Crystal Orange y otros.
Todas estas metodologas trabajan en la idea de que cada proyecto tiene sus propias
caractersticas nicas y requiere una metodologa de desarrollo hecho a medida.
Como sucede tambin con cada metodologa agile, Crystal tambin da importancia a las
personas mayores de los procesos y herramientas.
La interaccin entre los miembros del equipo es importante y que tambin exige la
participacin activa del usuario.
Crystal Clear no es una metodologa en si misma sino una familia de metodologas con un
cdigo gentico comn.
Crystal da vital importancia a las personas que componen el equipo de un proyecto y por lo
tanto sus puntos de estudio son:
Roles:
Principios:
Las personas tienen problemas para actuar de manera consistente todo el tiempo
Las personas generalmente quieren ser buenos ciudadanos, son buenos observando,
tomando iniciativas y haciendo todo lo que sea necesario para el proyecto funcione.
https://www.agilebusiness.org/content/roles-and-responsibilities
https://es.slideshare.net/PacoGarat/crystal-clear-11805930
https://es.scribd.com/doc/211905120/Metodologias-Crystal
https://es.scribd.com/doc/84488342/Practica-3-Otras-metodologias-Agiles
https://en.wikipedia.org/wiki/Dynamic_systems_development_method
http://osl2.uca.es/wikiCE/index.php/Dynamic_Systems_Development
https://es.slideshare.net/MSJara/metodologia-dsdm-74297619
http://www.javiergarzas.com/2012/09/metodologias-crystal.html
https://github.com/mxabierto/hackea-el-sistema/wiki/E2E-Testing-con-Protractor
FDD
FDD, es un mtodo gil, iterativo y adaptativo. A diferencia de otros ms, no cubre todo el
ciclo de vida sino solo las fases de diseo y construccin y se considera adecuado para
proyectos mayores y de misin crtica.
Principios de FDD
Roles de FDD
Roles Claves: El equipo de trabajo est estructurado en jerarquas, siempre debe haber
un jefe de proyecto y aunque es un proceso considerado ligero tambin incluye
documentacin (la mnima necesaria para que algn nuevo integrante pueda entender el
desarrollo de inmediato).
Gerente del Proyecto: Es el lder de, proyecto. Se encarga de la administracin, direccin
y financiamiento del proyecto.
Arquitecto Jefe: Realiza el diseo global del sistema. Ejecucin de todas las etapas.
Director de Desarrollo: Lleva diariamente las actividades de desarrollo. Resuelve
conflictos en el equipo. Resuelve problemas referentes a recursos.
Programador Jefe: Analiza los requerimientos, disea el proyecto, selecciona las
funcionalidades a desarrollar.
Propietario de Clases: Responsable del Desarrollo de las clases que se le asignaron como
propias.
Expertos de dominio: Puede ser un usuario, un cliente analista o una mezcla de estos.
Poseen el conocimiento de los requerimientos del sistema. Pasa el conocimiento a los
desarrolladores para que se asegure la entrega de un sistema completo.
Roles de Soporte:
Ingeniero de Construccin: que se encarga del control de versiones de los builds y publica
la documentacin.
Herramientista (toolsmith): Es el encargado de administrar y mantener los servidores,
conexiones, comunicaciones, etc
Roles adicionales
Tester: Es el encargado de ir probando las funcionalidades del sistema y verificar que estas
cumplan con los requerimientos del cliente.
Fases de FDD
Caractersticas
No hace nfasis en la obtencin de los requerimientos sino en cmo se realizan las fases
de diseo y construccin.
Se preocupa por la calidad, por lo que incluye un monitoreo constante del proyecto.
Se basa en un proceso iterativo con iteraciones cortas que producen un software funcional
que el cliente y la direccin de la empresa pueden ver y monitoriar.
Define claramente entregas tangibles y formas de evaluacin del progreso del proyecto.
https://prezi.com/j3qymffr2zvu/metodologia-fdd/
https://es.scribd.com/document/227319136/metodologia-FDD
https://www.ecured.cu/Metodolog%C3%ADa_FDD
https://prezi.com/1k5pu8arfhnu/metodologia-fdd-feature-driven-development-desarrollo-
bas/
https://sites.google.com/site/ingsoportelogico/home/feature-driven-development-fdd
TDD
Requisitos
Para que funcione el desarrollo guiado por pruebas, el sistema que se programa tiene que
ser lo suficientemente flexible como para permitir que sea probado automticamente. Cada
prueba ser suficientemente pequea como para que permita determinar unvocamente si
el cdigo probado pasa o no la verificacin que sta le impone. El diseo se ve favorecido
ya que se evita el indeseado "sobre diseo" de las aplicaciones y se logran interfaces ms
claras y un cdigo ms cohesivo. Frameworks como JUnit proveen de un mecanismo para
manejar y ejecutar conjuntos de pruebas automatizadas.
En primer lugar se debe definir una lista de requisitos y despus se ejecuta el siguiente
ciclo:
1.- Elegir un requisito: Se elige de una lista el requisito que se cree que nos dar mayor
conocimiento del problema y que a la vez sea fcilmente implementable.
2.- Escribir una prueba: Se comienza escribiendo una prueba para el requisito. Para ello
el programador debe entender claramente las especificaciones y los requisitos de la
funcionalidad que est por implementar. Este paso fuerza al programador a tomar la
perspectiva de un cliente considerando el cdigo a travs de sus interfaces.
3.- Verificar que la prueba falla: Si la prueba no falla es porque el requisito ya estaba
implementado o porque la prueba es errnea.
4.- Escribir la implementacin: Escribir el cdigo ms sencillo que haga que la prueba
funcione. Se usa la expresin "Djelo simple" ("Keep It Simple, Stupid!"), conocida como
principio_KISS.
5.- Ejecutar las pruebas automatizadas: Verificar si todo el conjunto de pruebas funciona
correctamente.
Tener un nico repositorio universal de pruebas facilita complementar TDD con otra prctica
recomendada por los procesos giles de desarrollo, la "Integracin Continua". Integrar
continuamente nuestro trabajo con el del resto del equipo de desarrollo permite ejecutar
toda batera de pruebas y as descubrir si nuestra ltima versin es compatible con el resto
del sistema. Es recomendable y menos costoso corregir pequeos problemas cada pocas
horas que enfrentarse a problemas enormes cerca de la fecha de entrega fijada.
Caractersticas
Una caracterstica de esta forma de programacin es el evitar escribir cdigo innecesario
("You Ain't Gonna Need It" (YAGNI)). Se intenta escribir el mnimo cdigo posible, y si el
cdigo pasa una prueba aunque sepamos que es incorrecto nos da una idea de que
tenemos que modificar nuestra lista de requisitos agregando uno nuevo.
Otra caracterstica del Test Driven Development es que requiere que el programador
primero haga fallar los casos de prueba. La idea es asegurarse de que los casos de prueba
realmente funcionen y puedan recoger un error.
Ventajas
Los programadores que utilizan el desarrollo guiado por pruebas en un proyecto virgen
encuentran que en raras ocasiones tienen la necesidad de utilizar el depurador o debugger.
A pesar de los elevados requisitos iniciales de aplicar esta metodologa, el desarrollo guiado
por pruebas (TDD) puede proporcionar un gran valor aadido en la creacin de software,
produciendo aplicaciones de ms calidad y en menos tiempo. Ofrece ms que una simple
validacin del cumplimiento de los requisitos, tambin puede guiar el diseo de un
programa. Centrndose en primer lugar en los casos de prueba uno debe imaginarse cmo
los clientes utilizarn la funcionalidad (en este caso, los casos de prueba). Por lo tanto, al
programador solo le importa la interfaz y no la implementacin. Esta ventaja es similar al
diseo por convenio pero se parece a l por los casos de prueba ms que por las aserciones
matemticas.
Limitaciones
El desarrollo guiado por pruebas requiere que las pruebas puedan automatizarse. Esto
resulta complejo en los siguientes dominios:
Bases de datos. Hacer pruebas de cdigo que trabaja con base de datos es complejo
porque requiere poner en la base de datos unos datos conocidos antes de hacer las pruebas
y verificar que el contenido de la base de datos es el esperado despus de la prueba. Todo
esto hace que la prueba sea costosa de codificar, aparte de tener disponible una base de
datos que se pueda modificar libremente.
PROGRAMACION EXTREMA (XP)
Es una metodologa ligera de bajo riesgo, flexible y previsible para el desarrollo de software,
hace uso de lanzamientos frecuentes en ciclos de desarrollo corto para mejorar la
productividad y proporciona puntos de control para la comunicacin de resultados y
cambios.
XP propone que los costes de los cambios no tienen por qu aumentar con el tiempo.
Qu sucede despus de una iteracin? a menudo despus de una iteracin el cliente tiene
varias opciones con respecto al producto, se puede poner el software en produccin
inmediatamente especialmente cuando el software se conecta a un sitio web, el cliente
tambin puede optar por esperar a implementar caractersticas hasta que un mdulo se
complete o hasta que todo el proyecto est terminado Esta es tambin una oportunidad
para aprender de una iteracin actual y aplicar conocimientos a la siguiente. Tenga en
cuenta que de versiones de software sirven como un enlace de retroalimentacin entre la
solicitud y la entrega.
Regla 80-20: originalmente llamada principio de Pareto esta norma establece que para
dichos eventos aproximadamente el 80% de los efectos resultantes de 20% causas. Regla
de negocio que los estados que el 80% de las ventas de una empresa da como resultado
la actividad del 20% de su base total de clientes. La mayora de los programas de software
y los programadores son conscientes de esta regla, el 80% de los resultados vienen de
20% de los que han realizado. Segn XP poner la ms esencial y valiosa 20% funcionalidad
en produccin
VALORES
Retroalimentacin:
Sencillez: Este valor hace hincapi en mantener todo simple, sencillez y comunicacin no
son mutuamente excluyentes ms comunicacin, ms clara la comprensin, simplicidad
significa construir nicamente lo esencial hoy en da y no predecir las necesidades del
maana, esto maximiza el valor de la inversin. Simplicidad significa tomar pasos pequeos
y sencillos para alcanzar la meta y mitigar los daos que puedan ocurrir.
Coraje: Es una virtud difcil de aplicar. Esto significa tomar decisiones difciles cuando sea
necesario, valenta fomenta confianza y la confianza promueve comunicacin eficaz. Si hay
algo que no funciona, entonces puede dar por hecho que es necesario corregir. Si no hay
retrasos, a continuacin, comunicarlas al cliente. La nica forma de recuperarse de los
errores es el de admitir y a continuacin llevar a cabo acciones correctivas esto requiere
coraje.
PRACTICAS
1. El juego de la planificacin
2. Pequeas entregas
3. Metfora
4. Diseo Simple
5. Pruebas
6. Refactorizacin
7. Programacin por parejas
8. Propiedad Colectiva
9. Integracin contina
10. 40 horas semanales
11. Cliente en casa
12. Estndares de codificacin
ROLES
Cliente:
Programador:
Hace estimaciones sobre las Historias.
Tutor:
Perseguidor (Calidad)
Monitoriza el progreso de los programadores, toma accin si las cosas tienden a salirse de
su senda. Las acciones incluyen reuniones con el cliente
Gestor: Planifica las reuniones se asegura que el proceso de reuniones se sigue anota el
resultados de la reunin para futuros informes y los pasa al perseguidor. Posiblemente
responsable ante el Propietario de Oro.
Propietario de Oro: Persona que paga el proyecto que puede ser o no la misma del cliente.
ARTEFACTOS
Historias de Usuario
Tareas de Ingeniera
Pruebas de aceptacin
Pruebas Unitarias y de Integracin
Plan de Entrega
Cdigo
FASES
Planificacin
Diseo
Codificacin
Prueba
EVENTOS
Lean Kanban es un conjunto de valores y principios que resumen la manera de tener xito
en el desarrollo de productos.
VALORES
Kaisen: Mejora continua, kai= idea de cambio o una accin para rectificar algo, zen=
significa simplemente bueno, el concepto de kaizen se basa en la filosofa japonesa de los
negocios que hace hincapi en la mejora continua. Kaizen cree que toda persona
involucrada en un negocio es una valiosa contribucin a la organizacin. Kaizen es una
estructura de adaptacin de los valores humanos que mantiene a los empleados motivados
para lograr cero defectos en su trabajo. El mtodo kaizen cree que cada persona
involucrada en un negocio es una valiosa contribucin a la organizacin, kaiken promueve
un ambiente de reconocimiento y respeto, lo cual es importante para la comunicacin clara.
PRACTICAS
1.- Optimizar el conjunto: Optimizacin de una parte del sistema, optimizar el conjunto del
sistema
2.- Eliminar los residuos: Se describe como muda en sistema de produccin Toyota
(TPS), los sistemas es algo en el sistema que no agrega valor al cliente, los residuos en el
desarrollo de software se clasifican en tres grandes categoras: Los residuos de
construccin: los residuos de incapacidad para aprender; Los residuos de basura: es decir
las prcticas que impiden el proceso.
3.- Construir en calidad: Encontrar demasiados defectos en el sistema con regularidad
significa que hay defectos en el proceso en su conjunto.
4.- Aprender constantemente: Mejora continua, se dice que nada es perfecto y siempre
hay espacio para mejorar
5.- Involucrar a todos: Las organizaciones obtienen su ventaja competitiva a travs de los
recursos humanos a su disposicin
DSDM se basa en comentarios de los clientes para cada iteracin para converger en una
solucin de negocio eficaz.
FDD Desarrolla caractersticas de valor basadas en el cliente y utiliza una aceleracin corta
para el modelado.