Formación · Semana 05

Construye tu primera aplicación con IA

Aprende a utilizar la Inteligencia Artificial como compañero de desarrollo: analizar, diseñar, implementar, probar, depurar, revisar y mejorar una aplicación.

1. Objetivos de la semana

El objetivo principal

Al finalizar esta semana habrás construido una aplicación funcional utilizando IA como parte del proceso de desarrollo.

No buscamos que la IA escriba código por ti. Buscamos que aprendas a dirigir el desarrollo utilizando IA.

01 · Analizar

Convertir un requisito en una tarea técnica que pueda ser implementada.

02 · Implementar

Utilizar IA para generar y modificar componentes de una aplicación.

03 · Probar

Diseñar casos de prueba y validar que el resultado cumple los requisitos.

04 · Depurar

Utilizar IA para investigar y solucionar errores.

05 · Revisar

Analizar críticamente el código generado por IA.

06 · Iterar

Mejorar una aplicación mediante pequeños cambios controlados.

2. El nuevo ciclo de desarrollo

Hasta ahora has utilizado IA principalmente para aprender, analizar y diseñar.

A partir de esta semana entraremos en un ciclo de desarrollo real:

REQUISITO
    ↓
ANÁLISIS
    ↓
PLAN
    ↓
IA
    ↓
IMPLEMENTACIÓN
    ↓
EJECUCIÓN
    ↓
PRUEBAS
    ↓
ERROR
    ↓
DEBUGGING
    ↓
CORRECCIÓN
    ↓
REVISIÓN
    ↓
REFACTOR
    ↓
NUEVO REQUISITO

⚠️ La IA no sustituye al desarrollador

La IA puede generar código, pero no debes interpretar automáticamente que ese código es correcto.

La responsabilidad continúa siendo tuya:

IA propone
    ↓
TÚ EVALÚAS
    ↓
IA IMPLEMENTA
    ↓
TÚ VALIDAS

3. Proyecto práctico: TaskFlow

PROYECTO DE LA SEMANA

TaskFlow

TaskFlow será una aplicación web para gestionar tareas y proyectos.

Utilizaremos el proyecto como laboratorio para practicar todas las técnicas de desarrollo asistido por IA.

3.1 Funcionalidades iniciales

TaskFlow
│
├── Dashboard
│
├── Tareas
│   ├── Ver
│   ├── Crear
│   ├── Editar
│   ├── Completar
│   └── Eliminar
│
├── Proyectos
│
└── Filtros

3.2 El MVP

No construiremos todo desde el principio.

Nuestro primer MVP será:

Crear tarea
     ↓
Ver tareas
     ↓
Completar tarea

¿Por qué empezamos pequeño?

  • Es más fácil detectar errores.
  • Es más fácil entender el código.
  • Podemos validar cada funcionalidad.
  • Reducimos el riesgo de errores acumulados.
  • La IA trabaja mejor con un contexto controlado.

4. Preparar el entorno de trabajo

Antes de escribir código necesitamos organizar el proyecto.

taskflow/
│
├── README.md
├── REQUIREMENTS.md
├── ARCHITECTURE.md
├── AI_RULES.md
├── CHANGELOG.md
│
├── src/
│
├── tests/
│
└── docs/

4.1 README.md

El README explica qué es el proyecto y cómo utilizarlo.

Prompt

PROMPT
Actúa como Technical Writer. Crea un README.md para una aplicación llamada TaskFlow. La aplicación permite gestionar tareas y proyectos. Incluye: - descripción - funcionalidades - arquitectura - instalación - ejecución - tests - estructura del proyecto No inventes información técnica que no te haya proporcionado.

4.2 ARCHITECTURE.md

Este documento describe cómo está construida la aplicación.

Usuario
   ↓
Frontend
   ↓
API
   ↓
Backend
   ↓
Base de datos

4.3 AI_RULES.md

Este archivo contiene reglas que la IA deberá respetar.

# AI DEVELOPMENT RULES

1. No modificar archivos innecesariamente.

2. No introducir nuevas dependencias
   sin justificarlo.

3. No cambiar la arquitectura
   sin solicitar aprobación.

4. No eliminar funcionalidades existentes.

5. Escribir tests para funcionalidades nuevas.

6. Explicar los cambios realizados.

7. No inventar APIs.

8. No introducir credenciales.

9. Priorizar soluciones simples.

10. Mantener separación de responsabilidades.

5. Contexto vs. Prompt

Una de las habilidades más importantes que aprenderás es diferenciar el contexto del proyecto de la tarea concreta.

CONTEXTO DEL PROYECTO
        +
TAREA ACTUAL

Ejemplo

CONTEXTO:

TaskFlow es una aplicación de gestión
de tareas.

