arquitectura de software10 min de lectura

Cómo mejorar el proceso de planificación en equipos tech

Por Sergio Perea #software architecture#artificial intelligence#devops#scalability

La mayoría de equipos tecnológicos no fallan por falta de talento ni por falta de trabajo. Fallan porque planifican mal. O, más concretamente, porque confunden planificación con control, previsión con certeza y documentos con decisiones reales. El resultado suele ser el mismo: meses llenos de reuniones, hojas compartidas que nadie vuelve a abrir y una sensación constante de ir tarde, incluso cuando se trabaja sin parar.

He visto este patrón repetirse en todo tipo de empresas consolidadas. El proyecto siempre arranca con energía y buenas intenciones. Poco después llegan las dependencias cruzadas, los cambios de prioridad y el trabajo invisible que nadie había contado. La planificación deja de servir como herramienta de foco y pasa a ser ruido. Este artículo no va de “hacer mejores planes”, sino de construir un proceso de planificación que sobreviva al mundo real, al código en producción y a las decisiones incómodas.

La trampa: confundir planificación con control

En software, casi todo se puede construir si pagas el precio: tiempo, gente, complejidad. Planificar es parecido. Con suficiente esfuerzo puedes montar un proceso que parezca serio: tablas, OKRs, hojas, roadmaps.

El problema es el coste oculto de todo eso:

  • Tiempo de coordinación (reuniones, revisiones, presentaciones).
  • Pérdida de autonomía (más aprobación, menos decisión).
  • Ansiedad y rotación (nadie quiere vivir en “modo plan que no se cumple”).
  • Coste cloud y coste humano por iteraciones mal enfocadas.

Cuando un plan falla, la reacción habitual es hacerlo “más detallado”. Y ahí nace el bucle: más detalle → más rigidez → menos aprendizaje → más fallos → más detalle.

Yo mismo tengo que reconocer que he caído en eso. Y también he visto equipos muy buenos romperse por eso.


Capa estratégica (la que involucra a CTOs, founders, managers técnicos)

Un proceso de planificación se vuelve inútil cuando intenta servir 10 objetivos a la vez: visión, presupuesto, headcount, métricas, dependencias, riesgos, roadmap, ejecución diaria…

Mi experiencia me dice que es mejor elegir 2–3 metas y dejar el resto fuera.

Algunos ejemplos de metas sanas serían:

  • Alinear foco: qué 3–5 apuestas importan de verdad.
  • Elegir qué NO se hará: recortar sin culpa.
  • Reducir riesgo: identificar incertidumbres y atacarlas pronto.

Si metes “creatividad total”, “reorg”, “nuevo modelo de métricas” y “cambio de stack” dentro del mismo periodo de planificación… prepárate.

“Menos cosas” es una estrategia, no una renuncia

La planificación falla porque se planifica como si el equipo fuese infinito.

En empresas tecnológicas, lo que mata es:

  • Trabajo de mantenimiento (incidencias, soporte, bugs, guardias).
  • Migraciones a medias.
  • Promesas previas a negocio o clientes.
  • Deuda técnica que frena el delivery.

Si no metes ese coste en el plan, el plan es simple, y llánamente, una ficción.

Presupuesto de capacidad “realista”

Divide el tiempo del equipo en tres cubos:

  • Run / mantener vivo (operación, bugs, soporte).
  • Improve / pagar deuda (migraciones, refactors con retorno).
  • Change / nuevas apuestas (features, producto, crecimiento).

Si “Change” se come todo el calendario, lo pagarás con latencia, incidentes y desgaste.

El “bottom-up puro” y “top-down puro” fallan

  • Enfoque bottom-up puro: cada equipo define por su cuenta qué quiere hacer y cuánto tiempo necesita. Luego se juntan todas las propuestas y se intenta encajarlas en el mismo calendario y presupuesto. El problema es que, al sumar todo, casi nunca cabe. Al final no gana lo más importante, sino lo que está mejor explicado o mejor defendido en las reuniones.
  • Enfoque top-down puro: la dirección decide qué hay que hacer, fija objetivos y plazos, y los equipos se limitan a ejecutar. Los desarrolladores no tienen contexto ni margen para opinar sobre riesgos o complejidad real. Esto suele provocar dos reacciones: resistencia silenciosa (“sí, pero no”) o estimaciones infladas para protegerse de plazos poco realistas.

Lo que funciona mejor en producción es un híbrido:

  • Dirección define marco y límites: objetivos, guardrails, presupuesto de capacidad.
  • Equipos definen cómo llegar y qué trade-offs aceptan.
  • Se revisa por impacto y riesgo, no por estética del roadmap.

Planificar es elegir trade-offs, no escribir promesas

