miércoles, 29 de febrero de 2012

Funciones Principales de un Arquitecto de Software

Me han preguntado recientemente cuales son las funciones de un Arquitecto de Software, termino que me suele hacer reír y que siempre digo que en menor y mayor medida casi todos somos un poco Arquitectos de Software, yo he recopilado estas funciones:

  • Arquitectura: Definición de arquitectura de los sistemas, vista física, vista lógica, principios de arquitectura, seguridad, etc.
  • Selección de Software: Pilas de aplicaciones, bases de datos, librerías, frameworks, estándares tecnológicos, etc.
  • Selección de Infraestructura: Sistemas Operativos, hardware, redes, sistemas de recuperación, etc.
  • Requisitos no Funcionales: Rendimiento, escalabilidad, seguridad, etc.
  • Liderazgo: Liderazgo Técnico, responsabilidad y autoridad, dirección de equipos, etc.
  • Coaching y Mentoring: Ayuda sobre problemas técnicos, ayuda en la evolución profesional, etc.
  • Metodología de Proyectos: Estructura de Proyectos, Metodologías (Waterfall, Scrum, RUP, XP...).
  • Procesos de Desarrollo: Control de versiones de código fuente, procesos de construcción, integración continua, automatización de pruebas y otros procesos y herramientas de desarrollo.
  • Prácticas y Estándares: Estándares de codificación y libros blancos, selección de herramientas, etc.
  • Diseño, Desarrollo y Pruebas: Diagramas UML, codificación, pruebas unitarias, etc.
  • Experiencia: Conocimiento sobre tecnologías y arquitecturas.
  • Estar al día en cuanto a tendencias tecnológicas: Agile, Web 2.0, SOA, Lightweight Java EE, etc.