Está en la página 1de 2

El desarrollo de software (DS) integra métodos y/o técnicas que tienen como fin generar una

solución tecnológica, confiable, segura, y adaptable. Siempre buscando satisfacer las


necesidades del cliente quien, de una u otra forma, podrán evaluar la calidad del producto con
base en su usabilidad. En este sentido, actualmente en la ingeniería de software hay una
tendencia marcada hacia el uso de los procesos adaptativos entre los cuales están los métodos
agiles de desarrollo de software, como son SCRUM y XP (Programación Extrema) que han
demostrados ser más eficientes en cuanto a desarrollo se refiere. En proyectos que basados en
métodos adaptativos la planificación inicial, la toma de decisiones de alto nivel, el diseño del
sistema entre otras variables, es una tarea compleja y de gran responsabilidad que se
denomina arquitectura del sistema. Para realizar el diseño arquitectónico y el posterior
seguimiento a la implementación del mismo, es muy importante que se cuente con un
arquitecto de software (AS). Pero en equipos pequeños de desarrollo no se tiene claro el rol
que tiene un arquitecto o no se da la importancia que se requiere, en la toma de decisiones en
un proyecto.

En relación a lo anterior es posible afirmar que el rol que desempeña un AS en un equipo


pequeño de desarrollo de software, que base su trabajo en métodos agiles, genera dificultades
para determinar quién debe tomar las decisiones. Para sustentar la afirmación anterior, es
necesario tener claro el concepto de DS el cual son un conjunto de procesos técnicos y/o
actividades como el diseño y la programación que están apoyadas en teorías, y que tienen
como fin o resultado generar un producto de software. Sommerville, I. (2005). Ingeniería del
software. Pearson educación. Por otra parte, de acuerdo con (McCaffery et al., 2013) aún no
hay una definición clara del concepto sobre las definiciones de desarrollo ágil, pero para este
trabajo se tomará un método ágil como un conjunto de prácticas que no son secuenciales ni
tradicionales pero que generan calidad en el producto, y proporcionan resultados rápidos y de
acuerdo con las necesidades el usuario. En cuanto al concepto de desarrollo arquitectónico en
un proyecto de software se puede decir que este trata de establecer relaciones organizadas y
consistentes que permitan estructurar el sistema, con el objetivo de minimizar los riesgos
(Sobrevilla et al., 2017). De igual manera es importante comprender la función del arquitecto,
la cual, de acuerdo con Bass, Clements, & Kasman, es abstraer la información y las relaciones
más relevantes de los diferentes elementos que hacen parte del sistema. Específicamente
entre las ocupaciones arquitectónicas debe establecer los requisitos funcionales del sistema,
un ejemplo de esto es el ingreso de datos al sistema, envío de correos electrónicos
automáticos, cálculos matemáticos, por mencionar algunos. También, debe definir los
requisitos no funcionales. (escalabilidad, usabilidad seguridad…) Pero fundamentalmente debe
establecer las relaciones entre las peticiones o requerimientos que tiene el cliente (que
pueden ser ambiguas), y como estos se pueden trasformar y ver plasmados en una solución
tecnológica tangible, que aporte a la mejora de una organización.

El llevar a cabo actividades como las mencionadas anteriormente en métodos adaptativos


como por ejemplo SCRUM, resulta más complejo de lo que ya es, puesto que el rol del
arquitecto no está contemplado. Según (Sobrevilla et al., 2017), se tienen en cuenta las
siguientes funciones en los equipos SCRUM; dueño del producto, encargado de trasmitir las
necesidades de los usuarios, scrum master encargado de llevar el método a la práctica
cumpliendo con todos los requisitos que este exige y por último el equipo de desarrolladores,
quienes realizan diversas labores como análisis, diseño, codificación, pruebas, entre otras
actividades. De acuerdo con lo anterior, se puede evidenciar que el rol del AS no está
contemplado, lo cual es ambiguo, y permite que generar ideas erróneas como la poca
importancia o la exclusión del papel del arquitecto en el desarrollo de un sistema.
Si bien es cierto que el concepto de metodologías agiles y arquitectura de software no
nacieron al tiempo, y existen posturas que afirman que estos términos no son compatibles en
el desarrollo de software en la actualidad, se está introduciendo el concepto arquitectura ágil,
el cual de acuerdo con (Navarro et al., 2018) se propone integrar la AS en el ciclo de vida de las
metodologías agiles tomando como base los requisitos significantes de la Arquitectura. En este
sentido la arquitectura debe flexibilizarse y adaptarse al estilo de las metodologías agiles, y los
métodos agiles deben tener en cuenta los requisitos de la arquitectura, esto con el fin
desarrollar mejores productos en menor tiempo. Un ejemplo de la combinación de la AS y
métodos agiles es el sistema de localización subterránea desarrollado por una empresa de
telecomunicaciones en México, en este proyecto se utilizó Scrum. En su desarrollo se
presentaron grandes retos en cuanto a la toma de decisiones y comunicación entre los
diferentes equipos, y fue posible evidenciar que los entregables no cumplían con las
expectativas, debido a que no se realizó un trabajo de arquitectura correcto, dado a que no se
le dio la importancia requerida. Lo anterior fue subsanado al completar el trabajo de
Arquitectura (Sobrevilla et al., 2017)

Como conclusión se puede afirmar que la tendencia del mercado está inclinada con mucha
fuerza hacia el uso de los métodos agiles los cuales tienen características de flexibilidad,
rapidez, enfoque al cliente, pero no podemos dejar de lado la arquitectura de software como
una herramienta eficaz para la construcción eficiente software y al AS como el líder que sienta
las bases iniciales o realiza las modificaciones necesarias para el éxito del proyecto.

Sobrevilla, G., Hernández, J., Velasco-Elizondo, P., & Soriano, S. (2017). Aplicando Scrum y
prácticas de Ingeniería de software para la mejora continua del desarrollo de un sistema Ciber-
Físico. ReCIBE. Revista electrónica de Computación, Informática, Biomédica y
Electrónica, 1(1), 1-15.

http://sedici.unlp.edu.ar/bitstream/handle/10915/67795/Documento_completo.pdf-
PDFA.pdf?sequence=1&isAllowed=y

https://www.redalyc.org/pdf/5122/512254534001.pdf

http://jz81.github.io/course/sa/Software%20Architecture%20in%20Practice%20(3rd).pdf

También podría gustarte