Menta

Blog

¿Qué es una compañía moderna de software?

Ser una compañía moderna de software realmente es una amalgama multifacética que incorpora diversos factores de cómo las organizaciones crean, envían y mantienen software.

Traducido de: What Is a Modern Software Company? por Victor Soares https://blog.newrelic.com/technology/modern-software-company/

¿Qué significa ser una “compañía moderna de software“? ¿Significa que eres un startup nativo de la nube que construye las interfaces de usuario más increíbles de la web? ¿Significa que tienes un logotipo genial y un equipo de desarrollo excepcional trabajando en los frameworks más vanguardistas?

Ser una compañía moderna de software es un poco más complicado que todo eso. Después de todo, ninguna compañía utiliza los juguetes más actuales y los grados de adopción de tecnología varían ampliamente, desde las pruebas de concepto hasta implementaciones de producción completa. Entonces tal vez –solo tal vez– ser una compañía moderna de software realmente es una amalgama multifacética que incorpora diversos factores de cómo las organizaciones crean, envían y mantienen software.

¿Tecnología + cultura = moderna?

Tampoco es únicamente respecto a la tecnología. ¿Qué pasa si la compañía moderna de software representa una combinación particular de tecnología y cultura? Claro, la tecnología es una parte muy importante de lo que vuelve a una operación de software moderna. Las compañías modernas frecuentemente habitan en la nube, corren contenedores, usan orquestación, y emplean toda clase de patrones de arquitectura interesantes, desde microservicios hasta navegación de cargas basada en colas y arquitectura sin servidores.

Pero el aspecto cultural es igual de crítico. Las verdaderas compañías modernas de software utilizan el tipo de buenas prácticas que describe Gene Kim en DevOps Handbook y el libro de Google Site Reliability Engineering, desde equipos de desarrollo que poseen el código que crean hasta la integración continua/despliegue permanente de actualizaciones de software.

Entonces ¿qué tal si definimos una compañía moderna de software como líder en el uso de nuevas tecnologías y cultura para entregar valor al cliente de una forma más ágil?

Por qué importa ser “moderno“

Volverte una compañía moderna de software no es únicamente un asunto semántico. Las compañías modernas de software demuestran una mayor habilidad para desarrollar y evolucionar rápidamente para mantenerse al día con las necesidades y expectativas de los clientes. Esto es el caso tanto en un solo momento como a lo largo del tiempo.

Manejar eficientemente el tráfico de los e-Commerce durante las horas pico, por ejemplo, demanda recursos de frontend y backend dinámicamente escalables. De forma similar, dedicar la máxima cantidad de recursos limitados a innovación en lugar de al trabajo agotador significa invertir en herramientas y automatización para eliminar trabajos repetitivos que las computadoras pueden llevar a cabo de forma más adecuada y para mantener las cosas funcionando de la forma más eficiente y predictiva posible.

Entonces, ¿por qué no todo el mundo hace esto? ¿Por qué no todas las compañías emplean las últimas herramientas y procesos en un esfuerzo por convertirse en una empresa de software moderna? Bueno, resulta que el cambio es realmente difícil.

No es sencillo volverse moderno

En los años noventas, por ejemplo, el desarrollo en cascada era la forma normal de ejecución en los proyectos: mucha gente pasó meses definiendo documentos de 100 páginas con requisitos funcionales y creando diseños.

Desafortunadamente, los ingenieros no hablaron con la gente que estaba creando los requisitos iniciales más de lo que lo hicieron con los clientes reales. No es de extrañarse que al final de la cascada, los equipos a menudo enfrentaran fallas –los proyectos estaban por encima de lo presupuestado o, aún peor, los ingenieros encontraron que había productos y servicios que los clientes ni siquiera querían, no les gustaban o no iban a usar. Fue un desastre.

