Social coding? Non solo open source!

Social coding? Non solo open source!

 

Il “social coding” ha avuto ampia diffusione negli ultimi decenni grazie all’“open source”. Senza andare troppo indietro nel tempo – anche se potremmo citare progetti pre-internet come GNU, iniziato da Richard Stallman negli anni ’80, e lo sviluppo collaborativo di Linux da parte di Linus Torvalds nel 1991 –, è stata l’ascesa di piattaforme di “git hosting” come SourceForge, lanciata nel 1999, e GitHub nel 2008 (acquisita poi da Microsoft nel 2018) a segnare e decretarne lo sviluppo e il successo odierno.

Questa escalation è stata talmente coordinata da portare molte persone a ritenere i due concetti “visceralmente legati”, quasi fossero sinonimi. Certamente social coding e open source hanno molti aspetti in comune, tuttavia è bene ricordare che sono cose ben diverse. Proviamo a fare chiarezza.

  • Per open source (codice aperto) intendiamo un modello di sviluppo del software in cui il codice sorgente è reso disponibile al pubblico in generale in modo che chiunque possa visualizzarlo, utilizzarlo, modificarlo e distribuirlo. In un progetto open source il codice sorgente è aperto e libero da restrizioni di proprietà intellettuale come i diritti d’autore, e spesso è condiviso sotto una licenza specifica che ne regola l’uso e la distribuzione.
  • Per social coding (programmazione sociale) intendiamo invece la pratica di sviluppare software in modo collaborativo, coinvolgendo una comunità di programmatori e sviluppatori. Questa pratica si basa sull’idea che il codice sorgente di un progetto software sia accessibile a tutta la community e che gli sviluppatori possano contribuire, discutere e collaborare alla sua evoluzione.

 

Vecchio e nuovo approccio insieme? Si può fare

Anche se di fatto la maggior parte dei progetti realizzati in social coding è open source, anche nei progetti software chiusi o proprietari può essere adottato il social coding!

Ad esempio, un’azienda può utilizzare piattaforme di social coding interne per consentire ai propri sviluppatori di collaborare in maniera più efficace all’interno dell’organizzazione, sfruttando così parte degli indubbi vantaggi offerti da questa pratica, senza però rinunciare all’opportunità di “possedere” il codice sorgente di un progetto.

Ma quali sono i vantaggi del social coding in ambito privato e aziendale? Eccone alcuni:

  • trasparenza: le modifiche sono documentate e visibili, favorendo la revisione aperta e la sicurezza del software
  • comunità: coinvolge una comunità di sviluppatori e utenti che contribuiscono al miglioramento del software;
  • innovazione: gli sviluppatori collaborano in modo aperto per risolvere problemi, aumentare le prestazioni e aggiungere nuove funzionalità al software.

Inoltre il social coding, quando applicato a progetti open source, ha altri vantaggi quali:

  • collaborazione aperta: il codice sorgente è accessibile pubblicamente e possono contribuire sviluppatori da tutto il mondo;
  • comunità più ampia o globale: coinvolge una comunità di sviluppatori e utenti teoricamente illimitata, che favorisce un ulteriore miglioramento del software.

Vantaggi però che, nel caso di un progetto aziendale e a seconda dei suoi obiettivi, potrebbero non rivelarsi affatto tali. Infatti, il social coding applicato a una realtà privata, che mantiene i diritti sul codice, presenta le caratteristiche del modello di sviluppo tradizionale o chiuso, tra cui:

  • codice proprietario: mantenuto in modo privato, non è accessibile all’esterno, e diventa così un asset aziendale con un valore teoricamente monetizzabile;
  • segretezza: le modifiche possono essere conosciute solo dall’organizzazione che detiene il codice, limitandone la visibilità e la revisione;
  • sviluppo interno: le modifiche e l’evoluzione del software sono gestite per lo più internamente, senza coinvolgere una comunità esterna;
  • licenze proprietarie: spesso il software è soggetto a licenze proprietarie che ne limitano l’uso e la distribuzione;
  • innovazione interna: le innovazioni sono principalmente frutto del lavoro di un team interno di sviluppatori e ingegneri.

 

Social coding privato: gli strumenti

Ma come può concretizzarsi questa soluzione a metà strada tra il coding tradizionale e questo modello che ha avuto tanto successo grazie a internet?

Le piattaforme più popolari di social coding come GitHub o GitLab, utilizzate in maggioranza per progetti open source, possono essere usate anche per progetti chiusi o privati grazie a strumenti appositi di collaborazione, tracciamento delle versioni e gestione delle modifiche.

Queste web app sono utilissime anche per progetti aziendali, offrono infatti funzionalità simili a quelle delle piattaforme pubbliche, ma con un focus sulla privacy e sulla gestione interna dei lavori. Piattaforme che consentono alle aziende di ospitare e gestire in cloud il proprio codice sorgente, collaborare internamente e mantenere il controllo sui dati, ma allo stesso tempo aprendosi al nuovo, non rimanendo più trincerate all’interno della propria organizzazione e sfruttando tutti i vantaggi dello smart working.

