Esteu aquí: Inici Projectes Campus informe preliminar per la comunitat de desnvolupament CAMPUS

informe preliminar per la comunitat de desnvolupament CAMPUS

1.Introducció

Aquest informe preliminar es pot considerar una continuació del seminari "Comunitats de desenvolupament". En aquest seminari es descriuen les principals característiques d'una comunitat de desenvolupament de programari lliure; quines tasques i habilitats acostumen a tenir els diferents actors; com és el producte que es genera i les eines que s'utilitzen; i que es pot fer per fomentar una comunitat de desenvolupament.

En aquest document identificarem les principals característiques d'una comunitat de desenvolupament i dels seus projectes. Farem un anàlisis de la situació del projecte CAMPUS en quan a comunitat de desenvolupament i identificarem les diferències i farem una proposta d'actuació per apropar la comunitat de socis del projecte CAMPUS a una comunitat de desenvolupament de programari lliure.

Aquest document forma part de les tasques corresponent al paquet de treball PT9 Comunitat i Marc Legal, aquest paquets de treball el desenvolupa la Càtedra de Programari lliure de la UPC, i el gabinet jurídic LegisTICs. En aquest document tractarem aspectes relacionats amb com treballa una comunitat de programari lliure, com es desenvolupen els projectes i com es distribueixen. Els aspectes que fan referència a les llicències que s'utilitzen i les formes jurídiques que pot adoptar la comunitat per realitzar el projecte i distribuir-lo els tracta LegisTICs en l'informe "CAMPUS - Informe Legal".

2. Objectius

Objectius de l'informe preliminar: Introduir els conceptes necessaris per tal de dur la comunitat de desenvolupadors CAMPUS cap a una dinàmica de treball pròpia d'una comunitat de programari lliure. Introduir els mecanismes per obrir el projecte a la comunitat universitària.

3. Desenvolupament de projectes lliures

En aquest apartat remarcarem les característiques principals de les comunitats de programari lliure i dels projectes que se'n deriven i ho farem tenint en compte com es desenvolupen els projectes i com es distribueix quins factors intervenen en aquest processos i quins rols desenvolupen els actor que hi participen.

3.1 Com es desenvolupa un projecte de Programari lliure

Característiques comuns en els desenvolupaments de projectes de programari lliur

  • La comunicació entre els desenvolupadors d'un projecte comunitari és molt important, d'ella en deriva l'èxit del projecte en quant a participació de la comunitat. S'utilitzen eines informàtiques de comunicació com: xat, llistes de distribució, wiki, blogs, sistemes de controls de versió, API's.
  • Els projectes es desenvolupen amb el convenciment que el codi desenvolupat serà estudiat per gent aliena al projecte i per tant ha d'estar ben estructurat, ben documentat i ha de tenir poques dependències d'altres mòduls o programes
  • Els desenvolupaments estan preparats per la internacionalització i traducció del producte. L'idioma utilitzat en el desenvolupament es l'anglès però els usuaris del producte son d'arreu.
  • S'apliquen estàndards.
  • El sistema de desenvolupament parteix d'un prototip amb poques funcionalitats però estable i s'evoluciona el prototip

3.2 Eines que s'utilitzen

Pel desenvolupament d'un projecte comunitari s'utilitza una eina de gestió de projectes comú per tothom. Els elements indispensables per la gestió del projecte son:

  • Gestor de tasques: que permeti assignar tasques als diferents participants, veure l'estat de la tasca i saber qui la te assignada. Pot ser tant simple com un "To do".
  • Gestor d'incidències o errors: que permeti reportar els errors que es troben en l'aplicatiu, assignar la solució a un desenvolupador, fer el seguiment de l'estat de la solució. Te un funcionament similar al gestor de tasques.
  • Un canal de comunicació per a tots els desenvolupadors. Pot ser una llista de distribució, un fòrum, un wiki, ha de ser un canal que permeti guardar les aportacions per poder-ne fer un seguiment. Un xat també es molt útil per la comunicació directe entre els desenvolupadors.
  • Un gestor de versions, per controlar les versions que es van fent dels diferents desenvolupament. Aquesta eina facilita molt la tasca comunitària, permet treballar en un mateix mòdul a mes d'una persona i gestionar les aportacions de cada una. Els gestors de versió també son molt útils per la documentació.

3.3 Organització de l'equip de treball

Característiques generals en la organització dels equips de desenvolupament.