Como respuesta, en 2001 un grupo de ingenieros se reunieron para escribir el Manifiesto Ágil. (Dato curioso: Ward Cunningham de la empresa New Relic estaba en esa sala.) Estaban tratando de resolver algunos de los peores errores a los que nos enfrentábamos construyendo software en esos días. A pesar de los duros cambios requeridos, para 2010 muchas compañías de software eran compañías de software ágil (la definición de compañía moderna de software de ese momento) y muchas de las que nos se volvieran ágiles ya no existían.

Hoy en día, así como el concepto de compañía moderna de software sigue evolucionando, necesitamos nuevas maneras de medir dónde las empresas caen en el camino hacia un moderno desarrollo de software.

“Modernidad“ es un espectro

Desafortunadamente, no hay un único indicador que nos permita saber qué tan “moderna“ es una compañía de software. No es una cuestión de tamaño o edad, por ejemplo. De hecho, las compañías modernas de software actuales van desde startups nuevas hasta empresas establecidas. Emplean una amplia variedad de tecnologías de vanguardia y adoptan una gama considerable de mejores prácticas culturales. Igual de importante es que muchos de estos rasgos no son binarios sino que siguen un espectro de legado por un lado y moderno por el otro.

Por ejemplo, una pregunta podría ser dónde reside la mayor parte de la infraestructura de una empresa: ¿en la nube o en un centro de datos privado? Si la respuesta se inclina a la nube, los consideramos más modernos. Si la respuesta es completamente en un centro de datos privado, eso tiende a acercarlo más al estatus de legado.

Entonces ¿dónde están los aspectos clave que determinan si una organización en particular se encuentra en el espectro de “compañía moderna de software“? La tabla de abajo ofrece algunos ejemplos:

Legado Moderno
Centro de datos privado Centro de datos público/privado, nativo de la nube
Despliegues manualess poco frecuentes CI/CD (por lo menos diariamente)
Despliegue de la producción completa Despliegues canario/azul-verde
Aplicaciones monolíticas Arquitectura de microservicios
Servidores físicos Máquinas virtuales
Máquinas virtuales Contenedores
Contenedores Funciones sin servidor
Despliegues manuales de contenedores Orquestación de contenedores
Monitoreos sólo con Ops Equipos de observabilidad
Tener Devs y Ops por separado DevOps y SRE incrustados
Girar servidores manualmente Autoescala dinámica
Monitoreo de desempeño vía quejas de Twitter SLAs internos
Rastrear sólo métricas internas Enfoque en la experiencia digital de cliente
Monitorear partes específicas del sistema Monitorear todo
Monitoreo directo de fábrica Instrumentación personalizada
Ir de bomberazo en bomberazo Inversiones en reducción de trabajo
Recuperación de incidente reactivos Organizar simulacros
Sin soluciones de monitoreo APM, infraestructura, móvil, navegador y monitoreo sintético

Date cuenta de que algunas prácticas -como el uso de máquinas virtuales, por ejemplo- caen en ambos extremos de varios ejes, dependiendo de con qué los compares. Eso en realidad tiene sentido, ya que una organización que adopta contenedores debería ser considerada más moderna que una que dependa de las máquinas virtuales, pero menos moderna que una empresa que deja de tener servidores.

Obviamente, no hay algo como una “puntuación moderna de software“. Sin embargo, entre más impulse una empresa las tecnologías clave y las mejores prácticas culturales, más moderna se vuelve. Igual de importante es que, el concepto de una organización moderna de software es dinámico, cambia a través del tiempo a medida que las prácticas de vanguardia se generalizan y aparecen nuevas tecnologías.

Esperamos que los factores aquí enlistados puedan ayudarte a ver el lugar de tu organización en el espectro de software moderno, y sugerir caminos para ser aún más modernos. Si quieres que la confianza se mueva rápidamente y se mantenga a la vanguardia del ritmo cada vez más acelerado del cambio tecnológico, sin mencionar a tu competencia, volverse una compañía moderna de software ya no es opcional.

¿Quieres comenzar la transformación de tu compañía hacia una moderna? Comienza por implementar una estrategia completa de monitoreo.

Contáctanos

Por favor introduce tus datos y nos pondremos en contacto contigo.

Recibirás un resumen semanal.