This article was extracted from Potcast Episode 287 for Neil Ford.
Resumen
En este Postcast encontraremos varios consejos sobre habilidades y estrategias para ser un buen arquitecto de software, a continuación presentaré un resumen de este podcast el cual es muy interesante sobre las experiencia de Neil Ford.
Todas las personas que estén involucradas con el desarrollo de software llegan a tomar decisiones en la misma, pero el arquitecto es quien debe tener amplio conocimiento sobre las tecnologías, habilidades técnicas y además de tener habilidades blandas para comunicarse con los usuarios, gerentes y el equipo de desarrollo. Los arquitectos deben estar en constante capacitación con otros arquitectos para adquirir conocimiento, también el arquitecto debe poder ser un líder en su entorno, a continuación veamos alguna características de un buen arquitecto de software:
- Tener vision en las decision de arquitectura definidas.
- Comprender y conocer tecnologías, y multiples maneras de implementar la arquitectura.
- Tener habilidades blandas.
- Poseer conocimientos en términos como seguridad, escalabilidad, confiabilidad, mantenibilidad etc.
Por lo tanto un arquitecto debe tener varias habilidades y conocimiento por lo cual nunca debe dejar de capacitarse, entre las habilidades con el equipo de desarrollo el arquitecto de promover la programación en pareja, definir una representación sobre la arquitectura utilizada la cual servirá al equipo y los usuarios, como por ejemplo el Modelo C4 el cual es una representación por niveles muy fácil de aplicar y de mucha utilidad. También se recomienda tener registrada todas las decisiones técnicas para futuras decisiones.
Cuando se desarrolla un software es importante tomar buenas decisiones sobre las cosas que utilizamos porque todo esto podría conducir al fracaso o éxito del software, estas decisiones son importante compartirlas con todo el equipo y en especial con los nuevos. Cada componente del software es importante por lo cual se debe dedicar un tiempo considerable en la codificación de dichos componentes, acompañados de buenas prácticas en el desarrollo y no dejando deudas técnicas para más tarde o para otros desarrolladores, estas deudas técnicas con el tiempo se vuelven un problema o un código legado difícil de modificar.
Un codificador bueno aplica buenas prácticas en su desarrollo es creativo al momento de dar soluciones y por sobre todo entrega un productos con alta calidad de programación, los arquitectos deben guiar y acompañar el desarrollo a cada desarrollador hasta que sean autónomos. Cada equipo Scrum debe apoyarse y sacar productos en su sprint en caso de no poder realizar entregables se debe identificar el porqué y tratar de realizar una mejora continua.
Finalmente el mundo actual y el de desarrollo de software cambia constantemente por lo cual debemos adecuarnos al cambio con una arquitectura evolutiva, entonces el arquitecto de vivir con el sistema para realizar mejoras. Así como los micro-servicios se están implementando en la actualidad cada arquitecto debe leer libros, aprender patrones de diseño y mantenerse actualizado cada día.
Puntos importantes
-
Un Arquitecto de Software debe estar en constante Capacitación
-
Una característica importante de un Arquitecto es tener habilidades blandas con los dueños del producto, equipos, etc.
-
Una vez finalizado un requerimiento y este en DONE mover a producción tan pronto como sea posible.
-
Las decisiones tomadas influyen en la vida del software.
Referencias
- Success Skills for Architects with Neil Ford page https://www.se-radio.net/se-radio-episode-287-success-skills-for-architects-with-neil-ford/