Herramientas que hacen al desarrollador la vida más fácil

Es evidente la rapidez con la que el sector tecnológico debe adaptarse a las nuevas herramientas y paradigmas que llegan para cambiar el modo de hacer las cosas en las compañías de manera profunda. Los cambios de mentalidad en los equipos de desarrollo tecnológico son imprescindibles para sobrevivir en un entorno muy competitivo que, además de tener que cumplir con retos importantes como el desarrollo de herramientas para mejorar la vida de la gente, debe tener la capacidad de caminar por senderos que en muchos casos son incómodos pero que a la larga son seguros de supervivencia. A continuación hablaré sobre metodologías y herramientas que hacen al desarrollador la vida más fácil.

En el mundo actual, las empresas que trabajan con tecnología no sobreviven con el modelo de negocio tradicional. Hay componentes importantes como la inversión en talento, investigación y sobre todo, y por lo que escribo este artículo, una inversión y una apuesta clara en la práctica de metodologías de desarrollo de producto y herramientas que vienen a ofrecer calidad en los productos y mejoras de competitividad.

Infraestructura ejemplo

En primer lugar, hablaré de dos metodologías muy utilizadas últimamente en el sector y que en unión son un claro combo ganador. Metodologías ágiles en el módulo de desarrollo e Integración continua en el módulo de depuración, testeo y puesta en producción. A través del diagrama de la figura 1 de a continuación pondré en contexto sobre la misión de cada módulo y como se integran estas metodologías en el desarrollo de un producto que he tenido la oportunidad de trabajar y así podré defender que nos vienen a proporcionar.

Metodologías ágiles

El módulo de la izquierda corresponde al desarrollo propio del producto con herramientas como Docker y Python. Gracias a git se cuenta con un control de versiones y, de esta manera, podemos encontrar un módulo que lleva a cabo la aplicación de metodologías ágiles de desarrollo, con una organización según los distintos agentes activos que intervienen en las organización y planificación de los tiempos de desarrollo. Aquí es donde hacemos énfasis en Docker y lo que simplifica la aplicación de estas metodologías haciendo transparente el sistema o servidor al desarrollador y poniendo el foco en un código o producto que será adaptable al sistema. Básicamente se prepara un código cuyas piezas del módulo encajarán perfectamente a las necesidades posteriores.

Integración continua

El módulo de la derecha gana funcionalidad gracias a tecnologías como Jenkins y Kubernetes que ayudan a la depuración, testeo y puesta en producción de las distintas versiones de código. Aquí el papel importante de Docker en unión con la funcionalidad de Jenkins garantiza un despliegue automático a prueba de errores. Jenkins es una herramienta gratuita y open-source. Su funcionamiento se basa en permanecer en ‘modo escucha’ ante el desarrollo del producto y ejecutando pruebas ante un posible escenario. Se pueden programar tareas y, además, cobra especial importancia cuando sirve como enlace entre los dos entornos del proceso de desarrollo.

Aplicar Integración Continua proporciona solidez al producto, fiabilidad, un nivel de desarrollo a prueba de errores exitoso y monitorización en tiempo real del estado y los fallos reportados por cada módulo. La idea se trata de compilar automáticamente con cada nueva integración de nuevas características o mejoras en el código. De esta manera, el proyecto permanece íntimamente ligado a la cultura DevOps en la que se va a poder automatizar procesos para comprobar como funcionaría en un entorno global de manera flexible y periódica, y sería algo así como si fuera una réplica de prueba del original.

Diseño modular

Lo que esta unión de módulos ofrece es algo que, hasta ahora, es una revolución en el sector. Trabajando en la configuración de estas tecnologías, en unión con el módulo de desarrollo, podemos encontrar un puzzle moldeable automático que resta problemas de incompatibilidades y mejora la productividad de los desarrolladores como bien representa la figura a continuación.

TFE_Gines_MolinaInfinite

De manera sencilla se puede ir trabajando en las mejoras del producto y de manera instantánea se podrán depurar los errores, todo ello, bien organizado y controlado. En cualquier momento se puede cambiar de versión e incluso podemos configurar Jenkins para que nos sirva de notificador de fallos. Y en definitiva, hacemos que el papel del desarrollador esté focalizado en desarrollar las mejoras del producto en base a Docker y git, y que el departamento de infraestructuras y sistemas tenga controlados todos los despliegues de manera automatizada.

Si quieres saber más...

Si estáis interesados en leer más al respecto adjunto enlace al repositorio donde está la publicación de mi Trabajo Fin de Grado que trabaja con estas metodologías y que fue calificado con un Sobresaliente 10 con propuesta de matrícula de honor.

En resumen...

Estas nuevas metodologías ofrecen flexibilidad, transparencia y automatización de procesosEs un combo que, sin duda, funciona y que a través de estas herramientas hacen al desarrollador la vida mas fácil, los desarrollos más ágiles y los despliegues a prueba de errores. Seguramente existan limitaciones según qué empresas y según qué equipos para la utilización de módulos similares, pero lo que no hay ninguna duda es que, el camino del desarrollo va por aquí.

Estas herramientas hacen al desarrollador la vida más fácil. O te sumas a la innovación e inviertes en nuevas metodologías, o vas a ser menos competitivo. Esto en tecnología se paga muy caro.
Ginés Molina
Vocal y Fundador

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir arriba