Crea una cuenta o inicia sesión

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

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 88

Preguntas 11

Ordenar por:

Los aportes, preguntas y respuestas son vitales para aprender en comunidad. Regístrate o inicia sesión para participar.

Principios del Manifiesto Ágil

  • Nuestra mayor prioridad es satisfacer al cliente
    mediante la entrega temprana y continua de software
    con valor.

  • Aceptamos que los requisitos cambien, incluso en etapas
    tardías del desarrollo. Los procesos Ágiles aprovechan
    el cambio para proporcionar ventaja competitiva al
    cliente.

  • Entregamos software funcional frecuentemente, entre dos
    semanas y dos meses, con preferencia al periodo de
    tiempo más corto posible.

  • Los responsables de negocio y los desarrolladores
    trabajamos juntos de forma cotidiana durante todo
    el proyecto.

  • Los proyectos se desarrollan en torno a individuos
    motivados. Hay que darles el entorno y el apoyo que
    necesitan, y confiarles la ejecución del trabajo.

  • El método más eficiente y efectivo de comunicar
    información al equipo de desarrollo y entre sus
    miembros es la conversación cara a cara.

  • El software funcionando es la medida principal de
    progreso.

  • Los procesos Ágiles promueven el desarrollo
    sostenible. Los promotores, desarrolladores y usuarios
    debemos ser capaces de mantener un ritmo constante
    de forma indefinida.

  • La atención continua a la excelencia técnica y al
    buen diseño mejora la Agilidad.

  • La simplicidad, o el arte de maximizar la cantidad de
    trabajo no realizado, es esencial.

  • Las mejores arquitecturas, requisitos y diseños
    emergen de equipos auto-organizados.

  • A intervalos regulares el equipo reflexiona sobre
    cómo ser más efectivo para a continuación ajustar y
    perfeccionar su comportamiento en consecuencia.

Las Metodologías Ágiles Redifinieron los Roles para acomodarlos a su filosofia de Trabajo (Tradicional vs Metodologías Ágiles).

Experto de Dominio: (tradicional) Era la persona que acudiamos para resolver las necesidades de los REQUERIMIENTOS{Que se requiere para este Software}

Experto de Dominio: (Metodologías Ágiles) Hace un analisis de los stakeholders (Que resolver de su Producto?)

Analista (Tradicional): Es la Persona que indaga en Que es lo que hay q resolver, define un problema…

Analista (Metodologías Ágiles): 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 (Tradicional): 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)

Administrador de sistemas (Metodologías Ágiles) 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

Administrador de sistemas (Metodologías Ágiles) Fue reemplazado por el SRE (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 (Tradicional): Evaluación de Software

QA - Equipo de Texting (Metodologías Ágiles): 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 (Tradicional): Se ecargaba de todo lo que era la entrega, Cumplir con toda la gestion del ciclo de Vida del Proyecto

Gestor del Proyecto (Metodologías Ágiles): Se conoce como Facilitador (SCRUM Master) lleva al equipo atraves de el ciclo de (Entender que es lo nos Para)

++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 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

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.

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

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.

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!

Cuando hablamos de los Stackeholders, se refiere a la/las personas que saben del negocio. En muchos, estos, podrían ser el mismo cliente?

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.)

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!

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

¿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.

No se enfocaron en stakeholders, ojala que en Metodologías Ágiles lo agreguen

wao!, el curso de Metodologías Ágiles fue uno de los primeros que cursé aquí (y que de hecho ya está por salir el curso de SCRUM, genial!), no pensé iba a encontrar un curso (este) en donde se explicara tan claramente la relación entre los roles que se ven en Metodologías Ágiles con el mundo tradicional de la Gestión de Proyectos … muy interesante! … y más interesante me parece porque tengo un compañero de trabajo que me discute tal relación no existe! … jajaja … a continuar aprendiendo! =D

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?

Muy interesante!

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.

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

Estamos aprendiendo arquitectura y ya estamos viendo que los arquitectos están dejando de existir en las metodologías ágiles.

Tengo duda respecto al equipo de trabajo dentro de la parte del desarrollo, ¿Quienes son en cuanto a los roles o que clase de cargo o especialidad tienen?, ¿Son sencillamente desarrolladores puros o sencillamente se involucran todos los roles que hay dentro del desarrollo de un software?.

Otra duda al respecto es: ¿Por qué se le llama arquitectura de software y no sistemas de información?, lo pregunto porque estudio Ingeniería de Sistemas y creame que es la forma más nueva que he escuchado de nombrar en el momento de implementar un sistema de software o de información y tal vez no me he dado por enterado.

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?.

¿Ademas de SCRUM que otra metodologia Agil recomiendan?

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

4:05 min … Que quiere decir Entender los requerimientos de este lado del mundo?

DevOps

Muy buena clase.

Manifiesto Ágil

Agile es clave

Roles:

  • Experto del dominio
  • Analista/cliente
  • Administrador de sistemas/DEvOps
  • QA -Tester - Desarrollador - Arquitecto / Equipo de Desarrollo
  • Gestor de proyectos / Facilitador

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)

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.

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

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)

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.

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

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

Los roles son los más difíciles de asignar cuando uno crea su empresa, porque una sola persona quiere o debe hacer todo y el proceso se complica, se demora y casi siempre falla.

definicion roles

¡Hola!
¿Cómo podría ser el QA Automatizado?