Figures:

  • líders molt carismàtics. Generalment un grup reduït de persones que inicien e projecte, tenen un gran coneixement de l'estructura, de la finalitat i del seu progrés. En molts projectes son l'ànima del mateix.
  • Desenvolupadors del nucli. Grup reduït de desenvolupadors responsables de la majoria del desenvolupament, amb un coneixement ampli del projecte i gran influència en la comunitat.
  • Desenvolupadors. Aporten codi en el projecte. Correcció d'errors, mòduls complementaris ....
  • Col·laboradors. Col·laboren en el projecte en tasques que no son de desenvolupament. Traducció a altres llengües, proves i detecció d'errors, suggeriments .....

Organització

La organització del desenvolupament està ben fixada. Els líders o responsables del projecte marquen el tipus d'organització del projecte i de l'equip de treball i la forma de col·laborar en el projecte. L'organització del projecte es coneguda i respectada per tothom.

La organització del projecte, de l'equip de treball i la forma de col·laborar està publicada en la pàgina web del projecte.

3.4 Fases d'un projecte

Normalment els projectes presenten tres fases:

Fase 1: Fase inicial:

Coincideix amb la fase inicial de projecte, es una fase poc participada per la comunitat, en la que hi participen bàsicament el líder del projecte i els desenvolupadors del nucli. Les tasques que es realitzen son:

  • presa de requeriments
  • Investigació de productes similars existents en programari lliure. S'analitzen les funcionalitats dels projectes,l'activitat de la comunitat, el mètode d'instal·lació i les instal·lacions del projecte.
  • Inici, definició del projecte, anàlisis de riscos, calendari, definició del prototip.

Es la fase mes similar a un projecte de desenvolupament tradicional.

Aquesta fase sol se curta, és important tenir una maqueta disponible el mes aviat possible i poder portar el prototip a la comunitat. És important que el projecte sigui visible en els seus inicis, això facilita la participació de nous col·laboradors, introducció de nous punts de vista, la detecció d'errors de disseny, i la detecció de si el producte és interessant per la comunitat.

Fase 2: Obertura a la comunitat

Aquesta fase és la que s'encarrega de preparar el projecte perquè pugui ser participat per a tothom. És la fase mes pròpia de comunitats de desenvolupament de programari lliure.

Tasques d'aquesta fase:

  • Definir l'estil de gestió: Com estimular la participació, com fer visibles les col·laboracions, com es reflecteix la voluntat de la comunitat, com es vol que evolucioni el projecte
  • Definir el sistema de col·laboració. Gestió de les col·laboracions. Mecanismes i nivells de col·laboració.
  • Infraestructura de distribució: eines de participació, infraestructura de distribució, sistema d'instal·lació
  • Definir les guies d'estil de la programació i de la documentació.
  • Preparar el desenvolupament per la internacionalització.
  • Llicencia de distribució. Cal tenir definida la llicència i els mecanismes de control de les llicencies de les col·laboracions. Aquest apartat no forma part d'aquest document es treballa en l'assessoria jurídica realitzada per l'empresa LegisTICs.
  • Definir la política de versionat
  • Definir el tipus de distribució del producte (paquet integrat, paquet modular, distribució)
  • Distribució. Definir les eines que s'utilitzaran per la distribució i preparar la distribució del prototip.

Un cop realitzades aquestes tasques el projecte es pot publicar a internet i començar a fer tasques de difusió per donar-lo a conèixer.

Fase 3: Fase de desenvolupament

Desenvolupament del projecte amb els seus grups de treball i les aportacions de la comunitat tal i com s'ha definit en la Fase 2.

En aquest moment el projecte ja és un projecte de la comunitat i se'n pot fer el seguiment en l'eina de gestió del projecte.

Per garantir l'èxit del projecte, s'han d'utilitzar els canals de comunicació establerts i notificar tot progrés del projecte, l'activitat d'aquest és un dels factors claus.

4. Distribució del producte

