Programari de codi obert

El logo de l'Open Source I nitiative.

El programari de codi obert (en anglès open source software o OSS) és el programari el codi font i altres drets que normalment són exclusius per als que posseeixen els drets d'autor, són publicats sota una llicència de codi obert o formen part del domini públic. En les llicències compatibles amb l'Open Source Definition el propietari dels drets d'autor permet als usuaris utilitzar, canviar i redistribuir el programari, a qualsevol, per a qualsevol propòsit, sigui en la seva forma modificada o en la seva forma original.[1] Sovint, el programari de codi obert es desenvolupa de manera col·laborativa i els resultats es publiquen a internet.[2] El programari és el millor exemple del desenvolupament del codi obert i es compara amb l'anomenat contingut generat pels usuaris.[3] L'expressió programari de codi obert va sorgir a partir d'una campanya de màrqueting per al programari lliure.[4] Un informe del Standish Group afirma que la incorporació dels models de programari de codi obert ha resultat en estalvis d'aproximadament 60 000 milions de dòlars per any als consumidors.[5]

El moviment del programari lliure va sorgir el 1983. El 1998, un grup d'individus van defensar la idea de canviar l'expressió free software (programari lliure) per open source software (programari de codi obert), a causa de l'ambigüitat del primer (en anglès, free significa tant gratis com lliure) i a l'atractiu del segon respecte a les empreses. Els desenvolupadors de programari poden optar per publicar el seu treball sota una llicència de codi obert, de manera que qualsevol pugui beneficiar-se'n. En general, aquest programari permet a les persones crear modificacions de programari, compatibilitzar-lo amb altres sistemes operatius o arquitectures de maquinari, compartir-lo amb altres persones i comercialitzar-lo.

L'Open Source Definition introdueix una filosofia pel que fa al codi obert, i a més defineix els termes d'ús, modificació i redistribució del programari de codi obert. Les llicències de programari atorguen als usuaris drets que d'una altra manera estarien reservats, per la llei de drets d'autor, als propietaris dels drets d'autor del programari. Hi ha diverses llicències de programari de codi obert compatibles amb l'Open Source Definition. La més popular i destacada és la GNU General Public License (GPL). Si bé la distribució de codi obert permet que el codi font d'un producte sigui accessible al públic, les llicències de codi obert possibiliten als autors acomodar aquest accés a gust.[6]

Desenvolupament de programari de codi obert

Model de desenvolupament

En l'assaig de 1997 La catedral i el basar,[7] Eric S. Raymond un propulsor del codi obert suggereix un model per desenvolupar OSS conegut com el model 'basar'. Raymond compara el desenvolupament de programari mitjançant metodologies tradicionals amb la construcció d'una catedral, "curosament elaborada per artesans individuals o petits grups de mags que treballen en un esplèndid aïllament".[7] Suggereix que tot el programari s'hauria de desenvolupar utilitzant l'estil basar, que descriu com “un gran basar balbucejant de diferents agendes i enfocaments”.[7]

En el model tradicional de desenvolupament, que ell va denominar model de catedral, el desenvolupament té lloc de forma centralitzada. Les funcions estan clarament definides. Els rols inclouen persones dedicades al disseny (els arquitectes), persones responsables de la gestió del projecte i persones responsables de la implementació. L'enginyeria de programari tradicional segueix el model de catedral.

El model basar, però, és diferent. En aquest model, els rols no estan clarament definits. Gregorio Robles[8] suggereix que el programari desenvolupat utilitzant el model basar hauria de mostrar els patrons següents:

