SlideShare una empresa de Scribd logo
1 de 90
¿Quién va a desarrollar las Apps del
futuro?
Jordi Cabot
@JordiCabot / @ingdesoftware – jordicabot.com / ingenieriadesoftware.es
About
SOM Research Lab
Software runs the world. Models run the software
Nuestra misión
Interested in the broad
area of systems and
software engineering,
especially promoting the
rigorous use of software
models and engineering
principles in all software
engineering tasks.
Flickr/clement127
Disclaimer
Cualquier parecido con la (futura)
realidad es pura coincidencia
“As a writer, my job is to change your
perspective and make you think
outside the box.” - Mary Sage Nguyen
El problema (o bendición)
De hecho, no solo toda empresa, sino toda la Sociedad
se basa en software, y aún más, software libre
+ CPS
+ IoT
+ Blockchain
+ Quantum
…
Example: Chatbots are complex systems
Conversation
Logic
Text Processing
External Services
Messaging
Platforms
Deployment
Evolution
Maintenance
Tests
Xatkit.com
Más programadores NO es la solución
Shallow work:
non-cognitively demanding,
logistic style task, often
performed while distracted
¿Programación = shallow work?
Escribir código es la manera
menos eficiente de produir SW
0
10
20
30
40
50
60
Programmers (in M)
Estimated number of programmers (EEUU)
Potential amateur programmers self-declared amateur programmers PROs
SW
Eng
Developer: Creates
working software
Programmer: Writes code
5 soluciones (a combinar)
Solución 1: Que desarrollen los
analistas y diseñadores
Ingeniería de Software Dirigida
por Modelos (IDM/MDE)
• Grady Booch – history of softwre engineering
The entire history of software engineering is that of
the rise in levels of abstraction
- Grady Booch
OBJETIVO: Escribir cada
vez menos código
Todo dominio suficientemente avanzado tiende al
modelado (ej. Machine Learning)
Model
Rapid prototyping
Static analysis
Code generation
Automated testing
Refactoring/
Transformation
Documentation
[Illustration by Bernhard Rumpe]
IDM = Modelos como parte central de la
Ingeniería del Software
Modelo: simplificación útil de la realidad
26
Ciudad de Nantes = “system” a
modelar
Un mapa es de hecho un modelo
del sistema
La leyenda del mapa es la
gramática / metamodelo
Existen diferentes tipos mapas:
transporte, alcantarillado,…
que dan “vistas” diferentes de
la ciudad
Muy parecido al mundo de la
programación
MDE Grammarware
MOF
(metametamodel)
UML
(metamodel)
ABank.uml
EBNF.g
Java.g
MyProgram.java
Original
model
1st
refinement
nth
refinement
Model-to-model
Transformation
Model-to-text
Transformation
...
Requirements
Use Case
Class Diagram
Java Project
La equación IDM:
Models +
Transformations =
Software
Podemos añadir tanta semántica como
queramos en un generador de código
Regla de Pareto aplicada a la generación de código: el 80% del código es repetitivo
Algo que todos hacen
Beneficios MDE
(bien hecho)
+productividad +calidad +Mantenimiento ….
2X – 8X 1.2X – 4X 80%
Y sí, se puede ser ágil y modelar
To model, or not to model, this is the WRONG
question
- Shakespeare
La buena pregunta:
qué modelos, cuantos,
Me prohibieron utilizar mis
500+ slides de “introducción a
la IDM”  -> mdse-book.com
Low-code
Adopción MDE
Low-code application platforms accelerate app
delivery by dramatically reducing the amount of
hand-coding required – Forrester Report
Low-code is a “style” of MDD
• Focused on specific types of applications
• Where the language/s are typically fixed and closed
It’s a marketing success
• Huge amounts of VC money for low-code tools
• All tools are rebranding themselves as low-code tools!
Low-code is trending because
• Clearer message: Everybody understands
that low-code means “less coding”. MDD is
more confusing
• Sounds familiar, and less scary, as the
marketing msg is still focus on the code.
• Simpler pipeline, no transformation chains,
one-shot modeling.
Solución 2: Que desarrollen los
usuarios (citizen developers)
Todo usuario
esconde un
programador en
su interior
Citizen developers = End-User programming 2.0
¿Ahora
sí?
Demanda
Plataformas
no-code
Cognification
“the goal of the project is to
make the promise of
open data a reality by
giving non-technical
users tools they can use
to find and compose the
information they need”
No-code
In a no-code approach users
• “Develop” reusing predefined templates and services
• It’s more of configuration / plugging approach to
development
Diff with low-code
• Here we asume zero coding
• This limits creativity but still covers a good range of apps
Solución 3: Intentemos que la
comunidad nos ayude
Code
Community
Tenemos que ser un poco
de «letras»
Successful
OSS tool
Governing
Optimizing
Onboarding
Ponerlo en pràctica: Software Analysis
No se trata
de hacer
análisis
estático del
código
Optimizemos la “poca”
ayuda que tendremos
Build the right
graph
for yourpurpose
On the analysis of non-coding roles in open source development
An empirical study of NPM package projects
•J.L. Cánovas Izquierdo & Jordi Cabot. Empirical Software
Engineering volume 27, Article number: 18 (2022)
Bus Factor
“Number of key developers who would need to be
incapacitated (hit by a bus), to send the project into
disarray that it would not be able to proceed”
Attracting contributors
(and keeping them)
Facilitateon boarding: Importance of first
impressions
OSS = matching market
(mercados donde el dinero
no es el factor principal)
© Apple Records
Governing:
Power to the people
La governanza de
los proyectos tiene
que ser
transparente
Benevolent
Dictator for Life<-
Why???
Los proyectos
OSS deberían
ser más
democráticos
(y no, forking
no es una
buena opción)
ThemanynamesofDemocracy
******
Project myProject {
Roles: Committers
Deadlines:
myDeadline : 7 days
Rules:
myMajorityRule :
Majority {
applied to Task
when TaskReview
people Committers
range Present
minVotes 3
deadline myDeadline
}
}
All the proposals for new development tasks will be
accepted or rejected in 7 days by the committers of the
project.
Verbalization
Solución 4: Dejar que una IA haga
el trabajo
Cognificación
Cognification:
The application of knowledge
to boost the performance
and impact of a process
Durante la revolución
industrial todo se
electrificó.
En la próxima todo se
“cognificará” con acceso
barato una AI especializada
OutSystems.ai
85
Artificial Intelligence
Machine
Learning
Natural
Language
Processing
Domain Modeling
assist
Natural Language Processing (NLP) for model
autocompletion
Funcionamos mejor juntos
El mejor jugador de ajedrez
del mundo no es ni un
humano ni una máquina
Kai-Fu Lee
La ACM ha propuesto 7
principios para la
transparencia y
responsabilidad de los
algoritmos
RESPONSABILIDAD
Las instituciones son responsables de las decisiones tomadas por sus algoritmos,
aunque no sean capaces de explicar el cómo se ha llegado a esas decisiones
Solución 5: Que nadie haga (casi)
nada...
No-work
Hay suficiente información disponible
•Para saber qué hacer y como hacerlo
•Sin que, por ejemplo, haya que formalizer los
requisitos.
•Mezcla de información de la empresa y conocimiento
general.
Ejemplo: chatbot para tienda e-Commerce
•Si tengo los datos de la tienda puedo deducir qué
conversaciones sobre esos datos hay que tener
disponibles.
•Esto permite tener un chatbot automático sin que el
propietario tenga que hacer nada. Ni low-code, ni no-
code ni nada.
Conclusión
El “10x
programmer”
existe
… pero no es
un programador
Cualquiera de
vosotros puede serlo
con las herramientas
adecuadas
¿seguimos
hablando?:
jordi.cabot@
icrea.cat
@JordiCabot
@ingdesoftware

