Está en la página 1de 8

Metodologías Ágiles: La mejor alternativa para la adaptación rápida y eficaz de los

sistemas informáticos de una empresa

Daniel Aníbal Matzunaga Astuhuamán

En un mundo de negocios globalizado y muy cambiante las empresas necesitan que

sus sistemas informáticos se adapten rápidamente a los nuevos cambios y necesidades que

requiera el negocio. Por consiguiente, hoy en día las empresas deberían pensar en la

capacidad de mantener constantemente actualizados sus sistemas informáticos de una manera

rápida y eficaz; en vista de ello las empresas deberían responder al siguiente cuestionamiento

¿Cuál es el modelo de desarrollo de software que permitiría que los sistemas de la empresa se

adapten de una manera rápida y eficaz ante un determinado cambio de negocio?. Por

consiguiente, en el presente ensayo se planteará que la aplicación de metodologías agiles en

un proceso de desarrollo de software representan la mejor alternativa para que los

requerimientos de una empresa se implementen de manera rápida y eficaz en sus sistemas. En

ese sentido, para una mejor compresión primero se describirá la estructura y características

que tiene un proceso de desarrollo de software, así como las dos corrientes metodológicas de

desarrollo que se conocen actualmente; en segundo lugar se darán a conocer las

características y problemas de las metodologías de desarrollo tradicionales; finalmente se

darán a conocer las características de las buenas prácticas de desarrollo que tienen las

metodologías ágiles, así como los beneficios que tiene su aplicación en un proceso de

desarrollo las cuales servirán como base para plantear que las metodologías ágiles son la

mejor alternativa que tiene una empresa para que sus sistemas se adapten de forma rápida y

eficaz ante los requerimientos realizados por la empresa por la ocurrencia de un evento o

cambio en el negocio.

Para empezar, antes que nada es importante que se conozca el objetivo y la estructura

de un proceso de desarrollo de software. El proceso de desarrollo de software implica la


2

ejecución de una serie de tareas complejas que permiten la construcción e implementación de

un determinado sistema o producto informático (Sommerville, 2017), el cual servirá como

herramienta tecnológica para el uso particular de un grupo de interés específico (una persona,

una empresa, una organización, etc). Las principales características que posee un proceso de

desarrollo de software son: (a) es un proceso muy complejo; (b) puede ser muy estructurado

(rígido) o flexible; (c) requiere de personas creativas e intelectuales con conocimientos en

informática y con capacidades en la toma de decisiones; (d) puede estar alineado a un plan

elaborado anticipadamente o a un plan incremental y (e) se encuentra en constante evolución

(suelen ser mejorados por las mismas empresas) (Sommerville, 2017).

Asimismo, se debe indicar que todo proceso de desarrollo de software contempla

cuatro etapas esenciales: (1) La especificación del software: etapa en la que se definen las

funcionalidades y restricciones que debe contemplar un determinado producto donde la

participación del cliente es fundamental; (2) El diseño e implementación del software: etapa

en la que se construye el producto de acuerdo a las especificaciones realizadas por el cliente;

(3) La validación del software: etapa donde se prueba y valida que el producto cumpla con

los requerimientos solicitados por el cliente; y (4) La evolución del software: etapa en la que

se contempla los ajustes o mejoras que el cliente necesita que sean implementados en el

software (Sommerville, 2011). Por último, es importante señalar que el proceso desarrollo de

software se apoya en el uso y la aplicación de metodologías de desarrollo. En la actualidad

existen dos propuestas o corrientes metodológicas que permiten gestionar y ejecutar un

proceso de desarrollo de software: (a) Las Metodologías Tradicionales, y (b) Las

Metodologías Agiles (Navarro, Fernández, y Morales, 2013).

Con respecto a las metodologías tradicionales de desarrollo, estas aparecieron en el

mundo informático como un esquema o marco de trabajo que permitiera que el proceso de

desarrollo de software se gestione de una manera más ordenada y disciplinada; estas


3

metodologías se basan primordialmente en la planificación previa de las actividades que se

van a realizar (Navarro et al., 2013; Schenone, 2004). La principal característica de una

