2008-10-17 9 views
5

¿Los proyectos moderados o grandes nunca requieren un arquitecto? He trabajado en una serie de proyectos en los que la empresa de desarrollo involucrada ha elegido no asignar un arquitecto de aplicaciones. O bien el software está construido orgánicamente y con poca preocupación por el diseño o la responsabilidad del diseño recae en los desarrolladores senior.¿Cuándo un proyecto no requiere un arquitecto de aplicaciones?

Las motivaciones para no tener un arquitecto varían desde consideraciones de costo hasta creer que la metodología de desarrollo hace innecesaria la función arquitectónica (este argumento podría hacerse para un desarrollo ágil). Algunos proyectos de código abierto trabajan sobre el principio de contribución colectiva en lugar de desarrollo con liderazgo arquitectónico.

Respuesta

2

Voy a tener que usar una analogía aquí utilizando casas. No hace mucho tiempo (relativamente) las personas podían construir casas sin un arquitecto o planes diseñados. Cortaron algo de madera, usaron habilidades aprendidas para cortar y planear tableros y construyeron sus casas. Catedrales, castillos, etc. ... tenían arquitectos e ingenieros, claro. Pero la gran mayoría de las veces fueron las personas que utilizan habilidades transmitidas para construir una casa.

Estas casas hicieron el trabajo pero no duraron tanto. Pueden ser un poco agujereados, pueden ser difíciles de mejorar, etc. Pero es fácil usar agua para nivelar la base y luego agregar madera.

Las casas de hoy en día tienen una infraestructura para enchufar, códigos que deben cumplirse, etc. Necesitamos que nuestros diseños de vivienda sean creados o aprobados por un arquitecto antes de que puedan construirse. El arquitecto se asegura de que todo esté a la altura del tabaco y de que la casa se mantendrá y será habitable.


Las aplicaciones no son diferentes. No vivimos en un mundo donde las estructuras complejas pueden escaparse sin una arquitectura. Claro que puedo escribir una base de datos para mi biblioteca como un ejercicio trivial; También puedo construir estantes para mi biblioteca sin involucrar a un arquitecto. Pero una vez que va más allá de las estructuras simples, debe asegurarse de que alguien esté prestando atención a la imagen más grande: si su estructura (casa o aplicación) va a hacer lo que necesita hacer, si funciona bien con los demás, y si cumple con las reglas establecidas en su construcción.

+0

Ingeniero. Los ingenieros son las personas que administran los requisitos del código de construcción de los planos. Los arquitectos no hacen eso. –

4

Si ya tiene un patrón de arquitectura/sistema que le permitirá construir su proyecto, no necesitará un arquitecto en absoluto.

Enseño arquitectura de software en la universidad, y la habilidad central que creemos que aportan los arquitectos es un proceso de diseño sistemático y exhaustivo que satisface las necesidades de todos los interesados ​​con cuidadosas consideraciones para intereses en conflicto. Hay un montón de conocimiento técnico que los arquitectos deben tener, pero no es raro que los desarrolladores tengan el mismo conocimiento (y aún más).

Lo importante es capturar escenarios de calidad y saber cómo aplicar técnicas/patrones de diseño que cumplan con estas cualidades. O inventando algo sobre la marcha si es necesario.

La reutilización arquitectónica en la industria es alta, a menudo hasta el punto de que un arquitecto es redundante.

Desde hablo mucho sobre estas cosas, realmente podría seguir y seguir y seguir ...

ACTUALIZACIÓN: que había pensado que me cotejo algunos de los pensamientos expresados ​​en otras respuestas.

  • Los arquitectos son un punto central de comunicación.
  • Los arquitectos comunican el diseño - los buenos lo hacen de manera eficiente.
  • Los arquitectos aportan una experiencia esencial al producto/proyecto.
  • Las construcciones más grandes necesitan diseños más grandes, más planificación, creación de prototipos, etc. y necesitan que alguien se asegure de que "el sistema correcto se construye correctamente".
  • En contraste con los desarrolladores, los arquitectos consideran a los desarrolladores como partes interesadas e implementan tácticas para lidiar con sus cualidades deseadas que no son de tiempo de ejecución (escalabilidad, facilidad de mantenimiento, capacidad de prueba, reutilización, configurabilidad (MeTRiCS)).
+0

¿Anima a los arquitectos de software a ser codificadores también? Su respuesta sugiere que la arquitectura y la codificación, aunque relacionadas, no necesariamente se superponen. –

