Certificaciones en Arquitectura de Software

Aprovechando el tema principal de esta edición de SG, en esta ocasión dedicaremos esta sección a hablar sobre certificaciones en arquitectura de software.

 En un artículo dedicado específicamente a las certificaciones en arquitectura de software [1], Paul Clements menciona que existen distintas categorías de certificaciones. Primeramente, las certificaciones pueden ser internas o bien públicas. Las certificaciones internas existen en grandes empresas tales como Boeing o Raytheon y están orientadas a sus empleados, mientras que las certificaciones públicas son otorgadas por organismos tales como el Software Engineering Institute (SEI) y pueden ser obtenidas por el público en general. Por otro lado, Clements hace también una distinción entre los certificados (certificate) y las certificaciones (certification). Los certificados pueden ser obtenidos mediante el seguimiento de cursos y pueden requerir o no que se realice un examen. Las certificaciones, por otro lado, hacen referencia al otorgamiento de credenciales en base a la observación de la aplicación exitosa del conocimiento adquirido. Algunos otros aspectos que diferencian a las certificaciones son los pre-requisitos y también si estas certificaciones están asociadas o no a alguna plataforma.

 A continuación comentaremos sobre algunas opciones disponibles en la industria. Cabe señalar que los autores hemos tenido experiencia con las dos primeras que se discuten.

Software Engineering Institute

El SEI cuenta con varios programas de educación que permiten obtener certificados en el tema de arquitectura de software. Estos incluyen:

  • Software Architecture Professional: Proporciona una base teórica sólida en el tema de la Arquitectura de Software. Consta de cuatro cursos: Principios y Prácticas de la Arquitectura de Software; Documentando Arquitecturas de Software; Análisis y Diseño de Arquitecturas de Software; y Líneas de Productos de Software. Además es necesario realizar un examen.
  • ATAM Evaluator: Capacita al participante como miembro de equipo de evaluación de arquitectura siguiendo el método ATAM [2]. Consta de los cursos: Principios y Prácticas de la Arquitectura de Software; y Entrenamiento del Evaluador ATAM. También se debe tomar el mismo examen que en el programa Software Architecture Professional.
  • SOA Architect Professional: Proporciona una base teórica sólida en el tema de Arquitecturas Orientadas a Servicios. Involucra los cursos: Principios y Prácticas de la Arquitectura de Software; Mejores Prácticas para la Adopción de SOA y temas avanzados de SOA, además de haber realizado el examen previamente mencionado.

 La ventaja de los programas del SEI es que los cursos son impartidos por los autores mismos de los métodos y libros de referencia. Salvo raras excepciones, los cursos se imparten en las instalaciones del SEI en Pittsburgh. Esto es una experiencia muy interesante y enriquecedora, sobre todo porque se tiene la oportunidad de conocer a profesionales de empresas y organizaciones muy reconocidas a nivel mundial. Uno de nosotros recuerda, por ejemplo, en una ocasión haber tenido como compañero de curso a un ingeniero que trabajó en los sistemas de aviónica del transbordador espacial. Los programas del SEI gozan de cierto reconocimiento, en particular en empresas que están familiarizadas con otras propuestas del SEI como pueden CMMI o PSP/TSP. Entre las principales desventajas están el alto costo, ya que no solo involucra el costo directo del curso sino los gastos de viaje.

