En la prisa por ofrecer nuevas soluciones digitales, las empresas a menudo ignoran las necesidades y requisitos de las infraestructuras de desarrollo y recortan los procesos de DevOps, lo que resulta en problemas perdidos y soluciones costosas en el futuro.
A medida que las empresas hacen de la transformación digital una prioridad inmediata y un proceso continuo para el futuro, veo una tendencia preocupante en muchas organizaciones.
Si bien las organizaciones comprometen recursos y prioridades para brindar la mejor experiencia digital a los clientes internos y externos a través de sus infraestructuras de producción, es posible que no brinden la misma atención y apoyo a los equipos de desarrollo y los procesos de desarrollo rápido. El resultado es una pérdida de horas de desarrollador y una pérdida de dinero, ya que se pierde el tiempo y se bloquean los horarios.
Además, la detección de vulnerabilidades en software nuevo mientras aún se encuentra en la etapa de desarrollo puede significar la diferencia entre una solución rápida nominal y los gastos que pueden aumentar si no se reconocen hasta que el software está en producción.
Esto es lamentable, innecesario y demasiado común.
Sólo el 10% de los encuestados en un estudio de Harvard Business Review de 2019 dijo que sus respectivas empresas tuvieron éxito en el desarrollo y la implementación rápida de software, lo que probablemente indica un problema en la asignación y el soporte de recursos de desarrollo. Y una encuesta de 2020 realizada por Cite Research y Atlassian Corp., un fabricante australiano de herramientas de desarrollo, también encontró que la infraestructura obsoleta es una barrera tanto como la falta de habilidades o la cultura corporativa reticente para implementar estrategias modernas de DevOps.
¿Por qué priorizar el desarrollo?
Hay cuatro razones clave por las que sus operaciones y actividades de desarrollo requieren atención prioritaria:
La gran cantidad de opciones en las herramientas hoy en día puede ser abrumadora para evaluar y adaptar en una tubería coherente. ¿Cypress o Selemium? ¿Splunk o Sumo Logic? ¿Acciones de GitHub, Jenkins o quizás Circle CI, Codefresh o GitLab? El mundo de los desarrolladores es complejo y desarticulado. Los desarrolladores necesitan tiempo y apoyo para elegir sabiamente en lugar de encerrarse en las mismas trampas de las que la cultura de código abierto busca liberarlos.
La rotación en el panorama tecnológico para los desarrolladores es incluso más rápida que para los teléfonos y las aplicaciones de los consumidores digitales. Esto está haciendo que el mundo de las posibilidades de los desarrolladores sea extremadamente dinámico, creando nuevas demandas en el liderazgo de TI, requiriendo un mayor enfoque y recursos dedicados para mantenerse al tanto de las últimas innovaciones e impulsar una entrega predecible sin pasar por alto el proceso de lanzamiento del ciclo de vida del desarrollo de software (SDLC).
El panorama de las aplicaciones y la infraestructura también se ha vuelto cada vez más complejo, lo que lleva a soluciones rápidas, sucias y directas en la producción a través de solicitudes de cambios de emergencia (RFC). Estas soluciones rápidas y menos efectivas se pasan luego a la producción, donde se desperdicia tiempo, talento y dinero en eliminar estos problemas heredados. No es infrecuente que los equipos de TI acumulen atrasos masivos de actualizaciones del entorno, actualizaciones de datos y sincronizaciones de código porque se consideran rutinarios y menos importantes.
Los entornos de desarrollo requieren los mismos estándares de tiempo de actividad y paridad que los entornos de producción.
Un acuerdo de nivel de servicio (SLA) del 95% puede dejar a los desarrolladores varados durante 36 horas al azar cada mes en un estado de espera.
Si el liderazgo pudiera extender a los desarrolladores el mismo compromiso y atención que se les da a los problemas de los clientes, es posible que no haya tantos problemas de los clientes en primer lugar. En mi opinión, implementar los mismos niveles de servicio en entornos de producción y no producción y no comprometer la modernización del entorno de desarrollo son características de una organización de TI bien administrada.
Qué necesitan los desarrolladores
El éxito en un futuro impulsado por el software comienza con el simple reconocimiento y el compromiso de que los entornos de desarrollo son tan importantes como los sistemas de producción. Esto significa asignar tiempo, presupuesto y enfoque a los equipos y entornos de desarrollo. También requiere un compromiso y recursos de arriba hacia abajo para diseñar, construir, mantener y evolucionar constantemente los componentes que los desarrolladores necesitan para entregar el mejor software. Éstas incluyen:
- Herramientas efectivas para un ciclo de vida de desarrollo de software CI / CD.
- Una infraestructura sólida que no los frustra con fallas y tiempo de inactividad.
- Herramientas de tiempo de ejecución para la observación, la protección de datos y la gestión de costos.
- Repositorios de servicios para ecosistemas de desarrolladores.
- El mismo nivel de seguridad y privacidad que esperan sus clientes (porque los entornos de desarrollo también pueden ser puntos de acceso para ataques).
Los mejores productos y soluciones provienen de entornos donde el desarrollo y la producción están sincronizados y se les proporciona el mismo nivel de recursos y respeto. La fórmula es simple: si contrata a las mejores personas, debe crear un entorno que les permita hacer su mejor trabajo.