Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 90 Ad
Advertisement

More Related Content

More from Jordi Cabot (20)

Recently uploaded (20)

Advertisement

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

  1. 1. ¿Quién va a desarrollar las Apps del futuro? Jordi Cabot @JordiCabot / @ingdesoftware – jordicabot.com / ingenieriadesoftware.es
  2. 2. About
  3. 3. SOM Research Lab Software runs the world. Models run the software
  4. 4. 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
  5. 5. Disclaimer
  6. 6. Cualquier parecido con la (futura) realidad es pura coincidencia
  7. 7. “As a writer, my job is to change your perspective and make you think outside the box.” - Mary Sage Nguyen
  8. 8. El problema (o bendición)
  9. 9. De hecho, no solo toda empresa, sino toda la Sociedad se basa en software, y aún más, software libre
  10. 10. + CPS + IoT + Blockchain + Quantum …
  11. 11. Example: Chatbots are complex systems Conversation Logic Text Processing External Services Messaging Platforms Deployment Evolution Maintenance Tests Xatkit.com
  12. 12. Más programadores NO es la solución
  13. 13. 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
  14. 14. 0 10 20 30 40 50 60 Programmers (in M) Estimated number of programmers (EEUU) Potential amateur programmers self-declared amateur programmers PROs
  15. 15. SW Eng Developer: Creates working software Programmer: Writes code
  16. 16. 5 soluciones (a combinar)
  17. 17. Solución 1: Que desarrollen los analistas y diseñadores
  18. 18. Ingeniería de Software Dirigida por Modelos (IDM/MDE)
  19. 19. • 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
  20. 20. Todo dominio suficientemente avanzado tiende al modelado (ej. Machine Learning)
  21. 21. 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
  22. 22. 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
  23. 23. Muy parecido al mundo de la programación MDE Grammarware MOF (metametamodel) UML (metamodel) ABank.uml EBNF.g Java.g MyProgram.java
  24. 24. Original model 1st refinement nth refinement Model-to-model Transformation Model-to-text Transformation ... Requirements Use Case Class Diagram Java Project
  25. 25. La equación IDM: Models + Transformations = Software
  26. 26. 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
  27. 27. Algo que todos hacen
  28. 28. Beneficios MDE (bien hecho) +productividad +calidad +Mantenimiento …. 2X – 8X 1.2X – 4X 80%
  29. 29. Y sí, se puede ser ágil y modelar
  30. 30. To model, or not to model, this is the WRONG question - Shakespeare La buena pregunta: qué modelos, cuantos,
  31. 31. Me prohibieron utilizar mis 500+ slides de “introducción a la IDM”  -> mdse-book.com
  32. 32. Low-code
  33. 33. Adopción MDE
  34. 34. Low-code application platforms accelerate app delivery by dramatically reducing the amount of hand-coding required – Forrester Report
  35. 35. 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!
  36. 36. 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.
  37. 37. Solución 2: Que desarrollen los usuarios (citizen developers)
  38. 38. Todo usuario esconde un programador en su interior
  39. 39. Citizen developers = End-User programming 2.0 ¿Ahora sí? Demanda Plataformas no-code Cognification
  40. 40. “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”
  41. 41. No-code
  42. 42. 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
  43. 43. Solución 3: Intentemos que la comunidad nos ayude
  44. 44. Code Community
  45. 45. Tenemos que ser un poco de «letras»
  46. 46. Successful OSS tool Governing Optimizing Onboarding
  47. 47. Ponerlo en pràctica: Software Analysis
  48. 48. No se trata de hacer análisis estático del código
  49. 49. Optimizemos la “poca” ayuda que tendremos
  50. 50. 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)
  51. 51. 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”
  52. 52. Attracting contributors (and keeping them)
  53. 53. Facilitateon boarding: Importance of first impressions
  54. 54. OSS = matching market (mercados donde el dinero no es el factor principal)
  55. 55. © Apple Records Governing: Power to the people
  56. 56. La governanza de los proyectos tiene que ser transparente
  57. 57. Benevolent Dictator for Life<- Why???
  58. 58. Los proyectos OSS deberían ser más democráticos (y no, forking no es una buena opción)
  59. 59. ThemanynamesofDemocracy
  60. 60. ******
  61. 61. 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
  62. 62. Solución 4: Dejar que una IA haga el trabajo
  63. 63. Cognificación
  64. 64. Cognification: The application of knowledge to boost the performance and impact of a process
  65. 65. Durante la revolución industrial todo se electrificó. En la próxima todo se “cognificará” con acceso barato una AI especializada
  66. 66. OutSystems.ai
  67. 67. 85 Artificial Intelligence Machine Learning Natural Language Processing Domain Modeling assist Natural Language Processing (NLP) for model autocompletion
  68. 68. Funcionamos mejor juntos
  69. 69. El mejor jugador de ajedrez del mundo no es ni un humano ni una máquina
  70. 70. Kai-Fu Lee
  71. 71. 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
  72. 72. Solución 5: Que nadie haga (casi) nada...
  73. 73. 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.
  74. 74. Conclusión
  75. 75. El “10x programmer” existe … pero no es un programador Cualquiera de vosotros puede serlo con las herramientas adecuadas
  76. 76. ¿seguimos hablando?: jordi.cabot@ icrea.cat @JordiCabot @ingdesoftware

×