Post on 05-Apr-2017
transcript
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
@LUISYOU’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