Distingirem dos tipus de productes o paquetitzacions d'un producte per a la seva distribució.

  • Paquet integrat o únic:

    Els mòduls que formen part d'aquest producte o distribució s'integren en un únic paquet i es distribueix com un producte integrat. És el cas de OpenOffice, www.openoffice.org

    En aquest tipus de productes la gestió de les versions i la gestió de les col·laboracions son aspectes en els que s'hi dediquen mols esforços.

    Existeix una figura legal que és la responsable de la distribució i en te els drets de distribució. El distribuïdor es responsabilitza de la integració de la versió i del suport.

    Gestió de versions: Es defineix en quina freqüència es realitzen les versions i en quins criteris. Les millores i noves funcionalitats que s'integren en les noves versions.

    Gestió de les col·laboracions. Es defineix la gestió de les col·laboracions. Abans d'integrar les col·laboracions en la versió s'ha de fer un control rigorós de la qualitat i la seva integració en el producte, per garantir el funcionament i estabilitat de la versió.

    La sortida de noves versions son processos molt estressants per els participants en el desenvolupament.

  • Paquets modulars.

    Productes integrats per un conjunt de mòduls que es poden distribuir per separat i la titularitat dels mòduls pot recaure en figures legals diferents. En distingirem tres tipus.

    1. Plataformes de desenvolupament i productes associats: Son plataformes de desenvolupament (FrameWorks) que permeten desenvolupar mòduls que s'integren en la plataforma, aquest mòduls poden estar suportats pels distribuïdors de la plataforma o ser totalment independents. La plataforma ha d'incloure la definició dels protocols de comunicació entre els mòduls, la normativa de funcionament i d'integració de mòduls i ha de proporcionar les eines per incorporar nous mòduls en la mateixa.

      Aquest sistemes s'extenen ràpidament ja que permeten la col·laboració de desenvolupadors que no han de conèixer el projecte en la seva totalitat i poden recollir aportacions d'àmbits molt diferents per resoldre les seves problemàtiques. És el cas de Plone www.plone.org.

    2. Mòduls. Mòduls específics per aportar alguna funcionalitat a un producte existent, que s'integraran segons les APIs del producte. La distribució d'aquest mòduls es independent del producte.

    3. Distribucions. Son paquetitzacions de un o mes productes i en les que el distribuïdor garanteix la compatibilitat dels productes que la integren. Les distribucions han de:

      • garanteix la compatibilitat de les llicències dels productes que la integren
      • garanteix la compatibilitat entre els productes que integren la distribució.
      • documentar les millores que incorpora la distribució.
      • un procés d'instal·lació, o la documentació del proces d'instal·lació

5. El projecte CAMPUS

Estudi del projecte CAMPUS segons els paramentres descrits en els punts 3 i 4 d'aquest document

El prjecte CAMPUS està detallat en la memòria tècnica que es pot consultar a: https://projectes.lafarga.cat/frs/download.php/395/fi_Memoria_tecnica_CAMPUS_v7.pdf

En aquest apartat resaltarem els factors que hem detallat en els apartats anteriors com a factors rellevants en les comunitats de desenvolupament de programari lliure

5.1 Com neix el projecte

El projecte CAMPUS neix de la necessitat de la UOC d'ampliar i modifiacr el seu campus virtual i de la voluntat de la STSI per apostar pel programari lliure. La STSI promou el projecte i incentiva a les universitats catalanes a participar del mateix i crear un CAMPUS virtual per a totes les Universitat.

La participació en el projecte està oberta al mon

5.2 Organització del projecte CAMPUS

El projecte s'organitza en paquets de treball, agrupacions de tasques amb fites temporals i resultats en forma de documents o codi. Cada paquet de treball te definits:

  • Les entitas que hi participen
  • El lider del paquet
  • Els objectius del paquet
  • Les tasques a desenvoluar
  • Els lliurements
  • Els recursos necessaris i
  • La planificació

Els paquest de treball actuaran com a subprojectes del projecte CAMPUS, el lider del paquest es l'encarregat de gestionar el lideratge del grup de treball i fer el seguiment del mateix amb el lider del projecte CAMPUS.

5.3 Participació en el projecte

En el projecte s'estableixen dos perfils de col·laboració.

  • Socis desenvoluapdors. Encarregats de desenvolupar tecnologicament el projecte, aprofitant els coneixements i experiencia que cada soci pugui aportar. Els socis desenvolupadoes son:
    • Universitat Autònoma de Barcelona
    • Universitat Politècnica de Catalunya
    • Universitat de Lleida
    • Universitat de Girona
    • Universitat Oberta de Catalunya
    • Universitat Ramon Llull
    • Universitat Internacional de Catalunya
  • Socis observadors. Son els participants interessats en fer el seguiment del projecte. Manifesten interes en l'evolució del projecte i pten a participar activament en la posada en funcionament del CAMPUS.

5.4 Coordinació del projecte

