SlideShare uma empresa Scribd logo
1 de 30
Baixar para ler offline
Do pair programming with an artificial intelligence Giulio Roggero
Do pair programming
with an artificial
intelligence
Giulio Roggero
30 maggio 2020
Do pair programming with an artificial intelligence Giulio Roggero
Nessuna
intelligenza
artificiale è stata
maltrattata
durante la
preparazione di
questo talk
Disclaimer
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.
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
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
Do pair programming with an artificial intelligence Giulio Roggero
Muro di
comunicazione
collaborazione
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?
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
Do pair programming with an artificial intelligence Giulio Roggero
Da soli?
TDD
Do pair programming with an artificial intelligence Giulio Roggero
In pair programming è molto meglio
TDD
Do pair programming with an artificial intelligence Giulio Roggero
Ancora più efficace in ping pong programming
TDD
Do pair programming with an artificial intelligence Giulio Roggero
● E’ faticoso
● Necessario forte affiatamento
● La voglia di isolamento spesso prende il
sopravvento
Do pair programming with an artificial intelligence Giulio Roggero
Quindi? Da soli?
TDD
Do pair programming with an artificial intelligence Giulio Roggero
Fai pair con una AI!
TDD
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
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
Do pair programming with an artificial intelligence Giulio Roggero
Cosa ne pensate?
Do pair programming with an artificial intelligence Giulio Roggero
Esiste?
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
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
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:
Do pair programming with an artificial intelligence Giulio Roggero
https://sketch2code.azurewebsites.net/
Do pair programming with an artificial intelligence Giulio Roggero
https://visualstudio.microsoft.com/services/intellicode/ https://www.tabnine.com/
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
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/
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
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
Do pair programming with an artificial intelligence Giulio Roggero
Log anomaly detection
https://www.elastic.co/guide/en/kibana/current/xpack-logs-analysis.html
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
Do pair programming with an artificial intelligence Giulio Roggero
Giulio Roggero
Co-founder and CTO @ Mia-Platform
Partner @ Intré
Co-founder @ Agile Reloaded
30

Mais conteúdo relacionado

Semelhante a Do pair programming with an artificial intelligence

SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...SMAU
 
Quando un software è di qualità? - Agile Venture Milano 2020
Quando un software è di qualità? - Agile Venture Milano 2020Quando un software è di qualità? - Agile Venture Milano 2020
Quando un software è di qualità? - Agile Venture Milano 2020Thomas Rossetto
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
Come i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature TeamsCome i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature TeamsGiulio Roggero
 
Ecco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidEcco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidFlavius-Florin Harabor
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiSimone Federici
 
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2Insegnare a progettare il proprio apprendimento con il coding - Lezione 2
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2Michele Maffucci
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoDiego La Monica
 
Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!Francesco Sciuti
 
