Академический Документы
Профессиональный Документы
Культура Документы
DE DESARROLLO DE SOFTWARE
PAG
Captulo 1
Introduccin 3
Metodologa RUP 5
Conceptos principales 5
Fases 6
Flujos de trabajo 7
Roles 9
Ventajas y desventajas 11
Metodologa RAD 12
Ventajas y desventajas 13
Metodologas giles 14
Manifiesto gil 15
XP 17
Historias de usuario 18
Roles 18
Proceso XP 18
Prcticas Bsicas de XP 19
Ventajas y Desventajas 22
Scrum 23
Equipo Scrum 23
Actividades y eventos de Scrum 25
Herramientas y artefactos Scrum 29
Ventajas y desventajas 30
Captulo 2
Formulacin y definicin de criterios 32
Presupuesto disponible 33
Tamao del proyecto 33
1
Tiempos limitados de entrega 33
Necesidad de documentacin 34
Personal Necesario 34
Adaptabilidad, respuesta a cambios 34
Imposibilidad del cliente 35
Captulo 3
Cuantificacin de criterios 36
Captulo 4
Propuesta de modelo evaluativo 38
Descripcin del modelo 39
Evaluacin de las necesidades bsicas del proyecto 39
Producto de matrices de las tablas definidas 40
Sumatoria de valores 40
Obtencin de resultados 40
Captulo 5
Caso de aplicacin 41
Necesidades del producto 41
Producto de matrices 43
Sumatoria de valores 44
Obtencin de resultados 45
Captulo 6
Conclusiones 46
Bibliografa 48
2
CAPITULO 1
INTRODUCCIN
3
METODOLOGAS DE DESARROLLO TRADICIONALES
4
METODOLOGA RUP
Conceptos principales
Los casos de uso son una forma de representar funcionalidades para el usuario, de
manera que el cumplimiento de uno de estos dentro del software implica
proporcionar un valor agregado al cliente.
Se centra en la arquitectura
A medida que los casos de uso maduran dentro del ciclo de vida del software,
tambin lo hace la arquitectura y viceversa Este proceso requerir continuar hasta
llegar a una estabilidad.
Es iterativo e incremental.
Cada iteracin del producto tiene como finalidad ampliar cada vez ms la utilidad
del software y al mismo tiempo, tratar los riesgos ms importantes. De esta manera,
se enfocan los equipos de trabajo para producir resultados visibles en tiempos
cortos, se disminuyen los costos de los riesgos, dado que se modifican pequeas
partes del software y no en su totalidad.
Estos conceptos son la base del marco de trabajo y se ven apoyados cada uno
dentro del otro[3].
5
FASES
Inicio
Elaboracin
Construccin
Durante esta fase se crean las funcionalidades del sistema, las funcionalidades se
aaden al esqueleto del sistema de manera que este comience a satisfacer cada
uno de los requerimientos de software. Al finalizar esta fase el producto debera
estar acorde con las necesidades de los usuarios casi en su totalidad[3].
Transicin
Se realizan los ltimos ajustes al software, corregir los defectos si es necesario,
capacitar a los usuarios y la verificacin completa de todas las especificaciones
expresadas en los requerimientos del sistema[4].
6
FLUJOS DE TRABAJO
Requerimientos
Anlisis y Diseo
Implementacin
Los diseos de arquitectura se transforman en archivos ejecutables que hacen parte
de la estructura del producto, durante cada iteracin se establecen los pasos a
seguir, las funcionalidades a implementar y su orden especfico. Adems se realizan
pruebas unitarias a los subsistemas y se aaden al software.
7
Pruebas
Se busca identificar los defectos que pueda poseer el software durante cada
iteracin, tambin comprobar que el producto cumpla con las especificaciones
acordadas. El propsito final es el refinamiento del producto, planeando y
ejecutando las pruebas necesarias.
Despliegue
Mediante un plan para las fases y un plan para las iteraciones se busca gestionar
todo lo relacionado con la ejecucin del proyecto, de manera que se asegure la
consecucin de los objetivos mediante documentacin, gestin de riesgos,
contratacin de personal, entre otros.
Como su nombre lo indica, este flujo se encarga de controlar las modificaciones que
se realizan a los diferentes artefactos creados, llevar registro de dichas
modificaciones y asegurando la integridad del proyecto.
Entorno
8
Roles
Analistas
Desarrolladores
* Arquitecto de software.
* Diseador
* Diseador de interfaz de usuario
* Diseador de cpsulas.
* Diseador de base de datos.
* Implementador.
* Integrador.
Gestores
* Jefe de configuracin.
* Jefe de pruebas
* Jefe de despliegue
* Ingeniero de procesos
* Revisor de gestin del proyecto
* Gestor de pruebas.
9
Apoyo
* Documentador tcnico
* Administrador de sistema
* Especialista en herramientas
* Desarrollador de cursos
* Artista grfico
Especialista en pruebas
Otros roles
* Stakeholders
* Revisor
* Coordinacin de revisiones
* Revisor tcnico
10
Ventajas
-Se centra en los casos de uso, facilitando un entendimiento del problema para el
equipo desarrollador, promoviendo de esta manera la calidad del software y la
adicin de valor al cliente del proyecto.
-Permite una visin clara del avance del proyecto en todo momento, permitiendo
fijar metas y administrar los recursos disponibles de acuerdo a las necesidades de
la metodologa.
-Abundante creacin de documentos de apoyo que dan informacin acerca del
software.
Desventajas
11
RAD
Metodologa
Se centra principalmente en ejecutar los procesos de la manera ms rpida posible,
con el enfoque de reducir costos e incrementar la calidad. Combina el uso de
tcnicas de prototipado evolutivo y time boxing[8].
12
Ventajas
Se eliminan interfaces no necesarias en etapas tempranas del desarrollo
Los tiempos de entrega son cortos en comparacin a otras metodologas
El usuario se ve involucrado durante las etapas de creacin del software
El costo de implementacin del software se ve reducido.
Desventajas
13
Metodologas agiles
14
documento que resume la filosofa agile estableciendo cuatro valores y doce
principios.
Manifiesto gil
El Manifiesto gil comienza enumerando los principales valores del desarrollo gil.
Segn el Manifiesto se valora:
Al individuo y las interacciones del equipo de desarrollo sobre el proceso y
las herramientas. La gente es el principal factor de xito de un proyecto software.
Es ms importante construir un buen equipo que construir el entorno. Muchas veces
se comete el error de construir primero el entorno y esperar que el equipo se adapte
automticamente. Es mejor crear el equipo y que ste configure su propio entorno
de desarrollo en base a sus necesidades.
Desarrollar software que funcione por encima una completa documentacin.
La regla a seguir es no producir documentos a menos que sean necesarios de
forma inmediata para tomar una decisin importante. Estos documentos deben ser
cortos y centrarse en lo fundamental.
La colaboracin con el cliente por encima de la negociacin contractual. Se
propone que exista una interaccin constante entre el cliente y el equipo de
desarrollo. Esta colaboracin entre ambos ser la que marque la marcha del
proyecto y asegure su xito.
Responder a los cambios ms que seguir estrictamente un plan. La habilidad
de responder a los cambios que puedan surgir a lo largo del proyecto (cambios en
los requisitos, en la tecnologa, en el equipo, etc.) determina tambin el xito o
fracaso del mismo. Por lo tanto, la planificacin no debe ser estricta sino flexible y
abierta.
Los valores anteriores inspiran los doce principios del manifiesto. Son
caractersticas que diferencian un proceso gil de uno tradicional. Los dos primeros
principios son generales y resumen gran parte del espritu gil. El resto tienen que
ver con el proceso a seguir y con el equipo de desarrollo, en cuanto metas a seguir
y organizacin del mismo.
15
Estos principios son los siguientes:
I. La prioridad es satisfacer al cliente mediante tempranas y continuas entregas
de software que le aporte un valor.
II. Dar la bienvenida a los cambios. Se capturan los cambios para que el cliente
tenga una ventaja competitiva.
IV. La gente del negocio y los desarrolladores deben trabajar juntos a lo largo
del proyecto.
X. La simplicidad es esencial.
16
Estos principios marcan el ciclo de vida de un desarrollo gil, as como las prcticas
y procesos a utilizar [11].
Para el proyecto en curso se consider utilizar las metodologas ms conocidas y
mejor documentadas a nivel mundial, estas fueron XP (eXtreme Programming) y
SCRUM. A continuacin describiremos estas metodologas a fondo para el
desarrollo del proyecto.
XP (eXtreme Programming)
Se basa en una serie de reglas y principios que se han ido gestando a lo largo de
toda la historia de la ingeniera del software. Usadas conjuntamente proporcionan
una nueva metodologa de desarrollo software que se puede englobar dentro de las
metodologas ligeras, XP est basada en los siguientes valores [12]:
Simplicidad
Comunicacin
Retroalimentacin
Coraje o valor
Respeto.
La idea de XP consiste en traer todo el equipo junto en la presencia de prcticas
simples, con suficiente retroalimentacin para permitir que el equipo pueda ver
dnde est y para acomodar las prcticas a su situacin particular [12].
XP cuenta con una serie de actividades para el desarrollo de los proyectos, estas
son:
Codificar
Hacer pruebas
Escuchar
Disear
17
Las Historias de Usuario
Las historias de usuario son la tcnica utilizada en XP para especificar los requisitos
del software. Se trata de tarjetas de papel en las cuales el cliente describe
brevemente las caractersticas que el sistema debe poseer, sean requisitos
funcionales o no funcionales. El tratamiento de las historias de usuario es muy
dinmico y flexible, en cualquier momento historias de usuario pueden romperse,
reemplazarse por otras ms especficas o generales, aadirse nuevas o ser
modificadas. Cada historia de usuario es lo suficientemente comprensible y
delimitada para que los programadores puedan implementarla en unas semanas
[14].
Roles XP
Aunque en otras fuentes de informacin aparecen algunas variaciones y
extensiones de roles XP, en este apartado enumeraremos los roles de acuerdo con
la propuesta original de Beck.
Programador
Cliente
Encargado de pruebas (Tester)
Encargado de seguimiento (Tracker)
Entrenador (Coach)
Consultor
Gestor (Big boss)
Proceso XP
Un proyecto XP tiene xito cuando el cliente selecciona el valor de negocio a
implementar basado en la habilidad del equipo para medir la funcionalidad que
puede entregar a travs del tiempo. El ciclo de desarrollo consiste (a grandes
rasgos) en los siguientes pasos [14]:
1. El cliente define el valor de negocio a implementar.
2. El programador estima el esfuerzo necesario para su implementacin.
3. El cliente selecciona qu construir, de acuerdo con sus prioridades y las
restricciones de tiempo.
4. El programador construye ese valor de negocio.
5. Vuelve al paso 1.
18
Prcticas bsicas de XP
En la bsqueda de la posibilidad de disminuir la mtica curva exponencial del costo
del cambio a lo largo del proyecto, lo suficiente para que el diseo evolutivo
funcione, XP apuesta por un crecimiento lento del costo del cambio y con un
comportamiento asinttico. Esto es posible gracias a las tecnologas disponibles
para ayudar en el desarrollo de software y a la aplicacin disciplinada de las doce
"prcticas bsicas" que deben seguirse al pie de la letra [12][13]:
El juego de la planificacin
Se hacen las historias de usuario y se planifica en qu orden se van a hacer y las
mini-versiones. La planificacin se revisa continuamente. El equipo tcnico realiza
una estimacin del esfuerzo requerido para implementar las historias de usuario y
los clientes deciden sobre el mbito y tiempo de los release y de cada iteracin. El
cliente establece la prioridad de cada historia de usuario, de acuerdo con el valor
que aporta para el negocio. Los programadores estiman el esfuerzo asociado a
cada historia de usuario. Se ordenan las historias de usuario segn prioridad y
esfuerzo, y se define el contenido del release y/o iteracin, apostando por enfrentar
lo de ms valor y riesgo cuanto antes.
Entregas pequeas
La idea es producir rpidamente mini-versiones del sistema que sean operativas,
aunque no cuenten con toda la funcionalidad pretendida para el sistema, pero que
ofrezcan algo til y de valor para el negocio al usuario final y no trozos de cdigo
que no pueda ver funcionando. Deben ser lo suficientemente pequeas como para
poder hacer una cada pocas semanas, una entrega no debera tardar ms 3 meses.
Metfora
El sistema es definido mediante una metfora o un conjunto de metforas
compartidas por el cliente y el equipo de desarrollo. Una metfora es una historia
compartida que describe cmo debera funcionar el sistema. Martin Fowler en [15]
explica que la prctica de la metfora consiste en formar un conjunto de nombres
que acten como vocabulario para hablar sobre el dominio del problema. Hay que
buscar unas frases o nombres que definan cmo funcionan las distintas partes del
programa, de forma que slo con los nombres se pueda uno hacer una idea de qu
es lo que hace cada parte del programa.
19
Diseo simple
Se debe disear la solucin ms simple que pueda funcionar y ser implementada
en un momento determinado del proyecto. Hacer siempre lo mnimo imprescindible
de la forma ms sencilla posible. Mantener siempre sencillo el cdigo.
Pruebas
El cliente, con la ayuda de los desarrolladores, propone sus propias pruebas para
validar las mini-versiones. La produccin de cdigo est dirigida por las pruebas
unitarias. Las pruebas unitarias son establecidas antes de escribir el cdigo y son
ejecutadas constantemente ante cada modificacin del sistema.
Refactorizacin (Refactoring)
El refactoring consiste en escribir nuevamente parte del cdigo de un programa,
sin cambiar su funcionalidad, a los efectos de hacerlo ms simple, conciso y/o
entendible.
Programacin en parejas
Los programadores trabajan por parejas (dos delante del mismo ordenador) y se
intercambian las parejas con frecuencia (un cambio diario). Segn Cockburn y
Williams en un estudio realizado para identificar los costos y beneficios de la
programacin en parejas [16], las principales ventajas de introducir este estilo de
programacin son: muchos errores son detectados conforme son introducidos en el
cdigo (inspecciones de cdigo continuas), por consiguiente la tasa de errores del
producto final es ms baja, los diseos son mejores y el tamao del cdigo menor
(continua discusin de ideas de los programadores), los problemas de
programacin se resuelven ms rpido, se posibilita la transferencia de
conocimientos de programacin entre los miembros del equipo, varias personas
entienden las diferentes partes sistema, los programadores conversan mejorando
as el flujo de informacin y la dinmica del equipo, y por ltimo, los programadores
disfrutan ms su trabajo.
20
Propiedad colectiva del cdigo
Cualquier programador puede cambiar cualquier parte del cdigo en cualquier
momento. En un proyecto XP, todo el equipo puede contribuir con nuevas ideas que
apliquen a cualquier parte del proyecto.
Integracin continua
Cada pieza de cdigo es integrada en el sistema una vez que est lista. As, el
sistema puede llegar a ser integrado y construido varias veces en un mismo da. Es
por eso que XP promueve publicar lo antes posible las nuevas versiones, aunque
no sean las ltimas, siempre que estn libres de errores. Idealmente, todos los das
deben existir nuevas versiones publicadas.
Cliente in-situ
Uno de los requerimientos de XP es tener al cliente disponible durante todo el
proyecto. No solamente como apoyo a los desarrolladores, sino formando parte del
grupo. Al comienzo del proyecto, el cliente debe proporcionar las historias de
usuarios. Pero, dado que estas historias son expresamente cortas y de alto nivel,
no contienen los detalles necesarios para realizar el desarrollo del cdigo. Estos
detalles deben ser proporcionados por el cliente, y discutidos con los
desarrolladores, durante la etapa de desarrollo.
Estndares de programacin
XP promueve la programacin basada en estndares, de manera que sea
fcilmente entendible por todo el equipo, y que facilite la recodificacin. Se enfatiza
la comunicacin de los programadores a travs del cdigo, con lo cual es
indispensable que se sigan ciertos estndares de programacin (del equipo, de la
organizacin u otros estndares reconocidos para los lenguajes de programacin
utilizados).
21
Ventajas
Da lugar a una programacin sumamente organizada.
Ocasiona eficiencias en el proceso de planificacin y pruebas.
Cuenta con una tasa de errores muy pequea.
Propicia la satisfaccin del programador.
Fomenta la comunicacin entre los clientes y los desarrolladores.
Facilita los cambios.
Permite ahorrar mucho tiempo y dinero.
Puede ser aplicada a cualquier lenguaje de programacin.
El cliente tiene el control sobre las prioridades.
Se hacen pruebas continuas durante el proyecto.
La XP es mejor utilizada en la implementacin de nuevas tecnologas.
Desventajas
Es recomendable emplearla solo en proyectos a corto plazo.
En caso de fallar, las comisiones son muy altas.
Requiere de un rgido ajuste a los principios de XP.
Puede no siempre ser ms fcil que el desarrollo tradicional.
22
SCRUM
Equipo SCRUM
El Equipo Scrum consiste en un Dueo de Producto (Product Owner), el Equipo de
Desarrollo (Development Team) y un Scrum Master. Los Equipos Scrum son
autoorganizados y multifuncionales.
Los Equipos Scrum entregan productos de forma iterativa e incremental,
maximizando las oportunidades de obtener retroalimentacin. Las entregas
23
incrementales de producto Terminado aseguran que siempre estar disponible
una versin potencialmente til y funcional del producto [18].
24
Los Miembros individuales del Equipo de Desarrollo pueden tener
habilidades especializadas y reas en las que estn ms enfocados, pero la
responsabilidad recae en el Equipo de Desarrollo como un todo.
SCRUM Master
El Scrum Master es la persona responsable del xito al aplicar la metodologa
SCRUM en el desarrollo del proyecto o producto, asegurando que los valores,
prcticas y reglas son seguidos por el resto del equipo. En concreto, es la persona
que asegura el seguimiento de la metodologa guiando las reuniones, ayudando al
equipo ante cualquier problema que pueda aparecer y controlando que el trabajo
sigua el ritmo adecuado. Por tanto debe tomar decisiones inmediatas y eliminar los
impedimentos que vayan surgiendo en el momento, aunque en ocasiones no cuente
con toda la informacin necesaria. Su responsabilidad es entre otras, la de hacer
de paraguas ante las presiones externas y motivar al resto del equipo. Por tanto, la
labor de Scrum Master requiere una fuerte personalidad ya que debe facilitar el
trabajo del equipo sin imponer autoridad.
25
prioritarios que se compromete a completar en la iteracin, de manera que
puedan ser entregados si el cliente lo solicita.
Segunda parte de la reunin. Se realiza en un timebox de cmo mximo 4 horas. El
equipo planifica la iteracin, elabora la tctica que le permitir conseguir el mejor
resultado posible con el mnimo esfuerzo. Esta actividad la realiza el equipo dado
que ha adquirido un compromiso, es el responsable de organizar su trabajo y es
quien mejor conoce cmo realizarlo.
Define las tareas necesarias para poder completar cada objetivo/requisito,
creando la lista de tareas de la iteracin (Sprint Backlog) basndose en la
definicin de completado.
Realiza una estimacin conjunta del esfuerzo necesario para realizar cada
tarea.
Cada miembro del equipo se autoasigna a las tareas que puede realizar.
Sprint
El corazn de Scrum es el Sprint, es un bloque de tiempo (time-box) de un mes o
menos durante el cual se crea un incremento de producto Terminado, utilizable y
potencialmente desplegable. Es ms conveniente si la duracin de los Sprints es
consistente a lo largo del esfuerzo de desarrollo. Cada nuevo Sprint comienza
inmediatamente despus de la finalizacin del Sprint previo.
Los Sprints contienen y consisten de la Reunin de Planificacin del Sprint (Sprint
Planning Meeting), los Scrums Diarios (Daily Scrums), el trabajo de desarrollo, la
Revisin del Sprint (Sprint Review), y la Retrospectiva del Sprint (Sprint
Retrospective).
Durante el Sprint:
No se realizan cambios que puedan afectar al Objetivo del Sprint;
Los objetivos de calidad no disminuyen; y,
El alcance puede ser clarificado y renegociado entre el Dueo de Producto y
el Equipo de Desarrollo a medida que se va aprendiendo ms.
Cada Sprint puede considerarse un proyecto con un horizonte no mayor de un mes.
Al igual que los proyectos, los Sprints se usan para lograr algo. Cada Sprint tiene
una definicin de qu se va a construir, un diseo y un plan flexible que guiar la
construccin y el trabajo y el producto resultante.
26
Scrum Diario (Daily Scrum)
El objetivo de esta reunin es facilitar la transferencia de informacin y la
colaboracin entre los miembros del equipo para aumentar su productividad, al
poner de manifiesto puntos en que se pueden ayudar unos a otros.
Cada miembro del equipo inspecciona el trabajo que el resto est realizando
(dependencias entre tareas, progreso hacia el objetivo de la iteracin, obstculos
que pueden impedir este objetivo) para al finalizar la reunin poder hacer las
adaptaciones necesarias que permitan cumplir con el compromiso conjunto que el
equipo adquiri para la iteracin. Esto se lleva a cabo inspeccionando el trabajo
avanzado desde el ltimo Scrum Diario y haciendo una proyeccin acerca del
trabajo que podra completarse antes del siguiente.
Cada miembro del equipo debe responder las siguientes preguntas en un timebox
de cmo mximo 15 minutos:
Qu he hecho desde la ltima reunin de sincronizacin? Pude hacer todo
lo que tena planeado? Cul fue el problema?
Qu voy a hacer a partir de este momento?
Qu impedimentos tengo o voy a tener para cumplir mis compromisos en
esta iteracin y en el proyecto?
Los Scrum Diarios mejoran la comunicacin, eliminan la necesidad de mantener
otras reuniones, identifican y eliminan impedimentos relativos al desarrollo, resaltan
y promueven la toma de decisiones rpida, y mejoran el nivel de conocimiento del
Equipo de Desarrollo. El Scrum Diario constituye una reunin clave de inspeccin y
adaptacin.
27
La Revisin de Sprint incluye los siguientes elementos [18]:
Los asistentes son el Equipo Scrum y los interesados clave invitados por el
Dueo de Producto;
El Dueo de Producto explica qu elementos de la Lista de Producto se han
Terminado y cuales no se han Terminado;
El Equipo de Desarrollo habla acerca de qu fue bien durante el Sprint, qu
problemas aparecieron y cmo fueron resueltos esos problemas;
El Equipo de Desarrollo demuestra el trabajo que ha Terminado y responde
preguntas acerca del Incremento;
El Dueo de Producto habla acerca de la Lista de Producto en el estado
actual. Proyecta fechas de finalizacin probables en el tiempo basndose en
el progreso obtenido hasta la fecha (si es necesario);
El grupo completo colabora acerca de qu hacer a continuacin, de modo
que la Revisin del Sprint proporcione informacin de entrada valiosa para
Reuniones de Planificacin de Sprints subsiguientes.
Revisin de cmo el mercado o el uso potencial del producto podra haber
cambiado lo que es de ms valor para hacer a continuacin; y,
Revisin de la lnea de tiempo, presupuesto, capacidades potenciales y
mercado para la prxima entrega prevista del producto.
28
Herramientas y artefactos SCRUM
29
Grficos de trabajo pendiente (Burndown charts)
En Scrum se planifica y mide el esfuerzo restante necesario para desarrollar el
producto. Esta grfica suele utilizarse en lugar de un diagrama de PERT debido a
que el camino crtico en un desarrollo gil cambia diariamente. Esto hara obsoleto
el diagrama de PERT cada da. Es por esto que no es til una herramienta que
modele el camino crtico a partir de actividades. La solucin es utilizar una tcnica
que permita medir la velocidad de desarrollo. Para esto se utiliza el criterio del
equipo a partir del cual se calcula diariamente el camino crtico. Esto permite
recalcular el plan y la velocidad en que se realiza el trabajo. En funcin de esto el
equipo puede trabajar para acelerar o desacelerar el trabajo para cumplir con la
fecha de entrega.
Se pueden utilizan los siguientes grficos de esfuerzo pendiente:
Das pendientes para completar los requisitos del producto o proyecto
(product burndown chart), realizado a partir de la lista de requisitos priorizada
(Product Backlog).
Horas pendientes para completar las tareas de la iteracin (sprint burndown
chart), realizado a partir de la lista de tareas de la iteracin (Iteration
Backlog).
Este tipo de grfico permite realizar diversas simulaciones: ver cmo se aplazan las
fechas de entrega si se le aaden requisitos, ver cmo se avanzan si se le quitan
requisitos o se aade otro equipo, etc. [19]
Ventajas:
1. El cliente est satisfecho ya que recibe lo que necesita y esperaba
2. El coste en trminos de proceso y Management es mnimo, llevando a un
resultado ms rpido y barato.
3. Ayuda a la empresa a ahorrar tiempo y dinero
4. Permite realizar proyectos en los que la documentacin de los requerimientos
de negocios no estn muy claros como para ser desarrolladas
5. Se desarrolla rpidamente y testea. Cualquier error puede ser fcilmente
rectificado.
6. Los problemas se identifican por adelantado en las reuniones diarias y por lo
tanto se pueden resolver rpidamente
7. Hay visibilidad clara del desarrollo del proceso
8. Iterativo en su naturaleza, requiere continuo feedback del usuario
9. Fcil de manejar los cambios debido a los sprints tan cortos y el feedback
constante
30
10. Poco control que insiste en la informacin frecuente del proceso en el trabajo
mediante reuniones regulares.
11. Las reuniones diarias hacen posible medir la productividad individual. Esto
lleva a la mejor en la productividad de cada uno de los miembros del equipo.
12. Para los desarrolladores las ventajas pueden ser motivacin y satisfaccin
de realizar el trabajo de una manera eficiente.
13. Es fcil entregar un producto de calidad en el tiempo estipulado
14. Puede trabajar con cualquier tecnologa o lenguaje de programacin
15. Hace el proceso del desarrollo de software ms centrado y manejable
Desventajas:
1. Si no existe una fecha definitiva de finalizacin del proyecto es posible que
se siga solicitando, y aadiendo, nueva funcionalidad.
2. Si una tarea no est bien definida, los costes de tiempo y dinero estimados
del proyecto no sern demasiado exactos. En ese caso, la tarea se puede
extender sobre varios sprints.
3. Si los miembros del equipo no estn centrados y convencidos, el proyecto
nunca se completara o incluso fallar.
4. Est bien para proyectos pequeos, de rpido movimiento ya que trabaja
bien solo con equipos pequeos.
5. Esta metodologa necesita solo miembros de equipo experimentados. Si el
equipo consiste en gente que son junior, el proyecto no puede ser
completado a tiempo.
6. Adems de los recursos sin suficiente experiencia , la falta de direccin firme
pueden llevar a los proyectos a no completarse o incluso fallar.
7. La metodologa Scrum funciona bien cuando el scrum master confa en el
equipo que lleva. Si se practican controles muy estrictos sobre los miembros
del equipo, puede ser extremadamente frustrante para ellos, llevando a la
desmoralizacin y el fallo del proyecto.
8. Si algunos de los miembros del equipo se marcha durante el desarrollo puede
tener un efecto negativo enorme en el desarrollo del proyecto.
9. El control de la calidad del proyecto es difcil de implementar y cuantificar a
menos que el equipo de test puedan llevar a cabo testeo de regresin
despus de cada sprint.
31
CAPITULO 2
Dado el anlisis realizado en este documento nos encontramos con factores clave
que se pueden considerar decisivos a la hora de utilizar una metodologa
determinada, puesto que las ventajas que ofrece cada una son dependientes de los
recursos disponibles para la realizacin del proyecto y las necesidades futuras de
la organizacin.
Durante el desarrollo de este captulo analizaremos cada uno de los factores que
se pueden considerar crticos dentro de un marco metodolgico, tales como
presupuesto, personal, entre otros. Sin embargo, se entrarn a considerar otros
factores de importancia dentro de los cuales se pueda realizar la eleccin de un
marco de trabajo determinado.
32
diferencia en el uso de una u otra metodologa de desarrollo. Se pretende resaltar
las diversas ventajas y falencias de los marcos de trabajo analizados en cuanto al
criterio seleccionado.
33
una metodologa diseada para realizar entregas viables en tiempos relativamente
cortos. RUP requiere una cantidad mayor de tiempo para sus iteraciones, en
comparacin con una metodologa gil.
34
se pueden presentar en el desarrollo del proyecto. Las metodologas tradicionales
como RUP son sensibles a cambios, principalmente en etapas avanzadas del
proyecto.
35
CAPITULO 3
CUANTIFICACIN DE CRITERIOS
Teniendo en cuenta los criterios analizados en el captulo anterior, buscamos
generar valores que nos permitan cuantificar la eficacia de cada marco de trabajo
para situaciones especficas. Procedemos as a asignar valores a cada metodologa
segn su grado de cumplimiento con los criterios existentes.
La evaluacin ser realizada utilizando nmeros enteros en el rango de (1,5),
asignando un valor objetivo, dependiendo directamente de la necesidad especfica
de cada proyecto.
Los valores asignados reflejarn la aplicabilidad de la metodologa en cuestin a
dicho caso en particular, siendo (5) el valor que indica el mejor cumplimiento del
criterio analizado respecto a las prcticas utilizadas dentro del marco de trabajo. En
caso contrario, un valor de (1) implica que tales prcticas resultan
contraproducentes para el correcto desarrollo del proyecto dentro de las pautas
propuestas.
En la tabla 1 se puede observar la asignacin de tales valores, de manera que se
puedan referenciar fcilmente las metodologas y sus ventajas en ciertos factores
que pueden considerarse decisivos a la hora de tomar decisiones.
Esta tabla es una de las entradas del modelo matricial de seleccin que se describir
en el siguiente captulo.
36
RUP RAD XP SCRUM
Presupuesto
disponible 1 3 4 5
Tamao del
proyecto 5 4 2 1
Tiempos limitados
de entrega 1 2 4 5
Necesidad de
documentacin 5 4 3 1
Personal
necesario 5 3 2 1
Adaptabilidad,
respuesta a
cambios 1 2 4 5
Imposibilidad del
cliente 4 3 1 2
37
CAPITULO 4
38
Condiciones Evaluativas Si(1) -
No(0)
39
Producto de matrices de las tablas definidas
Despus de obtener los datos del lder de proyecto, se realizar un producto de
matrices entre los resultados de la tabla de Valores evaluativos y los elementos
numricos de la tabla de los Criterios cuantitativos definida en el captulo 3.
Sumatoria de valores
Con el resultado del producto de matrices entre las tablas procedemos a sumar los
valores obtenidos de este procedimiento, columna a columna, el cual nos entregar
los valores obtenidos para cada metodologa bajo los criterios establecidos por el
dueo del producto.
Obtencin de resultados
Con los resultados obtenidos definimos por orden ascendente, cul ha sido la
metodologa que ms satisfactoriamente cumple con los valores de negocio
estipulados por el dueo del proyecto. De esta manera, la metodologa con el valor
ms alto, ser aquella ms adecuada para llevar a cabo la ejecucin del proyecto
evaluado
40
CAPITULO 5
CASO DE APLICACIN
Para mejorar la comprensin de lo planteado en el presente proyecto,
procederemos a evaluar el proceso dentro de un posible escenario.
41
El cliente que solicit la creacin de la base de datos solamente dispuso de
unos requerimientos en una reunin inicial, ya que por motivo de viaje no
estar acompaando la realizacin del proyecto.
Una vez obtenidas las definiciones bsicas del proyecto procedemos con la
interpretacin de la informacin en nuestra tabla:
42
Producto de matrices
Ahora que tenemos los datos del dueo del producto podemos proceder con el
clculo del producto entre las tablas y obtener las respectivas valoraciones de las
metodologas en base a los criterios definidos en la tabla anterior.
Presupuesto
disponible 1 3 4 5 x 1
Tamao del
proyecto 5 4 2 1 x 0
Tiempos limitados
de entrega 1 2 4 5 x 1
Necesidad de
documentacin 5 4 3 1 x 0
Personal
necesario 5 3 2 1 x 0
Adaptabilidad,
respuesta a
cambios 1 2 4 5 x 1
Imposibilidad del
cliente 4 3 1 2 x 1
43
5.3 Sumatoria de valores
Procedemos hacer una sumatoria columna a columna del resultado dado por el
producto del punto anterior, lo cual nos deja la tabla de la siguiente manera:
Presupuesto
disponible 1 3 4 5
Tamao del
proyecto 0 0 0 0
Tiempos
limitados de
entrega 1 2 4 5
Necesidad de
documentacin 0 0 0 0
Personal
necesario 0 0 0 0
Adaptabilidad,
respuesta a
cambios 1 2 4 5
Imposibilidad del
cliente 4 3 1 2
TOTAL 7 10 13 17
44
5.4 Obtencin de resultados
Como podemos observar de la tabla anterior, estos son los resultados de las
metodologas para el caso dado:
RUP: 7
RAD: 10
XP: 13
SCRUM: 17
45
CAPITULO 6
CONCLUSIONES
De este proceso podemos deducir que el marco de trabajo bajo el que se desarrolla
RAD resulta ser cercano a un hbrido entre las metodologas tradicionales y las
metodologas giles, desenvolvindose bien ante diferentes situaciones, sin llegar
a resaltar en algn sentido.
Si bien el proceso planteado se puede tomar como una referencia para la seleccin
de un marco de trabajo, cabe resaltar que existen otros factores influyentes al
momento de tomar dicha decisin. Tales factores pueden ser necesidades
especficas no contempladas dentro de los criterios, dado que los proyectos
tecnolgicos poseen cualidades que son inherentes al entorno sobre el cual se
desarrollan.
46
BIBLIOGRAFIA
[1]LABORATORIO nacional de calidad del software, Ingeniera del software:
Metodologas y ciclos de vida [en lnea], [Fecha de consulta: 12/10/2014]. Disponible
en: https://www.incibe.es/file/N85W1ZWFHifRgUc_oY8_Xg
[5]JOYA, Javier Enrique, Flujos de trabajo (metodologa RUP) [en lnea], [Fecha de
consulta: 14/10/2014]. Disponible en: http://javi-adsi.blogspot.com/2009/10/flujos-
de-trabajo-metodologia-rup.html
[6] RAMIREZ, Eglis Airana, Metodologa RUP [en lnea], [Fecha de consulta:
13/10/2014]. Disponible en: https://eglisramirez6.wordpress.com/conociendo-
tecnologias/
[7]STICKYMINDS, Function Point Analysis and Agile Methodology [en lnea], [Fecha
de consulta: 14/10/2014]. Disponible en:
http://www.stickyminds.com/article/function-point-analysis-and-agile-methodology
47
[10]ARIES, Benjamn, Ciclo de vida del modelo de desarrollo RAD [en lnea], [Fecha
de consulta: 04/10/2014]. Disponible en: http://www.ehowenespanol.com/ciclo-
vida-del-modelo-desarrollo-rad-como_548102/
[11] AGILE Alliance [en lnea], [Fecha de consulta: 04/10/2014]. Disponible en:
www.agilealliance.org/the-alliance/
[12] WELLS, Don, Extreme Programming: A gentle introduction [en lnea], [Fecha
de consulta: 04/10/2014]. Disponible en: http://www.extremeprogramming.org
[13] BECK, Kent, Extreme Programming Explained. Embrace Change, Pearson
Education [en lnea], [Fecha de consulta: 06/10/2014]. Disponible en:
http://books.google.es/books?id=G8EL4H4vf7UC&printsec=frontcover&hl=es#v=o
nepage&q&f=false
[14] JEFFRIES, Ron, ANDERSON, Ann, HENDRICKSON, Chet, Extreme
Programming Installed [en lnea], [Fecha de consulta: 07/10/2014]. Disponible en:
http://homes.di.unimi.it/~belletc/corsi/xpinstall.pdf
[15] FOWLER, Martin, Is Design Dead? [en lnea], [Fecha de consulta: 09/10/2014].
Disponible en: www.martinfowler.com/articles/designDead.html
[16] COCKBUN, Alistair, WILLIAMS, Laurie, The Costs and Benefits of Pair
Programming [en lnea], [Fecha de consulta: 14/10/2014]. Disponible en:
http://dsc.ufcg.edu.br/~jacques/cursos/map/recursos/XPSardinia.pdf
[17] SCRUM guides The History of Scrum [en lnea], [Fecha de consulta:
15/10/2014]. Disponible en: http://www.scrumguides.org/history.html
[18] SCHWABER, Ken, SUTHERLAND, Jeff, The SCRUM guide [en lnea], [Fecha
de consulta: 16/10/2014]. Disponible en:
http://www.scrumguides.org/docs/scrumguide/v1/scrum-guide-us.pdf
[19] KNIBERG, Henrik, SCRUM and XP from the trenches [en lnea], [Fecha de
consulta: 18/10/2014]. Disponible en:
http://wwwis.win.tue.nl/2R690/doc/ScrumAndXpFromTheTrenchesonline07-31.pdf
48