Artizanat si industrie

Postat la 10 decembrie 2005 2 afişări

Productia de software nu a depasit inca varsta adolescentei. Desi creeaza maximul de valoare adaugata datorita absentei costurilor multiplicarii, procedeele sale se aseamana mai degraba cu cele ale artizanatului decat cu cele ale industriilor mature.

Productia de software nu a depasit inca varsta adolescentei. Desi creeaza maximul de valoare adaugata datorita absentei costurilor multiplicarii, procedeele sale se aseamana mai degraba cu cele ale artizanatului decat cu cele ale industriilor mature.

Productia de software este cu siguranta primul domeniu major care iese total din canoanele clasice ale epocii industriale dar, in mod oarecum paradoxal, pare sa se asemene mai degraba cu modelele preindustriale decat cu un model industrial modernizat. Altfel spus, productia de software seamana la ora actuala mai mult cu artizanatul decat cu productia de serie mare. Este oarecum inevitabil, din moment ce in software costurile multiplicarii devin daca nu chiar nule, macar neglijabile. In vreme ce produsele industriale isi datoreaza pretul in mare masura costurilor reproducerii unui model generic, produsul software este tocmai modelul generic. Realizarea unui produs software se rezuma la partea creativa a procesului, care implica nu doar stiinta si inteligenta, ci si imaginatie si ingeniozitate - in orice caz ceva ce nu poate fi automatizat. Un produs software este, deci, un proiect. Orice proiect este un unicat. Productia de unicate este artizanat. Silogismul este limpede.

Si totusi, vorbim despre "inginerie software", ceea ce sugereaza din nou modelul industrial. Se poate argumenta ca desi costul multiplicarii e practic nul, multiplicarea totusi exista. Unele programe ruleaza pe milioane de computere. Insa acestea sunt mai degraba exceptia, pentru ca marea majoritate a programelor sunt "croite la comanda". Adica tot un fel de artizanat, care de data aceasta este opera mestesugareasca.

Insa mai exista o caracteristica a productiei de software care o plaseaza in zona mestesugurilor preindustriale. Fiecare program este dezvoltat aproape de la zero. Exista, desigur, biblioteci de rutine care sunt folosite in fiecare proiect, dar acestea pot fi considerate "prefabricate" echivalente caramizilor din constructii. Cu toate ca se vorbeste foarte mult despre reutilizarea codului, studiile au aratat ca, in realitate, putin din codul semnificativ al unei aplicatii este folosit apoi in alte aplicatii. Caracterul mereu nou al fiecarui produs si graba lansarii pe piata conduc la o testare insuficienta si de aici rezulta numeroase bug-uri si vulnerabilitati. Orice produs industrial, de la un nivel de complexitate in sus, ofera clientului un set de garantii, in vreme ce toate produsele software se grabesc sa-si decline orice responsabilitate in privinta functionarii corecte.

Contrastul cu industriile mature devine insa si mai evident atunci cand in ecuatie mai adaugam componentele. Daca ne referim la industria electronica si la productia de software, diferentele sunt uriase. In calculatorul pe care-l am pe birou pot - desi nu sunt electronist - sa schimb discul, memoria, lectorul de CD-ROM, sursa de alimentare si inca vreo cateva componente. Mai mult chiar: pot sa adaug sau sa scot componente (memorie, discuri etc.) in functie de nevoile mele particulare. Nu acelasi lucru se intampla in software, unde aplicatiile sunt de regula inchise. Exceptiile sunt rare si specifice: pot adauga sau schimba mici componente numite "plug-in" sau "add-on", dar aproape intotdeauna acestea sunt destinate unei anumite aplicatii.

Bazele teoretice si experimentale pentru o productie de software bazate pe componente exista iar avantajele ar fi evidente. Cel putin jumatate din aplicatiile instalate pe calculatorul meu implementeaza functionalitati de procesare de text - mereu aceleasi si de fiecare data altfel. La fel se intampla cu diverse tipuri de liste inlantuite, cu calculul matriceal, sau cu elemente grafice. Toate acestea ar putea fi componente interschimbabile, exact ca in cazul stick-urilor de memorie sau al anvelopelor.

Exista numeroase voci care apreciaza ca productia de software va deveni industrie abia cand componentele software vor deveni similare cu cele electronice. De ce nu se intampla inca asa? Ratiunile sunt in principal de ordin comercial si se refera la standardele si interfetele proprietare, care au darul de tine clientul captiv in limitele unei solutii. Exact acelasi fenomen s-a petrecut si in zorii revolutiei industriale: fiecare atelier mecanic producea propriul sau model de suruburi si, desigur, piulitele potrivite.

Abia pe la jumatatea secolului al XIX-lea, William Sellers a reusit sa convinga mestesugarii din Philadelphia sa adopte un standard. A fost pasul de la mestesug la industrie. Insa o asemenea schimbare de paradigma ar fi un adevarat cataclism pentru intreaga productie actuala de software. intr-o lume in care voi putea sa-mi asamblez mediul software din componentele de care am nevoie, toti producatorii ar deveni egali, iar competitia va fi acerba.

Urmărește Business Magazin

Am mai scris despre:
Artizanat si industrie
/business-hi-tech/artizanat-si-industrie-978965
978965
comments powered by Disqus

Preluarea fără cost a materialelor de presă (text, foto si/sau video), purtătoare de drepturi de proprietate intelectuală, este aprobată de către www.bmag.ro doar în limita a 250 de semne. Spaţiile şi URL-ul/hyperlink-ul nu sunt luate în considerare în numerotarea semnelor. Preluarea de informaţii poate fi făcută numai în acord cu termenii agreaţi şi menţionaţi in această pagină.