Documentos de Académico
Documentos de Profesional
Documentos de Cultura
6191-Texto Del Artículo-21569-1-10-20140322 PDF
6191-Texto Del Artículo-21569-1-10-20140322 PDF
INTRODUCCIÓN
RESUMEN
Avison y Fitzgerald (1995) nos presentan una definición de las
El desarrollo de software no es una tarea sencilla,
por mucho tiempo esta labor se ha llevado adelante metodologías de desarrollo muy clara, destacando sus principa-
sin una metodología definida. Al respecto algunos les componentes, fases, herramientas y técnicas. “Una metodo-
autores definen una metodología como una colec- logía es una colección de procedimientos, técnicas, herramien-
ción de procedimientos, técnicas, herramientas y tas y documentos auxiliares que ayudan a los desarrolladores
documentos auxiliares que ayudan a los desarrolla-
dores de software en sus esfuerzos por implementar de software en sus esfuerzos por implementar nuevos sistemas
nuevos sistemas de información. de información. Una metodología esta formada por fases, cada
En las dos últimas décadas, respecto a estas meto-
una de las cuales se puede dividir en sub-fases, que guiarán a
dologías de desarrollo de software se ha entablado los desarrolladores de sistemas a elegir las técnicas más apro-
un intenso debate entre dos grandes corrientes. Por piadas en cada momento del proyecto y también a planificarlo,
un lado, las denominadas metodologías tradicio- gestionarlo, controlarlo y evaluarlo”.
nales, centradas en el control del proceso, con un
riguroso seguimiento de las actividades involucra-
das en ellas. Por otro lado, las metodologías ágiles, Modelo de proceso
centradas en el factor humano, en la colaboración y
participación del cliente en el proceso de desarrollo y Según Darniame (1999), un modelo de procesos es una repre-
a un incesante incremento de software con iteracio-
nes muy cortas.
sentación del mundo real, que captura el estado de actual de
las actividades para guiar, reforzar o automatizar partes de la
El artículo presenta una propuesta, en medio de este producción de los procesos.
debate, para seleccionar una metodología de desa-
rrollo de software. En el artículo de E. Georgiadou Software Process and Product
Palabra clave: Selección metodologías; desarrollo Improvement: A Historical Perspective, nos hablan de los mode-
software. los; V-Model, WModel, X-Model, RAD y Orientado a Objetos, sin
embargo los más conocidos son:
SELECTION CRITERIA OF METHODOLOGIES OF • Modelo secuencial. Representado por metodologías tan
SOFTWARE DEVELOPMENT
famosas como Waterfall. Se inicia con un completo análisis
de los requisitos de los usuarios. En el siguiente paso, los
ABSTRACT programadores implementan el diseño y finalmente, el com-
pletado y perfecto sistema es probado y enviado.
In the last two decades, on these software develo-
pment methodologies has been engaged in intense • Desarrollo incremental. Su principal objetivo es reducir el
debate between two currents. On the one hand, the tiempo de desarrollo, dividiendo el proyecto en intervalos
so-called traditional methods, focusing on process
control, with rigorous monitoring of the activities in- incrementales superpuestos. Del mismo modo que con el
volved in them. On the other hand, agile methods, modelo waterfall, todos los requisitos se analizan antes de
focusing on human factors in collaboration and cus- empezar a desarrollar, sin embargo, los requisitos se dividen
tomer participation in the development process and en “incrementos” independientemente funcionales.
a relentless increase in software with very short ite-
rations. • Desarrollo iterativo. A diferencia del modelo incremental se
The article presents a proposal, in the midst of this centra más en capturar mejor los requisitos cambiantes y la
debate, to select a software development methodo- gestión de los riesgos. En el desarrollo iterativo se rompe el
logy. proyecto en iteraciones de diferente longitud, cada una de
Keywords: Selection methodologies; development
software. 1 Magíster en Marketing y Turismo, Docente auxiliar FII UNMSM. E-mail: otinocog@gmail.com
2 Egresado Maestría Ing Industrial UNMSM. E-mail: pprl@gmail.com
3 Ingeniero Industrial, Profesor del departamento de Producción y Gestión Industrial UNMSM.
E-mail: jasalasb@hotmail.com
ellas produciendo un producto completo y entre- • Seguir un conjunto de pasos formales para
gable. descomponer los problemas grandes (divide y
vencerás).
• Modelo en espiral. Comprende las mejores ca-
racterísticas de ciclo de vida clásico y el proto-
tipado (desarrollo iterativo). Además, incluye el
Metodologías tradicionales y Metodologías agi-
análisis de alternativas, identificación y reduc-
les
ción de riesgos.
Diversos autores coinciden en señalar algunos re-
quisitos que deben tener las metodologías de de-
MARCO CONCEPTUAL sarrollo:
Dijkstra, con un influyente artículo (Go to statement • Visión del producto.
considered harmful), sienta las bases para la crea-
• Vinculación con el cliente.
ción de las metodologías, como las conocemos
ahora. • Establecer un modelo de ciclo de vida.
Entre otros autores se establecieron unos criterios • Gestión de los requisitos.
que marcasen el éxito del desarrollo del software,
• Plan de desarrollo.
que hasta ahora están vigentes:
• Integración del proyecto.
• El coste del desarrollo inicial debe ser relativa-
mente bajo. • Medidas de progreso del proyecto.
• El software debe ser fácil de mantener. • Métricas para evaluar la calidad.
• El software debe de ser portable a nuevo hard- • Maneras de medir el riesgo.
ware. • Como gestionar los cambios.
• El software debe hacer lo que el cliente quiere. • Establecer una línea de meta.
A partir de que Dijkstra planteará su programación En tiempos recientes, han surgido las metodolo-
estructurada (a través de su libro A Discipline of gías ágiles, como una alternativa, una reacción a
Programming), empezaron a surgir lenguajes de las metodologías tradicionales y principalmente a
programación influenciados por este, que respeta- su burocracia. Brooks, en su mítico libro The Mythi-
ban los siguientes criterios: cal Man Month, expone las primeras ideas que se
• Desarrollo de programas mediante top-down, plantean en las metodologías ágiles, gran parte de
en contraposición a bottom-up. ellas, responden al sentido común.
• Utilizar un conjunto específico de reglas de pro- Canós, J. (2005) resume las características de am-
gramación (Prohibido el uso de Go To). bas metodologías, en la siguiente tabla:
Proceso menos controlado, con pocos principios Proceso muy controlado, numerosas normas
El cliente es parte del desarrollo Cliente interactúa con el equipo de desarrollo mediante reuniones
Entre las metodologías ágiles, se puede mencionar • Metodología más utilizada en proyectos soft-
a las siguientes: ware.
• Adaptative Software Development Se considera como metodologías certificadas
aquellas que emiten un certificado que aseguran el
• Agile Modeling
cumplimiento y seguimiento de la metodología, así
• Agile Model Driven Development como sus técnicas y prácticas.
• Agile Project Management Una metodología dispone de training, si se en-
cuentra alguna institución, organización o compa-
• Agile Unified Process
ñía que ofrezca formación de la metodología.
• Crystal Methods
Se considera que una metodología tiene comuni-
• Dynamic Systems development methods dad, contemplando si se ha formado una comuni-
dad relevante o si está asociada a la Agile Alliance,
• Feature driven development
soportándola y cumpliendo sus principios.
• Internet Speed Development
Se consideran los proyectos realizados, en su ma-
• Lean development yoría por metodologías que se han aplicado en
empresas privadas y por lo tanto no existe mucha
• Pragmatic programming
documentación pública al respecto. Por lo tanto,
• Scrum determinar esta clasificación, requiere de una bús-
• Test Driven Development queda exhaustiva.
• XBreed
Selección de metodologías
• Extreme Programming
Este aspecto no ha sido tratado de manera ade-
• Win Win Spiral
cuada, sobre todo en el ámbito de las metodologías
• Evolutionary Project Management tradicionales, y en el caso de las ágiles no existe
• Story cards driven development un criterio unificado. Por ello, el presente artículo
se orienta a la formulación inicial, en base a la in-
• Agile Unified Process formación existente a la fecha y a la experiencia
• Open Unified Process personal, a la formulación de dos procedimientos al
respecto: selección por criterios de presencia y por
conocimiento.
Selección de metodologías ágiles, por criterios
de presencia
Aplicación del criterio de selección por presen-
Los diseñadores de software tienen interés de tra- cia
bajar con metodologías lo suficientemente docu-
A un grupo de programadores profesionales en el
mentadas, que nos faciliten la obtención de infor-
medio local (10), se le ha aplicado una encuesta,
mación, pero también es interesante trabajar con
sobre recordación, conocimiento y uso de metodo-
metodologías que dispongan de algún tipo de cer-
logías, quedando un grupo de 5 metodologías, que
tificación y training. Según estas condiciones, he-
se han evaluado, según este criterio de selección.
mos determinado seis clasificaciones que permiten
seleccionar una metodología, según se encuentran Para determinar la presencia, de las metodologías
mejor posicionadas, en el acumulado final. en Internet, se han realizado búsquedas en Google,
Yahoo y Live. Sobre el resultado, se asignaron 5
Las clasificaciones son:
puntos al mayor, y 1 punto al menor.
• La metodología con mayor presencia en Inter-
Para determinar las metodologías de mayor docu-
net.
mentación, se han considerado como documentos,
• La metodología mejor documentada. los Libros en español, Libros en inglés y Papers
que hablen sobre la aplicación de la metodología.
• Metodologías certificadas y con training.
Siguiendo el mismo método, se asignó 5 puntos al
• Metodologías con comunidades. mayor y 1 punto al menor.
• Metodología más utilizada por empresas. Pre- En el caso de la Certificación y Training, se ha
sencia empresarial. buscado si hay instituciones que certifican la
Tabla 2
Mayor
Mejor Certificadas Presencia Proyectos
Metodología presencia Comunidades Total
documentación y con training empresarial de software
en Internet
Scrum 5 2 5 5 5 5 27
Total 15 15 19 19 15 15 95
Selección de metodología, por criterios de co- En función de los conocimientos que el equipo ten-
nocimientos ga, se establecen los pesos para cada criterio. Por
ejemplo, Ríos y Suntaxi [37], en su tesis de grado,
En función del grupo de trabajo o de diseño, se proponen la siguiente tablas de pesos:
consideran los siguientes criterios en función de los
• 20% para el Grado de conocimiento
conocimientos que el equipo de desarrollo tenga de
las metodologías a evaluar. Estos criterios son: • 15% para Adaptable a cambios y Posee docu-
mentación adecuada
• Grado de conocimiento
• 10% para el resto de criterios
• Soporte orientado a objetos
Para determinar la metodología a usar, Ríos y Sun-
• Adaptable a cambios taxi, han elaborado un cuadro resumen, evaluando
las siguientes metodologías:
• Basado en casos de uso
• RUP, Rational Unified Process
• Posee documentación adecuada
• MSF, Microsoft Solution Framework
• Facilita la integración entre las etapas de de-
sarrollo • RAD, Rapid Application Development
• XP, Extreme Programming
• Relación con UML
En esta evaluación, la metodología RUP es la que
• Permite desarrollo software sobre cualquier recibe un mayor puntaje por parte del equipo de de-
tecnología sarrollo.