Arquitectura:

Frontend → API → Backend → DB

Reglas:

- no modificar arquitectura;
- no añadir dependencias sin justificar;
- escribir tests.

TAREA:

Implementar la creación de tareas.

Primer prompt del proyecto

Analiza el proyecto existente.

Lee:

- README.md
- REQUIREMENTS.md
- ARCHITECTURE.md
- AI_RULES.md

Resume:

1. Qué estamos construyendo.
2. Qué funcionalidades existen.
3. Qué arquitectura utilizamos.
4. Qué restricciones debemos respetar.

No modifiques ningún archivo.
Objetivo:

Antes de permitir que la IA modifique el proyecto, queremos comprobar que realmente entiende el contexto.

6. Primer desarrollo

6.1 Requisito

Vamos a implementar la creación de una tarea.

Título
Descripción
Prioridad
Fecha límite

[Crear]

6.2 Requisitos

6.3 Primer prompt

Vamos a implementar la funcionalidad
"Crear tarea".

Contexto:

TaskFlow es una aplicación de gestión
de tareas.

La entidad Task tiene:

- id
- title
- description
- priority
- status
- dueDate
- createdAt

Requisitos:

- title obligatorio.
- description opcional.
- priority: LOW, MEDIUM, HIGH.
- status inicial: PENDING.

Antes de escribir código:

1. Analiza los requisitos.
2. Identifica los componentes necesarios.
3. Identifica validaciones.
4. Identifica posibles casos límite.
5. Propón un plan de implementación.

No escribas código todavía.

⚠️ Regla importante

No empieces siempre pidiendo código.

Primero puedes pedir:

  • análisis;
  • arquitectura;
  • plan;
  • riesgos;
  • casos límite;
  • tests.

6.4 Segundo prompt

Implementa el plan anterior.

Condiciones:

- realiza únicamente los cambios necesarios;
- no modifiques la arquitectura;
- no añadas dependencias;
- mantén el código sencillo;
- añade tests.

Antes de finalizar:

1. Revisa los cambios.
2. Comprueba errores.
3. Explica qué archivos has modificado.
4. Explica cómo probar la funcionalidad.

7. Debugging con IA

En algún momento aparecerá un error.

Esto no significa que la IA haya "fallado". Forma parte normal del desarrollo.

Ejemplo

Cannot read properties of undefined

No deberías responder simplemente:

Arréglalo.

Debes proporcionar contexto.

Prompt de debugging

Tenemos un error al crear una tarea.

Error:

Cannot read properties of undefined

Comportamiento esperado:

Al pulsar "Crear", la tarea
debería guardarse y aparecer en la lista.

Comportamiento actual:

La aplicación muestra un error.

Código relevante:

[PEGAR CÓDIGO]

Analiza:

1. Qué significa el error.
2. Qué componente parece causarlo.
3. Posibles causas.
4. Cómo verificar cada hipótesis.
5. Solución recomendada.

No modifiques código todavía.

El ciclo correcto

Error
 ↓
Hipótesis
 ↓
Investigación
 ↓
IA
 ↓
Comprobación
 ↓
Solución
 ↓
Test
Objetivo:

No queremos que aprendas a copiar soluciones. Queremos que aprendas a investigar problemas con ayuda de IA.

Ejercicio 1 — Provocar un error

Modifica deliberadamente una funcionalidad de TaskFlow.

Después utiliza IA para encontrar el problema.

Documenta:

Problema:
...

Hipótesis:
...

Investigación:
...

Solución:
...

Test:
...

Qué aprendí:
...

8. Casos límite

Una aplicación no debe probarse únicamente con datos normales.

Tipo Ejemplo
Normal Comprar leche
Vacío ""
Muy largo 10.000 caracteres
Especial <script>
Inválido Priority = INVALID
Fecha inválida 31/02/2026

Prompt

Analiza la funcionalidad de creación de tareas.

Identifica todos los casos límite
que deberíamos probar.

Incluye:

- entradas vacías;
- entradas demasiado largas;
- caracteres especiales;
- valores inválidos;
- fechas;
- estados;
- errores de persistencia;
- problemas de autorización;
- datos inesperados.

Clasifica los casos por prioridad.

Ejercicio 2

Genera al menos 15 casos límite para TaskFlow.

Clasifícalos como:

Ver ejemplos de respuesta
  • Título vacío.
  • Título compuesto únicamente por espacios.
  • Título extremadamente largo.
  • Descripción extremadamente larga.
  • Prioridad inexistente.
  • Fecha inválida.
  • Fecha anterior a la creación.
  • Doble envío del formulario.
  • Pérdida de conexión.
  • Error de base de datos.
  • Tarea inexistente.
  • Caracteres especiales.
  • Contenido HTML.
  • Petición duplicada.
  • Usuario no autorizado.