Un plan sano habla en este idioma:

  • Impacto esperado (métrica o capacidad).
  • Riesgos (qué puede romperse).
  • Suposiciones (qué estamos dando por cierto).
  • Señales tempranas (cómo sabremos pronto si vamos mal).

Un plan tóxico habla en este idioma:

  • “Vamos a construir X, Y, Z antes del 15”.
  • “Esto depende de cinco equipos, pero seguro sale”.
  • “Contratamos 3 devs en marzo y listo”.

La diferencia se nota cuando llega el primer cambio de prioridades.


Capa técnica (para developers senior)

Diseña un proceso que no requiera héroes

Mi objetivo cuando diseño planificación para un equipo backend o plataforma es simple:

Que el plan sobreviva aunque falte una persona clave y llegue un incidente serio.

Eso se logra con estructura mínima y decisiones claras.

Plantilla de iniciativa: corta, accionable, revisable

Formato que he visto funcionar:

  • Problema (1 párrafo)
  • Resultado (métrica o capacidad: latencia, coste, throughput, conversión)
  • Scope (qué entra / qué no entra)
  • Riesgos (técnicos y de negocio)
  • Dependencias (solo las críticas)
  • Primera entrega (algo real en semanas, no meses)

Nada de 20 páginas.

“Kill criteria”: define cuándo parar

Esto cambia el juego. Si no defines cuándo parar, todo se eterniza.

Ejemplos:

  • “Si en 4 semanas no bajamos el p95 de 450ms a 300ms con caching y queries, paramos y replanteamos”.
  • “Si el coste cloud no baja al menos un 15% tras el cambio de storage, congelamos”.

Un backlog de planificación no es un backlog de Jira

Planificación decide apuestas. Jira gestiona tareas. Si conviertes el plan anual en 400 tickets, estás jodido.

Minimizando las dependencias: técnica aplicada al planning

Las dependencias son el impuesto silencioso de tu software. Así que si tu plan depende de 6 equipos, tu plan es un deseo.

Hay una serie de patrones técnicos que bajan dependencia:

  • Contratos estables: APIs versionadas, eventos con esquemas.
  • Strangler para migraciones: conviven sistema viejo y nuevo.
  • Feature flags con rollout real (no un “flag” que nadie toca).
  • Ownership claro: “quién responde cuando arde”.

Ejemplo: contrato de evento con versionado (TypeScript)

Este fragmento de código es un ejemplo de contrato de evento versionado, una práctica clave cuando varios equipos o sistemas dependen entre sí.

En lugar de que un equipo cambie datos “sobre la marcha” y rompa a otros, el evento define de forma explícita qué información se emite, con qué nombre y en qué versión.

Al versionar el evento (payment.authorized.v1), el equipo puede evolucionar el sistema creando nuevas versiones sin romper a los consumidores actuales. Esto reduce dependencias, evita coordinaciones innecesarias entre equipos y permite planificar cambios con menos riesgo.

A nivel práctico, significa menos reuniones, menos bloqueos y más capacidad de entregar sin esperar a que toda la organización se mueva al mismo ritmo.

// Dominio: pagos // Objetivo: que otros equipos consuman eventos sin romperse type PaymentAuthorizedV1 = { type: "payment.authorized.v1"; occurredAt: string; // ISO paymentId: string; orderId: string; amountCents: number; currency: "EUR" | "USD"; }; // Publica V1 y mantén compatibilidad. // Si necesitas cambios incompatibles, crea V2.

Es cierto que esto no es una “arquitectura bonita”. Pero es planning aplicado: garantiza menos coordinación, menos reuniones, menos “bloqueados por”

Delegar en el proceso de planificación sin perder dirección

Delegar no es soltar el volante. Delegar es cambiar qué controlas.

Cuando un proceso de planificación falla, muchas veces no es por exceso de delegación, sino por delegar mal: se controla lo irrelevante y se deja sin control lo que realmente importa.

Como senior o lead técnico, mi experiencia es que el control debe ponerse en los límites y los riesgos, no en la ejecución diaria. El equipo necesita espacio para decidir cómo trabajar, pero dentro de un marco claro.

Lo que sí controlo de forma explícita:

  • Guardrails técnicos: SLOs mínimos, límites de coste asumibles y estándares claros de observabilidad.
  • Definición de “hecho”: qué significa terminar algo de verdad, no “más o menos funciona”.
  • Revisión de riesgo: dónde puede haber caída del sistema, pérdida de datos, problemas de seguridad o impacto directo en clientes.

Eso marca el terreno de juego.

Dentro de ese terreno, delego sin miedo:

  • La implementación concreta y el orden interno del trabajo.
  • La elección de librerías o herramientas menores.
  • Detalles de diseño que no cambian el riesgo ni el impacto del negocio.

Este enfoque evita el microcontrol y, a la vez, reduce sorpresas desagradables en producción.