Más contenido relacionado

Similar a ¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programadores) - 2021

El_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfEl_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfpauly230688
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software Luis Valeriano
 
Calidad del Software para futuros ingenieros en tiempos de crisis
Calidad del Software para futuros ingenieros en tiempos de crisisCalidad del Software para futuros ingenieros en tiempos de crisis
Calidad del Software para futuros ingenieros en tiempos de crisisJorge Marquez
 
Low-code citizen developers vs High-code developers: evolución o zombificación?
Low-code citizen developers vs High-code developers: evolución o zombificación?Low-code citizen developers vs High-code developers: evolución o zombificación?
Low-code citizen developers vs High-code developers: evolución o zombificación?Oracle User Group Mexico
 
Costes del desarrollo de software
Costes del desarrollo de softwareCostes del desarrollo de software
Costes del desarrollo de softwareWilber Vidm
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfLauraSofiaCardonaSol
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfedepasheleymartinez
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfdanysanchezcai67
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREJesus Yepez
 
Programación extrema [XP]
Programación extrema [XP]Programación extrema [XP]
Programación extrema [XP]Agustín
 
Aplicaciones de estándares de calidad en la construcción de algoritmaos
Aplicaciones de estándares de calidad en la construcción de algoritmaosAplicaciones de estándares de calidad en la construcción de algoritmaos
Aplicaciones de estándares de calidad en la construcción de algoritmaosalexisj2303
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittJavier Muñoz
 
