Spec-It Engineering Workspace¶
Curso Autoguiado para el Ingeniero de Software Moderno¶
1. Bienvenida y Contexto¶
Este workspace existe porque la ingenieria de software cambio. Ya no basta con saber programar: necesitas saber especificar, disenar, comunicar y colaborar con IA antes de escribir la primera linea de codigo.
Problema que resuelve: La mayoria de los ingenieros saltan directo al codigo sin un proceso estructurado de especificacion. Esto genera retrabajos, bugs por ambigueedad, y desaprovechamiento de herramientas de IA que necesitan contexto claro para ser utiles.
Que es este proyecto: - Un workspace de trabajo real con plantillas y ejemplos concretos. - Un curso practico autoguiado con ejercicios por modulo. - Una referencia viva usando un caso de uso transversal: Sistema de Reservas de Turnos Medicos.
Caso de uso transversal: A lo largo de todo el proyecto usaremos el dominio de un sistema donde pacientes reservan turnos con medicos en clinicas, organizados por especialidad. Este dominio es suficientemente rico para ilustrar specs, arquitectura, DDD, APIs, testing, seguridad y mas.
2. El Nuevo Rol del Ingeniero de Software¶
Antes (2015-2022)¶
El ingeniero recibia un ticket, abria el IDE, escribia codigo, corria tests, y hacia PR.
Ahora (2023-2030)¶
El ingeniero: 1. Especifica antes de codificar (specs como artefacto primario). 2. Disena la arquitectura y el dominio con precision. 3. Colabora con IA como copiloto, no como reemplazo. 4. Valida con contratos, BDD scenarios, y threat models. 5. Automatiza el pipeline completo de delivery.
La habilidad mas valiosa no es escribir codigo rapido, es escribir specs claras que la IA pueda ejecutar.
3. Mapa de Skills¶
| Skill | Nivel 2024 | Nivel 2027 | Importancia | Modulo |
|---|---|---|---|---|
| Spec Writing | Emergente | Core | Critica | 01-specs |
| Architecture Decision Records | Establecida | Core | Alta | 02-architecture |
| Domain-Driven Design | Establecida | Core | Alta | 03-domain-model |
| API Contract Design | Establecida | Establecida | Alta | 04-api-contracts |
| Testing Strategy (BDD/TDD) | Establecida | Core | Critica | 05-testing-strategy |
| AI-Assisted Development | Emergente | Core | Critica | 06-ai-assisted-dev |
| DevOps & Platform Engineering | Establecida | Evolucionando | Alta | 07-devops-and-platform |
| Security by Design | Emergente | Core | Critica | 08-security |
| Technical Writing | Subestimada | Core | Alta | 09-soft-skills |
| LLM Integration Patterns | Emergente | Core | Alta | 10-future-skills |
4. Como Usar Este Proyecto¶
Opcion A: Recorrido Lineal (recomendado para principiantes)¶
Sigue el orden del ROADMAP.md de principio a fin.
Opcion B: Por Necesidad (para ingenieros con experiencia)¶
Salta directo al modulo que necesites. Cada archivo es autocontenido.
Opcion C: Como Workspace de Proyecto Real¶
Copia las plantillas _template.* y usalas en tu propio proyecto.
Flujo sugerido para cada modulo:¶
- Lee el
_templatepara entender la estructura. - Estudia el ejemplo completo.
- Haz los ejercicios practicos.
- Aplica la plantilla a tu propio dominio.
5. Modulos del Curso¶
Modulo 01: Specs - El Artefacto Primario¶
Que aprendes: A escribir especificaciones de features que sirvan como fuente de verdad para desarrollo, QA, y colaboracion con IA.
Archivos: _template.spec.md, feature-user-auth.spec.md, feature-booking-system.spec.md
Modulo 02: Architecture - Decisiones que Perduran¶
Que aprendes: A documentar decisiones arquitectonicas con ADRs y disenar sistemas a nivel macro.
Archivos: _template.adr.md, adr-001-database-choice.md, adr-002-api-style.md, system-design.md
Modulo 03: Domain Model - El Lenguaje del Negocio¶
Que aprendes: Domain-Driven Design aplicado: bounded contexts, ubiquitous language, y modelado de dominio.
Archivos: _template.domain.md, ubiquitous-language.md, bounded-contexts.md, domain-booking.md
Modulo 04: API Contracts - Acuerdos entre Equipos¶
Que aprendes: A disenar contratos de API claros, versionados, y testeables.
Archivos: _template.api.md, api-users.md, api-bookings.md
Modulo 05: Testing Strategy - Confianza en el Codigo¶
Que aprendes: Estrategia de testing moderna con BDD, piramide de tests, y planes de prueba por feature.
Archivos: _template.test-plan.md, test-plan-auth.md, bdd-scenarios-booking.md, testing-pyramid.md
Modulo 06: AI-Assisted Dev - Tu Copiloto de Codigo¶
Que aprendes: A trabajar con IA de forma efectiva: prompt engineering, gestion de contexto, y flujos spec-to-code.
Archivos: prompt-engineering-guide.md, ai-workflow-daily.md, context-window-strategy.md, spec-to-code-workflow.md
Modulo 07: DevOps & Platform - Del Commit al Produccion¶
Que aprendes: Pipelines CI/CD, observabilidad, IaC, y runbooks operacionales.
Archivos: _template.runbook.md, ci-cd-pipeline.md, observability-strategy.md, infrastructure-as-code.md
Modulo 08: Security - Seguridad desde el Diseno¶
Que aprendes: Threat modeling, checklists de seguridad, y mapeo OWASP integrado al flujo de desarrollo.
Archivos: threat-model-template.md, security-checklist.md, owasp-mapping.md
Modulo 09: Soft Skills - El Ingeniero Completo¶
Que aprendes: Technical writing, comunicacion asincrona, y toma de decisiones ingenieriles.
Archivos: technical-writing-guide.md, async-communication.md, engineering-decisions.md
Modulo 10: Future Skills - Lo que Viene¶
Que aprendes: Desarrollo AI-native, patrones de integracion con LLMs, agentes autonomos, y radar tecnologico.
Archivos: ai-native-development.md, llm-integration-patterns.md, autonomous-agents.md, emerging-tech-radar.md
6. Flujo de Trabajo Diario Sugerido¶
Manana (Planificacion):
1. Revisa/actualiza la spec de la feature en curso.
2. Verifica que el dominio y la API estan alineados con la spec.
3. Escribe los BDD scenarios que vas a implementar hoy.
Desarrollo (Core del dia):
4. Abre la spec + BDD scenarios como contexto para tu IA copiloto.
5. Implementa feature por feature, validando contra los scenarios.
6. Actualiza el threat model si hay cambios de seguridad.
Cierre (Reflexion):
7. Actualiza el ADR si tomaste una decision arquitectonica.
8. Documenta cualquier aprendizaje en el dominio.
9. Revisa el checklist de seguridad de la feature.
7. Ejercicios Practicos¶
Modulo 01: Specs¶
- Escribe una spec para "Cancelacion de turno con politica de 24h".
- Toma un ticket de JIRA real de tu trabajo y convirtelo en spec.md.
- Revisa la spec de un companero y deja feedback estructurado.
Modulo 02: Architecture¶
- Escribe un ADR para elegir entre monolito y microservicios para el sistema de turnos.
- Toma una decision tecnica reciente de tu equipo y documentala como ADR.
- Dibuja el diagrama de system design para tu proyecto actual.
Modulo 03: Domain Model¶
- Identifica 3 bounded contexts adicionales en el sistema de turnos medicos.
- Crea el ubiquitous language para tu dominio de trabajo.
- Modela las entidades y value objects del contexto de "Facturacion".
Modulo 04: API Contracts¶
- Disena la API de cancelacion de turnos con reglas de negocio.
- Agrega versionado a la API de bookings (v1 vs v2).
- Escribe los error responses para todos los edge cases de tu API.
Modulo 05: Testing¶
- Escribe 5 BDD scenarios para cancelacion de turnos.
- Crea un test plan para la integracion con pasarela de pagos.
- Mapea la piramide de tests de tu proyecto actual.
Modulo 06: AI-Assisted Dev¶
- Toma una spec completa y usa IA para generar el codigo base.
- Experimenta con 3 prompts distintos para la misma tarea y compara.
- Documenta tu estrategia de contexto para un proyecto de 50+ archivos.
Modulo 07: DevOps¶
- Disena el pipeline CI/CD para el sistema de turnos.
- Crea un runbook para "la base de datos esta lenta".
- Define las metricas SLI/SLO para el endpoint de reservas.
Modulo 08: Security¶
- Crea el threat model para el flujo de autenticacion.
- Aplica el security checklist a una feature que ya implementaste.
- Mapea las vulnerabilidades OWASP relevantes para tu API.
Modulo 09: Soft Skills¶
- Reescribe un mensaje de Slack tecnico usando las guias de comunicacion asincrona.
- Documenta una decision tecnica reciente con pros/cons/consecuencias.
- Escribe un RFC de una pagina para una mejora en tu proyecto.
Modulo 10: Future Skills¶
- Prototipa una integracion con LLM para sugerencias de horarios.
- Disena un agente autonomo para triaje de soporte tecnico.
- Evalua 3 tecnologias del radar y escribe un mini-ADR para cada una.
8. Criterios de Graduacion¶
Has dominado un modulo cuando puedes:
| Modulo | Criterio |
|---|---|
| 01 Specs | Escribir una spec completa en <30 min que otro ingeniero pueda implementar sin preguntas. |
| 02 Architecture | Tomar una decision arquitectonica y documentarla con trade-offs claros. |
| 03 Domain Model | Explicar tu dominio a un nuevo miembro del equipo usando el ubiquitous language. |
| 04 API Contracts | Disenar una API que pase review sin cambios mayores. |
| 05 Testing | Definir la estrategia de testing de una feature nueva antes de codificar. |
| 06 AI-Assisted | Reducir tu tiempo de implementacion 2x usando specs + IA efectivamente. |
| 07 DevOps | Disenar un pipeline CI/CD completo y un runbook operacional. |
| 08 Security | Identificar los 3 principales riesgos de seguridad de cualquier feature. |
| 09 Soft Skills | Escribir un documento tecnico que no requiera explicacion verbal adicional. |
| 10 Future Skills | Evaluar una tecnologia emergente y decidir si adoptarla, probarla, o esperar. |
Recursos Adicionales¶
- ROADMAP.md - Orden sugerido para recorrer el proyecto.
- GLOSSARY.md - Glosario de terminos clave.
Este workspace fue disenado para evolucionar contigo. Modifica, extiende, y hazlo tuyo.