La mejor respuesta
Creo que el título de arquitecto de software se usa un poco en exceso y a menudo se confunde con el de diseñador de software ( que es otro término confuso, porque no tiene nada que ver con el diseño como un esfuerzo artístico.)
Mis definiciones serían:
Arquitecto de software : esta persona se ocupa de los bloques de alto nivel. Conectividad entre sistemas, elección de las mejores tecnologías para los propios sistemas y asignación de requisitos comerciales a requisitos de ingeniería. Tiene suficiente experiencia para comprender cuándo se debe usar push / pull frente a pub / sub, por ejemplo, o cuándo una base de datos NoSQL es aceptable en lugar de una base de datos SQL. También comprende los costos de la tecnología resultante (en términos de rendimiento y gastos operativos reales). Finalmente, un arquitecto debe comprender el negocio, no solo la tecnología.
Diseñador de software : una vez establecida la arquitectura, un diseñador es responsable de crear el diseño de software real. Puede crear un diseño para cada bloque arquitectónico modelando las clases apropiadas o las relaciones de la base de datos. También puede definir protocolos de cable, formatos de archivo, etc.
Programador de software : una vez que se establece un diseño, el desarrollador de software implementa el diseño. .
En orden de importancia, las decisiones que se toman a nivel arquitectónico son críticas ya menudo son muy difíciles y costosas de cambiar si se comete un error. Un error de arquitectura puede costar años en sistemas complejos. Un error de diseño puede costar algunos sprints. Un error de programación se puede solucionar tan pronto como se identifique.
Además, tenga en cuenta que no existe ningún requisito de que una persona no pueda cumplir más de un rol. En las organizaciones formales, puede tener al arquitecto de software como una persona senior (o incluso un ejecutivo), con el diseñador como un líder de equipo de algún tipo y el programador como un colaborador individual en ese equipo. Sin embargo, en la práctica, el arquitecto de software generalmente no abandona un proyecto una vez que se completa el trabajo de arquitectura, y una vez que el trabajo de arquitectura se ralentiza, generalmente se involucra en el diseño y en la programación.
La advertencia es sin embargo, el arquitecto es responsable de elegir los bloques de tecnología en función de sus méritos y no de su familiaridad, en cuyo caso puede terminar con una elección en la que puede contribuir poco a nivel de código. En esos casos, debe saber mejor y dejar la implementación a los expertos del dominio.
Esa es solo mi opinión, sin embargo, estoy seguro de que hay muchas otras interpretaciones. Además, cuanto más simple es la aplicación, más superfluos se vuelven algunos roles. Para una aplicación simple, no necesita un arquitecto. Si la aplicación es lo suficientemente simple, es posible que ni siquiera tenga un diseñador. Pero siempre necesita a alguien que la implemente.
Respuesta
Sé que es de mala educación y lo siento, pero no puedo creer que la gente (aparte de Edward Guy Capriolo) haya escrito largas respuestas explicando la diferencia entre dos títulos. Los «arquitectos de software» solo existen en películas de ciencia ficción como Matrix.
El título fue inventado por burócratas corporativos para establecer el nuevo rango salarial no gerencial, donde alguien sin un MBA podría ganar seis cifras. Fue útil durante la «subcontratación», ya que los pocos restantes no «offshore» o Los desarrolladores H1B / L1 podrían ser promovidos a «arquitectos» para mantener su salario, ya que todos los ingenieros «regulares» tenían el mandato de ser «recursos de descuento».
Otra cosa a tener en cuenta: puestos de asesores inútiles como ese están llenas de parientes y amigos, por lo que no hay un conjunto de habilidades oficiales para aprender. El valor de «arquitecto» es vago y subjetivo para decir lo mínimo. TOGAF es quizás la descripción definitiva de las responsabilidades del «arquitecto». Estudié bien esa mierda para lucirla en entrevistas «arquitectónicas». En la vida normal, sin embargo, mi especialidad es iniciar proyectos multimillonarios. Y reviviendo fracasos multimillonarios. ¿Me convierte en «arquitecto»? Implica mucha codificación, ya sabes. Y cero «marcos» de «arquitectura empresarial».
Simplemente edite su currículum reemplazando todos los títulos de trabajo anteriores para mostrar los «años de experiencia». Luego, esparza generosamente la jerga de “arquitectura empresarial” en todo el currículum. Permítanme ver la versión del arquitecto de mi currículum (de lo contrario, del desarrollador). Aquí. Cópielo textualmente:
“Desarrollé una visión de tecnología avanzada y capacidades sólidas de arquitectura empresarial dentro de TI. Contenido de hoja de ruta común definido. Desarrollé e implementé la estrategia para la arquitectura empresarial que consta de principios, arquitecturas de referencia, glosarios y taxonomías. Mantuve un análisis continuo de la industria, la tecnología y las tendencias del mercado para determinar los impactos potenciales en la empresa ”.
¡Felicitaciones! Ha sido ascendido oficialmente a «Arquitecto empresarial».Lo único que queda por hacer es enviar su currículum recientemente digno a los empleadores que forman la Gran Cadena de Alimentos de Consultoría de TI – para «posventa» todo lo que estén vendiendo: Oracle, IBM, Microsoft, etc. a través de «diagramas de arquitectura»: bloques de los paquetes de proveedores conectados por «integración» imaginaria. No se preocupe por la «palabrería técnica». Usted es un arquitecto de alto nivel que presenta la visión estratégica a «partes interesadas de nivel C» igualmente dignas y altamente no técnicas.