[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...
[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...
[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...Ecommerce HUB
 
Tech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer ToolTech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer ToolCodemotion
 
Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT orientedfirenze-gtug
 
Meetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure FunctionsMeetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure Functionsdotnetcode
 
Designer vs. ingegneri - GDG devFest 2012 Firenze
Designer vs. ingegneri - GDG devFest 2012 FirenzeDesigner vs. ingegneri - GDG devFest 2012 Firenze
Designer vs. ingegneri - GDG devFest 2012 FirenzeMaurizio Caporali
 
Session isolation e rendering delle pagine web
Session isolation e rendering delle pagine webSession isolation e rendering delle pagine web
Session isolation e rendering delle pagine webGiacomo Zecchini
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Piero Sbressa
 

Semelhante a Do pair programming with an artificial intelligence (20)

SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
SMAU MILANO 2023 | IA Generativa per aziende - come addestrare i modelli ling...
 
Quando un software è di qualità? - Agile Venture Milano 2020
Quando un software è di qualità? - Agile Venture Milano 2020Quando un software è di qualità? - Agile Venture Milano 2020
Quando un software è di qualità? - Agile Venture Milano 2020
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
Come i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature TeamsCome i Microservizi favoriscono il lavoro dei Feature Teams
Come i Microservizi favoriscono il lavoro dei Feature Teams
 
Ecco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App AndroidEcco gli strumenti necessari per sviluppare la tua App Android
Ecco gli strumenti necessari per sviluppare la tua App Android
 
Anti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo evitiAnti pattern se lo conosci lo eviti
Anti pattern se lo conosci lo eviti
 
Go on AppEngine
Go on AppEngineGo on AppEngine
Go on AppEngine
 
Digital Universitas
Digital UniversitasDigital Universitas
Digital Universitas
 
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2Insegnare a progettare il proprio apprendimento con il coding - Lezione 2
Insegnare a progettare il proprio apprendimento con il coding - Lezione 2
 
Presentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successoPresentarsi sul mercato globale con app di successo
Presentarsi sul mercato globale con app di successo
 
Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!Siamo tutti bravi con il browser degli altri!
Siamo tutti bravi con il browser degli altri!
 
[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...
[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...
[EH2023] - L'intelligenza artificiale per potenziare l'ecommerce - Vincenzo C...
 
Tech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer ToolTech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer Tool
 
Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT oriented
 
On demand Webinars
On demand WebinarsOn demand Webinars
On demand Webinars
 
La salute del software
La salute del softwareLa salute del software
La salute del software
 
Meetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure FunctionsMeetup DotNetCode A.I. Bot Framework and Azure Functions
Meetup DotNetCode A.I. Bot Framework and Azure Functions
 
Designer vs. ingegneri - GDG devFest 2012 Firenze
Designer vs. ingegneri - GDG devFest 2012 FirenzeDesigner vs. ingegneri - GDG devFest 2012 Firenze
Designer vs. ingegneri - GDG devFest 2012 Firenze
 
Session isolation e rendering delle pagine web
Session isolation e rendering delle pagine webSession isolation e rendering delle pagine web
Session isolation e rendering delle pagine web
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015
 

Mais de Giulio Roggero

Platform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewGiulio Roggero
 
Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101Giulio Roggero
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterpriseGiulio Roggero
 
Modernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesGiulio Roggero
 
Stili architetturali in Kubernetes
Stili architetturali in KubernetesStili architetturali in Kubernetes
Stili architetturali in KubernetesGiulio Roggero
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsGiulio Roggero
 
Invisible infrastructures
Invisible infrastructuresInvisible infrastructures
Invisible infrastructuresGiulio Roggero
 
Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Giulio Roggero
 
Eliminare gli Spaghetti API
Eliminare gli Spaghetti APIEliminare gli Spaghetti API
Eliminare gli Spaghetti APIGiulio Roggero
 
Da spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleGiulio Roggero
 
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle apiAPI Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle apiGiulio Roggero
 
Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017Giulio Roggero
 
Trust me, I'm a developer
Trust me, I'm a developerTrust me, I'm a developer
Trust me, I'm a developerGiulio Roggero
 
Agilità interculturale
Agilità interculturaleAgilità interculturale
Agilità interculturaleGiulio Roggero
 
Favorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservicesFavorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservicesGiulio Roggero
 
Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015Giulio Roggero
 

Mais de Giulio Roggero (20)

Platform Engineering - a 360 degree view
Platform Engineering - a 360 degree viewPlatform Engineering - a 360 degree view
Platform Engineering - a 360 degree view
 
Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101Kubernetes and CNCF Landscape 101
Kubernetes and CNCF Landscape 101
 
Platform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprisePlatform governance, gestire un ecosistema di microservizi a livello enterprise
Platform governance, gestire un ecosistema di microservizi a livello enterprise
 
Modernize Legacy Systems with Kubernetes
Modernize Legacy Systems with KubernetesModernize Legacy Systems with Kubernetes
Modernize Legacy Systems with Kubernetes
 
Stili architetturali in Kubernetes
Stili architetturali in KubernetesStili architetturali in Kubernetes
Stili architetturali in Kubernetes
 
Scaling Legacy
Scaling LegacyScaling Legacy
Scaling Legacy
 
Agile Journey
Agile JourneyAgile Journey
Agile Journey
 
Microservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature TeamsMicroservices, Microfrontends and Feature Teams
Microservices, Microfrontends and Feature Teams
 
Invisible infrastructures
Invisible infrastructuresInvisible infrastructures
Invisible infrastructures
 
Stop Meeting, Start Coding!
Stop Meeting, Start Coding!Stop Meeting, Start Coding!
Stop Meeting, Start Coding!
 
Eliminare gli Spaghetti API
Eliminare gli Spaghetti APIEliminare gli Spaghetti API
Eliminare gli Spaghetti API
 
Innovare nel B2C
Innovare nel B2CInnovare nel B2C
Innovare nel B2C
 
Da spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma DigitaleDa spaghetti API a Piattaforma Digitale
Da spaghetti API a Piattaforma Digitale
 
Kanban board!
Kanban board!Kanban board!
Kanban board!
 
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle apiAPI Conf 2017 - Allineare il business e la tecnologia grazie alle api
API Conf 2017 - Allineare il business e la tecnologia grazie alle api
 
Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017Progettare l’intangibile - Progettando 2017
Progettare l’intangibile - Progettando 2017
 
Trust me, I'm a developer
Trust me, I'm a developerTrust me, I'm a developer
Trust me, I'm a developer
 
Agilità interculturale
Agilità interculturaleAgilità interculturale
Agilità interculturale
 
Favorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservicesFavorire i feature teams con architetture microservices
Favorire i feature teams con architetture microservices
 
Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015Agile Fixed Price - XP Days 2015
Agile Fixed Price - XP Days 2015
 

Do pair programming with an artificial intelligence

  • 1. Do pair programming with an artificial intelligence Giulio Roggero Do pair programming with an artificial intelligence Giulio Roggero 30 maggio 2020
  • 2. Do pair programming with an artificial intelligence Giulio Roggero Nessuna intelligenza artificiale è stata maltrattata durante la preparazione di questo talk Disclaimer
  • 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. 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. 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. Do pair programming with an artificial intelligence Giulio Roggero Muro di comunicazione collaborazione
  • 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. 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. Do pair programming with an artificial intelligence Giulio Roggero Da soli? TDD
  • 10. Do pair programming with an artificial intelligence Giulio Roggero In pair programming è molto meglio TDD
  • 11. Do pair programming with an artificial intelligence Giulio Roggero Ancora più efficace in ping pong programming TDD
  • 12. Do pair programming with an artificial intelligence Giulio Roggero ● E’ faticoso ● Necessario forte affiatamento ● La voglia di isolamento spesso prende il sopravvento
  • 13. Do pair programming with an artificial intelligence Giulio Roggero Quindi? Da soli? TDD
  • 14. Do pair programming with an artificial intelligence Giulio Roggero Fai pair con una AI! TDD
  • 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. 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. Do pair programming with an artificial intelligence Giulio Roggero Cosa ne pensate?
  • 18. Do pair programming with an artificial intelligence Giulio Roggero Esiste?
  • 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. 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. 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. Do pair programming with an artificial intelligence Giulio Roggero https://sketch2code.azurewebsites.net/
  • 23. Do pair programming with an artificial intelligence Giulio Roggero https://visualstudio.microsoft.com/services/intellicode/ https://www.tabnine.com/
  • 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. 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. 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. 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. 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. 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. Do pair programming with an artificial intelligence Giulio Roggero Giulio Roggero Co-founder and CTO @ Mia-Platform Partner @ Intré Co-founder @ Agile Reloaded 30