Els usuaris han de ser tractats com a co-desenvolupadors
Els usuaris són tractats com a co-desenvolupadors, per la qual cosa haurien de tenir accés al codi font del programari. A més, s'anima els usuaris a enviar addicions al programari, correccions del codi del programari, informe d'errors, documentació, etc. Tenir més co-desenvolupadors augmenta la velocitat a què evoluciona el programari. La llei de Linus afirma: "Amb suficients ulls tots els bugs són superficials". Això vol dir que si molts usuaris veuen el codi font, acabaran trobant tots els errors i suggerint com solucionar-los. Tingueu en compte que alguns usuaris tenen coneixements avançats de programació i, a més, la màquina de cada usuari proporciona un entorn de proves addicional. Aquest nou entorn de proves ofereix la possibilitat de trobar i corregir una nova fallada.
Llançaments primerencs
La primera versió del programa s'ha de publicar com més aviat millor per augmentar les possibilitats de trobar aviat col·laboradors.
Integració freqüent
Els canvis al codi han d'integrar-se (fusionar-se en una base de codi compartida) tan sovint com sigui possible per evitar la sobrecàrrega de corregir un gran nombre d'errors al final del cicle de vida del projecte. Alguns projectes de codi obert tenen compilacions nocturnes en què la integració es realitza automàticament diàriament.
Diverses versions
Hi ha d'haver almenys dues versions del programari. Hi hauria d'haver una versió amb més errors i més característiques i una versió més estable amb menys característiques. La versió amb més errors (també anomenada versió de desenvolupament) és per als usuaris que volen utilitzar immediatament les últimes funcions i estan disposats a acceptar el risc de fer servir un codi que encara no s'ha provat a fons. Els usuaris poden actuar com a codesenvolupadors, informant d'errors i proporcionant correccions.
Alta modularització
L'estructura general del programari ha de ser modular i permetre el desenvolupament paral·lel de components independents.
Estructura dinàmica de presa de decisions
És necessària una estructura de presa de decisions, formal o informal, que prengui decisions estratègiques en funció dels requisits canviants dels usuaris i altres factors. Compareu-vos amb programació extrema.

Tot i això, les dades suggereixen que l'OSS no és tan democràtic com suggereix el model de basar. Una anàlisi de cinc mil milions de bytes de codi lliure feta per 31.999 desenvolupadors mostra que el 74% del codi va ser escrit pel 10% dels autors més actius. El nombre mitjà d'autors implicats en un projecte va ser de 5,1, amb una mitjana de 2,[9]

Avantatges

El programari de codi obert sol ser més fàcil d'obtenir que el programari propietari, cosa que sovint es tradueix en un major ús. A més, la disponibilitat d'una implementació de codi obert d'un estàndard pot augmentar l'adopció d'aquest estàndard.[10] També ha ajudat a fidelitzar els desenvolupadors, ja que aquests se senten capacitats i tenen un sentit de propietat del producte final.[11]

A més, l'OSS requereix menys costos de màrqueting i serveis logístics. És una bona eina per promocionar la imatge d'una empresa, inclosos els seus productes comercials.[12] L'enfocament de desenvolupament OSS ha ajudat a produir programari fiable i d'alta qualitat de forma ràpida i econòmica.[13]

El desenvolupament de codi obert ofereix la possibilitat d'accelerar la innovació i la creació d'innovació i valor social. A França, per exemple, una política que incentivava el govern a afavorir el programari lliure de codi obert va augmentar gairebé 600.000 contribucions d'OSS per any, generant valor social en augmentar la quantitat i qualitat del programari de codi obert. Aquesta política també va conduir a un augment estimat de fins al 18% de les noves empreses tecnològiques i a un augment del 14% en el nombre de persones ocupades al sector de TI.[14]

Es diu que és més fiable perquè acostuma a comptar amb milers de programadors independents que proven i corregeixen els errors del programari. El codi obert no depèn de l'empresa o autor que el va crear originalment. Fins i tot si l'empresa fracassa, el codi continua existint i és desenvolupat pels seus usuaris. A més, utilitza estàndards oberts accessibles a tothom, per la qual cosa no té el problema de la incompatibilitat de formats que pot existir al programari propietari.

És flexible perquè els sistemes modulars permeten als programadors construir interfícies personalitzades o afegir noves capacitats, i és innovador perquè els programes de codi obert són producte de la col·laboració entre un gran nombre de programadors diferents. La barreja de perspectives divergents, objectius corporatius i metes personals accelera la innovació.[15]

