Está en la página 1de 5

Metodologías ágiles:

Históricamente, el desarrollo de software ha sido una tarea tediosa y compleja, donde muchas
veces la rentabilidad de la misma estaba muy por debajo de su coste. Eran épocas de desarrollos
interminables, de infinidad de líneas de código donde cualquier cambio en el proyecto inicial
suponía un auténtico quebradero de cabeza para el desarrollador. La poca (o nula) tolerancia y/o
previsión a cambios, los métodos arcaicos de programación, etc. no contribuían a generar un
ecosistema adecuado para el correcto desarrollo de software.

Margaret Hamilton, directora de ingeniería de software del proyecto Apolo posando junto al
código impreso del proyecto. Con el paso de los años, fueron surgiendo nuevos lenguajes de
programación (en teoría más sencillos...), entornos más amigables, frameworks que facilitaban
muchas tareas, conceptos que las empresas dedicadas al desarrollo de software acogieron
rápidamente para mejorar la calidad y los plazos de entrega de sus proyectos. Pero, ¿es esto
suficiente en la actualidad? Obviamente, ¡NO!

En un mundo tan cambiante, donde predominan los tiempos y la rentabilidad, muchas veces las
empresas olvidan el tercer factor fundamental… la calidad. Pero, ¿es posible meter estas tres
variables en la ecuación y obtener un resultado positivo? Obviamente, ¡SÍ!

Si repasamos un poco la historia, en 2001, un grupo de expertos, a petición del ingeniero Kent
Beck (creador de las metodologías XP y TDD), se reunieron para debatir la situación del desarrollo
de software y acuñaron la expresión “metodologías ágiles”. La expresión hacía referencia a un
marco de trabajo en el cual era posible aumentar la calidad del desarrollo, reducir los tiempos,
eliminar la incertidumbre, aceptar la tolerancia a cambios… en definitiva, incrementar la
satisfacción del cliente.

Los asistentes a la reunión firmaron el siguiente escrito:

“Estamos descubriendo formas mejores de desarrollar software tanto por nuestra propia
experiencia como ayudando a terceros. A través de este trabajo hemos aprendido a valorar:
Individuos e interacciones sobre procesos y herramientas, software funcionando sobre
documentación extensiva, colaboración con el cliente sobre negociación contractual, respuesta
ante el cambio sobre seguir un plan esto es, aunque valoramos los elementos de la derecha,
valoramos más los de la izquierda.”

Lo que dio lugar a los 12 principios del Manifiesto Ágil

1. Nuestra mayor prioridad es satisfacer al cliente mediante la entrega temprana y continua de


software con valor.

2. Aceptamos que los requisitos cambien, incluso en etapas tardías del desarrollo. Los procesos
Ágiles aprovechan el cambio para proporcionar ventaja competitiva al cliente.

3. Entregamos software funcional frecuentemente, entre dos semanas y dos meses, con
preferencia al periodo de tiempo más corto posible.

4. Los responsables de negocio y los desarrolladores trabajamos juntos de forma cotidiana durante
todo el proyecto.
5. Los proyectos se desarrollan en torno a individuos motivados. Hay que darles el entorno y el
apoyo que necesitan, y confiarles la ejecución del trabajo.

6. El método más eficiente y efectivo de comunicar información al equipo de desarrollo y entre sus
miembros es la conversación cara a cara.

7. El software que funciona es la medida principal de progreso.

8. Los procesos Ágiles promueven el desarrollo sostenible. Los promotores, desarrolladores y


usuarios debemos ser capaces de mantener un ritmo constante de forma indefinida.

9. La atención continua a la excelencia técnica y al buen diseño mejora la Agilidad.

10. La simplicidad, o el arte de maximizar la cantidad de trabajo no realizado, es esencial.

11. Las mejores arquitecturas, requisitos y diseños emergen de equipos autoorganizados.

12. A intervalos regulares el equipo reflexiona sobre cómo ser más efectivo para a continuación
ajustar y perfeccionar su comportamiento en consecuencia.

Por tanto, las tres variables se asocian perfectamente en la ecuación “metodologías ágiles”, lo que
significa que una empresa dedicada al desarrollo de software que no opte por una metodología
ágil difícilmente podrá sobrevivir al entorno actual, pero, sobre todo, a los nuevos tiempos que se
avecinan.

