Universidad Autónoma
del Perú, 21-23 de Noviembre de 2013
Deuda Técnica, estudio del impacto del uso de la metáfora en
instancias de reflexión de metodologías ágiles
Joel Jonathan Jara Guerra1
Joel Jonathan Jara Guerra1
1 Alumno de la carrera de Ingeniería
de Sistemas, Universidad Autónoma del Perú. Carretera Panamericana Sur Km. 16.3
Mz. A Lt. 06, Villa El Salvador, Lima 1. jjaraguerra@gmail.com
Resumen
El presente artículo se inicia con la descripción de Deuda Técnica, Estudio
del impacto del uso de la metáfora en instancias de reflexión de metodologías
agiles. Al final se presenta las
metodologías agiles más utilizadas.
Palabras clave: Deuda
técnica, proyecto, metodología ágil, feeback.
Introducción
La Deuda Técnica es una excelente metáfora (creada por
Ward Cunningham) que nos ayuda a pensar sobre algunos problemas del desarrollo
de software. Según la metáfora, hacer las cosas rápido y mal nos incrementa la
deuda técnica, la cual es similar a la deuda financiera. Al igual que la deuda
financiera, la deuda técnica tiene pago de intereses, que vienen en la forma
del esfuerzo extra que será necesario hacer en el futuro por una elección
rápida y mala de diseño.
Algunos
dicen que el código desprolijo que es producido por personas que no conocen
buenas prácticas de diseño (son ignorantes en el tema) no debería llamarse
"deuda técnica". En este enfoque, la expresión "Deuda
Técnica" se reserva para los casos en que las personas toman una decisión
consciente de adoptar una estrategia de diseño que no es sustentable a largo
plazo, pero que genera beneficios a corto plazo.
En
última instancia somos las personas las que tenemos responsabilidad sobre la deuda técnica no hay nadie más entre nosotros y
el código. Es cierto que podemos apoyarnos en generadores de código y en
frameworks pero es decisión de la organización, del departamento o nuestra
elegirlos y en muchos casos de su evolución. Son importantes en cuanto a que te
evitan la realización de tareas mecánicas y en cuanto a que marcan un camino
común en el desarrollo pero hay que tener en cuenta que es importante que el
código generado sea de calidad porque es posible que en un futuro el equipo que
se vaya a encargar de seguir evolucionando el producto no disponga de ese
generador (desgraciadamente es algo que casi nunca se tiene en cuenta).
El Manifiesto Ágil o Metodología Ágil
Las
metodologías ágiles surgen como una alternativa a las metodologías
tradicionales. Son una forma de reacción a ellas, principalmente debido al
hecho de que las metodologías tradicionales no han sido capaces de resolver
todos los problemas que persiguen al desarrollo de proyectos de software desde
sus inicios.
Estamos
descubriendo mejores maneras de desarrollo de software, tanto por nuestra
propia experiencia como ayudando a terceros. A través de esta experiencia hemos
aprendido a valorar:
Individuos y sus interacciones sobre Procesos y Herramientas
Software funcionando sobre Documentación exhaustiva
Colaboración con el cliente sobre Negociación del contrato
Responder al cambio sobre Seguir un plan
Un
método de desarrollo de software ágil es aquel capaz de adaptarse a los
cambios, especialmente de los requisitos, según el feedback constante y
temprano del cliente. El objetivo es minimizar el tiempo y el coste de realizar
un proyecto de software, pero manteniendo la calidad. Todo esto se traduce en
un ímpetu por las pruebas continuas, preferentemente automatizadas, y la
integración continua para crear versiones de forma seguida para poderlas
mostrar al cliente y recoger su opinión.
Los 12 principios son un manifiesto que distingue un proceso ágil de lo
tradicional.2
Figura 1: Los 12 Principios de los métodos ágiles
Es
indudable que estos métodos se estén utilizando, en su totalidad o parte, por
la mayoría de las empresas, podemos observar en la ilustración el porcentaje de
distribución de los métodos ágiles utilizados.
Conclusiones
Posiblemente
en el artículo, se refiere a las metodologías ágiles y lo nuevo que
precisamente no son las técnicas que utilizan, sino el hecho de reconocer que
las personas son lo más importante para que el desarrollo del proyecto de
software sea un éxito, la importancia de tener satisfecho al cliente cuando se
le entrega el proyecto y no solo en el momento del inicio de este con un
contrato. Son necesarios métodos que acepten los cambios del cliente, reaccionar
ante los cambios con velocidad y destreza y cambiar la dirección manteniendo el
equilibrio del proyecto.
Las
metodologías ágiles surgen como una necesidad a la hora de satisfacer los
cambiantes requerimientos de desarrollo de los sistemas actuales, pero
manteniendo la calidad del producto resultante. Por eso es que han sido
adoptadas por variadas organizaciones de desarrollo de software como lo
demuestra el estudio anteriormente analizado.
Sin embargo, existen algunos problemas que a criterio de los autores dificultan todavía su correcta implementación:
Sin embargo, existen algunos problemas que a criterio de los autores dificultan todavía su correcta implementación:
−
Lograr la participación activa y comprometida del usuario formando parte del
equipo de desarrollo durante todo el proyecto.
−
La no fijación de pautas suficientes respecto de la ingeniería del producto.
−
La conformación del equipo del proyecto con recursos que puedan adaptarse a las
metodologías ágiles.
Referencias Bibliográficas:
·
Santiago Matalonga (2013). Deuda Técnica en instancias de reflexión de
metodologías ágiles. Presentado en el I Congreso Internacional de Ingeniería de
Sistemas Universidad Autónoma del Perú, Peru2.
·
http://www.versionone.com/pdf/7th-Annual-State-of-Agile-Development-Survey.pdf3.
·
PFC Raúl Úbeda (2009). Métodos ágiles para el desarrollo de software. PFC
Raúl Úbeda Métodos ágiles para el desarrollo de software Descargado desde:
http://www.upcommons.upc.edu/pfc/bitstream/2099.1/6859/1/PFC%20Ra%C3%BAl%20%C3%9Abeda%20%20M%C3%A9todos%20%C3%A1giles%20para%20el%20desarrollo%20de%20software.pdf
·
http://sedici.unlp.edu.ar/bitstream/handle/10915/19292/Documento_completo.pdf?sequence=1
No hay comentarios:
Publicar un comentario