Dezvoltare distribuită - Distributed development
Un proiect de dezvoltare distribuită este un proiect de cercetare și dezvoltare (R&D) care se desfășoară pe mai multe locuri de muncă sau locații de afaceri. Este o formă de cercetare și dezvoltare în care membrii proiectului s-ar putea să nu se vadă față în față, dar toți lucrează în colaborare pentru rezultatul proiectului. De multe ori acest lucru se face prin e-mail , Internet și alte forme de comunicare rapidă la distanță. Dezvoltarea distribuită a fost în mare parte inițiată de comunitatea software open-source .
Este diferit de externalizare, deoarece toate organizațiile lucrează împreună la un nivel egal, în loc ca o organizație să subcontracteze munca către alta. Este similar cu o echipă virtuală, dar cu un element de cercetare.
Caracteristicile dezvoltării distribuite
Dezvoltatorii sunt distribuiți în mai multe locații și lucrează la același proiect sau produs. Motivele distribuțiilor nu contează, acestea ar putea include disponibilitatea resurselor în locații diferite, apropierea de anumite clustere, apropierea de clienți sau avantajele costurilor.
Oamenii s-ar putea specializa într-un mediu de dezvoltare distribuit, dar colaborează activ pentru a atinge obiectivul comun. Trebuie să existe un conducător de program sau un manager de proiect undeva în mixul de management al proiectului. Într-un mediu distribuit, membrii proiectului împărtășesc idei, informații și resurse. O cerință esențială este ca toată comunicarea să fie deschisă tuturor celor implicați și nu limitată la cei din aceeași clădire de birouri. Acest lucru se realizează de obicei prin utilizarea colaborării pe internet. Instrumentele de comunicare utilizate în mod obișnuit includ GitHub și wikis .
Dezvoltarea distribuită este una dintre cele mai înalte forme de colaborare în orice mediu ingineresc sau de cercetare științifică . De obicei, nu este o barieră în calea succesului afacerii, dar poate varia de la a fi oarecum o povară până la dificil de realizat, deoarece necesită capacități de management ridicate, un mediu de comunicare excelent, un mediu liber politic, o infrastructură extrem de eficientă, o organigrama dezvoltată și interacțiunea frecventă. Cel mai important, managementul trebuie să creadă în organizare și să pună în aplicare măsuri pentru a recompensa conformitatea, precum și să fie foarte strict cu cei care nu se conformează. Potrivit antreprenorului Mitch Kapor , multe companii realizează cu succes dezvoltarea distribuită.
Factori de succes
Există mai multe dezavantaje în dezvoltarea distribuită. Studiile au arătat că angajații care lucrează toți în același birou sunt mai buni la coordonarea muncii și sunt mai productivi. În mod similar, aplicațiile software care sunt strâns integrate pot fi foarte greu de dezvoltat folosind dezvoltarea distribuită. Din aceste motive, multe companii mari, inclusiv Facebook, solicită tuturor angajaților să lucreze în același birou.
În ciuda acestui fapt, există mai multe avantaje în dezvoltarea distribuită pentru o afacere. Permite companiilor să angajeze o forță de muncă mai diversă, inclusiv angajați care doresc să lucreze acasă sau nu doresc să se deplaseze pe distanțe lungi. Permite companiilor să angajeze muncitori de calitate la un cost mai mic, spre deosebire de salariile foarte mari din Silicon Valley. Dezvoltarea distribuită este adesea mai potrivită pentru software-ul modular, unde diferite părți ale programului pot fi dezvoltate separat.
Există trei factori principali de succes pentru un proiect de dezvoltare distribuită:
- Selectați și / sau recrutați oameni buni, puternici, cu înaltă calificare.
- Cheltuiți niște bani pentru întâlniri față în față, mai ales la începutul fiecărui proiect major.
- Construiți un design organizațional care să susțină lucrul într-o dezvoltare distribuită, inclusiv sistemele potrivite de stimulare.
Făcând aceste trei acțiuni, se pot obține avantaje dincolo de externalizarea sau delocalizarea pură , și anume angajați mult mai motivați în toate părțile rețelei distribuite, o păstrare mai mare și cu siguranță se câștigă din diversitatea rețelei.
Aplicații
Inginerie software distribuită la nivel global
Global Distributed Software Engineering este aplicația de întreprindere pentru un proces de dezvoltare distribuită. Companiile pot lucra într-un mediu distribuit datorită echipelor care lucrează în diferite locuri sau din cauza externalizării sau a delocalizării . O abordare populară a ingineriei software distribuite este Distributed Agile Software Development .
În trecut, aproape toată dezvoltarea software-ului a fost realizată de echipe în care toți membrii: liderul echipei, designeri, dezvoltatori și testeri, au lucrat împreună în strânsă apropiere fizică. De-a lungul anilor, companiile au început să crească în dimensiune și complexitate, ceea ce le-a forțat să dezvolte software la nivel global. Mai mult, și alte forțe au avut impactul lor, de exemplu, forțele economice și globalizarea au început să transforme piețele naționale în piețe globale, ceea ce a adus și mai multă concurență.
Așa cum s-a explicat mai devreme despre Factorii de succes , dezvoltarea de software într-un mediu distribuit aduce mai multe avantaje, care este, de asemenea, un factor pentru companiile care încep să dezvolte software la nivel global, precum:
- Costuri mai mici de dezvoltare datorate, de exemplu, salariilor mai mici în alte regiuni ale lumii
- Eficiența timpului, crește numărul de ore zilnice de lucru
- Acces la un fond de muncă calificat mai mare
- Apropierea mai apropiată de piața și clienții unei companii
Ingineria software distribuită global prezintă multe provocări în ceea ce privește comunicarea. Aria de studiu a comunicării în dezvoltarea de software distribuit abordează aceste provocări și se concentrează pe a ajuta întreprinderile să aibă canale de comunicare fiabile, fără neînțelegeri.