A més, el programari lliure es pot desenvolupar segons requisits purament tècnics. No cal pensar en la pressió comercial, que sovint degrada la qualitat del programari. Les pressions comercials fan que els desenvolupadors de programari tradicionals parin més atenció als requisits dels clients que als de seguretat, ja que aquestes característiques són en certa manera invisibles per al client.[16]

Eines de desenvolupament

En el desenvolupament d'OSS, s'utilitzen eines per recolzar el desenvolupament del producte i el procés de desenvolupament propi.[17]

Els sistemes de control de revisió com a Concurrent Versions System (CVS) i més tard Subversion (SVN) i Git són exemples d'eines, sovint elles mateixes de codi obert, que ajuden a gestionar els fitxers de codi font i els canvis en aquests fitxers per a un projecte de programari.[18] Els projectes solen emmagatzemar-se a "repositoris" que s'allotgen i publiquen a serveis d'allotjament de codi font com el Launchpad, GitHub, GitLab i SourceForge.[19]

Els projectes de codi obert sovint s'organitzen de manera informal amb "poc suport o modelatge de processos formalitzats", però sovint s'utilitzen utilitats com els gestors d'incidències per organitzar el desenvolupament de programari de codi obert.[17] Entre els gestors d'incidències més usats es troben Bugzilla i Redmine.[20]

Les eines com llistes de correu i IRC proporcionen mitjans de coordinació entre desenvolupadors.[17] Els llocs centralitzats d'allotjament de codi també tenen característiques socials que permeten als desenvolupadors comunicar-se.[19]

Organitzacions

Algunes de les "organitzacions més prominents" involucrades en el desenvolupament d'OSS inclouen la Apache Software Foundation, creadors del servidor web Apache; la Linux Foundation, una organització sense ànim de lucre que va emprar a Linus Torvalds, el creador del kernel Linux; la Eclipse Foundation, seu de la plataforma de desenvolupament de programari Eclipse; el Projecte Debian, creadors de la influent distribució Debian GNU/Linux; la Fundació Mozilla, seu del navegador web Firefox; i OW2, comunitat d'origen europeu que desenvolupa middleware de codi obert. Les noves organitzacions tendeixen a tenir un model de governança més sofisticat i la seva composició sol estar formada per membres amb personalitat jurídica.[21]

L'Open Source Software Institute és una organització sense ànim de lucre (501 (c)(6)) fundada el 2001 que promou el desenvolupament i la implantació de solucions de programari de codi obert a les agències governamentals federals, estatals i locals dels Estats Units. Els esforços d'OSSI s'han centrat a promoure l'adopció de programes i polítiques de programari de codi obert dins del govern federal i les comunitats de defensa i seguretat nacional.[22]

Open Source for America és un grup creat per conscienciar el Govern Federal dels Estats Units sobre els beneficis del programari de codi obert. Els objectius declarats són fomentar l'ús de programari de codi obert per part del Govern, la participació en projectes de programari de codi obert i la incorporació de la dinàmica de la comunitat de codi obert per augmentar la transparència governamental.[23]

Mil-OSS és un grup dedicat a l'avenç de l'ús i la creació d'OSS a l'exèrcit.[24]

