SlideShare a Scribd company logo
1 of 94
Download to read offline
GALATEO SEMISERIO DELL’OPEN SOURCE
(OVVERO, COME CONQUISTARE IL MONDO
CON IL LAVORO DEGLI ALTRI)
LUIGI DELL’AQUILA @ldellaquila
GIARDINO DELLE
DELIZIE
UN VIAGGETTO NEL
PER IL VIAGGIO MI SERVE UNO
SPIRITO GUIDA…
IL NEMICO…?
STEVE
IL REDENTO…?
SATYA
NO… NON BASTA… DOBBIAMO
CONQUISTARE IL MONDO, MICA
GUADAGNARCI LA PENSIONE…
IL SANTO…?
RICHARD
POI, IL MESSAGGIO DIVINO
@LUIS
YOU’VE GOT MAIL
DA DOVE VIENE LUIS?
“UTENTE ANONIMO”
COME HA TROVATO ORIENT…?
PERCHE’ LO HA SCELTO…?
COME SI DIVENTA UTENTE?
▸ Conferenze
▸ Community on line
▸ Meetup
▸ …
▸ O tuo malgrado, Il telefono, il router, il frigorifero, il
tostapane
▸ Sei gia’ un po’ Luis, deal with it!
PERO’ LUI L’HA SCELTO…
PERCHE’ PROPRIO ORIENT?
▸ Feature
▸ Adoption
▸ Reputazione
▸ Licenza
▸ MIT
▸ Apache 2 *
▸ GPL / dual license
SE QUEL SW ENTRA NELLA TUA
ARCHITETTURA, IL MAINTAINER
DI FATTO LAVORERA’ PER TE
FAGLI UN COLLOQUIO:
- QUANTO E’ BRAVO?
- QUANTO COSTA?
- QUANTO E’ AFFIDABILE?
NON FARE IL VAGO, LE LICENZE
ESISTONO, ANCHE SE NESSUNO
TI CONTROLLA!
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
ACCERTATI CHE IL MAINTAINER
NON SIA TROPPO SUSCETTIBILE
LEFTPAD?
CHI SI RICORDA LA
STORIA DI
NON E’ MAI STATO
RILASCIATO
REISERFS
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
▸ Accertati che il maintainer non sia un potenziale assassino
SI, MA TANTO SE QUALCOSA VA
MALE, HO SEMPRE IL CODICE…
BULLSHIT!!!
TORNIAMO A LUIS
LUIS UN GIORNO HA UN
PROBLEMA
DEVE CHIEDERE AIUTO
I MODI DI CHIEDERE AIUTO (NUOVE FEATURE)
▸ “product xxx sucks” sull’issue tracker
I MODI DI CHIEDERE AIUTO (NUOVE FEATURE)
▸ “product xxx sucks” sull’issue tracker, Twitter,
StackOverflow, Linkedin, il tuo blog, sui muri col
pennarello
I MODI DI CHIEDERE AIUTO (NUOVE FEATURE)
▸ “product xxx sucks” sull’issue tracker, Twitter,
StackOverflow, Linkedin, il tuo blog, sui muri col
pennarello
▸ “it’s unacceptable that your product does not support xxx”
I MODI DI CHIEDERE AIUTO (NUOVE FEATURE)
▸ “product xxx sucks” sull’issue tracker, Twitter,
StackOverflow, Linkedin, il tuo blog, sui muri col
pennarello
▸ “it’s unacceptable that your product does not support xxx”
▸ “I don’t want XXX, for me YYY is enough”
I MODI DI CHIEDERE AIUTO (NUOVE FEATURE)
▸ “product xxx sucks” sull’issue tracker, Twitter,
StackOverflow, Linkedin, il tuo blog, sui muri col
pennarello
▸ “it’s unacceptable that your product does not support xxx”
▸ “I don’t want XXX, for me YYY is enough”
▸ “Do you plan to implement XXX?”
I MODI DI CHIEDERE AIUTO (NUOVE FEATURE)
▸ “product xxx sucks” sull’issue tracker, Twitter,
StackOverflow, Linkedin, il tuo blog, sui muri col
pennarello
▸ “it’s unacceptable that your product does not support xxx”
▸ “I don’t want XXX, for me YYY is enough”
▸ “Do you plan to implement XXX?”
▸ Pull Request!
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
▸ Accertati che il maintainer non sia un potenziale assassino
▸ Se proprio devi insultare il prodotto, fallo bene
I MODI DI CHIEDERE AIUTO (BUG)
▸ “Product XXX sucks because of bug YYY”
I MODI DI CHIEDERE AIUTO (BUG)
▸ “Product XXX sucks because of bug YYY”
▸ “I have a bug on XXX feature, can you please fix it?”
I MODI DI CHIEDERE AIUTO (BUG)
▸ “Product XXX sucks because of bug YYY”
▸ “I have a bug on XXX feature, can you please fix it?”
▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you
please fix it?”
I MODI DI CHIEDERE AIUTO (BUG)
▸ “Product XXX sucks because of bug YYY”
▸ “I have a bug on XXX feature, can you please fix it?”
▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you
please fix it?”
▸ “I have a bug, you can reproduce it by…” (quando ero
piccolo, mio papa’ mi ha comprato un Commodore 64…)
I MODI DI CHIEDERE AIUTO (BUG)
▸ “Product XXX sucks because of bug YYY”
▸ “I have a bug on XXX feature, can you please fix it?”
▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you
please fix it?”
▸ “I have a bug, you can reproduce it by…” (quando ero
piccolo, mio papa’ mi ha comprato un Commodore 64…)
▸ “Here is a piece of code to reproduce the problem (!!!)
I MODI DI CHIEDERE AIUTO (BUG)
▸ “Product XXX sucks because of bug YYY”
▸ “I have a bug on XXX feature, can you please fix it?”
▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you please
fix it?”
▸ “I have a bug, you can reproduce it by…” (quando ero piccolo,
mio papa’ mi ha comprato un Commodore 64…)
▸ “Here is a piece of code to reproduce the problem”
▸ “Here is a TEST CASE to reproduce the problem” (PR!!!)
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
▸ Accertati che il maintainer non sia un potenziale assassino
▸ Se proprio devi insultare il prodotto, fallo bene
▸ Scrivere un test case per dimostrare il tuo problema non ti
farà diventare cieco
LUIS STA PASSANDO AL LATO
OSCURO
STA DIVENTANDO UN
CONTRIBUTOR
IL CONTRIBUTOR
▸ Tweet, blog post, meet up
▸ Dare una mano agli utenti della community
▸ Scrivere documentazione!!!
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
▸ Accertati che il maintainer non sia un potenziale assassino
▸ Se proprio devi insultare il prodotto, fallo bene
▸ Open Source is not (only) about code
IL CONTRIBUTOR
▸ Tweet, blog post, meet up
▸ Dare una mano agli utenti della community
▸ Scrivere documentazione!!!
▸ La famigerata PULL REQUEST
LA PULL REQUEST / CODE CONTRIBUTION
▸ Una nuova feature
LA PULL REQUEST
▸ Una nuova feature
▸ Una fix
LA PULL REQUEST / CODE CONTRIBUTION
LA PULL REQUEST
▸ Una nuova feature
▸ Una fix
▸ Un test case
LA PULL REQUEST / CODE CONTRIBUTION
LA PULL REQUEST
▸ Una nuova feature
▸ Una fix
▸ Un test case
▸ Docs
LA PULL REQUEST / CODE CONTRIBUTION
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
▸ Accertati che il maintainer non sia un potenziale assassino
▸ Se proprio devi insultare il prodotto, fallo bene
▸ Scrivere un test case per dimostrare il tuo problema non ti
farà diventare cieco
▸ Vuoi dare una mano? Fatti una domanda: sei sicuro che ci
hai capito qualcosa?
SI, MA CHI C’E’ DALL’ALTRO
LATO?
IL COMMITTER, CHI E’?
LUIS PUO’ DIVENTARE UN
COMMITTER?
IL COMMITTER
▸ Può sfasciare tutto senza chiedere il permesso
IL COMMITTER
▸ Può sfasciare tutto senza chiedere il permesso
▸ Pero’ poi tocca a lui rimettere a posto
IL COMMITTER
▸ Può sfasciare tutto senza chiedere il permesso
▸ Pero’ poi tocca a lui rimettere a posto
▸ E tocca a lui pure rimettere a posto i danni degli altri
LE REGOLE
▸ Scegli la licenza giusta (e magari rispettala…)
▸ Accertati che il maintainer non sia un potenziale assassino
▸ Se proprio devi insultare il prodotto, fallo bene
▸ Scrivere un test case per dimostrare il tuo problema non ti farà
diventare cieco
▸ Vuoi dare una mano? Fatti una domanda: sei sicuro che ci hai
capito qualcosa?
▸ Abbi pieta’ dei committer
IL COMMITTER
▸ Può sfasciare tutto senza chiedere il permesso
▸ Pero’ poi tocca a lui rimettere a posto
▸ E tocca a lui pure rimettere a posto i danni degli altri
▸ Si diventa committer quando si guadagna la fiducia degli
owner / maintainer
ALLORA LUIS, FRA QUALCHE
ANNO, SARA’ UN COMMITTER…
E SE GLI OWNER NON
VOGLIONO?
FORK!
FORK
▸ Per fare una pull request
FORK
▸ Per fare una pull request
▸ Per resuscitare un progetto morto
FORK
▸ Per fare una pull request
▸ Per resuscitare un progetto morto
▸ Fork ostile, in polemica con il main branch
OK, ADESSO SEI TU IL CAPO.
WHAT’S NEXT?
GLI ONERI DELL’OWNER
▸ Dare la linea
▸ Accertarsi che le nuove feature siano in linea
▸ Coordinare i committer
▸ Vigilare sulla qualità del progetto
▸ Impegnarsi a dare visibilità al progetto
▸ Far crescere la community
E IL CODICE…?
SI, ADESSO PUOI SCRIVERE
QUELLO CHE TI PARE!
MA DI FATTO LO FAI MOLTO
MENO
(CON QUALCHE ECCEZIONE ILLUSTRE)
OK, NUOVO PROGETTO, FROM
SCRATCH!!!!
ADESSO PUOI FARLO, HAI
L’ESPERIENZA:
HAI IMPARATO A LEGGERE IL
CODICE DEGLI ALTRI
HAI MIGLIORATO LE TUE SKILL DI
CODER, GRAZIE AL CODICE
DEGLI ALTRI
HAI IMPARATO COSA SIGNIFICA
COLLABORARE IN UN PROGETTO
APERTO
HAI ALLENATO LA PAZIENZA
CHE COSA TI ASPETTA
▸ Idea != Risultato
CHE COSA TI ASPETTA
▸ Idea != Risultato
▸ GitHub != Open Source
CHE COSA TI ASPETTA
▸ Idea != Risultato
▸ GitHub != Open Source
▸ ti toccherà scrivere i docs
▸ far crescere la community (code of conduct)
▸ trovare i primi utenti
CHE COSA TI ASPETTA
▸ Idea != Risultato
▸ GitHub != Open Source
▸ ti toccherà scrivere i docs
▸ far crescere la community (code of conduct)
▸ trovare i primi utenti
▸ Trovare un modello di business
CHE COSA TI ASPETTA
▸ Idea != Risultato
▸ GitHub != Open Source
▸ ti toccherà scrivere i docs
▸ far crescere la community (code of conduct)
▸ trovare i primi utenti
▸ Trovare un modello di business
▸ All’inizio sei solo
MA COMUNQUE
▸ Potrai di nuovo scrivere tanto codice
MA COMUNQUE
▸ Potrai di nuovo scrivere tanto codice
▸ Sei tu che decidi cosa e come
MA COMUNQUE
▸ Potrai di nuovo scrivere tanto codice
▸ Sei tu che decidi cosa e come
▸ Potresti anche diventare ricco con il tuo progetto (ma non
ci contare troppo)
NON AVRAI CONQUISTATO IL
MONDO
MA DA LI’ IN AVANTI, PER TUTTI
SARAI
IL
CREATORE
LUIGI DELL’AQUILA
@ldellaquila
http://www.orientdb.com
https://opensource.guide

