Future Trends of Software Engineering

Una visión común de la ingeniería del software

En lo que respecta al desarrollo de software, las esferas académica y empresarial han ido distanciándose con el tiempo, de forma que la brecha entre la torre de marfil y las oficinas es cada vez mayor. Y sin embargo ambas partes se beneficiarían de un intercambio más estrecho. Con nuestro «Future Trends of Software Engineering» (FToSE) pretendemos llamar la atención sobre esta tendencia negativa e impulsar el debate. El objetivo de este intercambio de pareceres sobre las tendencias centrales en el desarrollo del software es llegar a un entendimiento sobre los temas y desarrollos más importantes.

#1La agilidad domada es el único camino

El potencial del desarrollo de software ágil aún no ha llegado ni de lejos a su fin

PRÁCTICA

En la actualidad se está desarrollando una «IT de 2 velocidades»: los sistemas críticos se siguen desarrollando de forma tradicional, mientras que las empresas enfocan todo lo demás de forma ágil.

INVESTIGACIÓN

Los procedimientos para el desarrollo del software siguen teniendo sentido. La agilidad no constituye ningún cambio fundamental, pero sí ofrece aspectos útiles que se deberían integrar en los procedimientos.

SÍNTESIS

La agilidad en el ámbito del desarrollo de software tiene un enorme potencial que no se debería desperdiciar. A corto plazo se generan impulsos de cambio que tienen como resultado roles completamente nuevos para los departamentos de IT de las empresas.

illustration

#2Los microservices son una idea fantástica

No son la panacea, pero amplían las posibilidades para el departamento de IT

PRÁCTICA

Los microservices constituyen un gran paso hacia adelante. Permiten a los expertos aunar arquitecturas heterogéneas.

INVESTIGACIÓN

En realidad, los paradigmas de las arquitecturas son relativamente estables. A veces se llama modularización, a veces arquitectura orientada a servicios y en la actualidad microservices.

SÍNTESIS

Los microservices son extraordinarios como paradigma de integración y para nuevos desarrollos; sin embargo, los entornos existentes apenas se pueden modificar sobre esta base.

illustration

#3La CPS Engineering es una nueva disciplina

Los Cyber Physical Systems es la transformación digital al alcance de la mano

PRÁCTICA

Los sistemas ciberfísicos crean nuevos modelos de negocio. Y en el Internet de las cosas aumenta de forma radical la complejidad de los sistemas y las relaciones. Esto tiene como resultado desafíos completamente nuevos.

INVESTIGACIÓN

Los sistemas ciberfísicos no son nada nuevo en términos estructurales. Mezclas de sistemas de información y software embebido siempre ha habido.

SÍNTESIS

Si bien la CPS Engineering se basa en conocimientos ya disponibles, se trata de un nuevo campo de actividad.

illustration

#4La ingeniería de la utilidad o Usability Engineering no es ningún desvarío

En la superficie se decide el éxito

PRÁCTICA

Los usuarios quieren interfaces bonitas. Si no las obtienen considerarán el software inservible y utilizarán otra cosa.

INVESTIGACIÓN

La usabilidad también es importante de alguna forma. Por eso es necesario integrar la Usability Engineering en el proceso de software.

SÍNTESIS

Para aplicaciones en las que se utiliza mucho la interfaz o aplicaciones móviles o aplicaciones poco inusuales la Usability Engineering es la clave del éxito y, por lo tanto, una disciplina importante.

illustration

#5La prevención de fallos no es ninguna utopía

No es un tema agradable, pero sí importante

PRÁCTICA

Mientras el software siga siendo desarrollado por las personas se seguirán produciendo fallos, ya que los motivos para que esto sea así son muy variados y, sobre todo, nos resultan imposibles de prever siempre con los sistemas sociotécnicos.

INVESTIGACIÓN

En los últimos años el mundo académico ha desarrollado numerosos marcos normativos que resuelven el problema de los fallos en los proyectos de software. Si la práctica se ciñe a los conceptos correspondientes dejarán de producirse fallos.

SÍNTESIS

Los fallos se pueden reducir en gran medida, si bien solo siendo consecuentes y sistemáticos.

illustration

#6Los sistemas de software se convierten en entornos de software

