Cumu creà un prughjettu open source

Cumu creà un prughjettu open sourceUn festival di l'informatica serà fattu in San Petruburgu sta settimana TechTrain. Unu di i parlanti serà Richard Stallman. Embox participa ancu à u festival, è di sicuru ùn pudemu micca ignurà u tema di u software liberu. Hè per quessa chì unu di i nostri rapporti hè chjamatu "Da l'artigianatu di i studienti à i prughjetti opensource. Esperienza di Embbox". Serà dedicatu à a storia di u sviluppu di Embbox cum'è un prughjettu open source. In questu articulu vogliu parlà di l'idee principali chì, in my opinion, influenzanu u sviluppu di prughjetti opensource. L'articulu, cum'è u rapportu, hè basatu annantu à l'esperienza persunale.

Cuminciamu cù qualcosa simplice, cù a definizione di u termu opensource. Ovviamente, un prughjettu open source hè un prughjettu chì hà una di e licenze chì permette l'accessu à u codice fonte di u prugettu. Inoltre, un prughjettu apertu significa chì i sviluppatori di terzu pò fà cambiamenti. Vale à dì, se qualchì cumpagnia o sviluppatore publica u codice di u so pruduttu, parzialmente o cumpletamente, questu ùn face micca ancu stu pruduttu un prughjettu opensource. È, finarmenti, ogni attività di u prugettu deve purtà à qualchi tipu di risultatu, è l'apertura di u prugettu implica chì stu risultatu hè usatu micca solu da i sviluppatori stessi.

Ùn toccaremu micca i prublemi di licenze aperte. Questu hè un tema troppu grande è cumplessu chì richiede una investigazione approfondita. Molti boni articuli è materiali sò stati scritti nantu à questu tema. Ma siccomu ùn sò micca un espertu in u campu di u copyright, solu diceraghju chì a licenza deve risponde à i scopi di u prugettu. Per esempiu, per Embox l'scelta di una licenza BSD invece di una licenza GPL ùn era micca accidintali.

U fattu chì un prughjettu open source deve furnisce a capacità di fà cambiamenti è influenzà u sviluppu di u prughjettu open source implica chì u prugettu hè distribuitu. A gestione, mantene l'integrità è u rendiment hè assai più difficiuli cumparatu à un prughjettu cù una gestione centralizata. Una quistione ragiunate sorge: perchè i prughjetti aperti in tuttu? A risposta si trova in l'area di fattibilità cummerciale; per una certa classa di prughjetti, i benefici di stu approcciu superanu i costi. Questu hè, ùn hè micca adattatu per tutti i prughjetti è un accostu apertu hè generalmente accettatu. Per esempiu, hè difficiule di imaginà u sviluppu di un sistema di cuntrollu per una centrale elettrica o un aviò basatu annantu à un principiu apertu. No, sicuru, tali sistemi duveranu include moduli basati nantu à prughjetti aperti, perchè questu furnisce una quantità di vantaghji. Ma qualchissia deve esse rispunsevuli di u pruduttu finali. Ancu s'è u sistema hè cumpletamente basatu annantu à u codice di prughjetti aperti, u sviluppatore, avè imballatu tuttu in un sistema è fattu custruzzioni è paràmetri specifichi, essenzialmente chjude. U codice pò esse dispunibule publicamente.

Ci hè ancu assai benefizii per questi sistemi da creà o cuntribuisce à prughjetti open source. Cum'è l'aghju digià dettu, u codice di u sistema finale pò esse dispunibule publicamente. Perchè, perchè hè evidenti chì hè improbabile chì qualcunu hà da avè u stessu aereo per pruvà u sistema. Questu hè veru, ma pò esse ancu qualchissia chì vole cuntrollà certi rùbbriche di u codice, o, per esempiu, qualcunu pò scopre chì a biblioteca utilizata ùn hè micca cunfigurata bè.

Un benefiziu ancu più grande si prisenta se a cumpagnia attribuisce una parte basica di u sistema in un prughjettu separatu. Per esempiu, una biblioteca per sustene un tipu di protocolu di scambiu di dati. In questu casu, ancu s'ellu u protokollu hè specificu per un sughjettu di u sughjettu, pudete sparte i costi di mantene stu pezzu di u sistema cù altre cumpagnie di questa zona. Inoltre, i specialisti chì ponu studià stu pezzu di u sistema in u duminiu publicu necessitanu assai menu tempu per aduprà in modu efficace. È infine, separà un pezzu in una entità indipindente chì i sviluppatori di terzu utilizanu ci permette di fà sta parte megliu, perchè avemu bisognu di offre APIs efficaci, creà documentazioni, è ùn sò mancu parlà di migliurà a cobertura di teste.

