Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Do pair programming with an artificial intelligence

117 views

Published on

Si prevede che nel 2022 il 40% dello sviluppo di applicazioni software sia co-sviluppato insieme ad una intelligenza artificiale (sorgente Gartner 2019).

Ci pensate? Come sarà sviluppare in pairing? Saremo più produttivi? Faremo meno errori? Il codice sarà più pulito? La gestione dei feature toggle sarà più semplice? I rilasci saranno ancora più semplici?

Immaginate fare ping-pong programming con la vostra intelligenza artificiale personale, quanto sarebbe motivante e divertente scrivere codice. E se applichiamo TDD potremmo arrivare ad un livello di clean code mai visto. Anche le persone meno esperte potrebbero imparare a sviluppare in modo pulito ed efficace.

In questa mezz’ora voglio esplorare insieme a voi questo modo che sembra lontano (vi ricordate 10 anni fa delle macchine che guidano da sole? :-) ) ma in realtà è già intorno a noi e si sta facendo sempre più pervasivo.

Published in: Business
  • Be the first to comment

  • Be the first to like this

Do pair programming with an artificial intelligence

  1. 1. Do pair programming with an artificial intelligence Giulio Roggero Do pair programming with an artificial intelligence Giulio Roggero 30 maggio 2020
  2. 2. Do pair programming with an artificial intelligence Giulio Roggero Nessuna intelligenza artificiale è stata maltrattata durante la preparazione di questo talk Disclaimer
  3. 3. Do pair programming with an artificial intelligence Giulio Roggero Questo talk non parlerà di ML o DL ma come questi potranno semplificarci la vita nello sviluppo di software.
  4. 4. Do pair programming with an artificial intelligence Giulio Roggero Cane No Cane Output Machine Learning Input Estrazione delle caratteristiche Classificazione Cane No Cane Output Deep Learning Input Estrazione delle caratteristiche + Classificazione
  5. 5. Do pair programming with an artificial intelligence Giulio Roggero https://pxhere.com/en/photo/541140?__cf_chl_jschl_tk__=c0c3ccb87f6b85b3b4448844ac6768cfda9fe4bf-1590828815-0-AZa-TJDvPiJpVKXAWX0PxpcPjMWZrLYxcrC-94m7mROYy6TSQcz_2ybqTN1SjFJGABRa9L7qx2AiXLPeJVKzMujOqYXvnHP3zKqAJINAxpvWCtij0A8nzxNm53JUqUoNWIGxzC3s71WOc8jf6tkve8gnPbOpcNgVHRmeB9pb7T-2FCP1HHYKVa_h9XNTRLlfDMTwZ8Kc5jJi90EEWeCv1bjZISvRdrJG0AdvXo7V2Y23yQY_N1PM7JLllCe-LjH2yYM-3u4xezd6zOx2GL8zYlUKHLLprDY9_BKt OyF8KoS- Pairing ● Maggior attenzione e produttività ● Riduzione degli errori ● Condivisione della conoscenza ● Team building
  6. 6. Do pair programming with an artificial intelligence Giulio Roggero Muro di comunicazione collaborazione
  7. 7. Do pair programming with an artificial intelligence Giulio Roggero Driver Navigator A B C .stream().filter (... Filtro lo stream per poi passarlo a C Come mai, non dovresti mandarlo a B?
  8. 8. Do pair programming with an artificial intelligence Giulio Roggero Scrivi un test Scrivi il codice per passare il test Fai refactoring fin quando il codice è pulito in modo accettabile Ciclo rapido Ogni 10’ circa TDDTDD Non è solo una questione di test, ma anche di: ● Scrivere codice pulito ● Scrivere codice semplice ● Scrivere solo il codice che serve ● Scrivere codice testabile ● Scrivere codice con responsabilità chiare ● Scrivere documentazione perché i test esprimono le intenzioni ● Ridurre i costi e ti tempi di sviluppo
  9. 9. Do pair programming with an artificial intelligence Giulio Roggero Da soli? TDD
  10. 10. Do pair programming with an artificial intelligence Giulio Roggero In pair programming è molto meglio TDD
  11. 11. Do pair programming with an artificial intelligence Giulio Roggero Ancora più efficace in ping pong programming TDD
  12. 12. Do pair programming with an artificial intelligence Giulio Roggero ● E’ faticoso ● Necessario forte affiatamento ● La voglia di isolamento spesso prende il sopravvento
  13. 13. Do pair programming with an artificial intelligence Giulio Roggero Quindi? Da soli? TDD
  14. 14. Do pair programming with an artificial intelligence Giulio Roggero Fai pair con una AI! TDD
  15. 15. Do pair programming with an artificial intelligence Giulio Roggero Driver Navigator A B C .stream().filter (... OK? Mi aspetto di passare a B i soli record che soddisfazione la seguente condizione
  16. 16. Do pair programming with an artificial intelligence Giulio Roggero Scrivo un test Scrive il codice per passare il test Verifico che il risultato sia quello che mi aspetto altrimenti scrivo io il codice Impara Fai refactor fin quando il codice è pulito in modo accettabile Impara AITDD
  17. 17. Do pair programming with an artificial intelligence Giulio Roggero Cosa ne pensate?
  18. 18. Do pair programming with an artificial intelligence Giulio Roggero Esiste?
  19. 19. Do pair programming with an artificial intelligence Giulio Roggero Non ancora ma non sarebbe male Pensateci come sarebbe fluida la cosa: tu esprimi l’intenzione e l’AI la soddisfa
  20. 20. Do pair programming with an artificial intelligence Giulio Roggero I tool presentati sono disponibili online gratuitamente, in demo o a pagamento. Non è una pubblicità ma una ricerca non esaustiva dello stato dell’arte ad oggi Disclaimer
  21. 21. Do pair programming with an artificial intelligence Giulio Roggero ● Design UI ● Autocompletamento di codice ● Analisi statica del codice ● Generare codice da intenzioni ● Unit Test Automatici ● Evidenziare anomalie Alcuni esempi che consentono di aiutare nel pairing:
  22. 22. Do pair programming with an artificial intelligence Giulio Roggero https://sketch2code.azurewebsites.net/
  23. 23. Do pair programming with an artificial intelligence Giulio Roggero https://visualstudio.microsoft.com/services/intellicode/ https://www.tabnine.com/
  24. 24. Do pair programming with an artificial intelligence Giulio Roggero https://www.deepcode.ai/app/gh/ - sanitize your input https://www.deepcode.ai/app/gh/giulioroggero/java-test-deepcoder/8775cb8aa7b892d79ef35791fc6a19de08e8fca3/_/dashboard https://github.com/giulioroggero/java-test-deepcoder
  25. 25. Do pair programming with an artificial intelligence Giulio Roggero https://github.com/facebookresearch/aroma-paper-artifacts https://ai.facebook.com/blog/aroma-ml-for-code-recommendation/
  26. 26. Do pair programming with an artificial intelligence Giulio Roggero https://www.i-programmer.info/news/90-tools/ 11767-bayou-ai-to-help-you-code.html https://github.com/trishullab/bayou
  27. 27. Do pair programming with an artificial intelligence Giulio Roggero https://www.diffblue.com/products https://docs.diffblue.com/cover/user-manual/t opics/intellij-plugin/writing-tests.html
  28. 28. Do pair programming with an artificial intelligence Giulio Roggero Log anomaly detection https://www.elastic.co/guide/en/kibana/current/xpack-logs-analysis.html
  29. 29. Do pair programming with an artificial intelligence Giulio Roggero E’ ancora presto per avere benefici che impattano in modo notevole sulle nostre abitudini di sviluppo ma gli studi in tal senso stanno diventando sempre più approfonditi e con ottimi riscontri. Consiglio: dateci un occhio ogni tanto perché nel giro di 5 anni il modo di sviluppare potrebbe cambiare in modo importante grazie all’Intelligenza Artificiale. Ne conoscete altri? Contattatemi che li aggiungo alla lista! Link interessante https://github.com/src-d/awesome-machine-learning-on-source-code
  30. 30. Do pair programming with an artificial intelligence Giulio Roggero Giulio Roggero Co-founder and CTO @ Mia-Platform Partner @ Intré Co-founder @ Agile Reloaded 30

×