tva
← Artículos

Operaciones en solitario a escala: gestionar docenas de proyectos con un equipo pequeño

En el crecimiento de cualquier operación pequeña llega un momento en que el número de proyectos activos supera lo que se puede retener en la memoria de trabajo. Hay que monitorear pedidos en varios marketplaces. La infraestructura necesita mantenimiento periódico. Se están desarrollando nuevas funciones. Los clientes preguntan por envíos, cumplimiento normativo y proyecciones. Todo es trabajo real, y las horas disponibles no aumentan con el número de proyectos.

La mayoría de los consejos para gestionar esta situación dan por sentado que se contratará a más personas. A menudo es la respuesta correcta, pero no siempre, sobre todo cuando los proyectos son diversos —distintos stacks tecnológicos, ámbitos y ritmos operativos— y los ingresos adicionales de cada proyecto no justifican una persona dedicada. Los equipos pequeños que gestionan docenas de proyectos necesitan sistemas, no solo más personal.

Este artículo describe el enfoque que utilizamos: las decisiones sobre herramientas que han dado buenos resultados a lo largo del tiempo, los principios operativos que reducen la carga de coordinación y la tensión entre construir cosas nuevas y mantener lo que ya funciona.

La tensión central

La tensión fundamental al ampliar las operaciones de un equipo pequeño surge entre dos actividades que compiten por el mismo recurso: la atención. Construir cosas nuevas requiere una atención exploratoria y sin interrupciones. Mantener sistemas existentes requiere una atención reactiva y de respuesta. Son modos incompatibles, y alternar entre ellos tiene un costo que no aparece en ninguna herramienta de gestión de proyectos.

En la práctica, la mayoría de los problemas operativos no surgen por elegir un modo en lugar del otro. Surgen por no elegir: por dejar que el límite entre mantenimiento y desarrollo se difumine hasta que ninguno se haga bien. Las tareas de mantenimiento pendientes se acumulan porque el desarrollo las desplaza. El desarrollo se estanca porque las interrupciones de mantenimiento se multiplican. Ambos se resienten.

La disciplina que aplicamos consiste en asignar el tiempo de forma deliberada. Reservamos una proporción definida de cada semana al mantenimiento —revisiones de infraestructura, actualizaciones de dependencias, comprobaciones de monitoreo e informes para clientes—, y ese tiempo no está disponible para desarrollo, por interesante que sea el trabajo del momento. Protegemos el tiempo de desarrollo frente a interrupciones de mantenimiento, salvo incidentes reales. La asignación no es rígida al minuto, pero es suficientemente concreta para que otras prioridades no la consuman sin que lo advirtamos.

Elección de herramientas

Nuestro principio para las herramientas es estandarizar rigurosamente dentro de cada stack y reducir al mínimo el número de stacks. Cada herramienta adicional es un lugar donde algo puede fallar, algo que aprender y una posible dependencia cuyos problemas pueden bloquear trabajos ajenos a ella. El costo de una herramienta no es su licencia: es la atención continua que exige todo lo que la involucra.

Para la infraestructura, ejecutamos Docker con un único proveedor. No utilizamos Kubernetes, una arquitectura multinube ni una malla de servicios. Docker Compose en un VPS con recursos adecuados gestiona la carga de todo lo que operamos actualmente, con documentación clara que facilita la recuperación ante fallos. La complejidad operativa de una infraestructura más sofisticada exigiría más atención de mantenimiento de la que ahorraría en otros aspectos.

Para el desarrollo de aplicaciones, estandarizamos un conjunto reducido de tecnologías: TypeScript para los frontends web, Python para servicios de backend y pipelines de datos, PostgreSQL —a menudo TimescaleDB— para almacenamiento persistente y Redis para colas y caché. Los proyectos nuevos utilizan este stack por defecto, salvo que exista una razón de peso para apartarse de él. Esa razón debe exponerse explícitamente y evaluarse frente al costo de mantener un stack no estándar a largo plazo.