El projecte es coordina segons l'estil de projectes de recerca que es presenten a nivell estatal o europeu. Es pot participar en el projecte en un o varis dels seus rols:

  • Promotor: dóna suport al projecte i ajuda en el seu finançament
  • Líder del projecte: lidera el total del projecte i especialmentels paquest de coordinació del projecte i de definició de metodologia i gestió de riscos. PT0 i PT11
  • Líder de PT: lidera un o més paquets de treball on hi té una alta participació
  • Participació en definició: participació amb personal en els paquest de definició del projecte. PT1,2,3,4
  • Participació en desenvolupament: participació amb personal en els paquets de desenvolupament del projecte. PT5,6
  • Participació en el pilot d'ús: participació amb personal en el paquet de pilot d'ús del projecte. PT7
  • Participació en la difusió: participació amb personal en el paquet de difusió PT10
  • Seguiment: participació en les reunions de seguiment del projecte.

5.5 Mètodes de decisió

Els mètodes de desició del projecte es concentren en la pròpia estructura de treball del projecte. És responsabilitat del líder del PT de desenvolupament decidir els temes relacionats amb el seu PT i d'acordar els canvis amb el lider del projecte.

En aquest sentit cada PT és pot considerar com un subprojecte del projecte CAMPUS, que s'organitza i gestiona autonomament.

Segons els paràmetres mes significatius de les comunitats de desenvolupament de programari farem un estudi del projecte CAMPUS.

5.6 Eines utilitzades

El projecte es desenvolupa utilitzan el gestor de projecte de lafarga.cat, https://projectes.lafarga.cat/projects/campus/, que és una adaptació del gestor de projecte gforge www.gforge.org.

Aquest gestor de projectes disposa de:

  • gestor de tasques
  • gestor d'incidències
  • llistes de distribució
  • gestió de versions. Subversion
  • gestor de documents
  • gestor de fitxers
  • fòrums
  • wiki. Mediawiki.

El projecte està introduït en el wiki i cada grup de treball fa el seguiment de l'evolució del seu paquet de treball en el wiki.

Les actes de les reunions de sosis es recullen en el wiki i en lapartat documents.

Les actes de reunions de grups de treball normalment també es recullen el el wiki i/o en la secció documents.

L'eina no s'utilitza per la comunicació enterna dels grups de treball ni per la comuniació entre grups de treball. No s'utilitzen les llistes de distribució ni els fòrums, o s'en fa un a utilitzaci'escassa.

5.7 Fases del projecte

Aquest estudi es refereix al propjecte CAMPUS-FASE1 i correspon al desenvolupament del nucli del projecte campus amb la participació dels socis i la posada a punt per obrir el projecte a la comunitat.

Aquest projecte esta planifica per dur-lo a terme en 18 mesos,

El projecte s'estructura en dues grans fases: Desenvolupament i posada en marxa. El CAMPUS Fase-1 correspon a la fase de desenvolupament.ç

En els paquets de treball PT8 i PT9 s'estructura la comunitat de desenvolupoament i el seu manteniment obert. El projecte contempla la creació d'un pilot d'ús en el PT7 obert als socis del projecte.

Tal i com està estructurat el projecte durant el desenvolupament es prepararà la infraestructura i els mecanismes necessaris per obrir el projecte a la comunitat al final de la fase de desenvolupament.

Si fem un a comparació amb les fases d'un projecte de desenvolupament de prograamri lliure descrites en l'apartat xxx veiem que aquesta fase correspon a les fases inicials i fases d'obertura a la comunitat. Tot i tenir una planificació diferent i uns temps d'execució també diferents.

Aquest es el punt en el que el projecte es diferncia més d'un projecte comunitari. El projecte es desenvolupara de forma col·laborativa entre tots els socis participants i en el moment que es tingui el nucli del CAMPUS funcionant es posarà a disposició de la comunitat.

5.8 Estructura del projcte

Marc tecnològic

El grup de treball PT3 Disseny del sistema central i de seguratat ha fet una proposta de sistema central basada en.

  • Seguir les especificacions del consorci OKI www.okiproject.org per l'intercanvi d'informació entre els mòduls del CAMPUS
  • Definir els serveis del CAMPUS seguint les especificacions OKI.
  • Definir una plataforma de treball (FrameWork) que permeti un desenvolupament modular i la utilització dels siustemes de elearnig Moodle www.moodle.org i Sakai www.sakaiproject.org com a mòduls del CAMPUS

