Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

1D
4H
49M
58S

Roles en metodologías tradicionales y ágiles

4/24
Recursos

Es importante que diferenciemos el ROL del puesto de trabajo, hay roles que pueden ser desarrollados por la misma persona.

Experto del dominio: En una metodología tradicional, es la persona a la que acudimos para entender las necesidades del negocio. En metodologías Ágiles --> stakeholders.

Analista: funcional/de negocio, la persona responsable de definir los requerimientos que van a llevar al software a u buen puerto. En el caso de Ágiles el dueño del producto es quien arma las historias y que nos acompaña en el proceso de construcción del software.

Administrador de sistemas / DevOps: Es el rol de operaciones y desarrollo, son las personas responsables de la infraestructura que alojara nuestra aplicación.

Equipo de desarrollo: QA / Testing se encargan de la evaluación de nuestro software, comprobar que lo que se está haciendo es lo que se espera que se haga. Desarrolladores involucrados en la construcción del software. Arquitecto, diseña la solución y análisis de los requerimientos, es un papel más estratégico. La arquitectura emerja del trabajo de un equipo bien gestionado.

Gestor del proyecto / facilitador: Llevan al equipo a través del proceso iterativo e incremental, entender lo que pasa con el equipo y motivar el avance en el desarrollo del producto.

Aportes 89

Preguntas 13

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

++ROLES
++

Es importante identificar el Rol del puesto de trabajo. En algunas empresas hay roles que pueden ser desarrollados por la misma persona.

Cascada Ágiles
Expertos del producto Experto de dominio Stakeholder:
Definen los alcances Analista Product Owner
Crean el producto QA, Desarrollador, Arquitecto (aislados) Equipo de desarrollo
Facilitadores Project/Product Manager Facilitadores

