Cómo pienso el software
Diez posiciones concretas, no frases de marketing — cosas con las que alguien podría estar en desacuerdo, que es lo que las hace reales.
Pensamiento de producto
El código es la última decisión, no la primera. Parto del problema de negocio y la restricción que más importa, y dejo que la arquitectura se derive de ahí.
Arquitectura primero
La forma de un sistema determina qué es barato cambiar después y qué queda permanente. Dedico un tiempo desproporcionado aquí.
Desarrollo guiado por negocio
Cada decisión técnica se evalúa contra lo que el negocio realmente necesita para sobrevivir y crecer, no contra lo técnicamente interesante.
Automatización primero
Si un proceso es manual y repetido, es un fallo de diseño del sistema, no un hecho inevitable.
Seguridad por diseño
La integridad de los datos y el control de acceso son propiedades arquitectónicas, no una checklist añadida antes del lanzamiento.
API-first
Los sistemas se construyen para ser integrados, no solo usados — los límites internos se diseñan como contratos públicos desde el primer día.
Mantenibilidad
El código se lee muchas más veces de las que se escribe. Optimizo para el ingeniero que lo lea dentro de un año, que normalmente soy yo.
Escalabilidad
Diseño para la carga que el negocio tendrá si tiene éxito, no para la carga del primer día — sin sobre-ingeniería para cargas que nunca llegarán.
Developer experience
Herramientas, documentación y velocidad de configuración local son decisiones de producto — determinan cuán rápido puede moverse un equipo.
Ownership
No entrego una especificación y desaparezco. Llevo las decisiones hasta producción y asumo sus consecuencias.
De la idea a producción
Descubrimiento
Entender el problema de negocio real y su restricción más difícil.
Arquitectura
Diseñar la forma del sistema antes de escribir código de implementación.
Prototipo
Validar la suposición más arriesgada — el modelo de datos, una integración, una limitación de hardware.
Desarrollo
Construir en el orden que reduce el riesgo del proyecto más rápido.
Pruebas
Corrección frente a la restricción que importa — cumplimiento, escala o seguridad.
Despliegue
Lanzar en un estado que se pueda operar, no solo demostrar.
Iteración
El uso real revela lo que la especificación no contemplaba.
Escalado
Las decisiones de arquitectura del paso 2 obtienen su retorno.