Definition of Done para iniciativas backend

Para que la delegación funcione, la definición de “terminado” tiene que ser clara. En iniciativas backend, suelo exigir como mínimo:

  • Métrica objetivo instrumentada (p95, tasa de error, coste, según el caso).
  • Dashboard básico que permita ver el estado sin preguntar.
  • Alertas con umbrales claros, no alertas ruidosas.
  • Runbook de una página para incidencias reales.
  • Plan de rollback pensado antes de necesitarlo.

Este checklist no es burocracia. Reduce incidentes, baja el estrés del equipo y tiene un impacto directo en coste y estabilidad operativa.


Lecciones aprendidas (desde la experiencia)

He vivido dos extremos, y ninguno funciona bien.

Caso 1: perseguir el plan “perfecto”
Documento largo, fechas cerradas, todo conectado con todo.
¿Qué ocurrió? En la tercera semana cambió una prioridad de negocio. El plan quedó obsoleto. Nadie lo actualizó porque ya era demasiado grande. El equipo siguió por inercia. Meses después habíamos entregado cosas que ya no importaban.

Caso 2: tirarse al vacío “sin plan”
Libertad total. Cada squad decide qué hacer. Y ya se apañarán.

¿Qué ocurrió? Cada equipo optimizó su parcela. El sistema global no mejoró. Esto generó muchísimo trabajo, y el impacto de cada squad fue limitado.

Lo que me ha funcionado en producción es un punto intermedio muy concreto:

  • Un plan corto, con 3–5 apuestas reales.
  • Guardrails claros desde el inicio.
  • Revisión mensual de hipótesis: qué hemos aprendido, qué paramos, qué merece más inversión.

Si hoy volviera a empezar, haría una cosa antes que todo lo demás: mataría antes las ideas flojas. No por cinismo, sino por respeto al tiempo y a la energía del equipo.


Errores comunes que he visto en producción

  • Planificar sin medir la capacidad real del equipo (mantenimiento, incidentes, vacaciones).
  • Convertir el plan en una lista de features sin resultado medible.
  • Ignorar el coste de mantener lo que ya existe (KTLO).
  • Tratar las dependencias como un detalle menor.
  • Cambiar stack, proceso y objetivos al mismo tiempo.
  • Empezar muchas cosas y no cerrar casi ninguna.
  • Pensar que más headcount soluciona problemas de coordinación.

Cuándo NO seguir este enfoque

Debería haber empezado este artículo advirtiendo que no pretendo venderte ninguna bala de plata con este enfoque de planificación. De hecho, no encaja bien en todos los contextos.

No es la mejor opción si:

  • Estás en una fase con un único objetivo claro y todo el equipo trabaja en lo mismo. Ahí suele funcionar mejor una planificación por hitos.
  • Existen restricciones legales o contractuales con fechas duras y penalizaciones reales. La realidad, muchas veces, se impone.
  • El liderazgo penaliza cambiar de opinión y parar iniciativas. En ese entorno, la gente esconderá problemas en lugar de exponerlos.

Impacto técnico vs impacto de negocio

Cuando mejoras el proceso de planificación, lo que ganas no es “orden”. Ganas resultados muy concretos:

  • Menor latencia organizativa: decisiones más rápidas.
  • Menor coste cloud al evitar trabajo duplicado y arquitecturas sobredimensionadas.
  • Menos deuda técnica al parar iniciativas sin retorno.
  • Mayor velocidad sostenida, sin ciclos de burnout.
  • Mejor onboarding, con menos caos y menos conocimiento tribal.

Todo eso se traduce en dinero, plazos más fiables y retención de talento.


A modo de conclusión: preguntas que he pretendido responder con este artículo:

¿Cómo mejorar el proceso de planificación en un equipo tech?

Define 2–3 metas claras, limita el número de iniciativas activas, mide la capacidad real del equipo y revisa periódicamente qué hipótesis siguen teniendo sentido.

¿Cuáles son los errores comunes en planificación de proyectos?

Ignorar el mantenimiento, aceptar demasiadas dependencias, confundir objetivos con listas de tareas y no definir criterios claros para parar iniciativas.

¿Qué estrategias de planificación funcionan mejor en empresas tecnológicas?

Planes cortos orientados a resultados, guardrails técnicos claros, límites de trabajo en curso y revisiones basadas en aprendizaje y riesgo.

¿Cómo promover la colaboración en planificación sin crear más reuniones?

Plantillas simples por iniciativa, revisión asíncrona y reuniones cortas centradas en decisiones. Menos dependencias implican mejor colaboración.

¿Cómo delegar en la planificación sin perder dirección?

La dirección marca objetivos, límites y métricas. Los equipos deciden el cómo. Se controla el riesgo y el resultado, pero no cada tarea.