More Related Content

More from Codemotion

More from Codemotion (20)

Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
 
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
Mete Atamel - Serverless with Knative - Codemotion Amsterdam 2019
 
Rahul Shetty - Corporate relocation prediction - Codemotion Amsterdam 2019
Rahul Shetty - Corporate relocation prediction - Codemotion Amsterdam 2019Rahul Shetty - Corporate relocation prediction - Codemotion Amsterdam 2019
Rahul Shetty - Corporate relocation prediction - Codemotion Amsterdam 2019
 

Galateo semi-serio dell'Open Source - Luigi Dell' Aquila - Codemotion Rome 2017

  • 1. GALATEO SEMISERIO DELL’OPEN SOURCE (OVVERO, COME CONQUISTARE IL MONDO CON IL LAVORO DEGLI ALTRI) LUIGI DELL’AQUILA @ldellaquila
  • 3. PER IL VIAGGIO MI SERVE UNO SPIRITO GUIDA…
  • 6. NO… NON BASTA… DOBBIAMO CONQUISTARE IL MONDO, MICA GUADAGNARCI LA PENSIONE…
  • 10. DA DOVE VIENE LUIS?
  • 11. “UTENTE ANONIMO” COME HA TROVATO ORIENT…? PERCHE’ LO HA SCELTO…?
  • 12. COME SI DIVENTA UTENTE? ▸ Conferenze ▸ Community on line ▸ Meetup ▸ … ▸ O tuo malgrado, Il telefono, il router, il frigorifero, il tostapane ▸ Sei gia’ un po’ Luis, deal with it!
  • 13. PERO’ LUI L’HA SCELTO…
  • 14. PERCHE’ PROPRIO ORIENT? ▸ Feature ▸ Adoption ▸ Reputazione ▸ Licenza ▸ MIT ▸ Apache 2 * ▸ GPL / dual license
  • 15. SE QUEL SW ENTRA NELLA TUA ARCHITETTURA, IL MAINTAINER DI FATTO LAVORERA’ PER TE
  • 16. FAGLI UN COLLOQUIO: - QUANTO E’ BRAVO? - QUANTO COSTA? - QUANTO E’ AFFIDABILE?
  • 17. NON FARE IL VAGO, LE LICENZE ESISTONO, ANCHE SE NESSUNO TI CONTROLLA!
  • 18. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…)
  • 19. ACCERTATI CHE IL MAINTAINER NON SIA TROPPO SUSCETTIBILE
  • 20. LEFTPAD? CHI SI RICORDA LA STORIA DI
  • 21. NON E’ MAI STATO RILASCIATO REISERFS
  • 22. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…) ▸ Accertati che il maintainer non sia un potenziale assassino
  • 23. SI, MA TANTO SE QUALCOSA VA MALE, HO SEMPRE IL CODICE…
  • 26.
  • 27. LUIS UN GIORNO HA UN PROBLEMA
  • 29. I MODI DI CHIEDERE AIUTO (NUOVE FEATURE) ▸ “product xxx sucks” sull’issue tracker
  • 30. I MODI DI CHIEDERE AIUTO (NUOVE FEATURE) ▸ “product xxx sucks” sull’issue tracker, Twitter, StackOverflow, Linkedin, il tuo blog, sui muri col pennarello
  • 31. I MODI DI CHIEDERE AIUTO (NUOVE FEATURE) ▸ “product xxx sucks” sull’issue tracker, Twitter, StackOverflow, Linkedin, il tuo blog, sui muri col pennarello ▸ “it’s unacceptable that your product does not support xxx”
  • 32. I MODI DI CHIEDERE AIUTO (NUOVE FEATURE) ▸ “product xxx sucks” sull’issue tracker, Twitter, StackOverflow, Linkedin, il tuo blog, sui muri col pennarello ▸ “it’s unacceptable that your product does not support xxx” ▸ “I don’t want XXX, for me YYY is enough”
  • 33.
  • 34. I MODI DI CHIEDERE AIUTO (NUOVE FEATURE) ▸ “product xxx sucks” sull’issue tracker, Twitter, StackOverflow, Linkedin, il tuo blog, sui muri col pennarello ▸ “it’s unacceptable that your product does not support xxx” ▸ “I don’t want XXX, for me YYY is enough” ▸ “Do you plan to implement XXX?”
  • 35. I MODI DI CHIEDERE AIUTO (NUOVE FEATURE) ▸ “product xxx sucks” sull’issue tracker, Twitter, StackOverflow, Linkedin, il tuo blog, sui muri col pennarello ▸ “it’s unacceptable that your product does not support xxx” ▸ “I don’t want XXX, for me YYY is enough” ▸ “Do you plan to implement XXX?” ▸ Pull Request!
  • 36. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…) ▸ Accertati che il maintainer non sia un potenziale assassino ▸ Se proprio devi insultare il prodotto, fallo bene
  • 37. I MODI DI CHIEDERE AIUTO (BUG) ▸ “Product XXX sucks because of bug YYY”
  • 38. I MODI DI CHIEDERE AIUTO (BUG) ▸ “Product XXX sucks because of bug YYY” ▸ “I have a bug on XXX feature, can you please fix it?”
  • 39. I MODI DI CHIEDERE AIUTO (BUG) ▸ “Product XXX sucks because of bug YYY” ▸ “I have a bug on XXX feature, can you please fix it?” ▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you please fix it?”
  • 40. I MODI DI CHIEDERE AIUTO (BUG) ▸ “Product XXX sucks because of bug YYY” ▸ “I have a bug on XXX feature, can you please fix it?” ▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you please fix it?” ▸ “I have a bug, you can reproduce it by…” (quando ero piccolo, mio papa’ mi ha comprato un Commodore 64…)
  • 41. I MODI DI CHIEDERE AIUTO (BUG) ▸ “Product XXX sucks because of bug YYY” ▸ “I have a bug on XXX feature, can you please fix it?” ▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you please fix it?” ▸ “I have a bug, you can reproduce it by…” (quando ero piccolo, mio papa’ mi ha comprato un Commodore 64…) ▸ “Here is a piece of code to reproduce the problem (!!!)
  • 42. I MODI DI CHIEDERE AIUTO (BUG) ▸ “Product XXX sucks because of bug YYY” ▸ “I have a bug on XXX feature, can you please fix it?” ▸ “I’m using feature XXX, I expect YYY, I get ZZZ, can you please fix it?” ▸ “I have a bug, you can reproduce it by…” (quando ero piccolo, mio papa’ mi ha comprato un Commodore 64…) ▸ “Here is a piece of code to reproduce the problem” ▸ “Here is a TEST CASE to reproduce the problem” (PR!!!)
  • 43. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…) ▸ Accertati che il maintainer non sia un potenziale assassino ▸ Se proprio devi insultare il prodotto, fallo bene ▸ Scrivere un test case per dimostrare il tuo problema non ti farà diventare cieco
  • 44. LUIS STA PASSANDO AL LATO OSCURO
  • 46. IL CONTRIBUTOR ▸ Tweet, blog post, meet up ▸ Dare una mano agli utenti della community ▸ Scrivere documentazione!!!
  • 47. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…) ▸ Accertati che il maintainer non sia un potenziale assassino ▸ Se proprio devi insultare il prodotto, fallo bene ▸ Open Source is not (only) about code
  • 48. IL CONTRIBUTOR ▸ Tweet, blog post, meet up ▸ Dare una mano agli utenti della community ▸ Scrivere documentazione!!! ▸ La famigerata PULL REQUEST
  • 49. LA PULL REQUEST / CODE CONTRIBUTION ▸ Una nuova feature
  • 50.
  • 51. LA PULL REQUEST ▸ Una nuova feature ▸ Una fix LA PULL REQUEST / CODE CONTRIBUTION
  • 52.
  • 53. LA PULL REQUEST ▸ Una nuova feature ▸ Una fix ▸ Un test case LA PULL REQUEST / CODE CONTRIBUTION
  • 54.
  • 55. LA PULL REQUEST ▸ Una nuova feature ▸ Una fix ▸ Un test case ▸ Docs LA PULL REQUEST / CODE CONTRIBUTION
  • 56.
  • 57. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…) ▸ Accertati che il maintainer non sia un potenziale assassino ▸ Se proprio devi insultare il prodotto, fallo bene ▸ Scrivere un test case per dimostrare il tuo problema non ti farà diventare cieco ▸ Vuoi dare una mano? Fatti una domanda: sei sicuro che ci hai capito qualcosa?
  • 58. SI, MA CHI C’E’ DALL’ALTRO LATO?
  • 59. IL COMMITTER, CHI E’? LUIS PUO’ DIVENTARE UN COMMITTER?
  • 60. IL COMMITTER ▸ Può sfasciare tutto senza chiedere il permesso
  • 61. IL COMMITTER ▸ Può sfasciare tutto senza chiedere il permesso ▸ Pero’ poi tocca a lui rimettere a posto
  • 62. IL COMMITTER ▸ Può sfasciare tutto senza chiedere il permesso ▸ Pero’ poi tocca a lui rimettere a posto ▸ E tocca a lui pure rimettere a posto i danni degli altri
  • 63. LE REGOLE ▸ Scegli la licenza giusta (e magari rispettala…) ▸ Accertati che il maintainer non sia un potenziale assassino ▸ Se proprio devi insultare il prodotto, fallo bene ▸ Scrivere un test case per dimostrare il tuo problema non ti farà diventare cieco ▸ Vuoi dare una mano? Fatti una domanda: sei sicuro che ci hai capito qualcosa? ▸ Abbi pieta’ dei committer
  • 64. IL COMMITTER ▸ Può sfasciare tutto senza chiedere il permesso ▸ Pero’ poi tocca a lui rimettere a posto ▸ E tocca a lui pure rimettere a posto i danni degli altri ▸ Si diventa committer quando si guadagna la fiducia degli owner / maintainer
  • 65. ALLORA LUIS, FRA QUALCHE ANNO, SARA’ UN COMMITTER…
  • 66. E SE GLI OWNER NON VOGLIONO?
  • 67. FORK!
  • 68. FORK ▸ Per fare una pull request
  • 69. FORK ▸ Per fare una pull request ▸ Per resuscitare un progetto morto
  • 70. FORK ▸ Per fare una pull request ▸ Per resuscitare un progetto morto ▸ Fork ostile, in polemica con il main branch
  • 71. OK, ADESSO SEI TU IL CAPO. WHAT’S NEXT?
  • 72. GLI ONERI DELL’OWNER ▸ Dare la linea ▸ Accertarsi che le nuove feature siano in linea ▸ Coordinare i committer ▸ Vigilare sulla qualità del progetto ▸ Impegnarsi a dare visibilità al progetto ▸ Far crescere la community
  • 74. SI, ADESSO PUOI SCRIVERE QUELLO CHE TI PARE!
  • 75. MA DI FATTO LO FAI MOLTO MENO (CON QUALCHE ECCEZIONE ILLUSTRE)
  • 76.
  • 77. OK, NUOVO PROGETTO, FROM SCRATCH!!!!
  • 78. ADESSO PUOI FARLO, HAI L’ESPERIENZA:
  • 79. HAI IMPARATO A LEGGERE IL CODICE DEGLI ALTRI
  • 80. HAI MIGLIORATO LE TUE SKILL DI CODER, GRAZIE AL CODICE DEGLI ALTRI
  • 81. HAI IMPARATO COSA SIGNIFICA COLLABORARE IN UN PROGETTO APERTO
  • 82. HAI ALLENATO LA PAZIENZA
  • 83. CHE COSA TI ASPETTA ▸ Idea != Risultato
  • 84. CHE COSA TI ASPETTA ▸ Idea != Risultato ▸ GitHub != Open Source
  • 85. CHE COSA TI ASPETTA ▸ Idea != Risultato ▸ GitHub != Open Source ▸ ti toccherà scrivere i docs ▸ far crescere la community (code of conduct) ▸ trovare i primi utenti
  • 86. CHE COSA TI ASPETTA ▸ Idea != Risultato ▸ GitHub != Open Source ▸ ti toccherà scrivere i docs ▸ far crescere la community (code of conduct) ▸ trovare i primi utenti ▸ Trovare un modello di business
  • 87. CHE COSA TI ASPETTA ▸ Idea != Risultato ▸ GitHub != Open Source ▸ ti toccherà scrivere i docs ▸ far crescere la community (code of conduct) ▸ trovare i primi utenti ▸ Trovare un modello di business ▸ All’inizio sei solo
  • 88. MA COMUNQUE ▸ Potrai di nuovo scrivere tanto codice
  • 89. MA COMUNQUE ▸ Potrai di nuovo scrivere tanto codice ▸ Sei tu che decidi cosa e come
  • 90. MA COMUNQUE ▸ Potrai di nuovo scrivere tanto codice ▸ Sei tu che decidi cosa e come ▸ Potresti anche diventare ricco con il tuo progetto (ma non ci contare troppo)
  • 92. MA DA LI’ IN AVANTI, PER TUTTI SARAI