Referències

  1. St. Laurent, Andrew M.. Understanding Open Source and Free Software Licensing. O'Reilly Media, 2008, p. 4. ISBN 9780596553951. 
  2. Levine, Sheen S.; Prietula, Michael J. «Open Collaboration for Innovation: Principles and Performance». Organization Science, 25, 5, 30-12-2013, pàg. 1414–1433. DOI: 10.1287/orsc.2013.0872. ISSN: 1047-7039.
  3. William T. Verts. «Open source software». World Book Online Reference Center, 13-01-2008. Arxivat de l'original el 1 de gener de 2011.
  4. «Frequently Asked Questions». Open Source Initiative. Arxivat de l'original el 23 d'abril de 2006. [Consulta: 8 setembre 2008].
  5. Richard Rothwell. «Creating wealth with free software». Free Software Magazine, 05-08-2008. Arxivat de l'original el 8 de setembre de 2008. [Consulta: 8 setembre 2008].
  6. «Movimiento del software libre - Proyecto GNU - Free Software Foundation». www.gnu.org. [Consulta: 9 abril 2021].
  7. 7,0 7,1 7,2 Raymond, Eric S. «La catedral y el bazar», 11-09-2000. [Consulta: 19 setembre 2004].
  8. Robles, Gregorio. «A Software Engineering Approach to Libre Software». A: Robert A. Gehring, Bernd Lutterbeck. Open Source Jahrbuch 2004 (PDF). Berlin: Universitat Tècnica de Berlín, 2004. 
  9. Ghosh, R.A. «Free/Libre and Open Source Software: Survey and Study Part V». Maastricht: International Institute of Infonomics., 2002.
  10. US Department of Defense. «Open Source Software FAQ». Chief Information Officer. [Consulta: 22 juliol 2016].
  11. Sharma, Srinarayan «cin.ufpe.br/~in953/lectures/papers/ISJAFrameworkForCreatingHybrid-OpenSourceSoftwareCommunities.pdf A framework for creating hybrid-open source software communities». Information Systems Journal, vol. 12, 2002, pàg. 7-25. DOI: 10.1046/j.1365-2575.2002.00116.x.
  12. Landry, John «Profiting from Open Source». Harvard Business Review, September 2000. DOI: 10.1225/F00503.
  13. Reynolds, Carl «Open Source, Open Standards, and Health Care Information Systems». Journal of Medical Internet Research, vol. 13, 1, February 2011, pàg. e24. DOI: 10.2196/jmir.1521. PMC: 3221346. PMID: 21447469.
  14. Nagle, Frank «Política tecnológica gubernamental, valor social y competitividad nacional» (en anglès). [Rochester, NY], 03-03-2019.
  15. Plotkin, Hal «Qué (y por qué) debe saber sobre el software de código abierto». Harvard Management Update, December 1998, pàg. 8-9.
  16. Payne, Christian «On the Security of Open Source Software». Information Systems Journal, vol. 12, 1, February 2002, pàg. 61-78. DOI: 10.1046/j.1365-2575.2002.00118.x.
  17. 17,0 17,1 17,2 Boldyreff, Cornelia; Lavery, Janet; Nutter, David; Rank, Stephen. «Procesos y herramientas de desarrollo de código abierto». Flosshub. Arxivat de l'original el 7 de octubre de 2016. [Consulta: 22 juliol 2016].
  18. Stansberry, Glen. «smashingmagazine. com/2008/09/the-top-7-open-source-version-control-systems/ 7 Version Control Systems Reviewed - Smashing Magazine». Smashing Magazine, 18-09-2008. [Consulta: 22 juliol 2016].
  19. 19,0 19,1 Frantzell, Lennart. «GitHub, Launchpad y BitBucket, cómo los actuales sistemas de control de versiones distribuidos están impulsando la revolución global del código abierto sin precedentes». IBM developerworks, 18-07-2016. [Consulta: 22 juliol 2016].
  20. Baker, Jason. «Las 4 mejores herramientas de seguimiento de incidencias de código abierto». opensource.com. [Consulta: 22 juliol 2016].
  21. François Letellier (2008), Open Source Software: the Role of Nonprofits in Federating Business and Innovation Ecosystems, AFME 2008.
  22. Open Source Software Institute. «Home». Open Source Software Institute. [Consulta: 22 juliol 2016].
  23. Hellekson, Gunnar. «Home». Open Source for America. Arxivat de l'original el 1 diciembre 2015. [Consulta: 25 març 2012].
  24. de EntandoSrl (Entando ). «Mil-OSS». [Consulta: 25 març 2012].

Vegeu també