Es decir, la duda no debería ser ¿es necesario utilizar una metodología ágil para desarrollar
software? La duda, más bien, debería ser ¿qué metodología ágil escojo para desarrollar software?

Algunas de las principales opciones, hoy en día, son:

1. Scrum como una de las metodologías más usadas actualmente en la industria y desarrollada por
Schwaber (2017,) Sutherland J.(2017) mencionan que scrum es un marco de trabajo para
desarrollar, entregar y mantener productos complejos. Aún con una organización de trabajo
gracias a srum, existen métodos un poco menos organizados (más no difícil de mantener e
implementar) como el 2. eXtreme Programming (XP): como lo menciona Hernandez (2013) “es un
marco de desarrollo de software ágil que tiene como objetivo producir software de mayor calidad
y una mejor calidad de vida para el equipo de desarrollo”. Dependiendo del tipo de trabajo a
ejecutar pueden existir métodos como el 3. Kanban, este método es un: “Sistema de información
que controla de modo armónico la fabricación de los productos necesarios en la cantidad y tiempo
necesarios en cada uno de los procesos” según lo mencionado por Arango (2015) y con alto nivel
de importancia, pero también pueden tener algunas variaciones como el 4. Scrumban, este
método es una combinación de dos métodos como bien lo expresa Guzmán (2014) “esta
metodología utiliza lo mejor de scrum y de Kanban”, pero ahora surge un método que es muy
organizado y es el 5. Lean, este es originado en el Sistema de Producción de Toyota, este método
ofrece todo un marco teórico sólido y basado en la experiencia, para las prácticas ágiles de
gestión. Según Rubiano (2008) este modelo “es mucho más que una serie de técnicas ya conocidas
es la integración de todas ellas bajo un objetivo común: La perfección”.
Ahora surgen otros 2 metodos utilizados como metodología ágil:

6. Feature-Driven Development (FDD): “Feature-Driven Development (FDD) es una metodología


ágil basada en la calidad y el monitoreo constante del proyecto.”

7. Test-Driven Development (TDD): “Test-Driven Development es un proceso de desarrollo de


software que se basa en la repetición de un ciclo de desarrollo muy corto: los requisitos se
convierten en casos de prueba muy específicos, luego se mejora el software para pasar las nuevas
pruebas.”

Las empresas que no adopten una metodología ágil para el desarrollo de software van a tener muy
complicado sobrevivir al mundo actual. Cierto es que, implantar una metodología ágil en una
empresa tradicional, no es una tarea sencilla, pero, sin lugar a dudas, merece la pena realizar este
esfuerzo (inversión) para afrontar el futuro con garantías.

Bibliografía

Schwaber, K.(1), Sutherland J.(2) – Año (2017) en “La Guía Definitiva de Scrum”
https://www.scrumguides.org/docs/scrumguide/v2017/2017-Scrum-Guide-Spanish-
SouthAmerican.pdf

Hernandez, T. S. (2013) en “Una aproximación holística a las metodologías ágiles desde la


programación extrema”
http://www.unilibre.edu.co/revistaingeniolibre/revista-13/una-aproximacion-holistica-a-las-
metodologias-agiles-desde-la-programacion-extrema-1.pdf

Arango , M.D. (2015) en Revista Ingenierías Universidad de Medellín con el artículo


“Mejoramiento de procesos de manufactura utilizando Kanban”
http://www.scielo.org.co/pdf/rium/v14n27/v14n27a14.pdf

Guzmán,D.I.(2014) en “Metodología ágil scrumban en el proceso de desarrollo y


mantenimiento de software de la norma moprosoft”
https://www.rcs.cic.ipn.mx/2014_79/Metodologia%20agil%20Scrumban%20en%20el%20proceso
%20de%20desarrollo%20y%20mantenimiento%20de%20software%20de%20la%20norma.pdf

Torrubiano, J. (2008) en el instructivo “INTRODUCCIÓN A LA METODOLOGÍA LEAN”


https://www.aec.es/c/document_library/get_file?uuid=ec172d75-21c0-4da7-ba44-
8274d5d033af&groupId=10128

