¡Comunicación!
Si no puede comunicarse con las personas (usuarios, desarrolladores, evaluadores, gerentes), entonces debería volver a un armario y código. Si eres un equipo de una sola persona resolviendo tus propios problemas, entonces estarás bien. Para cualquier cosa más allá de eso, necesitas comunicarte.
¡Los talentos de la gente!
- ¿Cuáles son las empresas de desarrollo de software más innovadoras?
- ¿Es posible crear un software completamente inquebrantable?
- ¿Cómo hacer que los sistemas de tele soporte sean más accesibles e interactivos?
- ¿Qué carrera tiene mejores perspectivas para un graduado de ingeniería informática: sistemas embebidos o diseño de circuitos digitales / arquitectura de computadoras?
- ¿Qué temas debo aprender para ser programador?
La arquitectura de software se trata tanto de pastorear gatos como de diseñar grandes sistemas. Si bien “pastorear gatos” suele ser un eufemismo para lograr que los desarrolladores hagan lo que usted desea, también es aplicable a sus usuarios.
No es suficiente diseñar un gran sistema si no se puede comunicar lo que parece tanto para los desarrolladores (para que puedan implementar) como para los usuarios, y los evaluadores y escritores, y …
¡Comprender el problema!
Es probable que sus usuarios le digan lo que piensan que hará lo que quieran. Sin embargo, generalmente no piensan como desarrolladores de software. Como desarrollador de software, a menudo hay una mejor manera.
Además, los usuarios a menudo describirán cómo solucionar el problema frente a ellos, pero eso solo dejará el siguiente problema. Es mucho, mucho mejor entenderlos y ayudarlos a alcanzar sus objetivos. A veces ni siquiera son realmente conscientes de sus objetivos.
¡Saber lo que no sabes!
Está bien no saberlo todo, e incluso puedes aprender a diseñar con cosas que no conocerías completamente. Sin embargo, debe admitir que no lo sabe todo (tanto para usted como para los demás) y lidiar con eso. Escucha a las personas que saben cosas. Un arquitecto no tiene que saber todo sobre todo, solo necesita armar las piezas.
¡Compromiso para resolver el problema!
Tienes que resolver el problema que estás tratando de resolver. No es bueno construir un auto de carreras cuando el usuario necesita un camión. Puede ser un gran auto de carrera, pero simplemente perdiste por completo el objetivo.
¡Una pasión por la simplicidad!
Los grandes sistemas son tan complicados como deben ser, y no más. Si no está simplificando las cosas, no es probable que sea una buena arquitectura.
¡Diseña grandes sistemas!
Y, por supuesto, si no puede armar el software de manera excelente, no será un arquitecto de software.
Estoy seguro de que me faltan algunas cosas más. ¿Qué distingue lo mejor de lo mediocre? Siendo realmente bueno en todas las piezas.