Una cumpagnia pò riceve benefizii cummirciali senza creà prughjetti open-source; hè abbastanza per i so specialisti per participà à prughjetti di terze parti utilizati in a cumpagnia. Dopu tuttu, tutti i benefici restanu: l'impiegati cunnosci megliu u prughjettu, per quessa l'utilizanu in modu più efficace, a cumpagnia pò influenzà a direzzione di u sviluppu di u prugettu, è l'usu di codice prontu, debugged ovviamente riduce i costi di a cumpagnia.

I benefici di creà prughjetti opensource ùn finiscinu micca quì. Pigliemu un cumpunente cusì impurtante di l'affari cum'è u marketing. Per ellu, questu hè un sandbox assai bonu chì li permette di valutà in modu efficace e esigenze di u mercatu.

È sicuru, ùn devemu micca scurdatu chì un prughjettu opensource hè un modu efficace per dichjarà sè stessu cum'è un trasportatore di ogni specializazione. In certi casi, questu hè l'unicu modu per entra in u mercatu. Per esempiu, Embbox hà iniziatu cum'è un prughjettu per creà un RTOS. Ùn ci hè micca bisognu di spiegà chì ci sò assai cuncurrenti. Senza crià una cumunità, simpricimenti ùn avissimu avutu abbastanza risorse per portà u prugettu à l'utilizatori finali, vale à dì, per i sviluppatori di terzu per cumincià à aduprà u prugettu.

A cumunità hè chjave in un prughjettu opensource. Permette di riduce significativamente i costi di gestione di u prugettu, sviluppà è sustene u prugettu. Pudemu dì chì senza una cumunità ùn ci hè micca un prughjettu opensource à tutti.

Un saccu di materiale hè statu scrittu annantu à cumu creà è gestisce una cumunità di prughjettu open source. Per ùn cuntà fatti digià cunnisciuti, pruvaraghju à fucalizza nantu à l'esperienza di Embbox. Per esempiu, u prucessu di creà una cumunità hè un tema assai interessante. Vale à dì, parechji dicenu cumu gestisce una cumunità esistente, ma i mumenti di a so creazione sò qualchì volta trascurati, cunsiderendu questu un datu.

A regula principale quandu crea una cumunità di prughjettu opensource hè chì ùn ci sò micca regule. Vogliu dì chì ùn sò micca regule universali, cum'è ùn ci hè micca una bala d'argentu, solu perchè i prughjetti sò assai diffirenti. Hè improbabile chì pudete aduprà e stesse regule quandu crea una cumunità per una biblioteca di logging js è qualchì driver altamente specializatu. Inoltre, in diverse tappe di sviluppu di u prugettu (è dunque a cumunità), i reguli cambianu.

Embox hà iniziatu cum'è un prughjettu studiente perchè avia accessu à i studienti da u dipartimentu di prugrammazione di sistemi. In fatti, eramu entrati in qualchì altra cumunità. Pudemu interessà i participanti di sta cumunità, i studienti, in a bona pratica industriale in a so specialità, u travagliu scientificu in u campu di a prugrammazione di u sistema, i corsi è i diplomi. Questu hè, avemu seguitu una di e regule basiche di l'urganizazione di una cumunità: i membri di a cumunità devenu riceve qualcosa, è questu prezzu deve currisponde à a cuntribuzione di u participant.

U prossimu tappa per Embox era a ricerca di l'utilizatori di terzu. Hè assai impurtante per capisce chì l'utilizatori sò participanti cumpleti in a cumunità opensource. Di solitu ci sò più utilizatori chè sviluppatori. È per vulè diventà un cuntributore à un prughjettu, prima cumincianu à aduprà in un modu o un altru.

I primi utilizatori di Embox eranu u Dipartimentu di Cibernetica Teorica. Suggerenu di creà un firmware alternativu per Lego Mindstorm. E ancu s'elli eranu sempre utilizatori lucali (pudemu scuntrà cun elli in persona è discute ciò chì vulianu). Ma era sempre una sperienza assai bona. Per esempiu, avemu sviluppatu demo chì puderia esse dimustratu à l'altri, perchè i robots sò divertenti è attrae l'attenzione. In u risultatu, avemu avutu veramente utilizatori di terzu chì anu cuminciatu à dumandà ciò chì Embbox hè è cumu aduprà.

