Quando gratis costa troppo

Ossia, conviene scrivere software e regalarlo?

é Risposta: dipende. Ci sono molti sviluppatori e software house che lo regalano, alcuni addirittura con codice sorgente, mentre altri lo vendono chiuso e spesso con chiavi hardware da impedire di averne una copia anche da parte di chi ha acquistato il prodotto originale. In poche parole si va da un estremo ad un altro.

Prima di tutto, per chiarire le idee, occorre distinguere chi sviluppa software per professione, cioè, dove questa attività è la principale, se non l'unica, fonte di reddito, da chi sviluppa software per diletto mentre esercita una professione diversa da quella del programmatore per vivere.
In quest'ultimo caso, generalmente, il software non è di tipo professionale e senza grandi pretese ma spesso è utile perché risolve piccoli problemi pratici. Software del genere è, nella maggior parte dei casi, prodotto da insegnanti, ricercatori, studenti e liberi professionisti che di solito va regalato ma che nel tempo sarà sicuramente abbandonato.

In questo breve articolo, ci interessiamo solo di software professionale, prodotto da programmatori professionisti.

Comunque, mentre è comprensibile il fatto che il software possa essere venduto come qualsiasi altra merce o servizio, rimane del tutto, o quasi, incomprensibile la motivazione di regalarlo. Per qualcuno si tratta di una anomalia che va contro tutte le leggi del mercato, estrememente dannosa per alcune categorie ed è destinata, senz'altro, a scomparire perché è innaturale, a meno che non intervengano alcuni fattori come uno sponsor, un'associazione oppure la partecipazione di un'istituzione pubblica a sostenerla. In questo caso il software diventa una strategia e non più un prodotto e come tutte le strategie vincono solo a lungo termine.

Lo sviluppo del software rimane, tuttora, l'attività intellettuale che richiede maggior conoscenze e competenze. Infatti, è considerata la punta dell'high-tech e l'utilizzo del software in qualsiasi attività produttiva umana è in netto aumento. Da tempo ormai, sono stati costruiti robot in grado di sostituire l'uomo in molti settori ed alcuni robot sono, addirittura, capaci di costruire altri robot, ma, tuttora, non esiste nessun software in grado di scrivere software.

L'attività di scrivere software è tuttora, e chissà per quanto tempo rimarrà ancora, un'attività artigianale che consiste nel scrivere codice, carattere dopo carattere, da tastiera. E' sempre posibile automatizzare qualche compito, ma l'industrializzazione del software è ancora un remoto traguardo.

Ma se le cose stanno veramente così, perché un programmatore, o una software house, dovrebbe reagalare il proprio prodotto che ha costato anni di lavoro, di studio ed ingenti investimenti?

Ancora una vota la risposta è quella di prima: dipende. Ci sono diversi fattori che andiamo ad analizzare che, forse, giustifichino tale scelta.

Prima di tutto cerchiamo di classificare il software in due grandi categorie. La prima è quella del software di sistema e delle utility, la seconda, invece, è quella del software di produttività.

Il software di sistema è tutto il software necessario per poter utilizzare un computer, come, per esempio, il sistema operativo e tutti i programmi ad esso legati; mentre le utility le possiamo definire come programmi ausiliari che rendano la vita semplice a chi utilizza il computer come copiare o cercare un file...

Il software di produttività invece è costituito dalle applicazioni software che sono comunemente utilizzate nel lavoro o nello studio. Qui troviamo programmi di elaborazione testi, fogli elettronici, progettazione assistita da computer (CAD), programmi gestionale... Poi tra il software di produttività troviamo anche quelle di tipo "verticale", ossia quelle applicazioni che servono per risolvere un compito ben specifico. Un programma di calcolo del cemento armato, per esempio, è considerato un software verticale perché l'utente potrebbe essere facilmente individuato perché il campo è settoriale.

Generalmente, il software di sistema è gratuito, mentre quello di produttività è a pagamento, ma qui non mancano le eccezioni. I sistemi operativi UNIX like come Linux e FreeBSD sono gratuiti, mentre Windows e OS/2 sono a pagamento; Micorosoft Office è a pagamento mentre OpenOffice è gratuito... Quindi, non esiste, assolutamente, una regola generale ed ogni prodotto è un caso a sé.

Il fenomeno risulta invece più comprensibile se consideriamo solo il software di produttività. In linea di massima, possiamo dividire gli utenti di questo genere di software in due categorie. La prima è composta da professionsiti strettamente legati al mondo della programmazione, mentre la seconda è composta dai semplici utenti che, in generale, utilizzano il software giusto per migliorare il proprio lavoro e, molto spesso, non hanno nessuna connoscenza nella programmazione.

La categoria degli utenti, mentre non concepisce minimamente che il proprio lavoro non sia retribuito, le sembra quasi del tutto normale e naturale che il lavoro del programmatore non venga pagato. Basta andare a curiosare per esempio nei forum di discussione di alcuni professionisti per rendersene conto della loro continua ricerca di software gratuito. La colpa non è sicuramente la loro ed è del tutto naturale che tutti cerchino di risparmiare e che non esista una migliore convenienza di avere le cose gratuitamente.

La vera colpa, se la possiamo definire in questi termini, è di chi pensa di guadagnare danaro regalando il prodotto del proprio lavoro a persone che non si rendono minimamente conto della fatica, del sapere e degli investimenti dietro allo sviluppo del software.

Normalmente, regalare del software ai semplici utenti non porterà nessun vantaggio a chi lo sviluppa e, senz'altro, un'operazione del genere è fallimentare per chi la pratica. Per produrre il oftware servono risorse logistiche, umane, intellettuali, economiche e molto tempo che in questo caso non saranno mai pagate.

Il software regalato ma destinato alla prima categoria, ossia a sviluppatori, SysDBA e sistemisti, ha molta probabilità che venga migliorato ed esteso dagli utenti stessi a beneficio di tutti. Linux, FreeBSD, Apache, GNU C/C++, PHP, PERL, Phyton, Ruby, Erlang, Postgres, MySQL, Firebird..., giusto per citare alcuni nomi famosi, sono cresciuti di qualità e diventati ampiamente diffusi grazie ai loro numerosissimi utenti che hanno partecipato al loro sviluppo e che, senza di loro, non avrebbero mai raggiunto livelli così elevati da competere con software commerciali prodotti da alcune multinazionali del software.

Alcune volte, però, capita che l'unica via per non far morire un software è quella di regalarlo. Diversi compilatori C/C++ che prima costavano molti soldi, ora sono distribuiti gratuitamente. Ma il caso dei compilatori non è del tutto isolato. Il noto RDBMS InterBase era destinato ad una morte sicura premeditata dalla stessa Borland, ma grazie alla IBPhoenix, Firebird, oggi, gode di un'ottima salute ed è stato ultimamente votato come il miglior software per le aziende.

Quindi, far diventare un prodotto commerciale freeware ed open source potrebbe farlo rinascere. Ma, anche in questo caso, siamo di fronte ad un prodotto destinato ai programmatori e ai SysDBA.

Per concludere, se sviluppate qualcosa che serva sia a voi, sia ai vostri colleghi programmatori allora il discorso cambia radicalmente. Avete tutto l'intresse a condividere codice ed esperienze. Il codice che porterà sempre il vostro nome sarà, nel tempo, migliorato ed esteso grazie alla collaborazione e alla partecipazione di chi lo utilizzerà per sviluppare uno nuovo e rimetterlo magari in circolazione. La ragione dietro a questo scambio e confronto tra programmatori è stata da sempre nota ed evidente. E' di natura culturale.