¿Qué distingue a los mejores arquitectos de software de los mediocres?

¡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!

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.

La habilidad principal que es más crucial para cualquier arquitecto de software es la capacidad de comprender tanto el negocio como a los desarrolladores y poder traducir entre ellos. Aunque hablan el “mismo idioma” y pueden estar usando las mismas palabras, a menudo significan algo completamente diferente.

Las personas que han dominado esta habilidad a menudo son arquitectos de software de clase mundial, las personas que son mediocres en esta habilidad se limitan a una vida como arquitectos de software malos o mediocres.

Ni siquiera puedo tratar de dar una respuesta completa, pero tengo una observación. Los mejores identifican las necesidades, las satisfacen y siguen mejorando sus soluciones. Los mediocres pierden el tiempo criticando las soluciones de otras personas. Como resultado, el primero lidera llenando los vacíos y reemplazando los marcos antiguos por otros nuevos, mientras que los segundos siguen a regañadientes.

More Interesting

Si fuera a subcontratar sus pruebas de software, ¿qué parámetros usaría para seleccionar proveedores?

¿Cómo hace frente un desarrollador al proceso de desarrollo ágil?

¿Qué hace que un desarrollador front-end sea 'senior'?

¿Cómo equilibran los buenos desarrolladores su trabajo de consultoría con el aprendizaje constante? ¿Cómo hacen tiempo para experimentar con nuevas herramientas y marcos? ¿Cómo se mantienen motivados, aprendiendo y evitando quedarse atascados de hacer lo mismo?

¿Deben las startups usar desarrollo basado en pruebas?

¿Qué hace el 1% de los mejores ingenieros de software de manera diferente y dónde trabaja la mayoría de ellos?

Incluso cuando la velocidad informática de los dispositivos está creciendo rápidamente, todavía no la experimentamos en el factor esperado. Mi computadora con un procesador i3 no es drásticamente más rápida que la anterior con P4. ¿Por qué?

¿Qué son las pruebas de integración de abajo hacia arriba?

Como desarrollador junior, ¿qué oportunidades profesionales existen para combinar mi formación científica y mi conjunto de habilidades de software?

¿Cuáles son algunas excelentes herramientas de software para proveedores de alojamiento web?

¿Qué hace que el probador manual sea más fuerte?

Cómo agregar los detalles de mi curso de prueba de software en mi currículum

¿Alguien puede desarrollar habilidades para resolver problemas (Matemáticas / Algoritmos / Programación) o son las heredadas?

¿Cuáles son las tecnologías basadas en Java más necesarias en 2017 para un programador de software?

¿Los programadores experimentados 'visualizan' un programa y la ejecución de sus partes?