Para la gestión de proyectos y tareas, utilizamos un sistema lo bastante sencillo para que la propia herramienta no se convierta en un proyecto. La carga de mantener un sistema complejo de gestión de proyectos suele superar la de los proyectos que pretende coordinar. La estructura que importa es esta: cada proyecto tiene un estado actual definido, una próxima acción definida y un responsable definido. Todo lo demás es detalle opcional.

La disciplina consiste en resistir la presión de adoptar herramientas nuevas que resuelven problemas que aún no tenemos. Una nueva plataforma de observabilidad, un nuevo pipeline de despliegue, una nueva herramienta de comunicación: todas se presentan como soluciones. Pero el costo de adopción es real e inmediato, mientras que el beneficio es hipotético y futuro. Evaluamos las herramientas nuevas con esta pregunta: ¿qué problema concreto que tenemos actualmente resuelve, y vale la pena asumir sus costos de adopción y mantenimiento?

Operaciones con prioridad a la comunicación asíncrona

La comunicación síncrona —llamadas, reuniones y chat en tiempo real— tiene un costo fijo por interacción, con independencia de la complejidad del tema. También tiene un costo de coordinación de horarios que a menudo supera al de la interacción misma. Para equipos pequeños con carteras de proyectos diversas, la coordinación síncrona puede consumir una proporción excesiva del tiempo de trabajo disponible.

Trabajamos con prioridad a la comunicación asíncrona: preferimos la comunicación escrita y la documentación, y reservamos la interacción síncrona para situaciones en las que la escritura realmente no basta. Una pregunta que puede responderse leyendo documentación debe resolverse leyéndola. Si esa documentación no existe, la respuesta es escribirla, no celebrar una llamada que resuelva la pregunta esta vez, pero deje sin respuesta la siguiente.

En la práctica, este principio significa que las decisiones se toman por escrito. Cuando se adopta una decisión técnica u operativa importante —elegir una base de datos, cambiar un proceso de despliegue o modificar un flujo de trabajo de un cliente—, se documentan el razonamiento, las alternativas consideradas y el resultado esperado. La documentación no se hace para la posteridad, sino para la próxima vez que surja la misma pregunta, algo que ocurre más de lo esperado en una operación con muchos proyectos y un equipo pequeño.

Las actualizaciones de estado se escriben y programan en lugar de comunicarse verbalmente como reacción a una solicitud. Cada proyecto tiene un breve informe semanal —estado actual, cambios recientes, trabajo próximo y obstáculos— que se redacta en lugar de presentarse en una reunión. Escribir el informe suele revelar problemas que no aparecerían en una conversación, porque la escritura exige el grado de precisión que los hace visibles.

Desarrollar o comprar

Cada herramienta que se desarrolla es un proyecto cuyo mantenimiento se asume indefinidamente. Es fácil olvidarlo al decidir construirla, porque en ese momento el costo visible es el de desarrollo y el beneficio es la capacidad que ofrece. El costo de mantenimiento continuo no se ve hasta después, pero es real y se acumula.

Aplicamos tres criterios para decidir entre desarrollar y comprar. Primero: ¿existe una herramienta que resuelva adecuadamente el problema? Adecuadamente no significa a la perfección. Una herramienta comercial que resuelve bien el noventa por ciento del problema casi siempre es preferible a una herramienta a medida que resuelve el cien por ciento a costa de mantenimiento continuo, porque la diferencia del diez por ciento suele ser menor que el costo continuo de mantener la herramienta propia.

Segundo: ¿el problema requiere conocer datos o sistemas específicos nuestros a los que ninguna herramienta externa puede acceder? Los pipelines de datos, la lógica de negocio y las integraciones entre sistemas que controlamos son candidatos al desarrollo propio. Las funciones genéricas —envío de correo electrónico, procesamiento de pagos, autenticación y paneles de monitoreo— son candidatas a la compra, salvo que las opciones comerciales resulten realmente inadecuadas.

Tercero: ¿estamos dispuestos a compartir los datos implicados con un servicio de terceros? Algunos datos operativos —detalles de pedidos, información de clientes y registros financieros— no deberían pasar por servicios comerciales que los registren, analicen o utilicen para sus propios fines. Las soluciones autoalojadas para estas funciones se justifican por privacidad incluso cuando las alternativas comerciales son técnicamente superiores. Por esta razón autoalojamos nuestra analítica, nuestro backend de Supabase y nuestro stack de monitoreo.

