El bus factor (factor de l'autobús en anglès) és un terme que s'utilitza en l'àmbit del desenvolupament de programari i que al·ludeix a la quantitat d'informació vital d'un projecte de programari que es limita en un cert moment a un o a uns pocs desenvolupadors, impedint així la continuació del projecte en l'hipotètic cas que aquests desenvolupadors clau fossin atropellats per un autobús. Un cas paradigmàtic ha estat Linus Torvalds i el nucli de Linux.[1]

Ser atropellat per un autobús és només un dels possibles casos als quals fa referència aquest factor. Altres circumstàncies podrien ser: tenir un fill, canviar de treball, avorrir-se del projecte o qualsevol altre canvi radical en la vida dels desenvolupadors que els faci abandonar el projecte sobtadament i/o sense avís.

Alternativament es pot dir que el «bus factor» en un projecte és el nombre mínim de persones que haurien de deixar de contribuir-hi perquè aquest estigués aturat per manca de personal capacitat disponible.

Una referència primerenca al terme va ser el 1994 quan Michael McLay va preguntar a la llista pública del llenguatge de programació Python què passaria si Guido van Rossum, el creador del llenguatge, fos atropellat per un bus.[2]

Uns estudis del 2016 i 2017 van determinar que vora el 65% de diferents projectes a GitHub tindrien un bus factor igual o menor de 2 i menys del 10% tindrien un factor major que 10.[3][4]

Vegeu també modifica

Referències modifica

  1. Fish, Shlomi. «The Linus Torvalds Bus Factor» (en anglès). [Consulta: 23 novembre 2018].
  2. «Python Archives (1994q2): If Guido was hit by a bus?». [Consulta: 24 novembre 2018].
  3. Avelino, Guilherme; Valente, Marco Tulio; Hora, Andre. «What is the Truck Factor of popular GitHub applications? A first assessment» (en anglès), 02-01-2017. DOI: 10.7287/peerj.preprints.1233v3. [Consulta: 24 novembre 2018].
  4. Avelino, Guilherme; Passos, Leonardo; Hora, Andre; Valente, Marco Tulio «A Novel Approach for Estimating Truck Factors». arXiv:1604.06766 [cs], 2016-5, pàg. 1–10. DOI: 10.1109/ICPC.2016.7503718.

Enllaços externs modifica