9. Testing con IA

La IA puede ayudarnos a diseñar y generar pruebas.

Genera tests para la funcionalidad
"Crear tarea".

Incluye:

1. Caso correcto.
2. Título vacío.
3. Prioridad inválida.
4. Fecha inválida.
5. Datos demasiado largos.
6. Error de persistencia.
7. Petición duplicada.

Explica qué valida cada test.

⚠️ Un test que pasa no significa que sea bueno

test("crear tarea", () => {
    expect(true).toBe(true);
});

Este test probablemente pasará siempre. Pero no comprueba realmente que podamos crear una tarea.

Prompt para revisar tests

Revisa estos tests.

Para cada uno indica:

- qué comportamiento comprueba;
- si realmente valida el requisito;
- si podría pasar aunque el código estuviera roto;
- qué casos faltan.

No modifiques los tests todavía.

Ejercicio 3 — Matriz de pruebas

Crea una matriz para la funcionalidad de creación de tareas.

ID Escenario Entrada Resultado esperado
TC-001 Crear tarea válida Título válido Tarea creada
TC-002 Título vacío "" Error de validación
TC-003 Prioridad inválida INVALID Error de validación

10. Code Review con IA

Una IA puede actuar también como Tech Lead.

Actúa como Tech Lead.

Revisa la implementación de TaskFlow.

Evalúa:

- arquitectura;
- legibilidad;
- mantenibilidad;
- duplicación;
- complejidad;
- manejo de errores;
- seguridad;
- validaciones;
- tests;
- rendimiento.

No modifiques código.

Genera un informe con:

CRÍTICO
ALTO
MEDIO
BAJO

Para cada problema explica:

- qué ocurre;
- por qué es un problema;
- cómo solucionarlo.

La IA puede encontrar problemas que tú no ves

Pero tampoco debes aceptar automáticamente sus recomendaciones.

Ejemplo

La IA recomienda añadir cinco librerías para implementar una funcionalidad sencilla.

Pregunta:

¿Por qué necesitamos estas dependencias?

¿Qué problema resuelve cada una?

¿Podemos implementar esta funcionalidad
sin añadir dependencias?

¿Qué impacto tienen en:

- seguridad;
- mantenimiento;
- rendimiento;
- tamaño;
- licencias?

11. Refactorización

Una vez detectados problemas podemos pedir a la IA que refactorice.

Refactoriza únicamente
los problemas 2 y 4.

No modifiques:

- API;
- comportamiento;
- modelo de datos;
- funcionalidades.

Después ejecuta/revisa los tests.
Evita:
Refactoriza todo.

El alcance es demasiado amplio y puede introducir cambios inesperados.

12. Git como red de seguridad

Cuando trabajamos con IA, Git se vuelve especialmente importante.

VERSIÓN FUNCIONAL
       ↓
     COMMIT
       ↓
EXPERIMENTO CON IA
       ↓
¿FUNCIONA?
   ↙       ↘
 SÍ        NO
 ↓          ↓
COMMIT    REVERT

Antes de un cambio importante, crea un punto de recuperación.

git status
git add .
git commit -m "Estado funcional antes de nueva funcionalidad"

13. Utilizar IA para revisar UX

La IA no solamente sirve para escribir código.

Actúa como UX Designer.

Revisa la interfaz de TaskFlow.

Evalúa:

- claridad;
- jerarquía visual;
- facilidad de uso;
- mensajes de error;
- estados vacíos;
- feedback;
- accesibilidad;
- responsive.

Propón mejoras.

No modifiques código todavía.

Estados que debemos contemplar

LOADING
EMPTY
ERROR
SUCCESS
DISABLED
NO RESULTS

Ejemplos

Sin tareas

No tienes tareas todavía.

Sin resultados

No encontramos tareas que coincidan con tu búsqueda.

Error

No hemos podido cargar tus tareas.

14. Primer contacto con seguridad

No vamos a convertir esta semana en un curso de ciberseguridad, pero desde el primer proyecto debemos desarrollar el hábito de revisar seguridad.

Analiza esta funcionalidad
desde el punto de vista de seguridad.

Busca:

- inyección;
- XSS;
- autorización;
- validación;
- exposición de información;
- datos sensibles;
- errores;
- dependencias.

No modifiques código todavía.

Una referencia fundamental es OWASP Top 10.

OWASP Top 10
Principales riesgos de seguridad de aplicaciones web.

15. Mini proyecto individual

Ahora debes construir una aplicación diferente de TaskFlow.

Ideas

CRM
Gestor de recetas
Gestor de entrenamientos
Gestor de gastos
Gestor de notas
Inventario