(

Roles

Metodología tradicional

  1. Experto del dominio: Experto en necesidades de los requerimientos
  2. Analista: Persona responsable a definir el problema y buscar la solución
  3. Sysadmin: Encargado de toda la operación del sistema
  4. Equipos de desarrollos: Desarrolladores encargados de asegurar la calidad del producto, se dividen en muchas áreas, QA, Tester, Desarrolladores, Arquitectos.
  5. Gestor de proyectos: Administrador general de todo el proceso de desarrollo

Metodología ágil.

  1. Partes interesadas/stakeholders: Terceros expertos en el área del producto.
  2. Dueño del producto: El cliente que conoce su producto y sabe sus problemas, el puede realizas las historias y determinar cual sería el mejor camino para priorizar por etapas soluciones.
  3. DevOps: Conecta el desarrollo y las operaciones de infraestructura
  4. Equipos de desarrollos: Desarrolladores encargados de asegurar la calidad del producto, los equipos son autogestionados para realizar ellos mismo dichas funciones.
  5. Facilitador: Administrador general del producto, generalmente se encuentra muy atento a los nuevos cambios del día al día ya que irá cambiando todo el tiempo.

Roles según:
Desarrollo Tradicional

  1. Experto de dominio
  2. Analista
  3. Administrador de Sistemas
  4. QA - Tester / Desarrollador / Arquitecto
  5. Gestor del Proyecto

Metodologías Ágiles

  1. Partes interesadas (stakeholders)
  2. Cliente / Dueño del Producto
  3. DevOps / SRE
  4. Equipo de Desarrollo
  5. Facilitador

Apuntes:

Roles

No conectar directamente Roles con Puestos de Trabajo.

Experto del dominio | Partes interesadas (stakeholders)
En una metodología tradicional el experto del dominio era la persona a la que acudíamos para resolver las necesidades de los requerimientos. Esta persona era el referente.
En metodologías ágiles suelen ser las partes interesadas o los stakeholders. El dueño del producto debe acudir a estos stakeholders para poder saber qué es lo que tiene que poder resolver su producto en todo momento.
Analista | Cliente / Dueño del producto
En la metodología tradicional la persona que indaga en qué es lo que se debe resolver. La persona responsable en definir un problema y a definir esos requerimientos que van a llevar al software a buen puerto.
En las metodologías ágiles es el dueño del producto o cliente. Tiene el poder de armar esas historias de usuario que van a ir definiendo y van a ser priorizadas para poder ir construyendo el software a medida que este dueño del producto encuentra qué es lo que necesita resolver.
Administrador de sistemas | DevOps / SER (site reliability engineer)
En metodologías tradicionales luego de hacer el despliegue de la aplicación había roles de administradores de sistemas o SysAdmins que se encargaban de toda la operación del sistema.
En las metodologías ágiles está el rol de DevOps que es operaciones y desarrollos que viene a cumplir el rol de la persona responsable de entender la infraestructura a la que va a ir nuestra aplicación y de entender los requerimientos de ese lado del mundo. También se habla del rol de SER trata de conectar el mundo de sistemas con el día a día del desarrollo de la aplicación.
Equipo de desarrollo
QA – Tester. Se encargaba estrictamente de la evaluación de nuestro software, es decir, si lo que está haciéndose es lo que hay que hacer y si funciona como se dice que funciona. Comprobar que lo que se está haciendo es lo que se quiere que haga.
Desarrollador. Muy involucrados en etapa de desarrollo e implementación.
Arquitecto. Está mucho más identificado en las metodologías tradicionales porque tiene que ver con el diseño de la solución y con el análisis de los requerimientos especialmente con los requerimientos no funcionales y los arquitectónicamente relevantes.
Gestor del proyecto | Facilitador
En metodologías tradicionales se encargaba de toda la gestión del ciclo de vida del producto.
En metodologías ágiles son facilitadores, tratan de llevar al equipo a través de este ciclo de desarrollo iterativo incremental y entender todo el tiempo qué pasa con el equipo qué les traba a través de las retrospectivas.

Me cuestan mucho las clases teóricas pero aquí andamos! =P

La verdad que la llevo unos 10 cursos en platzi pero tu manera de enseñar me encanta, hiper claro, tranquilo y con seguridad! Queda todo mucho mas fijado!

Me gusta que se comparen los roles tradicionales con los más nuevos de metodologías ágiles da una buena visión global y permite la comparación, dando visión clara de cada uno.
Doy fe no puedes unir el rol al puesto de trabajo, cada empresa tiene su forma de aplicarlos, según el tipo de organización y su modo de gestión.




El papel mas comun que hacemos como freelance y que es el mas importante es el de analista, por que antes de empezar a codear tenemos tener claro que queremos hacer

Es importante que diferenciemos el ROL del puesto de trabajo, hay roles que pueden ser desarrollados por la misma persona.

Experto del dominio: En una metodologia tradicional, es la persona a la que acudimos para entender las necesidades del negocio. En metodologias Agiles --> stakeholders.

Analista: funcional/de negocio, la persona responsable de definir los requerimientos que van a llevar al software a u buen puerto. En el caso de Agiles el dueño del producto es quien arma las historias y que nos acompaña en el proceso de construcción del software.

Administrador de sistemas / DevOps: Es el rol de operaciones y desarrollo, son las personas responsables de la infraestructura que alojara nuestra aplicación.

Equipo de desarrollo: QA / Testing se encargan de la evaluación de nuestro software, comprobar que lo que se esta haciendo es lo que se espera que se haga. Desarrolladores involucrados en la construcción del software. Arquitecto, diseña la solución y analisis de los requerimientos, es un papel mas estrategico. La arquitectura emerja del trabajo de un equipo bien gestionado.

Gestor del proyecto / facilitador: Llevan al equipo a través del proceso iterativo e incremental, entender lo que pasa con el equipo y motivar el avance en el desarrollo del producto.

(información tomada de la descripción de la clase.)

El experto del dominio. Es aquella pesona que nos permite consolidar información de requerimientos del negocio.

El Analista y el PO. Si bien tienen funciones diferentes según la implementación del proyecto. Poseen caracteristicas similares como descubrir y definir cuales son las necesidad a cubrir por el negocio. Y con ello poder extraer información detallada de cada caso de uso o escenario planificado.

Admin DB y Devops. Perfiles los cuales contribuyen al desarrollo y mantenimiento de la infraestructura del proyecto.

Equipo de Desarrollo. Quienes aportan sus conocimientos y esfuerzo para lograr a obtener los entregables del producto en base a los requerimientos.

Gestor del Proyecto o Scrum master. Este perfil contribuye al equipo facilitando y gestionando los diferentes escenarios en los que se puedan bloquear o se pueda mejorar. Indicando cuales son las mejores formas de manejar la situación. Tambien controlando los hitos con los que el proyecto debe cumplir.

Hoy en día es muy importante tener un conocimiento básico de cada uno de estos roles con la finalidad de apoyar al equipo en la toma de decisiones. No basta con ser expertos en nuestra especialidad si no sabemos con quién contar y cómo se comporta el equipo en general.
Entender los roles es algo muy útil!

Los roles en la generación de software como solución a un problema son fundamentales pues también se tiene en cuenta el termino de equipos multidisciplinarios. El método tradicional se ajusta mas a ésta estructura, desarrollar software con la ayuda de varias expertos en diferentes áreas. El método Ágil por el contrario, según veo, se enfoca mas en solucionar el problema con el feedback del cliente o dueño del producto, por supuesto con la ayuda de profesionales, pero las soluciones vienen “inspiradas” más en los clientes que en lo que desarrollen los profesionales de forma intuitiva. Por favor corrijanme si estoy equivocado. Gracias.

Procesos tradicionales:

  • Expertos del dominio
  • Analista
  • Administradores de Sistemas
  • Equipo de Desarrollo (QA, Tester, Desarrollador, Arquitecto)
  • Gestor de proyecto
    Metodologías Agiles:
  • Stakeholders (Partes interesadas)
  • Cliente/Dueño del producto
  • DevOps
  • Equipo de desarrollo
  • Facilitador (SCRUM master)

Roles

Lista de roles de desarrollo de software, tanto como un proceso de desarrollo de software tradicional y metodologías ágiles

  • Experto del dominio: El referente a la hora de consultar “¿que es lo que se requiere para este software?”.

  • Partes interesadas o stakeholds: Son quienes presentan la necesidad ante nuestro producto, y por ende a quienes solicitaremos feedback
  • Analista: Es quien indaga en que hay que resolver, en definir un problema y los requerimientos que va a guiar por buen camino al desarrollo del software.

  • Cliente / Dueño del producto: Es el cliente que tiene y conoce su problema o necesidad, quien puede armar historias (completas o iniciales) para el desarrollo del producto.
  • Administrador de sistemas: Encargado de operación del sistema, mantener el servidor, actualizar librerías del sistema operativo, encontrar errores para dar el feedback al equipo de desarrollo, etc.

  • DevOps / SRE site reliability engineer: Encargado de operaciones y desarrollo, debe de entender la infraestructura donde ira la app y entender el requerimiento del backend.
  • QA-Tester: Quienes evaluaban la funcionabilidad del software, comprobar si el objetivo se esta cumpliendo, a través de tests.
  • Desarrollador: involucrados en la etapa de desarrollo del software y implementación.
  • Arquitecto: Encargado de realizar el diseño de la solución y análisis de los requerimientos.

  • Equipo de desarrollo: Equipo encargado de todo el desarrollo, como una mezcla de QA-Tester, Desarrollador y Arquitecto autogestionado.
  • Gestor del proyecto: Encargado de las entregas, cumplir con los objetivos, gestión del procesos del mismo proyecto.

  • Facilitador: Gestiona el proyecto y al equipo a través del proyecto mismo, comprender al mismo equipo y proyectar los siguientes springs.

Los Scrum Master son los Gestores de Proyecto en el contexto de Scrum.

Se construye iterativamente y va cambiando todo el tiempo.

Excelente curso! me está quedando muy claro todo lo que estamos viendo

Roles
Vamos a listar los roles en un proceso de desarrollo tradicional y ágiles
Cada rol puede ser desarrollado por puestos de trabajos únicos
Roles:
Tradicionales Ágiles
Experto del dominio Stakeholders
Analista Cliente - dueño del producto
Administrador de sistemas DevOps / SRE
Equipo de desarrollo – (QA desarrolladores Arquitecto) Equipo de desarrollo
Gestor de proyecto Facilitador (Scrum Master)

Experto del dominio (tradicional)
Es la persona a la que acudimos para resolver las necesidades de los requerimientos, para saber que es lo que el usuario necesitaba o el negocio necesitaba, persona referente en cuanto a que se requiere del software
Partes interesadas - Stakeholders (ágiles)
El rol de dueño del producto va a acudir a esos Stakeholders para saber que tiene que resolver el producto en cada momento

Analista (tradicional)
Indaga en qué hay que resolver, define el problema, define los requerimientos que van a llevar el software a un buen puerto… se necesita hay que tener un análisis bien detallado para poder entrar en una etapa de desarrollo con la especificación de todo lo que vamos a hacer
Cliente – Dueño del producto (ágiles)
Arma las historias de usuario que van a ir definiendo y van a ir siendo priorizadas para ir construyendo el software a medida que el dueño de producto encuentra que es lo que se necesita resolver, algunos procesos ágiles hacen un desarrollo fuerte sobre historias antes de empezar y otros con una parte o un 40% desarrollado y luego van agregando historias a medidas que las encuentran

Administrador de sistemas (tradicionales)
Se encargaban de toda la operación del sistema, si había servidores, en encargaban de mantenerlo actualizado, de encontrar errores y dar el feedback al equipo de desarrollo
DevOps – SRE (Site reliability engineer) (ágiles)
La persona responsable encargada de entender la infraestructura a la que va a ir nuestra aplicación y de entender los requerimientos de ese lado
SRE: cercano al administrador de sistemas, conecta el mundo de sistemas al mundo de la infraestructura con el desarrollo de la aplicación

Equipo de desarrollo – QA Tester – Desarrollador – Arquitecto (tradicionales)

  • QA: se encarga de evaluar el software, si lo que se está haciendo es lo que toca y si funciona como dice que funciona através de pruebas
  • Desarolladores: involucrados en la etapa de desarrollo e implementación
  • Arquitecto: Tiene que ver con el diseño de la solución, análisis de los requerimientos funcionales principalmente
    Equipo de desarrollo (ágiles)
    En un equipo de desarrollo con metodologías ágiles no incluye todos, los QA, desarrolladores y arquitecto porque se espera que el equipo se encargue de tomas las decisiones arquitectónicas y que la arquitectura emerge de un equipo autogestionado

Gestor de proyecto (tradicionales)
Se encarga de la gestión del ciclo de vida del proyecto, las entregas, cumplir con el plan
Facilitador (ágiles)
SCRUM MASTER viene a ser el rol de gestor de proyecto y tratan de llevar el equipo a través de este ciclo de desarrollo iterativo incremental a través de springs, entender todo el tiempo que es lo que pasa con el equipo, cuales son los problemas que tienen, planing de lo que se va a hacer en el siguiente spring, estar atento de las fechas… todo en un contexto más dinámico donde no tiene una especificación completa de lo que se va a hacer sino que se construye iterativamente y va cambiando todo el tiempo

¿Como Resolver los Problemas Existenciales?
Ejemplos de cada uno:

  1. No desarrollar: Open source, productos que ya resuelvan parte del problema (auth, cloud services, ecommerce platforms).
  2. Prototipado rápido: GV Sprint, RAD frameworks, mockups
  3. Desarrollo evolutivo (“hacer crecer un software” vs “construirlo”): Metodologías ágiles
  4. Grandes diseñadores: patrones de diseño, referentes / mentores: Kent Beck, Martin Fowler, Robert Martin, Eric Evans, etc.

Roles Involucrados en el Proceso de Desarrollo de Software

Es importante que diferenciemos el ROL del puesto de trabajo, hay roles que pueden ser desarrollados por la misma persona.

Experto del dominio: En una metodología tradicional, es la persona a la que acudimos para entender las necesidades del negocio. En metodologías Ágiles --> stakeholders.

Analista: funcional/de negocio, la persona responsable de definir los requerimientos que van a llevar al software a buen puerto. En el caso de Ágiles el dueño del producto es quien arma las historias y que nos acompaña en el proceso de construcción del software.

Administrador de sistemas / DevOps: Es el rol de operaciones y desarrollo, son las personas responsables de la infraestructura que alojara nuestra aplicación.

Equipo de desarrollo: QA / Testing se encargan de la evaluación de nuestro software, comprobar que lo que se está haciendo es lo que se espera que se haga. Desarrolladores involucrados en la construcción del software. Arquitecto, diseña la solución y análisis de los requerimientos, es un papel más estratégico. La arquitectura emerje del trabajo de un equipo bien gestionado.

Gestor del proyecto / facilitador: Llevan al equipo a través del proceso iterativo e incremental, entender lo que pasa con el equipo y motivar el avance en el desarrollo del producto.

Duda…el gestor o facilitador es el llamado proyect manager?

Y entonces con las metodologías ágiles si sigue existiendo el papel de arquitecto o como se maneja?

¿que tipos de trabajo puedo tener con ello?

Las metodologías tradicionales se caracterizan por tener un proceso de desarrollo de software más estructurado, lineal y faseado. Seguir este tipo de metodología implica un mayor nivel de planificación y documentación, y se suele utilizar en proyectos grandes y/o complejos. Por otro lado, las metodologías ágiles se caracterizan por ser más flexibles y adaptables, y se enfocan en la entrega de productos de software de alta calidad de forma incremental. Esto significa que el proceso de desarrollo es más iterativo y cíclico, y se centra en el trabajo colaborativo de equipos pequeños.
En las metodologías tradicionales suele haber una separación más clara de roles, y cada persona suele tener una función más específica. En las metodologías ágiles, en cambio, se fomenta la colaboración y el trabajo en equipo, y cada persona suele tener un rol más general.

esta mal este show.

por eso estamos como estamos…

los clientes no saben ni que…

los clientes finales por ejemplo, los usuarios de finales de la app ponen sus quejas en google play y estas jamas son atendidas…debe haber un scrum master o facilitador, un equipo completo de 5 personas leyendo dia y noche esos requirimientos y DEDICANDOSE UNICAMENTE A ELLOS… A SOLUCIONARLOS!!! diciendole al equipo que el lo que se debe modificar en el UI y en el juego para que los usuarios finales vean que son escuchados…

ese rol no existe, lo acabo de descubrir.

ESE ROL SERA LLAMADO: LISTENER (LISTENERS TEAM)
DE NADA
😗

Arquitecto se encarga de analizar los requerimientos no funcionales para diseñar y relacionar conceptualmente módulos o componentes de un sistema.

Estan jugando Pubg, le dan duro al mouse jejejeje! Saludos!

Dejo mis apuntes de esta clase por si a alguien le sirve.
En formato PDF
Y a continuación en imagen:

Experto de Dominio: Para definir las necesidades del proyecto.

Entendiendo los roles en un equipo interdisciplinario.

Muy interesante!

¿El gestor de proyectos cumpliendo la metodología ágil se puede considerar como un “Scrum”?

Lo entendiendo como 5 aspectos:

  • Definición de necesidades del cliente o mercado. Stakeholders
  • Requerimientos para cumplir esas necesidades del cliente o mercado. Dueño de producto
  • Operación del sistema mientras se está llevando a cabo el desarrollo. DevOps
  • Desarrollo y funcionalidad del sistema. Equipo de desarrollo
  • Gestión del proyecto. Facilitador

Lo que me crea un poco de confusión es ¿Por qué los Stakeholders y los Dueños de Producto están separados?.

Algunos libros recomendados?

interesados: es la fuente de los requerimientos y quien tiene la necesidad que resuelve el software

analista: es quien levanta los requerimientos para el área técnica

sys admin: es la persona encargada de manejar toda el área de producción e infraestructura para que el software pueda ser explotado económicamente

Equipo de desarrollo: es toda el área técnica que construye el producto de software , suele dividirse en pequeños equipos específicos por área

facilitador: es quien se encarga de toda la administración relacionada con el proceso de desarrollo

Metodologia Tradicional
Experto de dominio
Analista
Administrador de Sistemas
QA - Tester / Desarrollador / Arquitecto
Gestor del Proyecto
Metodologías Ágiles
Partes interesadas (stakeholders)
Cliente / Dueño del Producto
DevOps / SRE
Equipo de Desarrollo
Facilitador

DevOps

Muy buena clase.

Manifiesto Ágil

Agile es clave

Roles en metodologías tradicionales vs ágiles.

Roles involucrado en el desarrollo de software tradicional:
• Experto de Dominio, esta persona sabía lo que se requiere para el proyecto
• Analista funcional / negocio: Indaga sobre el problema que se va a resolver. Definir un problema y los requerimientos. Se necesitaba tener un análisis muy detallado para empezar a desarrollar el proyecto.
• Administrador de sistemas: Se encargaban de la operación del sistema.
• QA, Testing, Arquitecto: Comprobar que lo que se está haciendo es lo que se requiere para resolver el problema.
• Gestor de proyecto: Es el encargado de todas las entregas y gestión del ciclo de vida del proyecto

Roles involucrado en el desarrollo de software ágil:
• Por lo general son los stakeholder los que tienen las bases para el desarrollo del proyecto
• El dueño del producto/cliebte es el que define lo que necesita para resolver su problemática.
• DevOps cumple el rol de entender la infraestructura y mantenerla
• Equipo de desarrollo: Lleva a cabo las tareas de desarrollo testing QA.
• Faculitador: lleva la gestión del proyecto en tood el ciclo de vida del proyecto.

Rol Metodologías Tradicionales Metodologías Ágiles
Experto de Dominio Era la persona que acudiamos para resolver las necesidades de los REQUERIMIENTOS Que se requiere para este Software Hace un analisis de los stakeholders (Que resolver de su Producto?)
Analista Es la Persona que indaga en Que es lo que hay q resolver, define un problema Es la persona que define los requerimientos es El Cliente, el va ir definiendo como sera el software a medida Cual es su Problematica.
Administrador de sistemas Se encargaban de toda la operacion del sistma(Si había servidores, actualizar librerias, Encontrar Errores en los logs y dar el Feedback al equipo de desarrollo) Fue reemplazado por el DevOps (Operaciones y Desarrollo unidos) Es la persona Responsable de Entender la Infraestructura a la que va nuestra app y Entender los Requerimientos de ese lado del mundo, es tambie conocido como SRE (site reliability engineer / Ing de la Confianza del Sitio) es similar al Administrador de Sistemas pero Conectando el mundo de sistemas con el mundo del dia-dia de la app
QA - Equipo de Texting Evaluación de Software Fueron Unidos en un Solo Equipo de Desarrollo (QA-Tester, Desarrollador, Aquitecto) Se Encarga de Tomar las decisiones arquitectonicas (La arquitectura Emergera de un Equipo Autogestionado)
Gestor del Proyecto Se ecargaba de todo lo que era la entrega, Cumplir con toda la gestion del ciclo de Vida del Proyecto Se conoce como Facilitador (SCRUM Master) lleva al equipo atraves de el ciclo de (Entender que es lo nos Para)

Fuente @noemk2

ROLES Experto en dominio

Analistas

Administrador de sistemas

Equipo se desarrollo

Gestor del proyecto

Muy buena explicación de los roles

Excelente comparativa de los roles en el modelo tradicional vs ágiles

Pero bueno que una sola persona este asumiendo varios roles también está mal, por ejemplo el desarrollador puede no estar viendo detalles que generalmente ve la persona de QA.

con la definición de los roles se puede ver que tiene que hacer cada rol aun que este puede ser interpretado por un mismo puesto ya que no están casados

excelente clase

Las nuevas metodologías no dependen de un analista, el cliente o dueño del producto definen las especificaciones.

perfecto

Este apartado me ha parecido muy poco organizado y muy abstracto.

Primero se comienza comparando agile con tradicional, luego se comienza a meter QA-Tester con desarrollador Arqutecto, Equipo de desarrollo … Un lío tremendo

RESUMEN:
En función del tipo de metodología que se esté implementando el programador toma diferentes roles, en general con el propósito de:

  1. Tener claro el contexto en el que se va a trabajar
  2. Experto del modelo de negocio y/o doliente de la necesidad
  3. Equipo de desarrollo segementado en tareas globales, o integrado en objetivos a corto plazo.
  4. Un gestor de proyectos que brinda recursos, tiempos, supervisa y vigila el cumplimiento de fechas límites.

bueno

Me interesa mucho el curso creo que se debería ampliar un poco mas en la metodología SCRUM y AGIL, gracias por impartir el conocimiento

Muy buena explicación de los tipos de roles

Administrador de sistemas, pregunta con este curso podre desempeñar otro rol?? o debo hacer otro curso, gracias por responder

Experto del dominio (tradicional), Partes interesadas o stakeholders (agile).
Analista (tradicional) / Dueño del peroducto (agil): indaga en lo que hay que resolver, definir requerimientos, enn agile es quien arma las historias del usuario.
Administrador de sistemas (trad.) / DevOps - SRE : Operaciones y desarrollo unidos, debe entender la infrastructura a la que va a ir el desarrollo.
Equipo de desarrollo (QA, Devs, Arquitecto)

Mucha información interesante! algo rápido las explicación.

Esencial saber los roles y sus funciones, para que el team funcione y de resultados de una manera más óptima.

Las empresas que realmente son ágiles, tienen dentro del equipo de desarrollo a los desarrolladores y las personas de infraestructura trabajando para dar entrega continua al cliente.

Pregunta de examen: en el contexto de metodologías ágiles, ¿dónde encontramos el rol del arquitecto?

ROL <> Puesto de Trabajo.

Metodologias Tradicionales.

  1. Experto del Dominio:
  2. Analista Funcional. Indaga y define los requerimientos
  3. Administrador de Sistemas.
  4. QA - Tester
  5. Desarrollador
  6. Arquitecto
  7. Gestor del Proyecto.

Metodologias Agiles.

  1. Stackeholders.
  2. Dueño del producto. PRoduct Owner.
  3. DevOps / SRE _(site reliability engineer). Entender la infraestructura
  4. Equipo de Desarrollo (Multidisciplinario)
  5. Facilitador - Scrum Master.


Equipo de desarrollo- QA DEV ARQ

.

Excelente

Super claro 😃

Buena clase, muchas gracias.

Creo que después de mucho, mi rol profesional es evidentemente:
Arquitecto de Software

Para aprender sobre lo visto, recomiendo el curso de Scrum (Metodología ágil y que implementa los roles vistos): https://platzi.com/clases/scrum/

Hay toda una ruta para ser DevOps: https://platzi.com/servidores/

Y ya hay un curso para la gestión de estos equipos ágiles: https://platzi.com/clases/equipos-agiles/

Y si son diseñadores gráficos también hay una metodología ágil: https://platzi.com/clases/design-thinking/

Aunque aparentemente un gestor de proyectos y un scrum master podrian parecer roles equivalentes, las tareas de ambos roles tienen bastantes diferencias propias del cambio de metodológica.

Mi puesto: Python Developer
Mi rol: Backend, Frontend, DevOps, Automatizador de test, Arquitecto de software

Me gusta mucho el símil entre el trabajo tradicional y el trabajo ágil, sin embargo se en mi experiencia cuando se realiza un trabajo tradicional por lo general siempre existe un rol definido para cada una de las actividades del proceso de desarrollo del software, un ejemplo es el rol de DBA (Database Administrator) que se encarga de todas las tareas de administración de base de datos por ejemplo trabajar con ddl y dmls, crear triggers, procedimientos almacenados etc, en la metodología ágil por lo general es el equipo de desarrollo quien asume toda la responsabilidad, y normal ver desarrolladores creando procedimientos en base de datos, desarrollando código, administrando servidores, etc.

En el mundo de las metodologías agiles vs la metodológica tradicional, se discute mucho el hecho que en las metodologias agiles muchas veces la arquitectura de datos y de software durante la evolución del software se puede ver afectada, en gran manera, por cambios o necesidades no contempladas en los primeros Sprint.

Mi duda es como se solventan estos inconvenientes en las metodoligas agiles, teniendo en cuenta que las modificaciones pueden afectar lo ya construido, y hacer que tenga que devolverce a validar funcionalidades ya probadas y certificadas.

El corazón de las metodologías ágiles es la iteración continua.

Roles en el desarrollo de software:
Experto del dominio -> parte interesada o dueño de negocio
Analista -> quien define los requerimientos
DevOPS -> Administrador de sistemas -> Define la necesidad de conectar la infraestructura del sistema.

Equipo de desarrollo esta conformado por: {
QA Tester
Desarrolladores
Arquitecto
}

Gestor del proyecto - project mannager -> quien define el planning del día a día del equipo.

Les comparto mis notas, en este caso han sido bastante extensas, el profesor brinda MUCHA información interesante:
3. Mis apuntes sobre: "Dificultades en el desarrollo de software"
Existen dos tipos:
3.1. Esenciales: Especificación, diseño y comprobación del concepto, entender el concepto o el diseño.
3.2. Accidentales: Tiene que ver con la plataforma, la tecnología, el lenguaje el framework

3.1. Esenciales:
	3.1.1. Complejidad: Cuando lo que tenemos que resolver es complejo en sí mismo.
	3.1.2. Conformidad: En qué contexto se va a usar, y cómo se adecúa a ese contexto.
	3.1.3. Tolerancia al cambio: Una vez terminemos, va a poder cambiarse o va a ser muy difícil.
	3.1.4. Invisibilidad: Es difícil porque no es tangible, su forma está plasmada en código,
	infraestructura.
	
3.2. Accidentales:
	3.2.1. Lenguaje a usar.
	3.2.2. Multi-procesamiento: Ahora tenemos la capacidad de desarrollar con mucho mejor feedback.
	3.2.3. Entornos de programación: Librerías opensource, o apis, o frameworks.

“Considero a la especificación, diseño y comprobación del concepto la parte difífil de hacer
software. Si esto es cierto, hacer software siempre será difícil. No existe bala de plata”.
(No silver Bullet -> Frederick P. Brooks Jr. 1986)

¿Cómo resolvemos las dificultades esenciales?

  1. No desarrollar: Si es muy difícil, tal vez se debe usar uno existente, aprovechar el OpenSource.
    usar disponibles y conectarlos con la actual.

  2. Prototipado rápido: La idea es recibir feedback lo antes posible de si estamos resolviendo
    el problema correcto, para eso vamos a evolucionando el sistema en pasos muy pequeños
    y siempre tratando de obtener feedback del usuario: qué es lo que necesitabas, qué necesitas que
    haga ahora, necesitas que evolucione por esa funcionalidad o necesitas una nueva
    El feedback es la herramienta más importante del desarrollo de software moderno, por eso
    son tan peligrosas las metodologías tradicionales que no obtenían feedback hasta muy tarde
    en el proceso. (esto evolucionó en las metodologías ágiles)

  3. Desarrollo evolutivo: Está más alineado con la creación y acumulación de sistemas,
    que se trate de obtener resultados pequeños e ir escalando.

  4. Grandes diseñadores: No son programadores que saben usar una teconología, sino ingenieros
    que sepan abstraerse del problema puntual, y entender el problema general, que sepan diseñar
    una solución elegante y simple, que resuelva de la mejor manera el problema y con la mejor
    calidad.

*4. Mis apuntes sobre: Roles
Vamos a definir los roles en la metodología de trabajo tradicional y la ágil.

4.1. Experto del dominio (Tradicional): La persona a la que acudimos para resolver
las necesidades de los requerimientos (lo que el usuario/negocio necesitaba).

4.1. Partes interesadas [stakeholders] (Ágil): El rol del dueño del producto va a recurrir
a los stakeholders para saber qué es lo que tiene que resolver su producto en cada momento.

4.2. Analista Funcional/Negocio (tradicional): Es la persona que indaga en lo que hay
que resolver, la persona responsable de llegar a definir el problema y los requerimientos
que van a llevar al software a un buen puerto.

4.2. Cliente/Dueño del producto (Ágil): Tiene el rol de poder armar estas historias de 
usuario que van a ir definiendo y van a ser priorizadas para poder ir construyendo el 
software a medida que este dueño de producto encuentra qué es lo que necesita resolver.
Algunos procesos ágiles hacen un desarrollo fuerte en historias antes de iniciar, otros van
agregando historias a medida que las encuentran.

¿Preguntar: Cómo se controla el flujo de cambios/requerimientos, qué evita que se vuelva eterna
o muy grande de manejar? ¿Existe el NO al cliente?

4.3. Admnistrador de sistemas [sysadmins] (Tradicional): Luego de hacer el despliegue de la
aplicación,	se encargaban de la operación del sistema->Si había servidores se encargaban
de mantener el 	servidor, de actualizar las librerías del sistema operativo, se encargaban
de encontrar errores en los logs y dar ese feedback al equipo de desarrollo.

4.3. DevOPS/SRE [site reliability engineer] (Ágil): Es la persona responsable de entender
la infraestructura a la que va a ir nuestra aplicación y de entender los requerimientos de ese
lado. SRE->Es más cercado al sysadmin.

Las empresas que trabajan con metodologías ágiles los tienen juntos.

4.4. QA-Tester/Desarrollador/Arquitecto (Tradicional): Se encarga estrictamente de la 
evaluación de nuestro software si el desarrollo que se está haciendo es lo que hay que hacer
y si funciona como dice que funciona. QA manual y QA automatizado.

4.4. Equipo de Desarrollo (Ágil): Busca que la arquitectura emerja del equipo autogestionado.

4.5. Gestor del proyecto (Tradicional): Se encarga de las entregas, cumplir con el plan,
toda la gestión del ciclo de vida del proyecto.

4.6. Facilitador {Scrum master](Ágil): Tratan de llevar al equipo a través de este ciclo
de desarrollo interactivo, incremental, a través de sprints, entender todo el tiempo
qué es lo que pasa con el equipo, qué es lo que los traba, a través de retrospectivas y el 
planning de qué es lo que se va a hacer en el siguiente sprint. Sigue siendo la misma
responsabilidad del gestor, de estar atento a las fechas, entregables, en un contexto mucho
más dinámico en donde no hay una especificación de completa de qué es lo que va a hacer
sino que se construye interactivamente y va cambiando todo el tiempo.

Importante nota: saber y aceptar que el rol puede ser distinto al puesto de trabajo