En la práctica, las decisiones de desarrollo más caras que hemos tomado no parecían equivocadas en su momento. Parecían herramientas a medida razonables para necesidades concretas. El costo se hizo evidente dieciocho meses después, cuando hubo que actualizar una herramienta para adaptarla a un cambio de dependencia, cuando un nuevo integrante del equipo tuvo que entender código sin documentación externa o cuando un fallo bloqueó una entrega a un cliente y no había un canal de soporte al que recurrir. La lección no es dejar de desarrollar, sino valorar con honestidad el costo durante toda la vida útil, no solo el de construcción.

La visión de cartera

Gestionar docenas de proyectos simultáneamente es más fácil cuando cada uno se entiende como parte de una cartera y no como una obligación independiente. En una cartera hay proyectos que generan retornos crecientes a lo largo del tiempo con una inversión continua relativamente baja, y otros que se estancan o decaen. La asignación de recursos requiere una respuesta distinta en cada caso.

Los proyectos con retornos crecientes merecen inversión en mantenimiento para proteger lo que funciona, pero rara vez necesitan mucho desarrollo nuevo. Una operación de comercio electrónico con un posicionamiento orgánico estable, buenas reseñas y una logística fiable ya está dando rendimiento. El trabajo consiste en evitar que deje de funcionar. Es una actitud radicalmente distinta de la que requiere un proyecto aún en construcción y exige menos atención, lo que libera capacidad para los proyectos que todavía no generan retornos crecientes.

Los proyectos sin retornos crecientes necesitan una evaluación clara: ¿es probable que la trayectoria mejore con más inversión o ha llegado el momento de aceptar el resultado y reasignar recursos? Los equipos pequeños con muchos proyectos son especialmente propensos a la falacia del costo hundido: seguir invirtiendo en proyectos que no funcionan por el esfuerzo ya dedicado. La visión de cartera hace más visible este riesgo porque obliga a comparar: la atención dedicada a mantener un proyecto estancado no está disponible para otros que podrían generar retornos crecientes.

El verdadero cuello de botella

La visión habitual de las limitaciones al ampliar un equipo pequeño se centra en el dinero y el tiempo. Más proyectos necesitan más dinero para financiarlos y más tiempo para ejecutarlos. Es cierto, pero incompleto.

La limitación decisiva para un equipo pequeño que gestiona proyectos diversos en varios ámbitos es la atención; concretamente, la calidad de la atención disponible para decisiones que requieren contexto. Las tareas operativas rutinarias pueden sistematizarse, delegarse o automatizarse. Decidir qué construir después, cómo responder a un cambio del mercado, si entrar en un nuevo marketplace o si un enfoque técnico es adecuado exige el criterio de alguien que conozca todo el contexto. Esa atención no aumenta linealmente con el tamaño del equipo ni puede sustituirse por un sistema.

Por tanto, el factor que más influye en las operaciones de un equipo pequeño no es la eficiencia —hacer lo mismo más rápido—, sino la selección: decidir qué hacer desde el principio. Un proyecto que requiere atención constante para seguir siendo viable no es barato, aunque sus costos directos sean bajos. Un proyecto que funciona de forma fiable con una intervención mínima vale más dentro de la cartera de lo que sugieren sus ingresos, porque no consume la atención que requiere el trabajo de mayor criterio.

Lo hacemos explícito al seleccionar proyectos. Antes de comprometernos con una nueva iniciativa, estimamos tanto el esfuerzo de desarrollo como la atención necesaria para su operación habitual: ¿cuántas horas por semana exigirá una vez construido? Los proyectos que requieren mucha atención operativa en relación con su retorno son menos atractivos de lo que parecen si solo se consideran el costo de desarrollo y el beneficio potencial. La atención disponible es limitada y, a diferencia del dinero o del tiempo, no se puede comprar más.


Artículos relacionados

Artículos relacionados