top of page

| TEMA 4 | DESARROLLO ÁGIL

I. INTRODUCCIÓN


Hace 14 años Kent Beck un ingeniero de software estadounidense, con algunos de sus compañeros desarrolladores de software propusieron el desarrollo ágil, la idea surgió debido a que a pesar de que la definición tradicional de las actividades, roles modelado y documentación resulta en muchos casos efectiva, existen proyectos de software en donde el tiempo de desarrollo debe ser reducido al máximo y el software debe ser de alta calidad. (Carvajal, J. 2008).


Debido a que la definición de actividades estructurales conlleva quizá mucho tiempo para los proyectos amplios las metodologías agiles son una solución factible para el desarrollo de software, sin embargo, este tipo de metodologías fueron tradicionalmente creadas para proyectos de software pequeños, en los cuales ciertos pasos metodológicos son saltados, sin embargo, las metodologías agiles mantienen algunas actividades esenciales como por ejemplo la comunicación con el cliente.


Las metodologías agiles son un tema muy reciente en la actualidad, tanto así que cada año se realizan 4 importantes conferencias internacionales sobre esta temática, es por esto que actualmente existe lo que se conoce como “Manifiesto ágil”, el cual es el debate entre los defensores de las metodologías tradicionales y los defensores del desarrollo ágil.


El objetivo de la creación del desarrollo ágil, fue proyectar los valores y principios que deben existir dentro de un equipo de desarrollo de software de manera en que este se realice de una manera más rápida y con alta calidad.


II. OBJETIVO


El objetivo de esta clase es conocer acerca del desarrollo ágil, su importancia y principios que sirven para el desarrollo de software.


III. MARCO TEÓRICO


3.1. DESARROLLO ÁGIL

Las metodologías de desarrollo ágil son muy populares hoy en día, en el mundo del desarrollo, las diferencias que tienen en cuanto a las metodologías tradicionales son amplias y hacen que quede a criterio del desarrollador la decisión de usarlas o no. Pero en sí, ¿Qué es la metodología de desarrollo ágil?, la respuesta a esta interrogante es mejor explicada en el siguiente gráfico. (Pressman, R. 2010).


Gráfico 3.1: Desarrollo ágil.


Existen ocasiones en las que el software requiere cambios a pesar de que ya esté completamente realizado, estos cambios o nuevos requerimientos del cliente constituyen un costo, de tipo monetario y también de tiempo, el desarrollo ágil se vuelve popular precisamente por la reducción de este costo cuando existen cambios en el sistema.


Otro de los aspectos que olvidan las metodologías del proceso prescriptivo y especializado, es el desarrollador, y no solamente como desarrollador sino también como ser humano, el equipo de software lo conforman personas con variedad de características, cada uno especializado en algo, con diferentes ideas y modos de trabajar, si alguna persona del equipo no se adapta, simplemente algo ira mal en el software.


Con lo dicho anteriormente se puede notar, que el objetivo del desarrollo ágil es proponer lineamientos, tal y como indica el grafico 3.1, estos lineamientos tiene mucho que ver con el equipo de trabajo y las características de cada persona, estas deben ser tomadas en cuenta a la hora de asignar las actividades, debido a que cada persona del equipo debería trabajar en lo que mejor sabe hacer.


Trabajar en algo que ya se conoce hace que el desarrollador trabaje más a gusto y por lo tanto sea más ágil, además trabajar sabiendo que las otras personas del equipo colaboran quita una carga extra al desarrollador.


3.1.1. ¿QUÉ ES LA AGILIDAD?

Ya anteriormente he hablado de agilidad, pero qué significa esto en cuanto a software, para el sueco Ivar Jacobson, ingeniero en ciencias de la computación, un equipo de software es ágil, si se adapta fácilmente a los cambios del software, pero para adaptarse a los cambios se necesitan de principios y actitudes que hagan más fácil la comunicación no solamente entre cliente y desarrollador sino también en el equipo de trabajo.


3.1.2. LA AGILIDAD Y EL COSTO DEL CAMBIO

Como había dicho antes, el software está sujeto a cambios, estos pueden darse, por nuevos requerimientos del cliente, por el avance de la tecnología y una infinidad de más motivos, sin embargo, el cambio tiene un costo de tiempo de trabajo debido al talento humano expuesto en estos cambios y también un costo monetario.


Cuando existe un cambio grande, el equipo debe replantear el diseño del software, esto constituye mucho tiempo y esfuerzo, la gran propuesta del desarrollo ágil es la reducción del costo, haciendo cambios de manera tardía lo cual reduce significativamente el incremento del costo, tal y como lo explica el gráfico 3.2.


Gráfico 3.2: Costo del cambio


3.1.3. PROCESO ÁGIL

El proceso ágil es también conocido como metodología liviana, esto es debido a que con este tipo de metodologías se intenta que el grupo de desarrolladores se libre de actividades consideradas como tortuosas, de modo que se intensifiquen las actividades más importantes enfocándose en el cliente, el equipo de trabajo y los resultados del sistema.


