El proceso de diseño de software, de una forma creativa.
Concepción original de un objeto u obra destinados a la producción en serie
Capaz de crear algo.
- El software se ha visto como un componente clave en la monetización
- Usualmente, las entidades con una gran capacidad de monetización, son grandes corporaciones.
- Los parámetros de producción para monetizar el software que se produce, se vuelven rígidos para desarrolladores.
- Los controles estrictos se imponen para garantizar la producción, por medio de estructuras y jerarquías organizacionales.
- Estos parámetros usualmente se contemplan en base a data histórica.
- Los desarrolladores, o agentes (AI, LLM), son un componente para producir, existen muchos parámetros restrictivos para que esto siempre se cumpla.
- La base de los parámetros del desarrollador o el agente se vuelven cíclicos y repetitivos
- El desarrollador o el agente no se parametriza para lidiar con ambigüedad.
- Inevitablemente, el desarrollador o el agente se limitan a producir software que cumpla con los parámetros restrictivos establecidos.
[Nosotros, como Builders]
- Cuando vamos a diseñar, implica que es un concepto original.
- Al ser este un concepto o un componente original, nos apoyamos en patrones que brindan resultados específicos como parte de la comunicación de sistemas
- Al ser un concepto original, implica que podemos tener similitud en otros conceptos originales, pero estos no son los mismos.
- El arte, la pasión, interacciones genuinas, hobbies y muy importante, el respeto a los límites y la capacidad de adaptación.
- Al involucrar el arte, pasiones e interacciones genuinas, nosotros como personas empezamos a tomar el hábito de intentar cosas nuevas, experimentar y aprender de nuestros errores.
- La creatividad es un proceso que requiere tiempo, práctica y dedicación. Este se alimenta de la experiencia, la curiosidad y la perseverancia.
- La creatividad también implica la capacidad de generar ideas innovadoras y soluciones únicas, incluso en situaciones complejas o desafiantes.
- La estrategia "Divide & Conquer" es una técnica de resolución de problemas que implica dividir un problema complejo en subproblemas más pequeños y manejables.
- Los problemas complejos no necesariamente son con el software que estamos por diseñar por sí solo. Perfectamente, puede ser un tema de comunicación, conocido como "analysis paralysis".
flowchart TD
subgraph INICIO["🎯 PROBLEMA COMPLEJO"]
A[/"Problema Inicial<br/>o Requerimiento"/]
end
subgraph ANALISIS["🔍 FASE DE ANÁLISIS"]
B{{"¿Es manejable<br/>directamente?"}}
C["🤔 Identificar<br/>complejidad"]
end
subgraph DIVISION["✂️ DIVIDIR - Preguntas Clave"]
D["❓ ¿Qué componentes<br/>tiene este problema?"]
E["❓ ¿Qué dependencias<br/>existen entre ellos?"]
F["❓ ¿Puedo resolver cada<br/>parte independientemente?"]
G["❓ ¿Hay 'analysis paralysis'<br/>o bloqueos de comunicación?"]
end
subgraph SUBTASKS["📦 SUBTAREAS IDENTIFICADAS"]
H1["Subtarea 1"]
H2["Subtarea 2"]
H3["Subtarea 3"]
H4["Subtarea N..."]
end
subgraph CONQUISTA["⚔️ CONQUISTAR - Resolver"]
I{{"¿Subtarea<br/>manejable?"}}
J["✅ Resolver<br/>directamente"]
K["🔄 Aplicar Divide<br/>& Conquer recursivo"]
end
subgraph INTEGRACION["🔗 INTEGRAR"]
L["Combinar<br/>soluciones parciales"]
M["Validar<br/>coherencia"]
N{{"¿Resuelve el<br/>problema original?"}}
end
subgraph RESULTADO["🏆 SOLUCIÓN"]
O[/"Solución<br/>Completa"/]
P["📝 Documentar<br/>decisiones"]
end
%% Flujo principal
A --> B
B -->|"Sí"| J
B -->|"No"| C
C --> D
D --> E
E --> F
F --> G
G --> H1 & H2 & H3 & H4
H1 & H2 & H3 & H4 --> I
I -->|"Sí"| J
I -->|"No"| K
K --> D
J --> L
L --> M
M --> N
N -->|"No"| C
N -->|"Sí"| O
O --> P
%% Estilos
style A fill:#4F46E5,stroke:#3730A3,color:#fff
style O fill:#059669,stroke:#047857,color:#fff
style P fill:#059669,stroke:#047857,color:#fff
style B fill:#F59E0B,stroke:#D97706,color:#000
style I fill:#F59E0B,stroke:#D97706,color:#000
style N fill:#F59E0B,stroke:#D97706,color:#000
style J fill:#10B981,stroke:#059669,color:#fff
style K fill:#8B5CF6,stroke:#7C3AED,color:#fff
style H1 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
style H2 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
style H3 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
style H4 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
flowchart TD
subgraph INICIO["🎨 DISEÑO INICIAL"]
A[/"Propuesta de<br/>Arquitectura/Diseño"/]
B["👤 Líder/Facilitador<br/>prepara el contexto"]
end
subgraph SEPARAR["✂️ FASE 1: SEPARAR - Feedback Individual o Pares"]
direction TB
C["Dividir ingenieros en<br/>grupos pequeños (1-2 max)"]
subgraph G1["👤 Sesión Individual 1"]
D1["Ingeniero A"]
D1Q["❓ ¿Qué opinas?<br/>❓ ¿Qué cambiarías?<br/>❓ ¿Qué riesgos ves?"]
D1R["📝 Feedback A"]
end
subgraph G2["👥 Sesión Par 2"]
D2["Ingeniero B + C"]
D2Q["❓ ¿Coinciden en algo?<br/>❓ ¿Dónde difieren?"]
D2R["📝 Feedback B+C"]
end
subgraph G3["👤 Sesión Individual 3"]
D3["Ingeniero D"]
D3Q["❓ ¿Qué opinas?<br/>❓ ¿Alternativas?"]
D3R["📝 Feedback D"]
end
end
subgraph CONFLICTO["⚠️ DETECCIÓN DE CONFLICTOS"]
E{{"¿Hay ideas<br/>en conflicto?"}}
F["Identificar puntos<br/>de fricción específicos"]
end
subgraph CONVENCER["🤝 FASE 2: CONVENCER / ADAPTAR"]
direction TB
G["Reunión 1:1 con<br/>ingenieros en conflicto"]
H["❓ ¿Por qué crees que<br/>tu enfoque es mejor?"]
I["❓ ¿Qué evidencia<br/>tienes?"]
J["❓ ¿Podrías vivir con<br/>la alternativa si...?"]
K{{"¿Se llegó a<br/>acuerdo?"}}
L["✅ Adaptar diseño<br/>con el consenso"]
M["⚖️ Líder toma decisión<br/>final documentada"]
end
subgraph IMPLEMENTAR["🔨 FASE 3: IMPLEMENTAR PRIMERO"]
N["Implementar los<br/>cambios acordados"]
O["Documentar decisiones<br/>y trade-offs"]
P["Preparar demo/evidencia<br/>de resultados"]
end
subgraph JUNTAR["👥 FASE 4: JUNTAR - Sesión Grupal Final"]
Q["Reunir a TODOS<br/>los ingenieros"]
subgraph EXPOSICION["📊 Exposición"]
R1["✨ Mostrar puntos buenos<br/>de CADA propuesta"]
R2["🔍 Presentar findings<br/>de cada feedback"]
R3["🏗️ Demo de lo<br/>YA implementado"]
end
S{{"¿Consenso<br/>general?"}}
T["🎉 Diseño final<br/>aprobado por todos"]
end
subgraph PARALYSIS["🚫 EVITAR ANALYSIS PARALYSIS"]
U["Si no hay consenso<br/>después de 2 rondas..."]
V["Líder decide +<br/>Documenta razones"]
W["Seguir adelante<br/>con iteración futura"]
end
%% Flujo principal
A --> B
B --> C
C --> D1 & D2 & D3
D1 --> D1Q --> D1R
D2 --> D2Q --> D2R
D3 --> D3Q --> D3R
D1R & D2R & D3R --> E
E -->|"No"| N
E -->|"Sí"| F
F --> G
G --> H --> I --> J --> K
K -->|"Sí"| L
K -->|"No"| M
L & M --> N
N --> O --> P --> Q
Q --> R1 --> R2 --> R3 --> S
S -->|"Sí"| T
S -->|"No"| U
U --> V --> W
W -.->|"Próxima iteración"| A
%% Estilos
style A fill:#4F46E5,stroke:#3730A3,color:#fff
style T fill:#059669,stroke:#047857,color:#fff
style W fill:#059669,stroke:#047857,color:#fff
style E fill:#F59E0B,stroke:#D97706,color:#000
style K fill:#F59E0B,stroke:#D97706,color:#000
style S fill:#F59E0B,stroke:#D97706,color:#000
style D1 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
style D2 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
style D3 fill:#E0E7FF,stroke:#6366F1,color:#1E1B4B
style D1R fill:#DCFCE7,stroke:#22C55E,color:#14532D
style D2R fill:#DCFCE7,stroke:#22C55E,color:#14532D
style D3R fill:#DCFCE7,stroke:#22C55E,color:#14532D
style M fill:#FEE2E2,stroke:#EF4444,color:#7F1D1D
style V fill:#FEE2E2,stroke:#EF4444,color:#7F1D1D
style N fill:#8B5CF6,stroke:#7C3AED,color:#fff
style R3 fill:#8B5CF6,stroke:#7C3AED,color:#fff
- draw.io
- Kanban Boards (Jira, Asana)
- Pruebas de concepto (Implementación Pequeña escala)
- Lápiz y papel
- Pizarras
https://udesa.edu.ar/noticias/escribir-mano-la-clave-para-un-cerebro-mas-inteligente
- Requisitos y success criteria en prosa + LLM para estructurar
- Requisitos Estructurados + LLM para obtener diagramas con mermaid.
- Diagramas Mermaid + draw.io