Cuadro comparativo Modelos de Software.
Cuadro comparativo Modelos de Software.Cuadro comparativo Modelos de Software.
Cuadro comparativo Modelos de Software.templarioo
 

Similar a ¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programadores) - 2021 (20)

El_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdfEl_software_y_la_Ingenieria_de_Software.pdf
El_software_y_la_Ingenieria_de_Software.pdf
 
Ingeniería de Software
Ingeniería de Software Ingeniería de Software
Ingeniería de Software
 
Met2 07 01-introduccion_poo
Met2 07 01-introduccion_pooMet2 07 01-introduccion_poo
Met2 07 01-introduccion_poo
 
Calidad del Software para futuros ingenieros en tiempos de crisis
Calidad del Software para futuros ingenieros en tiempos de crisisCalidad del Software para futuros ingenieros en tiempos de crisis
Calidad del Software para futuros ingenieros en tiempos de crisis
 
Low-code citizen developers vs High-code developers: evolución o zombificación?
Low-code citizen developers vs High-code developers: evolución o zombificación?Low-code citizen developers vs High-code developers: evolución o zombificación?
Low-code citizen developers vs High-code developers: evolución o zombificación?
 
Costes del desarrollo de software
Costes del desarrollo de softwareCostes del desarrollo de software
Costes del desarrollo de software
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
 
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdfANALISIS FICHA 1 Y FICHA 2 (2).pdf
ANALISIS FICHA 1 Y FICHA 2 (2).pdf
 
Actividad2u3
Actividad2u3Actividad2u3
Actividad2u3
 
MODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWAREMODELO DE DESARRROLLO DE SOFTWARE
MODELO DE DESARRROLLO DE SOFTWARE
 
Programación extrema [XP]
Programación extrema [XP]Programación extrema [XP]
Programación extrema [XP]
 
Aplicaciones de estándares de calidad en la construcción de algoritmaos
Aplicaciones de estándares de calidad en la construcción de algoritmaosAplicaciones de estándares de calidad en la construcción de algoritmaos
Aplicaciones de estándares de calidad en la construcción de algoritmaos
 
Fundamentos de programacion
Fundamentos de programacionFundamentos de programacion
Fundamentos de programacion
 
No más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKittNo más "programación copy&paste". Generación automática de código con MOSKitt
No más "programación copy&paste". Generación automática de código con MOSKitt
 
Metodos agiles 4
Metodos agiles 4Metodos agiles 4
Metodos agiles 4
 