Fase 1 — Definición

Problema:
...

Usuarios:
...

Objetivo:
...

Funcionalidades:
...

MVP:
...

Fase 2 — Documentación

Crea:

README.md
REQUIREMENTS.md
ARCHITECTURE.md
AI_RULES.md

Fase 3 — Construcción

Construye solamente una funcionalidad principal.

Fase 4 — Validación

Fase 5 — Revisión final

Actúa como Tech Lead.

Revisa mi aplicación.

No quiero que escribas código.

Quiero saber:

1. Qué está bien.
2. Qué está mal.
3. Qué falta.
4. Qué riesgos existen.
5. Qué debería mejorar.
6. Qué deuda técnica existe.

Clasifica cada problema:

CRÍTICO
ALTO
MEDIO
BAJO

Sé crítico.

16. AI Log

Durante esta semana documentarás las interacciones importantes con IA.

## Cambio 01

### Objetivo
Crear formulario de tareas.

### Prompt
...

### Resultado
...

### Problemas
...

### Solución
...

### Qué aprendí
...

El objetivo no es guardar absolutamente todas las conversaciones con IA.

Debes registrar las decisiones importantes y los problemas relevantes.

17. Challenge final

Requisito

El usuario debe poder organizar sus tareas por proyectos.

Esta vez no recibirás el prompt.

Tú debes decidir cómo trabajar con la IA.

1. Analizar requisito

2. Identificar preguntas

3. Diseñar solución

4. Pedir análisis a IA

5. Revisar propuesta

6. Implementar

7. Probar

8. Debuggear

9. Revisar

10. Documentar

Preguntas que deberías hacerte

18. Test autocorregible

Responde a las siguientes preguntas y pulsa Corregir test.

Pregunta 1

¿Cuál es el mejor enfoque para comenzar una nueva funcionalidad?

Pregunta 2

¿Qué significa desarrollo incremental?

Pregunta 3

La IA genera código que funciona. ¿Significa que el código es necesariamente bueno?

Pregunta 4

¿Qué deberíamos hacer antes de pedir una modificación importante?

Pregunta 5

¿Por qué debemos revisar los tests generados por IA?

Pregunta 6

La IA quiere instalar cinco librerías para implementar un botón sencillo. ¿Qué deberías hacer?

Pregunta 7

¿Cuál es una buena estrategia para debugging?

Pregunta 8

¿Quién es responsable del resultado final?

Pregunta 9

¿Qué debería hacer una buena revisión de código?

Pregunta 10

¿Cuál es una buena regla al trabajar con IA?

Respuestas explicadas

Ver respuestas
  1. 1 — B. Analizar y planificar antes de implementar permite controlar el alcance.
  2. 2 — B. Desarrollo incremental significa construir y validar pequeñas piezas.
  3. 3 — B. Que funcione no significa que sea mantenible, seguro o correctamente diseñado.
  4. 4 — A. Git permite volver atrás y el análisis reduce riesgos.
  5. 5 — A. La IA puede generar tests que realmente no validan el comportamiento requerido.
  6. 6 — B. Hay que justificar las dependencias y valorar alternativas.
  7. 7 — B. El debugging debe ser un proceso de investigación.
  8. 8 — B. El desarrollador es responsable del resultado final.
  9. 9 — B. Una revisión profesional debe considerar mucho más que la sintaxis.
  10. 10 — A. La IA es una herramienta; el desarrollador dirige y valida.

19. Recursos externos

No necesitas consumir todos estos recursos. Utilízalos como referencias cuando necesites profundizar.

MDN — Aprende desarrollo web
Tutoriales y documentación sobre desarrollo web, HTML, CSS, JavaScript y conceptos fundamentales.
MDN — Web Docs
Referencia técnica sobre tecnologías y APIs web.
GitHub Copilot Documentation
Documentación oficial sobre desarrollo asistido por IA.
OWASP Top 10
Principales riesgos de seguridad de aplicaciones web.
Git Documentation
Documentación oficial de Git.

20. Checklist de finalización

21. Conclusión

La regla de esta semana

LA IA GENERA.
TÚ DIRIGES.

Cuanto mejor seas definiendo:

  • el problema;
  • el contexto;
  • la arquitectura;
  • las restricciones;
  • las pruebas;
  • los criterios de aceptación;

mejores resultados podrás obtener de cualquier herramienta de IA.

Preparado para Week 06

En la siguiente semana aumentaremos la complejidad y empezaremos a trabajar con aplicaciones más cercanas a un entorno real:

  • arquitecturas más completas;
  • APIs;
  • persistencia;
  • autenticación;
  • estado;
  • agentes de coding;
  • repositorios completos;
  • flujos de trabajo más autónomos.