¿En qué proyectos es adecuado optar por un software personalizado? ¿Por qué? ¿Cómo? ¿Cuándo? ¿Qué tecnología? Hoy compartiremos desayuno y conversaremos con nuestro equipo de expertos en desarrollo. Sus experiencias y conocimientos en el panorama tecnológico nos brindarán respuesta a estas y otras preguntas, así como una visión valiosa para tomar decisiones informadas en el ámbito de la tecnología.
¡Bienvenidos y muchas gracias por estar aquí!
P: Por lo mucho que sé que os gusta compartir sobre tecnología, intuyo que será un desayuno muy nutritivo. Sin más, entremos en la temática nos ocupa. ¿Por qué elegir el desarrollo de software medida?
R: Cuando se busca una solución específica que se alinee con procesos de negocio único o estratégico, el desarrollo a medida es la opción ideal. Este tipo de desarrollo se ajusta perfectamente a los procesos y flujos de trabajo existentes, mejorando la eficiencia y la productividad. Se integrará fácilmente en los sistemas y tecnologías ya existentes, mejorando la interoperabilidad. Además, ofrece flexibilidad y escalabilidad, lo que permite adaptarse rápidamente a los cambios del mercado y a las nuevas oportunidades. Las soluciones estándar o preconfiguradas nunca llegarán a ofrecer estos resultados.
P: Creo que ha quedado perfectamente argumentado. Cuando tenéis que enfrentaros a un nuevo desarrollo, ¿cuál es vuestro enfoque para seleccionar una tecnología?
R: Cada proyecto tiene necesidades y objetivos específicos. Es esencial que estos estén alineados con la compatibilidad de la infraestructura de los sistemas existentes. Además, es importante evaluar previamente la capacidad de integración con otras herramientas/servicios, la escalabilidad y, por supuesto, la seguridad. Analizamos estos puntos y compartimos cada uno de nosotros las bondades que ofrece cada tecnología con respecto al resultado esperado. Así, obtenemos una primera aproximación bastante certera de qué tecnología debemos aplicar.
P: ¿Cuáles diríais que son las tecnologías que más habéis utilizado y por qué?
R: Como Javero, ya imagináis cuál es mi respuesta, claramente Java. Su ecosistema incluye frameworks como Spring, que facilitan la creación de aplicaciones robustas, escalables y seguras. Es una tecnología que utilizamos bastante en proyectos que manejan datos sensibles, como son los de sectores financieros y de salud. Otra ventaja es la gran cantidad de herramientas y recursos que ofrece, así como, la facilidad de que el código se pueda ejecutar desde cualquier dispositivo JVM, fundamental para el desarrollo de aplicaciones multiplataforma.
Y cuando se trata de proyectos web de gran envergadura, con una cantidad ingente de datos y de servicios en los que se necesita desarrollos independientes, escalabilidad, flexibilidad, agilidad y mejora en la UX, trabajamos con microservicios y microfrontend, utilizando diversas tecnologías: Spring Boot/Java, JavaScript/TypeScript, Python, Go, React, Angular, Vue. Js, etc., y plataformas como Kubernetes, Openshift, AKS, GKE, Amazon EKS, etc., según las necesidades de cada módulo.
La modularidad que brindan los microfrontend, facilita el mantenimiento y evolución de la aplicación, ya que es posible escalar solo los elementos necesarios de la aplicación en lugar de toda ella. Además, promueven la coordinación entre equipos y el uso de distintas tecnologías según las necesidades de cada módulo.
Yo, como NETero, tengo que hablar de lo indispensable que se hace el uso de la tecnología .NET en proyectos financieros, que requieren alto rendimiento y procesamiento intensivo con manejo de grandes volúmenes de datos y de alta fiabilidad, en aplicaciones de juegos y simulación para procesamientos gráficos. Dada la versatilidad que ofrece .NET Core, al poderse ejecutar desde Windows, Linux y macOS, la hemos utilizado en aplicaciones para plataformas de comercio, ERP, CRM, etc.
Otras tecnologías con las que trabajamos en la nube como AWS, Azure, Google Cloud, etc., sería una lista interminable.
P: Así es, nos quedaríamos sin tiempo. Me gustaría que me contéis, acerca de las tecnologías y/o metodologías que utilizáis para gestionar los proyectos.
R: Utilizamos metodologías ágiles, Scrum para el desarrollo en sprints, con roles definidos y reuniones regulares. Esto nos permite organizar y priorizar, asegurando una entrega oportuna y de alta calidad. Con Agile, nos adaptamos a los cambios y prioridades del cliente, y mantenemos una comunicación transparente que asegura el cumplimiento de expectativas.
P: ¿Cuáles diríais que son las etapas en el ciclo de vida del desarrollo de software?
R: Variarán en función de la metodología utilizada, si es modelo cascada, Agile, Scrum y, de las necesidades específicas del proyecto. En líneas generales, los pasos comienzan con toma de requisitos y necesidades funcionales y técnicas. El siguiente paso sería el análisis de los requisitos, definición de la arquitectura y el diseño de la estructura de los datos y la interfaz de usuario. De acuerdo a los diseños, se realizará la codificación del software y, a continuación, se realizan pruebas para verificar el cumplimiento con los requisitos y el buen funcionamiento de la aplicación desarrollada, para finalizar con el despliegue en producción. Durante el ciclo de vida operativo se realizan actualizaciones, correcciones y mejoras del software.
P: Ya hemos hablado algo sobre ello, pero si os digo calidad y seguridad, ¿qué me diríais?
R: Sí, ya hemos comentado algo al respecto, ya que el uso de metodologías ágiles, lo lleva implícito. Para todos nosotros como equipo de desarrollo de software, la calidad y la seguridad, es más que una obligación, es un hábito, es nuestro día a día. Como empresa, Metaenlace está certificada en calidad con las normas: ISO 9001 y 14001, y en seguridad con las normas ISO 20000-1, 27001 y ENS. Podemos asegurar que nuestros desarrollos son seguros y de alta calidad.
P: Con los cambios vertiginosos que tiene la tecnología, ¿cómo hacéis para manteneros al día con las últimas tendencias y avances tecnológicos?
R: No creas que es fácil. Además, nunca se acaba, ya que la tecnología está en constante evolución. Por eso recibimos formación continua por parte de la empresa. Participamos con la comunidad a través de eventos, conferencias, seminarios on-line. Además, disponemos de lo que nosotros llamamos “La Sastrería”, un entorno de laboratorio para diseñar, ajustar, probar aplicaciones, iniciativas de desarrollo propios, trastear con nuevas tecnologías, frameworks y herramientas en proyectos piloto.
P: ¿Cuál diríais que es mayor desafío al que se enfrenta el desarrollo a medida?
R: Creo que todos estamos de acuerdo en que gestionar las modificaciones durante el ciclo de vida del desarrollo es crucial. Los cambios del mercado, las estrategias del cliente, la estimación en el tiempo de entrega y la incorporación de nuevas tecnologías que se adapten a estos cambios, todo ello manteniendo el mismo presupuesto, representa un reto significativo. Por otro lado, es crucial mantenerse actualizados con las últimas tendencias y evaluar constantemente nuevas tecnologías. Igual de importante es evitar la tendencia de seleccionar tecnologías de moda sin una evaluación adecuada de su idoneidad para el proyecto. Aquí el desafío radica en encontrar el equilibrio entre la innovación y la estabilidad.
Ya veo que no son pocos los desafíos de vuestro día a día, pero me atrevería a decir que pocos logran escaparse de vosotros. A nosotros sí que se nos ha escapado el tiempo, llegamos al final de este enriquecedor encuentro.
Haciendo referencia a vuestra “Sastrería” creo que hemos conseguido hacer un buen patrón de la esencia del desarrollo de software a medida. Equipo, os agradezco por compartir vuestro tiempo, vuestra experiencia y conocimientos pero, sobre todo, vuestra pasión al transmitirlos.
R: Gracias a ti por el desayuno, estaba riquísimo. Para nosotros, siempre es un placer hablar sobre tecnología. Esperando ya la próxima oportunidad.
Comentábamos antes lo vertiginoso que es el cambio en la tecnología, así que, seguro que pronto podremos tomarnos un nuevo desayuno con novedades que compartir.
¡Muchas gracias EQUIPO!