Calidad
La creciente preocupación por la calidad en la industria del software tiene como objetivo principal
el desarrollo sistemático de productos y servicios de mejor calidad y el cumplimiento de las
necesidades y expectativas de los clientes. En el presente artículo se hace una introducción a la
calidad y al modelo de calidad adoptado por Colciencias, CMMI. Pretendemos unir esfuerzos con
esta iniciativa y motivar a la comunidad académica a trabajar en calidad con las empresas
desarrolladoras de software para mejorar la competitividad y la calidad global de esta industria.

Dada la importancia que tiene para el desarrollo de las actividades en todos los campos de
desarrollo de la vida, personas como Fernández (1995) indican que “la calidad del software puede
medirse después de elaborado el producto. Pero esto puede resultar muy costoso si se detectan
problemas deriva dos de imperfecciones en el diseño, por lo que es imprescindible tener en
cuenta tanto la obtención de la calidad como su control durante todas las etapas del ciclo de vida
del software.” Aun así, las estrategias empleadas para lograr la calidad serán parte fundamental
para cerrar necesidades, por eso podemos tener en cuenta la opinión de Callejas (2017) donde
manifiesta que “de acuerdo con esta necesidad, diferentes entidades o investigadores han
propuesto estrategias modelos, metodologías, guías, incluso normas y estándares de calidad que
brindan apoyo al desarrollo y/o uso de un producto software y permiten evaluar si efectivamente
tiene un nivel de calidad durante su ciclo de vida, y de esta manera fomentar un ambiente de
calidad, con base en la adecuada administración de la información.”

El concepto de calidad de software, según Pressman (2010) se asocia a la “concordancia con los
requisitos funcionales y de rendimiento explícitamente establecidos con los estándares de
desarrollo plenamente documentados y con las características implícitas que se espera de todo
software desarrollado profesionalmente”, con base en los requisitos funcionales y no funcionales
identificados en la etapa de análisis del sistema, insumo principal para implementar dichos
requisitos con los atributos mínimos de calidad, fomentando la aplicación de procesos
estandarizados y criterios necesarios en cada una de sus etapas, así se fomenta que el avance en el
ciclo de vida del software minimice el riesgo de fracaso del proyecto. Por su parte, el Instituto de
Ingenieros Eléctricos y Electrónicos (IEEE, 1990) define calidad de software como “el grado con el
que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades
o expectativas del cliente o usuario”, denotando que el énfasis radica en los requisitos específicos
del sistema y en la búsqueda de la satisfacción del cliente.

En el caso de la calidad de software el modelo debe ir enfocado a hacer seguimiento y evaluación


a cada etapa de construcción del producto software. Por otro lado se menciona (Scalone, 2006)
que los modelos de calidad son aquellos documentos que integran la mayor parte de las mejores
prácticas, proponen temas de administración en los que cada organización debe hacer énfasis,
integran diferentes prácticas dirigidas a los procesos clave y permiten medir los avances en
calidad.

Por las razones anteriormente expuestas, algunas normas y estándares han definido la calidad a
nivel de producto en tres tipos: interna, externa y en uso y también analizadas para lograr obtener
un mejor producto (Rodríguez, 2016). Este enfoque está orientado a verificar el cumplimiento de
las características que permitan alcanzar la satisfacción del cliente en cuanto a los requisitos
definidos en las etapas iniciales del proceso de desarrollo.
Bibliografía

Fernández, O. (1995) en informe técnico “Un enfoque actual sobre la calidad del software”
http://scielo.sld.cu/scielo.php?script=sci_arttext&pid=S1024-94351995000300005

Callejas, M. (2017) en el entramado “Modelos de calidad del software, un estado del arte”
http://www.scielo.org.co/pdf/entra/v13n1/1900-3803-entra-13-01-00236.pdf

Pressman, R. (2010) Ingeniería del Software. Un enfoque práctico. 7ta edición. España: Ed:
McGraw-Hill Interamericana. 2010.

Scalone, F (2006). Estudio comparativo de los modelos y estándares de calidad del software.Tesis
Ingeniería de Calidad. Buenos Aires: Universidad Tecnológica Nacional Regional de Buenos Aires.
2006.

Rodríguez, M. et al. Evaluation of Software Product Functional Suitability: A Case Study. In:
Software Quality Professional Magazine. 2016. vol.18, no. 3.

También podría gustarte