This commit is contained in:
oliver
2026-08-28 10:11:11 -03:00
parent f533ff8e36
commit 585951c8ce
1380 changed files with 1540268 additions and 0 deletions
@@ -0,0 +1,652 @@
<!DOCTYPE html>
<html lang="de">
<head>
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
<link rel="alternate icon" href="/favicon.ico">
<!-- Performance: Preconnect to critical origins -->
<link crossorigin="" href="https://d3js.org" rel="preconnect"/>
<link crossorigin="" href="https://images.pexels.com" rel="preconnect"/>
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<title>GitHub KI Código Colaborativo Odoo | Odoo Expertos</title>
<link href="https://www.odoo-expertos.com/de/odoo-ia/odoo-github-ia-codigo-colaborativo-2025/" rel="canonical"/>
<meta content="GitHub KI Código Colaborativo Odoo: Integración de desarrollo colaborativo con Künstliche Intelligenz. Automatisierung de workflows y optimización de código." name="description"/>
<meta content="GitHub KI Odoo, desarrollo colaborativo KI, integración GitHub Odoo, copilot enterprise, ci/cd automation" name="keywords"/>
<meta content="index, follow" name="robots"/>
<meta content="Equipo Odoo Expertos" name="author"/>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "GitHub IA Código Colaborativo Odoo",
"description": "GitHub IA Código Colaborativo Odoo: Integración de desarrollo colaborativo con inteligencia artificial. Automatización de workflows y optimización de código.",
"datePublished": "2025-07-19",
"author": {
"@type": "Person",
"name": "Equipo Odoo Expertos",
"jobTitle": "Consultora Senior en Sistemas ERP"
},
"publisher": {
"@type": "Organization",
"name": "Odoo Expertos",
"logo": {
"@type": "ImageObject",
"url": "https://www.odoo-expertos.com/logo.png"
}
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "https://www.odoo-expertos.com/de/odoo-ia/odoo-github-ia-codigo-colaborativo-2025/"
}
}
</script>
<link href="/css/main.min.css" rel="stylesheet"/>
<style>
body { background: #1a1a1a; color: #e0e0e0; font-family: 'Inter', sans-serif; }
.article-content { max-width: 1200px; margin: 2rem auto; padding: 2rem; background: #2a2a2a; border-radius: 12px; }
h1 { color: #FF6B35; font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; }
h2 { color: #FF6B35; border-left: 4px solid #FF6B35; padding-left: 1rem; }
.highlight-stat { background: linear-gradient(135deg, #FF6B35, #FF8A50); color: #fff; padding: 2px 8px; border-radius: 4px; font-weight: 600; }
.github-features { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 1.5rem; margin: 2rem 0; }
.feature-card { background: #333; border: 2px solid #FF6B35; border-radius: 8px; padding: 1.5rem; }
.feature-name { color: #FF6B35; font-size: 1.2rem; font-weight: 600; margin-bottom: 0.5rem; }
.chart-container { background: #333; border: 2px solid #FF6B35; border-radius: 8px; padding: 1.5rem; margin: 2rem 0; }
.visualization-container { min-height: 300px; width: 100%; }
.workflow-diagram { background: #333; border: 2px solid #FF6B35; border-radius: 8px; padding: 1.5rem; margin: 2rem 0; min-height: 400px; }
.insight-box { background: #333; border: 2px solid #FF6B35; border-radius: 8px; padding: 1.5rem; margin: 1.5rem 0; }
.code-sample { background: #1e1e1e; border: 1px solid #444; border-radius: 4px; padding: 1rem; margin: 1rem 0; overflow-x: auto; }
.breadcrumbs { background: #333; padding: 1rem 2rem; border-radius: 8px; margin-bottom: 2rem; }
.breadcrumb-list { display: flex; list-style: none; margin: 0; padding: 0; }
.breadcrumb-item a { color: #e0e0e0; text-decoration: none; }
.breadcrumb-separator { margin: 0 0.5rem; color: #888; }
.breadcrumb-item.active { color: #FF6B35; }
a { color: #FF6B35; text-decoration: none; }
</style>
</head>
<body>
<script src="/components/header.min.js"></script>
<script>document.write(/*W6-static*/null);</script>
<nav class="breadcrumbs">
<ol class="breadcrumb-list">
<li class="breadcrumb-item"><a href="/">Startseite</a></li>
<li class="breadcrumb-separator"></li>
<li class="breadcrumb-item"><a href="/de/odoo-ia/">Odoo KI</a></li>
<li class="breadcrumb-separator"></li>
<li class="breadcrumb-item active">GitHub KI Código Colaborativo</li>
</ol>
</nav>
<div class="article-content">
<article>
<h1>GitHub KI Código Colaborativo: Revolución en el Desarrollo de Odoo</h1>
<h2>Wie la Künstliche Intelligenz Transforma el Desarrollo Colaborativo</h2>
<p>La integración de <strong>GitHub KI con Odoo</strong> marca un hito en la evolución del desarrollo empresarial. GitHub Copilot Enterprise, junto con workflows de KI personalizados, está redefiniendo completamente Wie los equipos desarrollan, mantienen y escalan aplicaciones Odoo.</p>
<p>En 2025, el <span class="highlight-stat">87% de equipos de desarrollo</span> que implementan GitHub KI reportan incrementos de productividad superiores al 70%, mientras que la calidad del código mejora en promedio un 89%. Esta revolución no es solo tecnológica, es cultural: transforma Wie pensamos sobre el desarrollo colaborativo.</p>
<section>
<h2>Ecosistema GitHub KI para Odoo: Componentes Avanzados</h2>
<div class="github-features">
<div class="feature-card">
<div class="feature-name">GitHub Copilot Enterprise</div>
<p>Asistente KI especializado en código Odoo con conocimiento contextual de tu empresa. Genera módulos completos, funciones complejas y documentación automática.</p>
<p><strong>Impacto:</strong> <span class="highlight-stat">75% reducción</span> en tiempo de desarrollo</p>
</div>
<div class="feature-card">
<div class="feature-name">GitHub Actions KI</div>
<p>Workflows inteligentes que se auto-optimizan basándose en patrones de código y feedback del equipo. Automatisierung completa de CI/CD con decisiones inteligentes.</p>
<p><strong>Impacto:</strong> <span class="highlight-stat">90% Automatisierung</span> de procesos</p>
</div>
<div class="feature-card">
<div class="feature-name">CodeQL KI Security</div>
<p>Análisis de seguridad potenciado por KI que identifica vulnerabilidades específicas de Odoo antes de que lleguen a producción.</p>
<p><strong>Impacto:</strong> <span class="highlight-stat">96% reducción</span> en vulnerabilidades</p>
</div>
<div class="feature-card">
<div class="feature-name">Dependabot KI</div>
<p>Verwaltung inteligente de dependencias que entiende el impacto de actualizaciones en módulos Odoo y sugiere estrategias de migración.</p>
<p><strong>Impacto:</strong> <span class="highlight-stat">85% reducción</span> en conflictos de dependencias</p>
</div>
</div>
<h2>Flujo de Desarrollo Transformado por KI</h2>
<h3>1. Desarrollo Asistido por KI</h3>
<p>GitHub Copilot Enterprise para Odoo no solo autocompleta código, sino que comprende la arquitectura empresarial y sugiere patrones de diseño optimizados:</p>
<div class="code-sample">
<pre><code># Ejemplo: Copilot genera automáticamente un módulo Odoo completo
# Prompt: "Crear módulo de gestión de inventario con IA predictiva"
from odoo import models, fields, api
from odoo.addons.ai_prediction import PredictiveModel
class InventoryAI(models.Model):
_name = 'inventory.ai'
_description = 'Gestión Inteligente de Inventario'
@api.model
def predict_demand(self, product_id, period_days=30):
"""IA predice demanda futura basada en patrones históricos"""
model = PredictiveModel()
return model.forecast_demand(product_id, period_days)
</code></pre>
</div>
<h3>2. Revisión de Código Automatizada</h3>
<p>La KI analiza cada pull request considerando:</p>
<ul>
<li><strong>Patrones Odoo:</strong> Cumplimiento de convenciones y mejores prácticas</li>
<li><strong>Performance:</strong> Detección de consultas SQL ineficientes</li>
<li><strong>Seguridad:</strong> Identificación de vulnerabilidades potenciales</li>
<li><strong>Cobertura:</strong> Sugerencias de casos de prueba faltantes</li>
<li><strong>Documentación:</strong> Generación automática de docstrings y comentarios</li>
</ul>
<div class="chart-container">
<h3>Métricas de Productividad: Antes vs Con GitHub KI</h3>
<div class="visualization-container" id="productivity-metrics"></div>
</div>
<h2>Workflow Inteligente: De Commit a Producción</h2>
<div class="workflow-diagram">
<h3>Pipeline CI/CD Autónomo con GitHub KI</h3>
<div class="visualization-container" id="cicd-workflow"></div>
</div>
<h3>Fases del Workflow Inteligente:</h3>
<h4>Fase 1: Desarrollo Asistido (2-3 días → 6-8 horas)</h4>
<ul>
<li><strong>Copilot Suggestions:</strong> Generación de código basada en especificaciones</li>
<li><strong>Context Awareness:</strong> Comprensión del modelo de datos Odoo existente</li>
<li><strong>Pattern Recognition:</strong> Aplicación automática de patrones empresariales</li>
<li><strong>Real-time Validation:</strong> Validación instantánea de sintaxis y lógica</li>
</ul>
<h4>Fase 2: Testing Inteligente (1 día → 2 horas)</h4>
<ul>
<li><strong>Test Generation:</strong> KI crea casos de prueba basados en el código</li>
<li><strong>Edge Case Detection:</strong> Identificación automática de casos límite</li>
<li><strong>Performance Testing:</strong> Pruebas de carga automáticas</li>
<li><strong>Integration Testing:</strong> Validación de compatibilidad entre módulos</li>
</ul>
<h4>Fase 3: Deployment Inteligente (4 horas → 15 minutos)</h4>
<ul>
<li><strong>Smart Rollback:</strong> Detección automática de fallos y rollback</li>
<li><strong>Blue-Green Deployment:</strong> Despliegue sin tiempo de inactividad</li>
<li><strong>Health Monitoring:</strong> Monitoreo automático de métricas de salud</li>
<li><strong>Auto-scaling:</strong> Ajuste automático de Ressourcen basado en demanda</li>
</ul>
<h2>Casos de Uso Empresariales Reales</h2>
<h3>Caso 1: Empresa Manufacturera - Migración Odoo 16 a 17</h3>
<div class="insight-box">
<strong>Desafío:</strong> Migrar 47 módulos personalizados con 180,000 líneas de código<br/>
<strong>Solución GitHub KI:</strong> Análisis automático de incompatibilidades y generación de código de migración<br/>
<strong>Resultados:</strong> Migración completada en <span class="highlight-stat">3 semanas vs 6 meses</span> estimados, con <span class="highlight-stat">98.7% de funcionalidades</span> preservadas automáticamente
</div>
<h3>Caso 2: Distribuidora - Desarrollo de E-commerce KI</h3>
<div class="insight-box">
<strong>Proyecto:</strong> Plataforma e-commerce con recomendaciones KI y Verwaltung inteligente de inventario<br/>
<strong>GitHub KI Impact:</strong> <span class="highlight-stat">12 desarrolladores → 4 desarrolladores</span>, tiempo de desarrollo <span class="highlight-stat">8 meses → 3 meses</span><br/>
<strong>Innovación:</strong> KI generó 67% del código final, incluyendo algoritmos de recomendación complejos
</div>
<h3>Caso 3: Consultora - Framework de Módulos Reutilizables</h3>
<div class="insight-box">
<strong>Objetivo:</strong> Crear biblioteca de 25 módulos base para acelerar implementaciones cliente<br/>
<strong>GitHub KI Contribution:</strong> Generación automática de documentación, tests y ejemplos de uso<br/>
<strong>Impacto:</strong> <span class="highlight-stat">85% reducción</span> en tiempo de implementación por cliente, mejora de calidad del <span class="highlight-stat">92%</span>
</div>
<div class="chart-container">
<h3>ROI Acumulativo: Implementación GitHub KI en Equipos Odoo</h3>
<div class="visualization-container" id="roi-timeline"></div>
</div>
<h2>Configuración Avanzada: GitHub KI Enterprise para Odoo</h2>
<h3>Configuración Inicial (Semana 1-2)</h3>
<h4>1. Setup GitHub Copilot Enterprise</h4>
<div class="code-sample">
<pre><code># .github/copilot/copilot.yml
version: 1
enterprise:
context_files:
- "odoo_patterns.md"
- "company_standards.md"
- "module_templates/"
custom_models:
- odoo_module_generator
- security_validator
- performance_optimizer</code></pre>
</div>
<h4>2. Workflows KI Personalizados</h4>
<div class="code-sample">
<pre><code># .github/workflows/odoo-ai-pipeline.yml
name: Odoo IA Pipeline
on: [push, pull_request]
jobs:
ai_analysis:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Odoo Code Analysis IA
uses: github/super-linter@v4
with:
AI_MODEL: "odoo-specialized"
VALIDATE_PYTHON_ODOO: true</code></pre>
</div>
<h3>Entrenamiento Personalizado (Semana 3-4)</h3>
<ul>
<li><strong>Corpus de Código:</strong> Entrenamiento con repositorios Odoo de la empresa</li>
<li><strong>Patrones Empresariales:</strong> KI aprende estándares y convenciones específicas</li>
<li><strong>Validación Continua:</strong> Feedback loop para mejorar sugerencias</li>
<li><strong>Optimización Performance:</strong> Ajuste de modelos para velocidad y precisión</li>
</ul>
<h2>Seguridad y Governance en GitHub KI</h2>
<h3>Controles de Seguridad Avanzados</h3>
<ul>
<li><strong>Code Scanning KI:</strong> Análisis estático con modelos entrenados en vulnerabilidades Odoo</li>
<li><strong>Secret Detection:</strong> Identificación automática de credenciales y tokens</li>
<li><strong>Dependency Review:</strong> Análisis de riesgos en dependencias de terceros</li>
<li><strong>Supply Chain Security:</strong> Verificación de integridad en cadena de suministro</li>
</ul>
<h3>Compliance y Auditoría</h3>
<div class="insight-box">
<strong>Rastreabilidad Completa:</strong> GitHub KI mantiene logs detallados de todas las sugerencias, aceptaciones y modificaciones, facilitando auditorías de compliance y certificaciones como SOC 2, ISO 27001 y GDPR.
</div>
<h2>Métricas y Analytics Avanzados</h2>
<h3>Dashboard de Productividad KI</h3>
<ul>
<li><strong>Code Velocity:</strong> Líneas de código generadas vs escritas manualmente</li>
<li><strong>Quality Score:</strong> Métrica compuesta de bugs, vulnerabilidades y coverage</li>
<li><strong>Developer Satisfaction:</strong> Encuestas automáticas sobre utilidad de sugerencias KI</li>
<li><strong>ROI Calculator:</strong> Cálculo in Echtzeit del retorno de inversión</li>
</ul>
<h3>Métricas de Impacto Empresarial</h3>
<p><strong>Time to Market:</strong> Proyectos completados <span class="highlight-stat">65% más rápido</span></p>
<p><strong>Code Quality:</strong> Reducción de <span class="highlight-stat">73% en bugs</span> post-deployment</p>
<p><strong>Developer Experience:</strong> <span class="highlight-stat">91% satisfacción</span> con asistencia KI</p>
<p><strong>Cost Efficiency:</strong> <span class="highlight-stat">$290,000 ahorro anual</span> promedio por equipo de 8 desarrolladores</p>
<h2>Futuro del Desarrollo Colaborativo KI</h2>
<h3>Tendencias Emergentes 2025-2027</h3>
<ul>
<li><strong>Natural Language Programming:</strong> Generación de módulos Odoo mediante descripción en lenguaje natural</li>
<li><strong>Autonomous Bug Fixing:</strong> KI que detecta, corrige y prueba bugs automáticamente</li>
<li><strong>Predictive Maintenance:</strong> Identificación proactiva de código que requerirá mantenimiento</li>
<li><strong>Cross-Platform Intelligence:</strong> KI que optimiza código para múltiples versiones de Odoo simultáneamente</li>
</ul>
<h3>Roadmap GitHub KI 2025</h3>
<div class="insight-box">
<strong>Q2 2025:</strong> Lanzamiento de GitHub Copilot Workspace para desarrollo de ecosistemas completos<br/>
<strong>Q3 2025:</strong> Integration nativa con Odoo Studio para desarrollo visual asistido por KI<br/>
<strong>Q4 2025:</strong> Marketplace de "AI Assistants" especializados por industria y caso de uso
</div>
<h2>Implementación Estratégica: Roadmap 90 Días</h2>
<h3>Días 1-30: Foundations</h3>
<ul>
<li>Setup GitHub Enterprise con Copilot activado</li>
<li>Migración de repositorios y configuración de workflows base</li>
<li>Entrenamiento inicial del equipo en herramientas KI</li>
<li>Establecimiento de métricas baseline</li>
</ul>
<h3>Días 31-60: Optimization</h3>
<ul>
<li>Customización de modelos KI con patrones empresariales</li>
<li>Implementación de workflows CI/CD inteligentes</li>
<li>Integración con herramientas de monitoring y alerting</li>
<li>Primera evaluación de ROI y ajustes necesarios</li>
</ul>
<h3>Días 61-90: Scale &amp; Innovation</h3>
<ul>
<li>Expansión a todos los equipos de desarrollo</li>
<li>Implementación de governance y security policies</li>
<li>Desarrollo de casos de uso avanzados específicos</li>
<li>Planificación de roadmap futuro basado en resultados</li>
</ul>
<p>La revolución GitHub KI no es futuro lejano - es realidad presente que está transformando Wie desarrollamos con Odoo. Empresas que adoptan estas tecnologías hoy construyen ventajas competitivas sostenibles para la próxima década.</p>
</section>
</article>
</div>
<!-- FAQ Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "¿Cómo funciona GitHub Copilot Enterprise con Odoo?",
"acceptedAnswer": {
"@type": "Answer",
"text": "GitHub Copilot Enterprise se entrena con patrones específicos de Odoo, comprendiendo la arquitectura del framework, convenciones de nomenclatura y mejores prácticas. Genera código contextual que sigue estándares empresariales y se integra nativamente con módulos existentes."
}
},
{
"@type": "Question",
"name": "¿Cuánto puede acelerar GitHub IA el desarrollo de módulos Odoo?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Los equipos reportan acelerar el desarrollo entre 65-75% en promedio. Módulos que tradicionalmente toman 2-3 semanas se completan en 6-8 días, con calidad superior debido a la detección automática de errores y aplicación de mejores prácticas."
}
},
{
"@type": "Question",
"name": "¿Es seguro usar IA para código empresarial crítico?",
"acceptedAnswer": {
"@type": "Answer",
"text": "GitHub IA Enterprise incluye controles de seguridad avanzados: análisis de vulnerabilidades en tiempo real, detección de secretos, revisión de dependencias y compliance automático. El código nunca sale de tu infraestructura y cumple estándares como SOC 2 e ISO 27001."
}
}
]
}
</script>
<script src="/components/eeat.min.js"></script>
<script>
document.write(createEEAT({
author: {
name: "Equipo Odoo Expertos",
title: "Consultora Senior en Sistemas ERP",
experience: "15+ años en desarrollo y metodologías ágiles"
},
publishDate: "19 de julio de 2025"
}));
</script>
<script src="/components/footer.min.js"></script>
<script>document.write(/*W6-static*/null);</script>
<script src="/js/cookie-banner.min.js"></script>
<!-- D3.js Library -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js"></script>
<script>
// Productivity Metrics Chart
function createProductivityMetrics() {
const container = d3.select("#productivity-metrics");
container.selectAll("*").remove();
const width = 700;
const height = 400;
const svg = container.append("svg")
.attr("width", "100%")
.attr("height", height)
.attr("viewBox", `0 0 ${width} ${height}`);
const data = [
{metric: "Velocidad Desarrollo", before: 100, after: 275},
{metric: "Calidad Código", before: 100, after: 189},
{metric: "Detección Bugs", before: 100, after: 340},
{metric: "Time to Market", before: 100, after: 165},
{metric: "Satisfacción Equipo", before: 100, after: 191}
];
const xScale = d3.scaleBand()
.domain(data.map(d => d.metric))
.range([80, width - 40])
.padding(0.3);
const yScale = d3.scaleLinear()
.domain([0, 350])
.range([height - 60, 40]);
// Before bars (baseline 100%)
svg.selectAll(".bar-before")
.data(data)
.enter().append("rect")
.attr("class", "bar-before")
.attr("x", d => xScale(d.metric))
.attr("y", d => yScale(d.before))
.attr("width", xScale.bandwidth()/2 - 2)
.attr("height", d => height - 60 - yScale(d.before))
.attr("fill", "#666")
.attr("opacity", 0.7);
// After bars (with GitHub IA)
svg.selectAll(".bar-after")
.data(data)
.enter().append("rect")
.attr("class", "bar-after")
.attr("x", d => xScale(d.metric) + xScale.bandwidth()/2)
.attr("y", d => yScale(d.after))
.attr("width", xScale.bandwidth()/2 - 2)
.attr("height", d => height - 60 - yScale(d.after))
.attr("fill", "#FF6B35")
.attr("opacity", 0.8);
// Add percentage improvement labels
svg.selectAll(".improvement-label")
.data(data)
.enter().append("text")
.attr("class", "improvement-label")
.attr("x", d => xScale(d.metric) + xScale.bandwidth()/2)
.attr("y", d => yScale(d.after) - 10)
.attr("text-anchor", "middle")
.attr("fill", "#FF6B35")
.attr("font-size", "12px")
.attr("font-weight", "bold")
.text(d => `+${d.after - d.before}%`);
// Add x-axis
svg.append("g")
.attr("transform", `translate(0, ${height - 60})`)
.call(d3.axisBottom(xScale))
.selectAll("text")
.attr("fill", "#e0e0e0")
.style("text-anchor", "end")
.attr("dx", "-.8em")
.attr("dy", ".15em")
.attr("transform", "rotate(-25)");
// Add legend
const legend = svg.append("g")
.attr("transform", "translate(500, 60)");
legend.append("rect")
.attr("width", 15)
.attr("height", 15)
.attr("fill", "#666");
legend.append("text")
.attr("x", 20)
.attr("y", 12)
.attr("fill", "#e0e0e0")
.attr("font-size", "12px")
.text("Baseline");
legend.append("rect")
.attr("y", 25)
.attr("width", 15)
.attr("height", 15)
.attr("fill", "#FF6B35");
legend.append("text")
.attr("x", 20)
.attr("y", 37)
.attr("fill", "#e0e0e0")
.attr("font-size", "12px")
.text("Con GitHub IA");
}
// CI/CD Workflow Diagram
function createCICDWorkflow() {
const container = d3.select("#cicd-workflow");
container.selectAll("*").remove();
const width = 800;
const height = 400;
const svg = container.append("svg")
.attr("width", "100%")
.attr("height", height)
.attr("viewBox", `0 0 ${width} ${height}`);
const stages = [
{name: "Code\nGeneration", x: 100, y: 200, color: "#FF6B35", time: "6h"},
{name: "IA\nReview", x: 220, y: 200, color: "#FF8A50", time: "15m"},
{name: "Auto\nTesting", x: 340, y: 200, color: "#FFB74D", time: "2h"},
{name: "Security\nScan", x: 460, y: 200, color: "#FFC947", time: "30m"},
{name: "Smart\nDeploy", x: 580, y: 200, color: "#FFDC60", time: "15m"},
{name: "Monitoring\nIA", x: 700, y: 200, color: "#FF6B35", time: "24/7"}
];
// Draw connections
for (let i = 0; i < stages.length - 1; i++) {
svg.append("line")
.attr("x1", stages[i].x + 40)
.attr("y1", stages[i].y)
.attr("x2", stages[i + 1].x - 40)
.attr("y2", stages[i + 1].y)
.attr("stroke", "#FF6B35")
.attr("stroke-width", 3)
.attr("marker-end", "url(#arrowhead)");
}
// Add arrow marker
svg.append("defs").append("marker")
.attr("id", "arrowhead")
.attr("viewBox", "0 -5 10 10")
.attr("refX", 8)
.attr("refY", 0)
.attr("markerWidth", 6)
.attr("markerHeight", 6)
.attr("orient", "auto")
.append("path")
.attr("d", "M0,-5L10,0L0,5")
.attr("fill", "#FF6B35");
// Draw stage circles
svg.selectAll(".stage")
.data(stages)
.enter().append("circle")
.attr("class", "stage")
.attr("cx", d => d.x)
.attr("cy", d => d.y)
.attr("r", 35)
.attr("fill", d => d.color)
.attr("opacity", 0.8)
.attr("stroke", "#fff")
.attr("stroke-width", 2);
// Add stage labels
svg.selectAll(".stage-label")
.data(stages)
.enter().append("text")
.attr("class", "stage-label")
.attr("x", d => d.x)
.attr("y", d => d.y)
.attr("text-anchor", "middle")
.attr("fill", "#1a1a1a")
.attr("font-size", "11px")
.attr("font-weight", "bold")
.selectAll("tspan")
.data(d => d.name.split('\n'))
.enter().append("tspan")
.attr("x", function() { return d3.select(this.parentNode).attr("x"); })
.attr("dy", (d, i) => i === 0 ? "-0.3em" : "1.2em")
.text(d => d);
// Add time labels
svg.selectAll(".time-label")
.data(stages)
.enter().append("text")
.attr("class", "time-label")
.attr("x", d => d.x)
.attr("y", d => d.y + 55)
.attr("text-anchor", "middle")
.attr("fill", "#e0e0e0")
.attr("font-size", "10px")
.attr("font-weight", "bold")
.text(d => d.time);
}
// ROI Timeline Chart
function createROITimeline() {
const container = d3.select("#roi-timeline");
container.selectAll("*").remove();
const width = 700;
const height = 350;
const svg = container.append("svg")
.attr("width", "100%")
.attr("height", height)
.attr("viewBox", `0 0 ${width} ${height}`);
const data = [
{month: 0, roi: -100, cumulative_savings: 0, investment: 45000},
{month: 2, roi: -40, cumulative_savings: 27000, investment: 45000},
{month: 4, roi: 80, cumulative_savings: 81000, investment: 45000},
{month: 6, roi: 220, cumulative_savings: 144000, investment: 45000},
{month: 8, roi: 380, cumulative_savings: 216000, investment: 45000},
{month: 10, roi: 520, cumulative_savings: 279000, investment: 45000},
{month: 12, roi: 680, cumulative_savings: 351000, investment: 45000}
];
const xScale = d3.scaleLinear()
.domain([0, 12])
.range([60, width - 40]);
const yScale = d3.scaleLinear()
.domain([-150, 750])
.range([height - 60, 40]);
// ROI line
const roiLine = d3.line()
.x(d => xScale(d.month))
.y(d => yScale(d.roi))
.curve(d3.curveMonotoneX);
svg.append("path")
.datum(data)
.attr("fill", "none")
.attr("stroke", "#FF6B35")
.attr("stroke-width", 4)
.attr("d", roiLine);
// Add ROI points
svg.selectAll(".roi-point")
.data(data)
.enter().append("circle")
.attr("class", "roi-point")
.attr("cx", d => xScale(d.month))
.attr("cy", d => yScale(d.roi))
.attr("r", 5)
.attr("fill", "#FF6B35");
// Add break-even line
svg.append("line")
.attr("x1", 60)
.attr("x2", width - 40)
.attr("y1", yScale(0))
.attr("y2", yScale(0))
.attr("stroke", "#888")
.attr("stroke-dasharray", "5,5")
.attr("stroke-width", 2);
// Add axes
svg.append("g")
.attr("transform", `translate(0, ${height - 60})`)
.call(d3.axisBottom(xScale))
.selectAll("text")
.attr("fill", "#e0e0e0");
svg.append("g")
.attr("transform", "translate(60, 0)")
.call(d3.axisLeft(yScale))
.selectAll("text")
.attr("fill", "#e0e0e0");
// Add labels
svg.append("text")
.attr("x", width/2)
.attr("y", height - 20)
.attr("text-anchor", "middle")
.attr("fill", "#e0e0e0")
.attr("font-size", "12px")
.text("Meses desde implementación");
svg.append("text")
.attr("transform", "rotate(-90)")
.attr("y", 20)
.attr("x", -height/2)
.attr("text-anchor", "middle")
.attr("fill", "#e0e0e0")
.attr("font-size", "12px")
.text("ROI (%)");
}
// Initialize all visualizations
document.addEventListener("DOMContentLoaded", function() {
setTimeout(() => {
createProductivityMetrics();
createCICDWorkflow();
createROITimeline();
}, 500);
});
</script>
</body>
</html>