A continuación en el gráfico 3.3 se muestran las 3 suposiciones clave de los proyectos de software, de estas 3 suposiciones surge la interrogante, de cómo crear un software que pueda lidiar con lo que no se conoce, con la incertidumbre del cambio, para esto los sistemas deben ser adaptables, y para que estos lo sean el equipo de trabajo lo debe ser también.


Gráfico 3.3: Supocisiones del proceso ágil.


Un proceso ágil debe ser incrementalmente adaptable, es decir, la constante comunicación con el cliente y los cambios que este requiera no afectan al equipo de trabajo y por tanto no afectan al sistema. La retroalimentación del cliente con el software hace que éste conozca sus características y proponga cambios o sugerencias.


Para que un proceso sea ágil se necesitan 3 elementos importantes:


  • Principios de desarrollo

  • Políticas de desarrollo

  • Factor humano


3.1.3.1. PRINCIPIOS

Los principios del proceso ágil se muestran en el siguiente gráfico, estos son esenciales para la aplicación de cualquiera de las metodologías de desarrollo ágil.

​​

Gráfico 3.4: Principio del proceso ágil.


3.1.3.2. POLÍTICAS DE DESARROLLO

Existe un gran debate entre quienes defienden las metodologías tradicionales y quienes defienden la ágil, para los que defienden la metodología ágil los tradicionales se preocupan más por hacer una correcta documentación, que les puede llevar a no hacer un correcto software, y según los que defienden la teoría tradicional los del desarrollo ágil no se preocupan por la documentación del software, argumentado que el tipo de software que realizan los “metodólogos ligeros” es un software de juguete y que no es aplicado en gran escala. (Canós, J; Letelier, P y Penadés, M. s.f.).


Por su puesto que ser ágil, nunca es una desventaja, pero ¿ser ágil conlleva también ser organizado? , la respuesta es: NO, se necesitan ideas y políticas que deben asumir los desarrolladores para crear un software que sea llevado a la perfección y entregado en el momento adecuado.


3.1.3.3. FACTOR HUMANO

El factor humano se fija mucho en las características de cada uno de los personajes que intervienen en el desarrollo de software y estas se explican a continuación:

  • Competencia: Es el conocimiento o lo que sabe hacer cada uno de los miembros del equipo de desarrollo.

  • Enfoque común: La meta que tienen en común es la satisfacción del cliente, para esto se debe adaptar el software continuamente.

  • Colaboración: Todos los participantes deben colaborar en el entendimiento de los requerimientos y todos deben proporcionar información.

  • Habilidad para tomar decisiones: Las decisiones son tomadas en conjunto.

  • Capacidad para resolver problemas difusos: El equipo debe poder resolver un problema de la manera más pronta posible.

  • Confianza y respeto mutuos: Debe existir confianza y respeto entre todos los miembros del grupo de trabajo.

  • Organización propia: El equipo debe adaptarse al ambiente, los cambios, los requerimientos, entre otros aspectos.

I. CONCLUSIÓN

Pese a la gran discusión que hay entre los defensores de las metodologías agiles y los de las metodologías tradicionales, no cabe duda que las metodologías ligeras han sido de gran ayuda al momento de realizar un software que sea de gran calidad y que sea entregado lo mas pronto posible. Este tipo de metodologías tratan de integrar como principio fundamental los valores que deben existir en un equipo de trabajo y también con el cliente, estos valores como el respeto en la comunicación, la organización y colaboración ayudan a que cada integrante del equipo trabaje de manera correcta.


En cada equipo de trabajo existen personas que se especializan en algunos aspectos, y en otros no tanto, por lo cual las metodologías agiles tratan de organizar a cada persona según sus caracterisitcas y formas de trabajar tomando en cuenta también sus conocimientos es decir, lo que saben hacer.


La prioridad principal de las metodologías agiles es satisfacer al cliente, y para esto, el grupo de trabajo debe poder ser ágil para adaptarse a los cambios que el sistema requiera cuando hay nuevas necesidades del cliente, debe también tener un enfoque común que le ayude a llegar a la meta de un software con alta calidad en corto tiempo, y para ello los integrantes deben ser capaces de adaptarse en la competencia, la toma de decisiones, la resolución de problemas y la organización en sí.

II. BIBLIOGRAFÍA


Canós, J; Letelier, P y Penadés, M. s.f. Metodologías Ágiles. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: http://noqualityinside.com/nqi/nqifiles/XP_Agil.pdf


Carvajal, J. 2008. Metodologías Ágiles. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: https://upcommons.upc.edu/pfc/bitstream/2099.1/5608/1/50015.pdf


Gutierrez, D. 2011. Métodos de Desarrollo de Software. (En línea). VE. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: http://www.codecompiling.net/files/slides/IS_clase_13_metodos_y_procesos.pdf


Pressman, R. 2010. Ingeniería de software: Un enfoque práctico. 7 ed. México. Mc Graw Hill. p 805.


Virrueta, A. 2010. Metodologías de desarrollo de software. ES. Consultado, 06 de mayo de 2015. Formato PDF. Disponible en: http://www.monografias.com/trabajos-pdf4/metodologias-de-desarrollo-software/metodologias-de-desarrollo-software.pdf


bottom of page