Cómo un desarrollador que lleva 2 semanas pensando en el diseño puede obtener código que funcione hoy mismo
Procesar las especificaciones de arquitectura y simular casos extremos en la cabeza es algo dulce. El código en la mente no tiene errores y es perfecto. Sin embargo, si las dudas se alargan sin abrir el editor, no es prudencia, sino simplemente miedo al fracaso. Los documentos de diseño gigantescos creados para evitar la incertidumbre se desmoronan ante el primer cambio de requisitos una vez que comienza el desarrollo real.
Para los desarrolladores que pierden el tiempo atrapados en la parálisis por análisis, hemos organizado un flujo de trabajo que destruye el perfeccionismo y lanza un prototipo hoy mismo.
El costo para el cerebro cuando las dudas se alargan
Comparar todo tipo de frameworks y arquitecturas antes de escribir una sola línea de código provoca una sobrecarga cognitiva extrema. Obsesionarse con el manejo de errores que tienen menos del 0.1% de probabilidad de ocurrir, o construir capas de abstracción cuando ni siquiera han surgido los requisitos, es una reacción típica de aversión a las pérdidas.
Según una investigación realizada por McKinsey y Leadership IQ en empresas de la lista Fortune 500, el tiempo perdido debido a la indecisión y al análisis excesivo supera los 53 000 días al año. En términos de costos laborales, esto equivale a 250 millones de dólares que se esfuman en el aire sin ningún resultado. La productividad individual de los desarrolladores también se reduce en más del 40% debido a la optimización prematura.
Si sientes que la simulación mental se alarga, debes terminarla a la fuerza con un sistema. Solo necesitas aplicar el patrón de solución spike de la programación extrema (XP) a tu día a día.
- Te declaras a ti mismo: "Este código se descartará sin remordimientos en 30 minutos".
- Inicias un servidor de desarrollo local en menos de 1 minuto usando comandos CLI de plantilla.
- Detienes la preocupación por la estructura e implementas inmediatamente un solo código de verificación técnica que sea el más incierto.
Resultados del 30% creados con timeboxing de 30 minutos
Si llevas 2 semanas atascado en la fase de planificación, no es que te falten especificaciones, sino contexto de ejecución. En este caso, debes cerrar todos los documentos de diseño y aplicar un timeboxing de 30 minutos.
Un prototipo con un 30% de integridad es un estado donde se han eliminado por completo el manejo de errores, la integración con bases de datos y la sofisticación de la interfaz de usuario. Solo se comprueba si se obtienen los resultados deseados al introducir los valores de entrada. La razón por la cual los equipos de productos de Silicon Valley se reúnen con prototipos funcionales en lugar de documentos de requisitos abstractos radica precisamente en esto. La incertidumbre desaparece solo cuando haces clic en la pantalla.
- En lugar de consultas a bases de datos o integración de API, escribe objetos JSON directamente dentro de la función.
- Elimina por completo el manejo de errores y escribe el código para que solo se ejecute un escenario de éxito.
- Utiliza una plantilla frontend para crear una pantalla en la que se pueda hacer clic en 60 segundos.
Calculemos con el costo de retraso (Cost of Delay). Si 4 ingenieros que ganan $2,025 por semana repiten reuniones de arquitectura durante 2 semanas, se genera una pérdida directa e indirecta de $16,200.
| Elemento de evaluación |
Desarrollo centrado en especificaciones |
Desarrollo centrado en prototipos |
Efecto |
| Definición de requisitos iniciales |
2 a 4 semanas (Redacción de documentos) |
30 minutos a 1 día (Escritura de spike) |
Reducción del 90% del tiempo |
| Reuniones de modificación de planificación |
Promedio de 8 a 12 veces (Debate abstracto) |
Promedio de 2 a 3 veces (Basado en demostración) |
Reducción del 70% de reuniones |
| Corrección de errores de dirección |
Reconstrucción de toda la estructura |
Descarte del borrador de 30 minutos |
Minimización de costos de rework |
| Velocidad de revisión de PR |
Se producen cuellos de botella |
Lanzamiento anticipado de Draft PR |
Aumento del 30% en la velocidad de revisión |
Separación del tiempo de reflexión y el tiempo de creación
Si el pensamiento y la implementación se mezclan, seguirás mirando hacia atrás mientras escribes código. Por esta razón, el tiempo de trabajo diario se divide tajantemente entre la fase de análisis y la fase de implementación sin condiciones. Es lo mismo que el principio de "tiempo fijo, alcance variable" del enfoque Shape Up de Basecamp. Primero estableces el tiempo y, si parece que no terminarás dentro de él, descartas las funciones.
Cuando surge una sección bloqueada, el criterio para desviar sin caer en una profunda contemplación sigue el concepto de "deuda deliberada y prudente" del cuadrante de deuda técnica de Martin Fowler. Si es un código que se puede cambiar fácilmente más tarde, es mejor elegir la ruta alternativa más simple y hacer commit ahora.
Jeff Bezos dijo que debes tomar decisiones y moverte cuando la certeza alcance alrededor del 70%. Esperar a que sea más del 90% perfecto es algo que mata la velocidad.
- De 8 horas al día, dedica solo 1.5 horas a establecer el alcance del spike y la recopilación de información.
- Divide el tiempo restante en dos bloques de 3.5 horas y concéntrate únicamente en la implementación. En este tiempo, la refactorización también está prohibida.
- Anota las ideas estructurales que surjan durante el trabajo en un bloc de notas y revísalas después de que termine la sesión.
Enviar código descuidado y recibir comentarios
Si ocultas el código porque no es perfecto, se convertirá en un rework mucho mayor más adelante. El equipo de ingeniería de Shopify publica Draft PRs no para que se inspeccione el código perfecto, sino para validar la dirección del trabajo.
Es recomendable mantener el tamaño de PR por debajo de 200-300 líneas. Si lo subes adjuntando una etiqueta WIP que dice "Solo se reciben comentarios sobre la dirección de la estructura del algoritmo", también se reduce la carga del revisor.
El código inicial no es tu obra de arte, sino simplemente una hipótesis a verificar. Si llegan comentarios, solo tienes que reflejarlos rápidamente y seguir adelante.
- Clasifica los comentarios en 3 etapas: 'Reflejar inmediatamente', 'Tareas futuras' y 'Descartar'.
- Deja el formato y las pruebas básicas enteramente al pipeline de CI y al Linter.
- Modifica solo los elementos de reflexión inmediata y finaliza todo, desde la creación de PR hasta el merge, en 24 horas.
Una arquitectura virtual perfecta no puede salir de la cabeza. Una sola línea de borrador descuidado pero funcional que escribas hoy se convierte en tu verdadera habilidad. Puedes escapar del pantano del costo de retraso cuando dejas de usar la excusa del perfeccionismo.