Moduls del CAMPUS segons l'estructura definida

  • Plataforma de desenvolupament CAMPUS
  • Pasarel·la CAMPUS-Sakai + mòduls
  • Pasarel·la CAMPUS-Moodle + mòduls
  • mòduls

5.9 Tipus de distribució del producte

L'estructura del CAMPUS marca el tipus de producte. El desenvolupament es molt modular i cada paquest de treball té definits el seu lider, objectius i tasques. Els paquest de treball son independents entre si en el seu desnvolupament.

L'estructura de distribució més recomanda en aquest cas es una figura legal per a cada un dels paquest de distribució que es responsabilitzi de les distribucions de:

  1. Distribució de la plataforma de desenvolupament CAMPUS .
  2. Distribució de la pasarel·la CAMPUS-Sakai.
  3. Distribució de la pasarel·la CAMPUS-Moodle.
  4. Moduls per les dues plataformes.

6. Comparativa entre comunitat de desenvolupament de programari lliure i

comunitat CAMPUS

veure fitxer taula.odt

7. Recomanacions

En aquest apartat anomenarem les tasques que s'han de realitzar per tal que la comunitat CAMPUS s'acosti a un model de desenvolupament propi d'una comunitat de programari lliure.

7.1 Comunicació

Les eines de comunicació estan definides i posades en marxa. S'ha de potenciar la seva utilització internament en els grups de treball i entre grups de treball.

Objectiu. Tenir un nivell de comunicació entre tots els integrans del desenvolupament del CAMPUS. Que tothom conegui l'evolució del projecte i que hi pugui participar.

Tasques

Llençar temes de discusió a la llista PT9-Comunitat i marc legal. i fer-ne el seguiment

Temes a tractar:

  1. Tipus de distribució del projecte
  2. Llicència del projecte. Llicencia de cada una de les plataformes del projecte.
  3. Constitució d'una fundació CAMPUS per la distribució de les tres distribucions principals del CAMPUS: plataforma CAMPUS, i les pasarel·ls Moodle i Sakai
  4. Construcció de pilots

Calendari

Aquesta discusió s'ha de mantenir durant tot el projecte.

7.2 Distribució del projecte

Tot i que en l'apartat 5.9 s'ha parlat de la distribució del projecte CAMPUS com un projecte modular integrat per una plataforma de desenvolupament, dos pasarel·les CAMPUS-Moodle i CAMPUS-Sakai, i mòduls. Aquesta desició s'ha de donar a coneixe a tothom especialment als grups de disseny i desenvolupament PT3,4,5,6.

Calendari

  • Definició dels sistemes de distribució 28-02-07

7.3 Obertura a la comunitat

La fase mes específica d'un projecte de desenvoluipament de programari lliure es la Fase d'Obertura a la comunitat. En el projecte CAMPUS hi ha dos paquest de treball dedicats a aquesta fase:

  • PT8 Obertura a la comunitat de software lliure i
  • PT9 Comunitat i Marc Legal.

En aquest apartat farem unes recomanacions de tasques a incorporar en el PT8

Aquestes recomanacions afectaran a cada sistema de distribució definits en l'apartat 5.8

Definicions a incorporar:

  • Estil de gestió: - Com estimular la participació en el desenvolupament - Com fer vissibles les col·laboracions - Com donar a coneixer l'esperit de la comunitat
  • Sistema de col·laboració. - Com es pot col·laborar en el projecte - Sistema d'acceptació de col·laboracions
  • Sistema d'insta·lació: Infraestructura d'instal·lació
  • Política de versions
  • Infraestructura de distribució - Que es distribuira des de la web del projecte - quines eines s'utilitzaran per la distribció

Calendari

  • Estil de gestió: 31-3-07
  • Sistema de col·laboració: 31-3-07
  • Sistema d'instal·lació: 30-04-07
  • Politiques de versions: 30-04-07
  • Infraestructura de distribució: 30-04-07

7.4 El·laboració de prototips

El projecte no contemple l'elaboració de prototips de poques funcionalitats i minimament fiables. S'ha de procurar introduïr aquest element en els grups de desenvolupament.

L'el·laboració de prototips ha de seguir les definicions descrites en l'apartat anterior i posar en funcionament el desenvolupament comunitari, encara que en una primera fases estigui restringit als socis desenvolupadors.

L'evolució a partir d'un protitip facilita la detecció d'errors de disseny i la seva rectificació en moments inicials del desenvolupament.

Tasca

Detectar possibles prototuips dels diferents grups de desenvolupament.

Calendari

Proposta de prototips: 30-03-07