À questu stadiu, avemu avutu à pensà à a documentazione, à i mezi di cumunicazione cù l'utilizatori. No, sicuru, avemu pensatu à queste cose impurtanti prima, ma era prematuru è ùn hà micca datu un effettu pusitivu. L'effettu era piuttostu negativu. Lasciami dà un paru di esempi. Avemu usatu googlecode, chì a so wiki supportava u multilinguismo. Avemu creatu pagine in parechje lingue, micca solu l'inglese è u russu, in quale ùn pudemu micca cumunicà, ma ancu l'alemanu è u spagnolu. In u risultatu, pare assai ridiculu quandu hè dumandatu in queste lingue, ma ùn pudemu micca risponde à tuttu. O anu introduttu regule per scrive documentazioni è cummentarii, ma siccomu l'API hà cambiatu abbastanza spessu è significativamente, hè risultatu chì a nostra documentazione era obsoleta è era più ingannosa di ciò chì aiutava.

In u risultatu, tutti i nostri sforzi, ancu i sbagliati, anu purtatu à l'apparizione di l'utilizatori esterni. E ancu un cliente cummerciale apparsu chì vulia chì u so propiu RTOS sia sviluppatu per ellu. È l'avemu sviluppatu perchè avemu sperienza è qualchì travagliu di basi. Quì ci vole à parlà di i mumenti boni è di i cattivi. Cumincià cù i cattivi. Siccomu parechji sviluppatori eranu implicati in stu prughjettu nantu à una basa cummerciale, a cumunità era digià abbastanza inestabile è divisa, chì di sicuru ùn pudia micca affettà u sviluppu di u prugettu. Un fattore supplementu era chì a direzzione di u prugettu hè stata stabilita da un cliente cummerciale, è u so scopu ùn era micca u sviluppu di u prugettu. Almenu questu ùn era micca u scopu principale.

Per d 'altra banda, ci era una quantità di aspetti pusitivi. Avemu veramente utilizatori di terzu. Ùn era micca solu u cliente, ma ancu quelli per quale stu sistema era destinatu. A motivazione per participà à u prugettu hè aumentata. Dopu tuttu, se pudete ancu guadagnà soldi da un affari interessanti, hè sempre bellu. È u più impurtante, avemu intesu un desideriu da i clienti, chì in quellu tempu ci pareva pazzi, ma chì hè avà l'idea principale di Embox, vale à dì, à aduprà codice digià sviluppatu in u sistema. Avà l'idea principale di Embbox hè di utilizà u software Linux senza Linux. Questu hè, u principale aspettu pusitivu chì cuntribuisce à u sviluppu di u prugettu era a realizazione chì u prughjettu hè utilizatu da l'utilizatori di terzu, è duverebbe risolve alcuni di i so prublemi.

À quellu tempu, Embox avia digià andatu fora di u scopu di un prughjettu studiente. U principale fattore limitante in u sviluppu di u prugettu secondu u mudellu studiente hè a motivazione di i participanti. I studienti participanu mentre studianu, è quandu si graduate, ci deve esse una motivazione diversa. Se a motivazione ùn appare micca, u studiente si ferma solu di participà à u prugettu. S'è no pigghiamu in contu chì i studienti prima bisognu à esse furmatu, ci hè chì diventanu boni specialisti à u tempu di graduate, ma a so cuntribuzione à u prugettu, per via di inexperience, ùn hè micca assai grande.

In generale, andemu à u puntu principale chì ci permette di parlà di creà un prughjettu opensource - creà un pruduttu chì risolve i prublemi di i so utilizatori. Cumu l'aghju spiegatu sopra, a pruprietà principale di un prughjettu opensource hè a so cumunità. Inoltre, i membri di a cumunità sò principalmente utilizatori. Ma da induve venenu quandu ùn ci hè nunda à aduprà? Dunque, hè chì, cum'è cù un prughjettu non-opensource, avete bisognu di fucalizza nantu à a creazione di un MVP (prodottu minimu viable), è s'ellu interessa l'utilizatori, allora una cumunità appariscerà intornu à u prugettu. Sè vo site impegnatu in a creazione di una cumunità solu per mezu di PR di a cumunità, scrivendu un wiki in tutte e lingue di u mondu, o currettu git workflow in github, allora questu hè improbabile chì importa in i primi fasi di u prugettu. Di sicuru, in i stadi apprupriati, questi ùn sò micca solu impurtanti, ma ancu necessarii.

In cunclusioni, vogliu signalà cummentariu, in my opinion, riflettendu l'aspettattivi di l'utilizatori da un prughjettu opensource:

Pensu seriamente à cambià à questu OS (almenu pruvate. Sò attivamente perseguite è facenu cose cool).

PS On TechTrain Averemu finu à trè rapporti. Unu circa open source è dui circa incrustati (è unu hè praticu). À u stand, cunduceremu una master class nantu à a prugrammazione di microcontrollers chì utilizanu Embox. Cum'è di solitu, purteremu u hardware è vi permettenu di programà. Ci sarà ancu una ricerca è altre attività. Venite à u festival è u nostru stand, serà divertente.

Source: www.habr.com

Add a comment