metodología tradicional se manifiesta en su rigidez ya que no permite que se puedan realizar

cambios tan fácilmente una vez que ya se inició el proceso (Navarro et al., 2013); aquí se

puede mencionar como ejemplo lo difícil que resulta realizar un cambio a la especificación de

un requerimiento solicitado por un cliente cuando ya se culminó la etapa de especificación

de requerimientos. Otras características importantes de las metodologías tradicionales son las

siguientes: (a) son modelos predictivos, muy controlados y alineados a numerosas normas;

(b) están enfocados en los procesos mas no en la necesidad del cliente; (c) está relacionado a

un solo proyecto; (d) existe poca comunicación entre el cliente y el equipo (solo interactúan a

través de reuniones); (e) la entrega del producto informático se realiza al finalizar el

desarrollo; (f) requiere de la elaboración de mucha documentación; (g) los requerimientos del

cliente se reciben y se aprueban solo una vez; y (h) el equipo está conformado por grupos

grandes de personas (Navarro et al., 2013; Rivadeneira, 2013).

Una de las metodologías tradicionales más representativas y que todavía se sigue

empleando en las organizaciones es el modelo en Cascada (waterfall) que surgió y marcó un

precedente importante en la industria del software (Schenone, 2004). Este modelo es un claro

ejemplo de lo rígido que puede ser una metodología tradicional donde se aprecian y resaltan

las siguientes características: (a) se alinea mucho a los procedimientos del modelo; (b) es

muy estricto respecto al control, al uso de las herramientas y al cumplimiento de la

metodología y las actividades planificadas en el desarrollo; (c) es muy estricto respecto a la

especificación minuciosa y detallada de los requerimientos; (d) las reuniones con el usuario

se llevan a cabo solo a través de reuniones limitando su participación y aporte significativo en

el proceso; (e) se asume que no se va a presentar ningún cambio una vez que se inicie el

proyecto; (f) la elaboración de la documentación es muy rigurosa, se tiene que documentar


4

todo; (g) los tiempos de espera de los clientes para ver los resultados del desarrollo son muy

largos (pueden durar meses); (h) se alinean rigurosamente a la aprobación de un contrato

donde se refleja el alcance y las especificación total de lo que se va a desarrollar (Herrera &

Valencia, 2007).

Como ya se indicó previamente las metodologías tradicionales de desarrollo de

software surgieron con el propósito principal de que los equipos de desarrollo cuenten con un

marco de trabajo ordenado, formal y estructurado para que los proyectos se puedan gestionar

de una manera productiva y eficaz. Sin embargo, la aplicación de estas metodologías en

proyectos de desarrollo a lo largo de los años ha permitido que se puedan identificar y

evidenciar una serie de problemas y dificultades que se han presentado durante la ejecución

de un proyecto. Así pues, los principales problemas que se han identificado en los proyectos

que emplean un modelo de desarrollo tradicional son los siguientes: (a) Proyectos de

desarrollo extensos: como las actividades se tienen que planificar previamente y se ejecutan

secuencialmente el proceso tiende a durar mucho tiempo lo cual origina que el cliente no

cuente con el producto en el tiempo y oportunidad que realmente lo necesita; (b) Clientes

insatisfechos con el producto recibido: como el modelo es predictivo, se tiene poca

participación del cliente durante el proceso y el cliente solo ve el producto al final del

desarrollo, se incrementa la posibilidad de que el cliente no quede satisfecho con el producto

debido a que el producto no cumple con los requerimientos que el cliente solicitó

inicialmente; (c) Imposibilidad de realizar cambios o ajustes: debido a que el modelo

tradicional es muy estricto respecto a de no permitir que se puedan realizar cambios una vez

que se ha finalizado una actividad; un ejemplo claro es lo difícil que resulta realizar un

cambio en la especificación de un requerimiento del cliente cuando ya se culminó la etapa en

la que se llevo a cabo dicha actividad ; en este escenario al cliente solo le queda gestionar un

control de cambio que trae como consecuencia que el proceso se extienda mucho más; (d)
5

Demasiada documentación extensa y elaborada: como el modelo se alinea a sus normas y

