Skip to main content

El desarrollo de software está repleto de marcos de trabajo conocidos—ágil, cascada, Scrum—, todas opciones sólidas que ayudan a los equipos a cumplir los plazos y a enfrentarse a menos imprevistos.

Pero a veces nos sentimos tan cómodos siguiendo estos caminos ya conocidos que olvidamos que los verdaderos avances suelen producirse cuando alguien prueba algo que, sobre el papel, parece una locura. Es arriesgado, claro, pero normalmente ahí es donde se esconden las grandes victorias.

“La IA es realmente buena haciendo el 70 % del trabajo más rápido”, afirma Alex Zajac, SDE & IA en Amazon y creador del boletín Hungry Minds. “Pero ese último 30 % es lo más difícil: llevarlo a producción, asegurarse de que no alucine y configurar barreras de evaluación.”

Continue Reading for Free

Create a free account to finish this article, plus get ongoing access to timely insights and practical resources.

En otras palabras, el desarrollo de software audaz no consiste solo en utilizar herramientas nuevas, sino en hacer el trabajo difícil y poco glamuroso de conseguir que realmente funcionen.

La mayoría de las empresas se atiene al manual habitual porque se percibe como algo “seguro”. Nadie recibe la culpa por actuar de forma poco convencional si una idea no prospera dentro de un proceso estándar. Sin embargo, según una encuesta de McKinsey de 2023, las empresas que fomentan la asunción de riesgos calculados tienen 1,7 veces más probabilidades de superar a sus pares del sector en métricas de innovación.

E incluso cuando sabemos que pensar de forma audaz puede dar sus frutos, es sorprendentemente raro encontrar entornos que realmente recompensen la experimentación. Muy pocas organizaciones fomentan explícitamente la asunción de riesgos en los proyectos de software.

Los primeros en adoptar estas prácticas, o a veces los pioneros en toda regla, suelen poder definir las reglas antes de que los demás sepan siquiera que existen.

A pesar de todo el miedo y las dudas, hay equipos que dieron un gran salto y aterrizaron en algo brillante. Estas son cinco estrategias que al principio parecían poco convencionales—o quizá demasiado caóticas—para tener éxito.

Estrategia n.º 1: ingeniería del caos (Netflix)

El “Mono del caos” de Netflix rompe intencionadamente los sistemas en producción para probar su resiliencia. Suena insensato, ¿verdad? Pero este enfoque ayudó a Netflix a mantener un tiempo de actividad del 99.99 % mientras pasaba de 7 millones a más de 230 millones de suscriptores.

“Nos dimos cuenta de que esperar estabilidad no era una estrategia”, afirmó Kolton Andrus, antiguo ingeniero de Netflix. “Al introducir fallos con regularidad, nuestros equipos dejaron de temer las interrupciones y construyeron sistemas más sólidos de forma predeterminada.”

La idea clave era contraintuitiva: crear fallos controlados en realidad evitaba fallos catastróficos. Las pruebas de inyección de fallos de Netflix revelaron debilidades que habrían permanecido ocultas hasta que se produjera una interrupción importante.

Conclusión práctica: Empieza con un “Día de juego” en el que simules fallos en un entorno que no sea de producción. Elige un servicio crítico e introduce fallos sencillos, como finalizar instancias o cortar conexiones de red. Documenta lo que se rompe y corrige esas vulnerabilidades antes de que causen problemas reales.

Mejora tu bandeja de entrada con más sabiduría sobre liderazgo tecnológico para ofrecer mejores programas y sistemas.

Estrategia n.º 2: implementación continua (Flickr)

En 2009, cuando la mayoría de las empresas implementaba cambios una vez al mes, la presentación de Flickr “10 implementaciones al día” dejó a todos boquiabiertos. A los equipos les preocupaba que las versiones más pequeñas y frecuentes generaran caos, pero Flickr descubrió lo contrario: las versiones más frecuentes reducían considerablemente el riesgo.

Las matemáticas son sencillas, pero poderosas: si implementas entre 5 y 10 cambios a la vez, aislar los problemas es fácil. Si implementas 500 cambios después de un mes, buena suerte para encontrar la aguja en ese pajar.

Lotes de implementación más pequeños = menor radio de impacto.

Alexandre_Zajac_Amazon

Las empresas que adoptan la implementación continua informan de un 70 % menos de fallos en producción y una recuperación 24 veces más rápida cuando sí se producen problemas, según el informe Estado de DevOps de 2023. Desde entonces, esta práctica se ha convertido en un estándar en empresas tecnológicas de todos los tamaños.

Conclusión práctica: Implementa un enfoque de “ventana de implementación” en el que los equipos aumenten gradualmente la frecuencia de las implementaciones. Empieza pasando de implementaciones mensuales a semanales y, después, a dos veces por semana, hasta desarrollar la automatización y la confianza necesarias para implementar varias veces al día. Concéntrate en crear un conjunto sólido de pruebas que se ejecute automáticamente antes de cada implementación.

Estrategia n.º 3: modelo totalmente remoto (GitLab)

Antes de la pandemia, la estructura completamente remota de GitLab parecía radical. Sin embargo, les permitió contratar al mejor talento a escala global y les obligó a establecer excelentes prácticas de documentación desde el primer día.

El manual público de GitLab (que ahora supera las 15.000 páginas) se convirtió en su arma secreta, eliminando el problema de «no sabía eso» que afecta a muchos equipos distribuidos. Este enfoque basado en la documentación permitió que las nuevas incorporaciones se adaptaran más rápido y que la toma de decisiones fuera más transparente.

La documentación escala mejor que el conocimiento tribal. ¡Piensa en grande!

Alexandre_Zajac_Amazon