Ecco alcune delle principali piattaforme di social coding che possono essere utilizzate anche a questo scopo:

  • GitHub Enterprise: il famoso GitHub offre GitHub Enterprise, che è una versione autogestita della sua piattaforma. Le aziende possono installarla e configurarla nelle proprie reti o nei propri cloud privati. Fornisce strumenti avanzati per la gestione del codice e della collaborazione;
  • GitLab Self-Managed: GitLab, la maggiore alternativa a GitHub, oltre alla versione open offre una versione self-hosted che permette alle aziende di installare e gestire il proprio server GitLab all’interno della loro infrastruttura. Questa opzione consente un elevato grado di personalizzazione e controllo;
  • Bitbucket Server: Bitbucket di Atlassian offre una soluzione molto interessante, precedentemente nota come Stash. Si tratta di un’opzione autogestita per la collaborazione e la gestione del codice sorgente all’interno delle organizzazioni, con funzionalità avanzate di gestione del repository Git e Mercurial;
  • Phabricator: un’applicazione open source che consente la gestione di repository Git, Mercurial e Subversion. Può essere installata internamente e offre una serie di strumenti per il social coding, la gestione dei task, la revisione del codice e altro ancora;
  • Gitea: un’applicazione open source leggera che permette di ospitare repository Git in modo privato. Può essere installata internamente e offre una semplice gestione dei repository e delle collaborazioni;
  • GitBucket: un’altra alternativa open source per l’hosting privato di repository Git. Offre un’interfaccia simile a GitHub ed è possibile installarla all’interno della propria infrastruttura;
  • Azure DevOps Server: precedentemente noto come Team Foundation Server, è proposto da Microsoft come soluzione autonoma per la gestione del ciclo di vita del software, che include la gestione dei repository Git o Team Foundation Version Control (TFVC).

Abbiamo chiesto al nostro CEO, ing. Massimiliano Aiello (di cui puoi leggere un'intervista qui), cosa pensa di questo approccio alla programmazione che continua a diffondersi riscuotendo successo. Gli abbiamo chiesto inoltre quale soluzione ha adottato ESSE I per rendere la cooperazione tra i suoi developer il più possibile efficace e coesa. Ecco cosa ci ha risposto.

Per noi lavorare insieme è fondamentale perché consente di combinare le competenze e le conoscenze di più individui per creare un software migliore e più completo, che tiene conto del punto di vista di tanti e che per questo porta a risultati che i nostri clienti apprezzano di più.

Gli strumenti di social coding che usiamo in ESSE I sono principalmente due: Azure DevOps Services e Azure DevOps Server. Si tratta di piattaforme di software intelligence che offrono le stesse funzionalità e gli stessi servizi essenziali, ma con alcune differenze fondamentali.

Azure DevOps Services è la versione cloud e offre un servizio ospitato scalabile, affidabile e globale, supportato da un contratto di servizio del 99,9%. Permette, inoltre, di configurare rapidamente il tuo ambiente di sviluppo, accedere immediatamente alle funzionalità più recenti, migliorare la connettività con i siti remoti e ridurre i costi operativi. Infine, Azure DevOps Services supporta l’integrazione con i repository di GitHub.com, inclusa la versione server dello strumento GitHub Enterprise che hai citato.

Altra soluzione che offriamo è Azure DevOps Server, questa volta nella versione locale che si basa su un back-end SQL Server. Chi sceglie questa versione ha solitamente bisogno che i dati rimangano all’interno della rete e disponibili quando si vuole accedere a SQL Server reporting services. Azure DevOps Server è davvero molto potente: permette di avere il controllo totale sui dati e sulla sicurezza, nonché di personalizzare il processo di lavoro tramite l’importazione o l’esportazione di file XML. In Italia questa seconda soluzione viene adottata solitamente dai nostri clienti legati alla Pubblica Amministrazione.

 

Concludendo

Anche noi, pur sviluppando soprattutto codice proprietario, pensiamo che quella del social coding sia la strada giusta da seguire perché ci dà modo di esercitare lo spirito collaborativo e all’insegna dell’armonia con il quale vogliamo distinguerci dalle altre software house. Riteniamo che ispirare questo valore, insieme alla condivisione della conoscenza, sia cruciale per l’ambiente a cui apparteniamo.

Non è un caso se da qualche giorno, oltre al blog e ai social, abbiamo scelto di veicolare consapevolezza sui temi legati allo sviluppo anche sulla piattaforma di social coding GitHub, che stiamo iniziando a utilizzare con l’obiettivo di regalare script a scopo didattico.

Se ti va di rimanere in contatto anche su questa importante piattaforma ti aspettiamo su https://github.com/esse-i-dev

(foto: Pexels)

Newsletter

Desidero iscrivermi alla newsletter periodica del blog con articoli informativi su software, soluzioni ITC e novità dal mondo ESSE I. Potrai cancellarti quando lo desideri nel pieno rispetto della Privacy Policy .

Codice Anti Spam

Riportare nel box sottostante "Codice di verifica", il codice alfanumerico che trovi a fianco

NEWSLETTER

Iscriviti alla newsletter periodica del blog con articoli informativi su software, soluzioni ITC e novità dal mondo ESSE I.

Non registreremo la tua email in alcun modo fino a quando non avrai accettato le condizioni nel form successivo.

RIMANIAMO IN CONTATTO
Vai al FORM
Seguici sui SOCIAL