procedimientos se tiene que cumplir con la formalidad de elaborar una gran cantidad de

documentación que a veces resulta hasta innecesaria y no le genera valor al cliente (Navarro

(Navarro et al., 2013; Rivadeneira, 2013; Schenone, 2004).

En la década de los años 90 apareció una nueva tendencia de desarrollo de software

basada en la utilización y aplicación de Metodologías Ágiles (Navarro et al., 2013). Las

metodologías ágiles aparecieron principalmente para cubrir la necesidad latente que tienen las

empresas hoy en día por mantener actualizados de manera rápida y oportuna los sistemas

informáticos que utilizan en sus actividades diarias de manera de que puedan reaccionar de

forma rápida y oportuna a las posibles oportunidades de negocio que pudieran surgir, a los

cambios en las condiciones económicas del mercado y a las amenazas que pudieran provocar

sus competidores (Sommerville, 2011). Por otro lado esta corriente metodológica también

apareció como una nueva alternativa que permita gestionar el proceso de desarrollo de

software de una manera más flexible y eficaz (Navarro et al., 2013).

Las metodologías ágiles se basan en una filosofía de trabajo denominada Manifiesto

Ágil (Sommerville, 2011) en el que se declaran cuatro postulados sobre los valores que

fundamentan los principios y las buenas prácticas del desarrollo ágil: (1) Valorar a los

individuos y sus interacciones sobre los procesos y las herramientas: donde se manifiesta que

la pieza más importante para que un proyecto de desarrollo tenga éxito son el equipo y las

personas que la conforman; (2) Valorar al software operativo sobre la documentación

exhaustiva: donde se prioriza la construcción y entrega del producto informático al cliente y

se promueve a que no se elaboren documentos a menos que sea estrictamente necesario; (3)

Valorar la colaboración con el cliente sobre la negociación del contrato: donde se promueve

la colaboración constante y permanente entre cliente y el equipo de desarrollo a fin de

asegurar el éxito de los proyectos; y (4) Valorar la respuesta al cambio sobre el seguimiento
6

de un plan: donde se promueve un entorno de desarrollo de software flexible donde esté

permitido realizar los cambios necesarios durante la ejecución de un proyecto (Orjuela &

Rojas, 2008; Sommerville, 2011).

Una de las características más importantes de las metodologías ágiles es que son

muy flexibles ya que permiten que se puedan realizar cambios y ajustes a los requerimientos

de los clientes; de hecho, a diferencia de un modelo tradicional, en las metodologías ágiles

los cambios en los requerimientos son deseados y esperados (Navarro et al., 2013). Otras

características importantes de las metodologías ágiles son las siguientes: (a) son adaptativos;

(b) están enfocados a las personas; (c) un solo proyecto se puede dividir en varios proyectos

pequeños; (d) la comunicación con el cliente en este caso es constante y fluida ya que el

cliente forma parte del equipo; (e) se realizan entregas incrementales y constantes del

producto en tiempos muy cortos de tiempo (cada dos o tres semanas); (f) requiere de poca

documentación solo se realiza si es estrictamente necesario; (g) el proceso es menos

controlado y con pocas normas; (h) los equipos están conformados por grupos pequeños de

menos de 10 integrantes; (Navarro et al., 2013; Rivadeneira, 2013; Sommerville, 2011).

Para finalizar, basados en los principios de las metodologías ágiles y al análisis

realizado sobre las dos metodologías desarrolladas en el presente ensayo, se establecerán los

beneficios que se obtienen al aplicar un modelo ágil en un proceso de desarrollo de software

que servirán como sustento para plantear que las metodologías ágiles son la mejor alternativa

para que una empresa pueda adaptar sus sistemas de una forma rápida y eficaz ante un

determinado cambio de negocio. Así pues, para sustentar el planteamiento indicado, a

continuación se detallan los principales beneficios que se obtienen al aplicar un modelo ágil

en un proceso de desarrollo de software: (a) Sobre todas las cosas se le da la mayor prioridad

a la satisfacción del cliente: mediante constantes entregas de productos de software en cortos

periodos de tiempo que le generen valor al cliente y promoviendo la participación activa del
7

cliente durante todo el proceso a fin de asegurar la calidad del producto; (b) Se permiten

realizar cambios a los requerimientos de los clientes sin cuestionamientos de por medio: esto

debido la naturaleza propia de la metodología donde los cambios de los requerimientos del

cliente están permitidos ya que forman parte de la ejecución normal del proceso aumentando

de esta manera la satisfacción del cliente; (c) Se establece una comunicación directa del

cliente con el equipo: Al involucrar al cliente durante todo el proceso de desarrollo el equipo

rápidamente puede resolver dudas sobre las funcionalidades que el cliente necesita que se

implemente en el sistema reduciendo de esta manera tiempo y costos; (d) Se forman equipos

de desarrollo motivados: basados en el principio que promueve la metodología de brindar al

equipo el entorno y apoyo necesarios para que los integrantes se sientan motivados, cómodos,

con buena disposición y animo, y con un sentido de pertenencia por el equipo para el buen

desenvolvimiento de su trabajo; (e) Se máxima el canal de comunicación directa del equipo:

basado en el principio de la metodología respecto a que la mejor forma que tiene el equipo

(incluido el cliente) para comunicarse de una manera más eficiente y efectiva es el hablar

cara a cara lo que ayuda a que se le entregue al cliente el producto tal como lo solicitó

(Herrera & Valencia, 2007).

En conclusión; luego de haber analizado y comparado las metodologías tradicional y

ágil para el desarrollo de software, y luego de haber identificado los principales beneficios

que se obtienen cuando se emplea la metodología ágil en un proceso de desarrollo de

software, se puede sostener que las metodologías ágiles son la mejor alternativa que tiene una

empresa para satisfacer su necesidad de mantener sus sistemas informáticos constantemente

actualizados con la calidad y la oportunidad requerida para que puedan reaccionar y

responder rápidamente a un entorno global muy cambiante y competitivo; todo ello

sustentado además por la filosofía y las buenas prácticas de desarrollo que promueven las

metodologías ágiles.
8

Referencias

Herrera Uribe, E., & Valencia Ayala, L.E. (2007). Del manifiesto ágil sus valores y

principios. Scientia Et Technica, vol. XIII, núm. 34, pp. 381-386, Universidad

Tecnológica de Pereira, ISSN 0122-1701. Recuperado de

http://www.redalyc.org/pdf/849/84934064.pdf

Navarro Cadavid, A., Fernández Martínez, J.D., & Morales Velez, J. (2013). Revisión de

metodologías ágiles para el desarrollo de software. PROSPECTIVA, vol. 11, núm. 2,

pp. 30-39. Universidad Autónoma del Caribe. Recuperado de

http://www.redalyc.org/pdf/4962/496250736004.pdf

Orjuela Duarte, A., & Rojas Contreras, W.M. (2008). Las metodologías de desarrollo ágil

como una oportunidad para la ingeniería del software educativo. Avances en Sistemas

e Informática, Vol. 5, Núm. 2. Recuperado de http://www.bdigital.unal.edu.co/15430/

Rivadeneira Molina, S.G. (2013). Metodologías ágiles enfocadas al modelado de

requerimientos. Revista de Informes Científicos y Técnicos de la Universidad

Nacional de la Patagonia Austral, Vol.5, Núm. 1. Recuperado de

http://ict.unpa.edu.ar/journal/index.php/ICTUNPA/article/view/ICT-UNPA-57-

2013/57

Schenone, M.H. (2004). Diseño de una Metodología Ágil de Desarrollo de Software, Tesis de

Grado en Ingeniería en Informática. Facultad de Ingeniería. Universidad de Buenos

Aires. Recuperado de http://materias.fi.uba.ar/7500/schenone-

tesisdegradoingenieriainformatica.pdf

Sommerville, I. (2011). Ingeniería de Software. Recuperado de

http://www.ingebook.com.ezproxybib.pucp.edu.pe:2048/ib/NPcd/IB_Escritorio_Visu

alizar?cod_primaria=1000193&libro=1518

También podría gustarte