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

Post on 05-Apr-2017

27 views 0 download

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

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