El todo debe cuadrar en los detalles

PRÁCTICA

Los entornos de software complejos se desarrollan de forma evolutiva, ya que las empresas crean (o compran) cada uno de los sistemas en función de la velocidad y la rentabilidad que resultan óptimas para ellas en cada momento.

INVESTIGACIÓN

Los expertos desarrollan los entornos de software complejos como «sistemas de sistemas». Es decir, un estándar de arquitectura uniforme permite combinar sistemas autónomos entre sí para determinados campos de aplicación.

SÍNTESIS

De antemano, los escenarios de integración son poco conocidos. Cada uno de los sistemas se ha de crear de tal forma que se pueda integrar y pueda aportar su granito de arena a la evolución del entorno de sistemas.

illustration

#7Los datos son más importantes que los algoritmos

Los datos nos proporcionan el conocimiento

PRÁCTICA

Se trata más bien de obtener los datos relevantes en grandes cantidades, ya que la complejidad de cálculo se puede controlar muy bien en un entorno cloud.

INVESTIGACIÓN

El procesamiento de grandes volúmenes de datos, y el consiguiente aumento de la complejidad de cálculo, en los escenarios de aplicaciones modernos, precisa de algoritmos eficientes y rápidos.

SÍNTESIS

En aplicaciones de big data hay que centrar la atención en la obtención de datos. En lo que respecta al procesamiento las empresas pueden recurrir a las infraestructuras ya existentes. La optimización de los algoritmos forma parte más bien de la investigación de base.

illustration

#8La incertidumbre es la única certeza

Al principio el final es solo una visión borrosa

PRÁCTICA

Las fases tempranas del desarrollo de software siguen siendo determinantes, ya que es aquí donde se obtiene una visión aproximada, pero muy buena, de los requisitos. A lo largo del proyecto los responsables tienen la oportunidad de reconocer lo que es importante.

INVESTIGACIÓN

No pueden existir descripciones previas completas de los sistemas sociotécnicos (un conjunto organizado de personas y tecnologías). Por este motivo es necesario un procedimiento que permita abordar los requisitos que surjan durante el desarrollo.

SÍNTESIS

Merece la pena estudiar exhaustivamente la imagen completa. Los detalles se pueden ir añadiendo durante el desarrollo. En este sentido se han de establecer constantemente nuevas prioridades y hay que ser valiente a la hora sustituir lo innecesario.

illustration

#9La orientación al valor es la referencia

La atención debe estar siempre centrada en la utilidad del software

PRÁCTICA

Cuando todos saben lo que es importante se puede crear software valioso y orientado al valor del cliente.

INVESTIGACIÓN

Existen muchas métricas para evaluar la productividad del software (comenzando por los Function Points), pero pocos planteamientos para un desarrollo orientado al valor.

SÍNTESIS

La orientación al valor del software resulta esencial. Por este motivo en los proyectos de desarrollo se ha de centrar la atención de forma sistemática y clara sobre el valor intrínseco e integrar esta visión en la forma de proceder

illustration

#10La informática cognitiva o Cognitive Computing es lo que impera

Se avecina una revolución

PRÁCTICA

Gestionar grandes cantidades de datos, reconocer patrones en dichos volúmenes de datos y realizar adaptaciones automáticas son factores decisivos de la transformación digital. Sin embargo, aún no está muy claro cómo combinar a los técnicos para lograrlo.

INVESTIGACIÓN

Las promesas de inteligencia artificial de los años 90 comienzan a hacerse realidad gradualmente a medida que aumenta la capacidad de cálculo.

SÍNTESIS

Resulta necesario combinar las técnicas de informática cognitiva con los sistemas de información clásicos.

illustration

Las Future Trends of Software Engineering están muy lejos de ser un mero juego de inteligencia. Del planteamiento se pueden deducir requisitos muy específicos aplicables a la forma en la que las empresas deben abordar el tema de la ingeniería del software. Hablemos sobre su situación, sus requisitos y sus ideas y desarrollemos juntos el futuro de su IT.

¿Tienes alguna pregunta?

Hablemos de cómo podemos trabajar contigo.

Escríbenos

Guarde esta página. Eliminar esta página.