Saltar a contenido

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:

  1. Lee el _template para entender la estructura.
  2. Estudia el ejemplo completo.
  3. Haz los ejercicios practicos.
  4. 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

  1. Escribe una spec para "Cancelacion de turno con politica de 24h".
  2. Toma un ticket de JIRA real de tu trabajo y convirtelo en spec.md.
  3. Revisa la spec de un companero y deja feedback estructurado.

Modulo 02: Architecture

  1. Escribe un ADR para elegir entre monolito y microservicios para el sistema de turnos.
  2. Toma una decision tecnica reciente de tu equipo y documentala como ADR.
  3. Dibuja el diagrama de system design para tu proyecto actual.

Modulo 03: Domain Model

  1. Identifica 3 bounded contexts adicionales en el sistema de turnos medicos.
  2. Crea el ubiquitous language para tu dominio de trabajo.
  3. Modela las entidades y value objects del contexto de "Facturacion".

Modulo 04: API Contracts

  1. Disena la API de cancelacion de turnos con reglas de negocio.
  2. Agrega versionado a la API de bookings (v1 vs v2).
  3. Escribe los error responses para todos los edge cases de tu API.

Modulo 05: Testing

  1. Escribe 5 BDD scenarios para cancelacion de turnos.
  2. Crea un test plan para la integracion con pasarela de pagos.
  3. Mapea la piramide de tests de tu proyecto actual.

Modulo 06: AI-Assisted Dev

  1. Toma una spec completa y usa IA para generar el codigo base.
  2. Experimenta con 3 prompts distintos para la misma tarea y compara.
  3. Documenta tu estrategia de contexto para un proyecto de 50+ archivos.

Modulo 07: DevOps

  1. Disena el pipeline CI/CD para el sistema de turnos.
  2. Crea un runbook para "la base de datos esta lenta".
  3. Define las metricas SLI/SLO para el endpoint de reservas.

Modulo 08: Security

  1. Crea el threat model para el flujo de autenticacion.
  2. Aplica el security checklist a una feature que ya implementaste.
  3. Mapea las vulnerabilidades OWASP relevantes para tu API.

Modulo 09: Soft Skills

  1. Reescribe un mensaje de Slack tecnico usando las guias de comunicacion asincrona.
  2. Documenta una decision tecnica reciente con pros/cons/consecuencias.
  3. Escribe un RFC de una pagina para una mejora en tu proyecto.

Modulo 10: Future Skills

  1. Prototipa una integracion con LLM para sugerencias de horarios.
  2. Disena un agente autonomo para triaje de soporte tecnico.
  3. 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


Este workspace fue disenado para evolucionar contigo. Modifica, extiende, y hazlo tuyo.