¿Cuáles son las diferencias entre un program manager y un software architect?Program Manager vs. Software Architect
Respuesta
Administrador de programas = administrador de proyectos en un mejor palo. Software Architect = Software Engineer en una camiseta más limpia.
Administrador de Programas: no-programador con el respeto de los programadores
Software Architect: programador sin el respeto de los programadores
YMMV: ¿consideraría que Martin Fowler carece del respeto de los programadores? –
Principalmente estaba resumiendo las anécdotas que saqué de los artículos vinculados. Realmente depende de tus definiciones personales de los términos. –
coordinador del programa: tiene comprensión de las necesidades del cliente/mercado e impulsa las especificaciones. Conoce el entorno de desarrollo (lenguaje, herramientas, etc.) y escribe las especificaciones del producto de manera que los desarrolladores lo entiendan. Si los equipos de desarrolladores/pruebas necesitan claridad sobre los requisitos, deben dirigirse al Administrador de programas.
Arquitecto: Dado un problema, diseña una solución de software. Esto incluye el flujo de control del programa, dónde se ubican los componentes, cómo interactúan y el diseño de clase, etc.
Si bien la posición del Arquitecto es bastante poco ambigua, diferentes compañías tienen un significado diferente para los Administradores de Programa.
Program Manager conoce los requisitos del negocio y la vista del producto desde la perspectiva del cliente. Por lo tanto, esto es como un gerente de proyecto si uno toma un producto para ser como un proyecto.
Software Architect conoce los requisitos técnicos y la vista del producto desde la perspectiva del desarrollador. Por lo tanto, esto es como un desarrollador que es el líder y determina la estructura general de las cosas.
Al menos así es como los diferencio.
Un administrador de programa supervisa el estado y el progreso de un entregable (por ejemplo, un producto). Esto incluye administrar a las personas y su tiempo, proyectar y eliminar los excesos de costos, asegurar que los hitos individuales del proyecto coincidan, responder a las partes interesadas sobre el estado del entregable, definir los estándares y la infraestructura, y más.
"Arquitecto de software" es un término algo nebuloso que describe a alguien cuyo resultado es el diseño (y posiblemente la construcción) del software. Esto puede ser cualquier cosa desde una parte de un proyecto hasta todo el producto. El arquitecto del software trabaja con el administrador del programa para garantizar que el diseño del software coincida con la intención y los objetivos del producto, cumpla con los estándares, siga los procesos exigidos en un modelo de gobernanza, cumpla con los requisitos financieros, y así sucesivamente.
En 'The mythical man-month', Frederick P.Brooks compara el Administrador de programas con un productor y el Arquitecto de software con un editor de películas.
Gracias por recordarnos esa comparación. +1 – Alkini
En la moda actual de 'Administración de proyectos basada en portafolios', el Administrador de programas es un puesto líder en la Oficina de Gestión de Proyectos responsable de varios Project Managers y múltiples proyectos en progreso. El Administrador de programas suele existir en empresas medianas y grandes y poseen los artefactos del proyecto y comprenden el negocio. Informan a la gerencia del nivel ejecutivo y viven y mueren según el presupuesto y el calendario. El título no se usa generalmente en relación con los programas de software, sino con el significado general del programa. En el modelo de cartera, una empresa tiene una cartera de proyectos organizados en programas con cada programa dividido en proyectos.
Un arquitecto de software en una empresa es un técnico individual responsable de la integración de múltiples sistemas y aplicaciones dentro del negocio. La persona se convierte en arquitecto al comprender los procesos comerciales y la tecnología habilitadora que dirige el negocio día a día. En las empresas, la trayectoria profesional del arquitecto se ha convertido en una forma para que las personas con mentalidad tecnológica avancen sin recurrir al Lado Oscuro (es decir, la gestión).
Sé que mi definición no se parece en nada a la de Joel. Esto es para la edificación general, ya que alguien en un entorno corporativo tendría diferentes experiencias que alguien en una empresa de desarrollo de software. –
Gracias por la perspectiva de "empresa". +1 – Alkini
Sí, esto también es lo que he visto: el administrador del programa de persona bastante mayor. El gerente del programa podría estar involucrado en todo, desde la creación de una nueva oficina (¿tenemos suficiente estacionamiento para los 1000 consultores que vienen a construir nuestra nueva empresa? ¿Qué es suficiente?) Hasta la supervisión de los requisitos y el desarrollo, para asegurarnos de que el cambio ocurra en la organización, para administrar los $? millones necesarios para hacerlo todo. –
Me he encontrado con dos usos muy diferentes del término Administrador de programas en el desarrollo de software.
Una es lo que considero la versión de Microsoft, que es análoga a la de un gerente de producto en otras compañías. Son externos, por lo que miran lo que los "interesados" (clientes, empresas, etc.) quieren del producto y lo comunican al equipo de desarrollo. Creo que Microsoft suele asociar al gerente del programa con un líder técnico de algún tipo, que realmente lidera el equipo de desarrollo. No tengo ninguna experiencia directa con este tipo de administrador de programa (al menos bajo ese nombre), la mayoría de lo que sé que he aprendido al leer Spolsky articles.
El otro uso del término es lo que yo considero el uso británico OGC Programme Manager. Como he trabajado en el Reino Unido durante los últimos 11 años, no sé qué tan extenso se usa el término en los EE. UU. O en otros lugares. Este tipo de Administrador de programa supervisa múltiples administradores de proyectos. Un 'programa' en este sentido es un gran esfuerzo que requiere la coordinación de proyectos múltiples, a menudo en múltiples disciplinas. Un programa de TI puede tener uno o más proyectos de desarrollo de software, junto con un proyecto para diseñar y construir la infraestructura de alojamiento, crear una organización de apoyo, así como proyectos no técnicos, como la planificación de una campaña de marketing.
"Arquitecto de software" también se usa de diferentes maneras, pero en general, todos tienden a referirse a alguien mucho más técnico que un administrador de programas de cualquier tipo. Por lo general, es un rol de liderazgo técnico.
Si el software no se vende, puede hablar con el Administrador de programas (y ventas/marketing); si el software no funciona, puede hablar con el Arquitecto de software. Program Manager tiene una mayor concentración en el lado comercial de las cosas.
- 1. Program Slicing en VS 2008
- 2. Cómo acelerar IBM Rational Application Developer/Rational Software Architect
- 3. ¿Cómo crear un diagrama de clases a partir del código fuente utilizando Enterprise Architect o Rational Software Architect?
- 4. iOS Enterprise Program contra iOS Developer Program
- 5. HKEY_CURRENT_USER \ Software \ Wow6432Node \ Classes vs HKEY_CURRENT_USER \ Software \ Classes \ Wow6432Node
- 6. Falta la "Vista de servidor" en Eclipse/IBM RSA Rational Software Architect
- 7. Blogging Software - Wordpress vs BlogEngine.NET vs Anything else
- 8. El "Software instalado" vs "Características" vs "Plug-ins" en Eclipse
- 9. Buena ingeniería de software vs. Seguridad
- 10. Predictivo vs diseño de software reactivo
- 11. Software de prueba: fake vs stub
- 12. Tricky Java program
- 13. SharpSVN Ejemplo Program Crashes
- 14. Magic Square Program (C++)
- 15. iPhone socket program
- 16. Java Swing Program Structure
- 17. Debug XQuery Program
- 18. Documentación API en Enterprise Architect
- 19. Sparx System Enterprise Architect Book
- 20. Enterprise Architect: C# ¿Parámetros opcionales?
- 21. HSQLDB Manager?
- 22. Convenciones de nomenclatura para la capa de persistencia: DAO vs Manager vs ...?
- 23. Android Programming setting program text
- 24. Administrar iOS Enterprise Developer Program
- 25. Representación visual de Program Logic
- 26. mongoose web server helloworld program
- 27. sqlite example program en android
- 28. Flex Text to Speech Program
- 29. Web Window Manager (UI Framework)
- 30. Lenguaje de programación de proyectos Enterprise Architect
Bien dicho, excepto que siempre pensé en un ingeniero de software como bastante profesional. Tal vez más como "desarrollador de software con una camiseta limpia". ;) – Joel
¿Cuál es la diferencia entre un desarrollador de S. y S. Engineer? por aquí los términos se intercambian intercambiablemente ... – geocoin
S. Desarrollador y S. Engineer - Depende si hay un PEng alrededor. – BIBD