Event in Spanish: Jueves de Quack

By GitHub

TechnologyAIBusiness
Share:

Key Concepts

  • GitHub Copilot: Una herramienta de inteligencia artificial que ayuda a los desarrolladores a escribir código de manera más eficiente.
  • GitHub Actions: Una plataforma de automatización de flujos de trabajo que permite a los desarrolladores automatizar tareas como la integración continua y la entrega continua (CI/CD).
  • GitHub Well-Architected Framework: Una guía para diseñar, construir y operar soluciones en GitHub de manera eficiente, segura y confiable.
  • Coding Agent: Un agente autónomo de GitHub Copilot que puede realizar tareas complejas de codificación de forma independiente.
  • Ingeniería del Caos: La práctica de experimentar con sistemas en producción para identificar y mitigar vulnerabilidades.
  • DevSecOps: La integración de la seguridad en todas las etapas del ciclo de vida del desarrollo de software.
  • Deuda Técnica: El costo implícito de reelaboración adicional causada por elegir una solución fácil ahora en lugar de usar un mejor enfoque que tomaría más tiempo.
  • Cycle Time: El tiempo que tarda en completar un ciclo de desarrollo, desde la concepción hasta la entrega.
  • Time to Market: El tiempo que tarda en lanzar un nuevo producto o característica al mercado.

Introducción

El video es una charla sobre cómo utilizar la inteligencia artificial, específicamente GitHub Copilot, para mejorar el flujo de desarrollo de software, no solo para desarrolladores, sino también para roles como DevOps, seguridad y QA. Se discuten los desafíos comunes que enfrentan los equipos de desarrollo, como la falta de estandarización, el desorden en las herramientas de IA y la dificultad para medir el impacto de estas herramientas.

Desafíos Iniciales

  • Falta de estandarización en flujos de integración y despliegue continuos (CI/CD): Cada equipo utilizaba diferentes herramientas y procesos, lo que dificultaba la comprensión y el mantenimiento.
  • Desorden en las herramientas de inteligencia artificial: Los equipos utilizaban diferentes herramientas de IA sin una estrategia clara, lo que limitaba su efectividad.
  • Falta de medición del impacto de las herramientas de IA: No había una forma clara de medir los beneficios de usar herramientas como Copilot.
  • Enfoque limitado en el desarrollo de software: Se dejaban de lado roles como DevOps, seguridad y QA en la adopción de Copilot.
  • Dolores de seguridad e infraestructura: Los problemas anteriores conducían a vulnerabilidades de seguridad y problemas de infraestructura.
  • Datos sobre problemas:
    • 40% del backlog era deuda técnica.
    • El coverage de los test unitarios andaba más o menos por el 20%.
    • No había datos sobre fallas en despliegues y temas de seguridad.

Enfoque y Soluciones

El equipo decidió "poner la pelota" y reorganizarse, enfocándose en la adopción de Copilot y GitHub Actions. Se plantearon dos preguntas clave:

  1. ¿Cómo poner en marcha Copilot de la mejor forma?
  2. ¿Cómo mejorar el flujo de desarrollo actual?

Medición del Impacto

Se utilizó el GitHub Well-Architected Framework como guía para la adopción de Copilot y GitHub Actions. Se creó una hoja de cálculo para evaluar el estado de los equipos y estimar el impacto de Copilot en métricas como el cycle time.

  • Excel: Se generó una serie de preguntas basadas en el GitHub Well-Architected Framework para entender el contexto general y el estado del equipo.
  • Métricas: Se utilizaron métricas públicas y propias para estimar el impacto de Copilot en el cycle time y otras métricas.
  • Automatización: Se está trabajando en un modelo automatizado para predecir el impacto de Copilot de manera más precisa.

Mejora del Flujo de Desarrollo

Se estudió el flujo de desarrollo actual y se identificaron áreas de mejora, como la planificación, el código, el bildeo y las pruebas. Se integró la seguridad desde las primeras etapas del ciclo de vida del desarrollo (DevSecOps).

  • Automatización: Se generaron automatizaciones para PRs, issues, onboarding del equipo y templates para los pipelines.
  • Pruebas: Se implementaron pruebas de seguridad y de ingeniería del caos.
  • Ingeniería del Caos: Se realizaron experimentos para validar cómo responde la aplicación ante fallos.

Caso de Uso: Coding Agent e Ingeniería del Caos

Se utilizó el coding agent de Copilot para generar experimentos de ingeniería del caos en un repositorio con vulnerabilidades a propósito.

  • Proceso: Se creó un issue, se asignó a Copilot y se le pidió que agregara experimentos de ingeniería del caos.
  • Autonomía: El coding agent trabajó de forma autónoma, creando una nueva rama y generando los experimentos.
  • Documentación: El coding agent generó documentación detallada sobre cómo usar los experimentos.
  • Barreras: Se observó que el coding agent ayudó a romper las barreras para adoptar prácticas como la ingeniería del caos.

Resultados

Después de varios meses de implementación, se observaron los siguientes resultados:

  • Reducción de tareas repetitivas: Las tareas repetitivas se redujeron a la mitad.
  • Disminución de vulnerabilidades: Las vulnerabilidades disminuyeron significativamente.
  • Aceleración de despliegues: Los despliegues se aceleraron gracias a los pipelines y las pruebas.
  • Mejora del humor de los equipos: Se notó una mejora en el ambiente de trabajo.

Lecciones Aprendidas

  • Exposición a la seguridad: No se sabe qué tan expuesto se está en cuanto a seguridad hasta que uno mismo trata de romperlo.
  • Calidad vs. Escáneres: La calidad de las aplicaciones mejora más con experimentos que con escáneres de calidad.
  • Aprendizaje: El aprendizaje es más importante que el resultado en sí mismo.
  • Incidentes simulados: Los incidentes simulados enseñan mucho para no sufrirlos tanto en producción.
  • Retorno de la inversión en seguridad: El retorno de la inversión en seguridad se mide por la resiliencia de la aplicación.

Conclusión

La inteligencia artificial, especialmente GitHub Copilot, puede ser una herramienta poderosa para mejorar el flujo de desarrollo de software. Sin embargo, es importante tener una estrategia clara, medir el impacto y enfocarse en la adopción en todos los roles del equipo. La ingeniería del caos y la integración de la seguridad desde las primeras etapas del ciclo de vida del desarrollo son prácticas clave para mejorar la calidad y la resiliencia de las aplicaciones.

Chat with this Video

AI-Powered

Hi! I can answer questions about this video "Event in Spanish: Jueves de Quack". What would you like to know?

Chat is based on the transcript of this video and may not be 100% accurate.

Related Videos

Ready to summarize another video?

Summarize YouTube Video