«Cuando no puedes tocarle el hombro a alguien para pedirle información, te ves obligado a documentarlo todo con claridad», explica Darren Murph, responsable del trabajo remoto en GitLab. «Esto crea una resiliencia organizativa que las empresas centradas en la oficina rara vez consiguen».

Conclusión práctica: Aunque no trabajes completamente en remoto, adopta una práctica de documentación «remota por defecto». Crea una base de conocimientos centralizada para todas las decisiones, procesos y conocimientos tribales importantes. Establece la norma de que, si algo no está documentado, no existe. Revisa esta documentación trimestralmente para mantenerla actualizada.

Estrategia n.º 4: Desarrollo basado en el tronco (Etsy)

Etsy abandonó las estrategias complejas de ramificación en favor de un modelo en el que todos hacen commits frecuentes en la base de código principal. Este enfoque cuestionó la creencia convencional de que los desarrolladores necesitan ramas de funcionalidades aisladas para trabajar eficazmente.

«Descubrimos que las ramas de larga duración creaban una falsa sensación de seguridad», afirma el antiguo ingeniero de Etsy Daniel Schauenberg. «En realidad, solo retrasaban los problemas de integración y generaban conflictos mayores cuando las ramas finalmente se fusionaban».

El desarrollo basado en el tronco ayudó a Etsy a crecer de 50 a más de 2.000 desarrolladores sin dejar de hacer más de 50 despliegues diarios. Este enfoque obligó al equipo a crear mejores pruebas automatizadas, ya que la rama principal debía mantenerse limpia, y eliminó el tan común «infierno de las fusiones» al que se enfrentan los equipos con ramas de funcionalidades.

Alex señaló un patrón similar al hablar sobre la IA y las bases de código con mucho contexto. “Las cosas que están realmente muy acopladas a tus sistemas propietarios… requerirán muchas personas”, afirmó.

En entornos que evolucionan rápidamente, los equipos que trabajan directamente en el tronco necesitan comprender profundamente el diseño del sistema y las compensaciones, porque hay menos margen para esconderse detrás de ramas de larga duración. No se trata solo de hacer commits más rápido, sino de que los ingenieros estén más cerca de la complejidad real.

Conclusión práctica: Implementa indicadores de funcionalidades para ocultar el trabajo en curso mientras haces commits diarios en la rama principal. Empieza con un equipo pequeño y de confianza para generar seguridad en el enfoque. Fija como objetivo del equipo hacer al menos un commit diario en la rama principal y mide con el tiempo la reducción de los problemas de integración.

Tu estrategia para activar funcionalidades es realmente importante para decidir qué muestras a tus clientes.

Alexandre_Zajac_Amazon

Estrategia n.º 5: Código abierto por defecto (Hashicorp)

Hashicorp creó un negocio de mil millones de dólares al publicar como código abierto sus herramientas principales de infraestructura, como Terraform, Vault y Consul. A diferencia de los modelos empresariales de software tradicionales, esta estrategia permitió una adopción rápida y contribuciones de miles de desarrolladores de todo el mundo.

«Cuando empezamos, la gente pensaba que estábamos locos por regalar nuestro mejor código», señala Mitchell Hashimoto, cofundador. «Pero descubrimos que una adopción generalizada crea más valor del que se pierde en posibles ingresos por licencias».

Para los desarrolladores individuales, elegir las herramientas mejoradas con IA adecuadas puede seguir una lógica similar. Alex compartió que recientemente decidió comprar Cursor Pro porque “simplemente me entiende o entiende el estilo con el que estoy trabajando”. Al igual que HashiCorp apostó por la confianza y la afinidad con la comunidad mediante el código abierto, los ingenieros se sienten ahora atraídos por herramientas que comprenden intuitivamente sus flujos de trabajo, incluso cuando eso implica elegir la opción menos convencional.

Su herramienta Terraform consiguió más de 100.000 estrellas en GitHub y se convirtió en un estándar del sector, algo que habría tardado décadas con un enfoque tradicional de código cerrado. La empresa monetiza mediante funcionalidades empresariales, asistencia y servicios alojados, al tiempo que mantiene la buena voluntad de una enorme comunidad de desarrolladores.

Conclusión práctica: Identifica los componentes de tu software que podrían beneficiarse de la participación de la comunidad. Empieza por publicar como código abierto una biblioteca o herramienta útil que no forme parte de tu propiedad intelectual principal. Crea un proceso de contribución que facilite que personas externas mejoren tu código e invierte en una buena documentación para facilitar su adopción.

El hilo conductor

Lo que conecta estas estrategias no es solo la audacia, sino el riesgo calculado con ciclos de retroalimentación rápidos. Cada equipo creó mecanismos para aprender rápidamente de los errores y corregir el rumbo.

Alex mencionó cómo la IA está cambiando lo que significa ser desarrollador. «No nos están reemplazando», afirma, «pero la ventana de responsabilidad se está desplazando.»

Algunos dicen que los desarrolladores se están convirtiendo más en ingenieros de producto; otros predicen una bifurcación entre generalistas y especialistas. En cualquier caso, las estrategias de desarrollo audaces de hoy no triunfan únicamente gracias a herramientas innovadoras, sino cuando los equipos están dispuestos a adaptar sus flujos de trabajo, sus funciones y su forma de pensar.

Mientras replanteas tus estrategias de desarrollo, encontrar a los socios adecuados puede marcar la diferencia. Por ejemplo, podrías considerar trabajar con una empresa de desarrollo de software a medida o una empresa de desarrollo de software en países cercanos, por ejemplo.

Suscríbete al boletín de The CTO Club para recibir más consejos, herramientas y buenas prácticas sobre desarrollo de software.