Dpss u3 a2_nigm
Dpss u3 a2_nigmDpss u3 a2_nigm
Dpss u3 a2_nigm
 
P informatica
P informaticaP informatica
P informatica
 
Cuadro comparativo Modelos de Software.
Cuadro comparativo Modelos de Software.Cuadro comparativo Modelos de Software.
Cuadro comparativo Modelos de Software.
 

Más de Jordi Cabot

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?Jordi Cabot
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesJordi Cabot
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart softwareJordi Cabot
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineJordi Cabot
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortJordi Cabot
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursJordi Cabot
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21Jordi Cabot
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringJordi Cabot
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformJordi Cabot
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingJordi Cabot
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Jordi Cabot
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Jordi Cabot
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsJordi Cabot
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsJordi Cabot
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Jordi Cabot
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Jordi Cabot
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformJordi Cabot
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesJordi Cabot
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkJordi Cabot
 
Model-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIsModel-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIsJordi Cabot
 

Más de Jordi Cabot (20)

AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?AI and Software consultants: friends or foes?
AI and Software consultants: friends or foes?
 
Model-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architecturesModel-driven engineering for Industrial IoT architectures
Model-driven engineering for Industrial IoT architectures
 
Smart modeling of smart software
Smart modeling of smart softwareSmart modeling of smart software
Smart modeling of smart software
 
Modeling should be an independent scientific discipline
Modeling should be an independent scientific disciplineModeling should be an independent scientific discipline
Modeling should be an independent scientific discipline
 
How to sustain a tool building community-driven effort
How to sustain a tool building community-driven effortHow to sustain a tool building community-driven effort
How to sustain a tool building community-driven effort
 
All Researchers Should Become Entrepreneurs
All Researchers Should Become EntrepreneursAll Researchers Should Become Entrepreneurs
All Researchers Should Become Entrepreneurs
 
The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21The Software Challenges of Building Smart Chatbots - ICSE'21
The Software Challenges of Building Smart Chatbots - ICSE'21
 
Low-code vs Model-Driven Engineering
Low-code vs Model-Driven EngineeringLow-code vs Model-Driven Engineering
Low-code vs Model-Driven Engineering
 
Lessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platformLessons learned from building a commercial bot development platform
Lessons learned from building a commercial bot development platform
 
Future Trends on Software and Systems Modeling
Future Trends on Software and Systems ModelingFuture Trends on Software and Systems Modeling
Future Trends on Software and Systems Modeling
 
Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit Chatbot Tutorial - Create your first bot with Xatkit
Chatbot Tutorial - Create your first bot with Xatkit
 
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
Création facile de chatbots - Créez votre chatbot en 20 minutes avec une plat...
 
An LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model TransformationsAn LSTM-Based Neural Network Architecture for Model Transformations
An LSTM-Based Neural Network Architecture for Model Transformations
 
WAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIsWAPIml: Towards a Modeling Infrastructure for Web APIs
WAPIml: Towards a Modeling Infrastructure for Web APIs
 
Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?Is there a future for Model Transformation Languages?
Is there a future for Model Transformation Languages?
 
Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?Software Modeling and Artificial Intelligence: friends or foes?
Software Modeling and Artificial Intelligence: friends or foes?
 
Temporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platformTemporal EMF: A temporal metamodeling platform
Temporal EMF: A temporal metamodeling platform
 
UMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL DatabasesUMLtoNoSQL : From UML domain models to NoSQL Databases
UMLtoNoSQL : From UML domain models to NoSQL Databases
 
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit FrameworkMulti-Platform Chatbot Modeling and Deployment with the Xatkit Framework
Multi-Platform Chatbot Modeling and Deployment with the Xatkit Framework
 
Model-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIsModel-driven Round-trip Engineering of REST APIs
Model-driven Round-trip Engineering of REST APIs
 

¿Quién va a desarrollar las Apps del futuro? (aviso: no serán los programadores) - 2021