+0

Definitivamente. Los primeros prototipos a menudo se necesitan para tener una idea de los escenarios clave. Aunque, he visto el diseño de alto nivel realizado sin programación para proyectos más grandes. Yo diría que depende del tamaño y la complejidad. – CVertex

1

Definir "Requerir".

Sin duda, puede construir un producto grande sin una visión central o liderazgo. Simplemente tomará más tiempo, tendrá más errores, será más difícil de mantener y requerirá más horas de trabajo para completar.

Las ventajas de tener un Arquitecto de aplicaciones, en mi experiencia superan ampliamente y superan a las desventajas, y cuanto mayor sea el proyecto, mayor será el efecto.

Ahora hay cosas que puede hacer para mitigar el efecto, como tener una documentación sólida y completa con respecto al diseño previsto de la aplicación, que los desarrolladores siguen fielmente, pero eso es simplemente tener un documento que sustituya al Arquitecto de aplicaciones, no es realmente un enfoque diferente.

Agile Development puede tener éxito, pero su éxito está en tener una máquina bien engrasada de un equipo de desarrollo, cada uno de los cuales acuerda los conceptos básicos del diseño del programa y son lo suficientemente cómodos para señalarse cuando tienen Tomaron malas decisiones y corrigieron los errores de los demás.

Nuevamente, en realidad no está reemplazando el rol del arquitecto de aplicaciones, simplemente está distribuyendo las responsabilidades a un grupo de personas.

El hecho simple es que ese papel [i] es [/ i] algo que te gustaría tener sentado. Cómo te sientas depende de ti, pero el método más probado y más efectivo es hacer que una persona lo haga.

+0

Requerir en este contexto significa que el proyecto estaría peor sin el arquitecto. Por ejemplo, podría argumentarse que los proyectos pequeños no requieren un arquitecto porque se pueden ejecutar con éxito sin considerar el diseño. –

+0

Creo que ha enumerado el único caso excepcional: pequeños proyectos. –

0

En el lugar donde trabajo, tenemos arquitectos para un proyecto grande. Los arquitectos son si le gusta 'la voz de la cordura' y cierra la brecha entre el rol de un analista de negocios ('Esto es lo que creemos que requiere la industria') y los desarrolladores sénior ('así es como puede funcionar'). Brindan una visión coherente de cómo debería desarrollarse el software: una visión más amplia, si lo desea.

Los desarrolladores se mueven, especialmente los buenos, y la coherencia en un proyecto es clave, en mi opinión. Los arquitectos se especializan en un área del proyecto (proyecto grande, recuerden) y no se mueven, por lo que desarrollan una gran comprensión de lo que se logrará y cómo debemos lograrlo.

También proporcionan una "curva de suavizado" para las situaciones de flip-flop que se producen con las cambiantes necesidades comerciales y la resistencia natural de los desarrolladores para cambiar procesos ya horneados.

Incluso los proyectos de fuente abierta tienen lo que yo llamaría un arquitecto: las personas centrales en el proyecto suelen tener una visión de lo que se está construyendo y cómo debería ser. Los colaboradores están proporcionando ideas y superando límites, pero hay alguien que veta un cambio si no encaja.

0

Depende de lo que quiera decir con "arquitecto". Si te refieres a lo que significa CVertex, entonces, de hecho, eso es correcto.Si te refieres a "una persona gorda * que no codifica pero que le gusta mucho UML y que besa a la gerencia", entonces el principal riesgo es que el proyecto funcione y no sea respaldado por la administración, y no al revés.

* En mi experiencia, muchas de estas personas sin código tienen incluso más exceso de peso que yo. Sin embargo, veo muchos programadores delgados.

0

Cuando solo hay un mantenimiento menor involucrado que no requiere ninguna revisión arquitectónica o análisis.

0

Mi experiencia es que a veces el arquitecto simplemente no se llama así. Por lo general, hay alguien, o algún grupo, que es responsable del diseño general del código. He tenido esto como un líder técnico, un líder de equipo o un líder de proyecto. También tiende a ser un desarrollador que tiene la responsabilidad adicional de guiar el diseño a gran escala. Tal vez acabo de trabajar en pequeñas tiendas de desarrollo, pero nunca he visto el punto de tener a alguien que solo trabaje en arquitectura, ¡simplemente no hay suficiente para hacer en un proyecto!

Cuestiones relacionadas