Tiene un enfoque muy claro y marcado hacia a la plataforma Java en su edición Empresarial. Se enfoca básicamente en el entendimiento de temas de arquitectura a nivel aplicativo, y en el cómo resolver problemas de diseño e implementación de un aplicativo con el apoyo del modelo de programación, stack de componentes, especificaciones, estándares definidos y soluciones probadas que presenta la edición empresarial de java.

 En los tiempos de la extinta Sun Microsystems, esta certificación (Sun Certified Enterprise Architect) constaba de los siguientes requisitos:

  1. Un examen de opción múltiple sobre los tópicos que marca el temario.
  2. Una asignación de diseño de solución de un aplicativo para ser resuelto y enviado de vuelta para su calificación por personal de Oracle.
  3. Un examen de preguntas abiertas sobre las decisiones tomadas en la solución de la asignación entregada en el paso anterior.

 Bajo Oracle esto se ajustó y ahora adicionalmente se requiere tomar un curso previo a presentar el primer examen y contestar un cuestionario final. Con esto la certificación, ahora, se obtiene en 5 pasos.

 Tanto el paquete de solución como el examen de preguntas abiertas deben ser contestados en inglés, así que hay que tenerlo en consideración. Si planean obtener esta certificación, recomiendo que al presentar la solución esperada sean concisos y delimitados, ya que finalmente lo revisará alguien con quién no se podrá defender las ambigüedades presentes. Apóyense en la utilización de conceptos, modelos y patrones que condensan largas explicaciones.

 Cada paso tiene un costo por separado. El tiempo para librar con éxito cada paso es bastante razonable, lo que da pie a realizar una planeación en la inversión en esta certificación.

 Las fortalezas de esta certificación son: el plan de auto-estudio que proporciona el temario, la inmersión durante y posterior a la preparación de la certificación en la bibliografía que señala como recomendada, y por supuesto la elaboración de la tercera y última parte del examen.

 Una debilidad de la certificación es el estar un tanto rezagada en la inclusión de las tendencias y necesidades actuales dentro del desarrollo de aplicaciones empresariales. La certificación, por ejemplo, no aborda actualmente tópicos de diseño de aplicaciones preparadas para la nube, arquitecturas REST, procesamiento batch, entre otros. Seguramente en un futuro las incluirá, pero en su momento dejará atrás otras, hasta que exista un API o JSR en la plataforma que adopte el estándar y mejores prácticas de la industria.

IASA

IASA es la asociación global de arquitectos de TI. Originalmente solo se enfocaba en arquitectura de software pero posteriormente amplió su alcance para incluir otros tipos de arquitectura de TI. Ofrece programas de certificación en 4 áreas de especialización: Arquitectura de negocios, Arquitectura de infraestructura, Arquitectura de información y Arquitectura de software.

 Los cursos de IASA se imparten en distintas ciudades del mundo e incluso algunos se pueden tomar en modalidad online, lo cual es una ventaja para quienes estamos en países donde no hay capítulo local de IASA.

Otros

Algunos otros programas de certificación relacionados con la arquitectura incluyen:

Conclusión

Existe una gran variedad de programas de certificación relacionados con la arquitectura de software. A pesar de que las certificaciones no son una garantía de que quien las posea es un arquitecto competente, al menos implican que ésta persona tuvo contacto con una capacitación y tuvo que estudiar los conceptos que ahí se impartieron con el fin de aprobar el examen asociado (si lo hay).

 Las certificaciones asociadas a una plataforma específica tienen la ventaja de que tienden a ser más valoradas en la industria, pero tienen la desventaja de que el conocimiento asociado puede volverse obsoleto más rápidamente. Las certificaciones que no están asociadas a una plataforma específica tienden a ser menos valoradas en la industria, pero tienen la ventaja de que pueden aplicarse a distintas plataformas y el conocimiento asociado tiene menos riesgo de volverse obsoleto. Por lo anterior, es importante evaluar qué es lo que uno busca obtener de una certificación, y elegir la que sea más adecuada a nuestras necesidades.

 En nuestra experiencia consideramos que la obtención de certificaciones relacionadas con arquitectura de software es una inversión que vale la pena realizar.

Referencias

  • [1] Clements, P., “Certified Software Architects”, IEEE Software, Vol. 27, Issue 6, pp 6-8, Noviembre / Diciembre 2010
  • [2] H. Cervantes. “El Valor de la Arquitectura de Software”. Revista Software Guru # 31, Marzo-Abril 2011.
Bio

El Dr. Humberto Cervantes es profesor-investigador en la UAM-Iztapalapa. Además de realizar docencia e investigación dentro de la academia en temas relacionados con arquitectura de software, realiza consultoría y tiene experiencia en la implantación de métodos de arquitectura dentro de la industria de desarrollo nacional. Ha recibido diversos cursos de especialización en el tema de arquitectura de software en el Software Engineering Institute, y está certificado como ATAM Evaluator y Software Architecture Professional por parte del mismo. www.humbertocervantes.net
Iván González Aguilar es ingeniero en Telemática, graduado de la UPIITA del IPN. Actualmente trabaja en la industria del desarrollo de software y busca de forma continua su formación integral. Entre algunos de sus intereses afines en estos días se encuentran: temas relacionados con estilos de arquitecturas, el diseño de aplicaciones, y la programación con los lenguajes Clojure y Ruby. Además está certificado como Oracle Certified Master, Java EE Enterprise Architect. http://mx.linkedin.com/in/ivangonzalezaguilar