Prejudecăți cognitive în dezvoltare: cum se manifestă în medii reale

Publicat: 2023-03-17
cognitive bias dev 1

Lumea în care trăim astăzi este construită pe colectarea și procesarea în masă a datelor. La un moment dat, companiile au descoperit că, cu un set suficient de mare de date și o manipulare corectă, pot găsi informații incredibil de valoroase despre clienții lor și pot valorifica pe acestea. Pentru cei dintre noi care depind de tehnologiile moderne în viața noastră de zi cu zi, se simte că aproape tot ceea ce facem este urmărit și măsurat într-un fel. Acum avem o sursă copleșitoare de date care provin din surse de pretutindeni. La sfârșitul zilei, toate aceste informații trebuie să ajungă într-un singur punct de procesare - creierul nostru. Lumea informațiilor crește rapid, iar creierul uman face tot posibilul pentru a se adapta și a crește odată cu el, dar nu poate face decât atât.

Ce sunt prejudecățile cognitive?

Introduceți prejudecăți cognitive; Ruhl de la SimplyPsychology (2021) descrie prejudecățile cognitive ca „erori inconștiente în gândire care apar din probleme legate de memorie, atenție și alte greșeli mentale”. Ea explică că acesta este „rezultatul eforturilor creierului nostru de a simplifica lumea incredibil de complexă în care trăim”. Cu alte cuvinte, pe măsură ce ni se prezintă în permanență informații noi, creierul nostru încearcă să proceseze acest lucru eficient, făcând presupuneri pentru a ajuta totul să aibă sens – dintre care unele sunt incorecte.

Cum apar distorsiunile cognitive în ingineria software?

Luând acest lucru în contextul ingineriei software, cu tehnologia care avansează într-un ritm exponențial, inginerii trebuie să învețe rapid pentru a putea menține și actualiza sistemele pe care le construiesc. Pentru a susține un ritm productiv, a face presupuneri devine inevitabil, deoarece a cunoaște ceva cu certitudine necesită timp, care este limitat. Prin urmare, devine parte din munca unui inginer să fie capabil să identifice și să analizeze cu atenție ipotezele care se fac. Acest lucru se face de obicei în timpul procesului de proiectare a soluției și este însoțit de analize ale costurilor potențiale pentru rezultatele eșuate. Totuși, diferența dintre ipotezele făcute în acest mod față de cele care rezultă din prejudecăți cognitive este că una este conștientă, în timp ce cealaltă este inconștientă. Deci, pentru a preveni aceasta din urmă, trebuie să fim conștienți de existența lui.

Ca inginer, a fi capabil să identifice propriile părtiniri cognitive poate fi foarte puternic, deoarece poate ajuta la prevenirea greșelilor costisitoare. Cu toate acestea, a ști cum să construiești această abilitate poate să nu vină natural, deoarece este mai legată de psihologie decât de inginerie. Din fericire, o cantitate considerabilă de cercetări a fost făcută în acest domeniu și este disponibilă publicului. Organizațiile pot folosi aceste informații pentru a proiecta și implementa practici de dezvoltare utile pe care inginerii le pot urma, astfel încât greșelile să poată fi evitate.

Chattopadhyay și colab. (2020) de la Universitatea din Oregon a efectuat un studiu numit A Tale from the Trenches: Cognitive Biases and Software Development, cu dezvoltatori dintr-un startup a cărui experiență de lucru a variat de la 1 la 23 de ani. Aceasta a implicat observarea dezvoltatorilor care își îndeplinesc sarcinile zilnice în timp ce își verbalizează și își exprimă gândurile cu voce tare; în esență, un exercițiu de programare în pereche, cu excepția unui cercetător tăcut în schimb un coleg dezvoltator. După ce au observat 10 dezvoltatori diferiți, cercetătorii au întocmit o listă de categorii de părtiniri cognitive și exemple de greșeli care au apărut ca urmare a acestora, așa cum se poate vedea în tabelul de mai jos.

Categoria de părtinire părtinire(e) Exemplu
Preconcepții Confirmare, percepție selectivă P1 a adăugat continuu hashmaps atunci când alte structuri de date erau mai potrivite pentru API-urile de interogare a datelor.
Proprietate Efect IKEA, Efect de dotare P8 a decis să refolosească vechiul ei fișier CSS în loc de fișierele CSS prefabricate din proiectul Bootstrap.
Fixare Ancorare și ajustare, Păstrarea credințelor, Reflexul Semmelweis, Fixare P9 s-a fixat pe schimbarea definițiilor funcției atunci când mediul trebuia doar reîncărcat.
Recurge la implicit Implicit, Status-quo, Cost nefondat P2 a deschis un nou fișier de cod și a păstrat codul șablon neutilizat în partea de sus a fișierului.
Optimism Efect de valență, invincibilitate, dorință, supraoptimism, exces de încredere P4 era mândru de noul său cod de hartă agregat, dar a primit o eroare după ce a fost tipărit.
Comoditate Reducere hiperbolica, prejudecată bazată pe timp, procese informaționale avar, reprezentativitate P2 a creat pur și simplu un cod exagerat de versat care răspundea nevoilor sale actuale, dar a devenit un cod spaghetti care a încetinit progresul viitor.
Acțiune subconștientă Informații înșelătoare, efect de valabilitate P6 s-a concentrat pe remedierea fișierelor enumerate în mesajele de eroare în loc de fișierul de dependență de bază care provoacă erori în întregul sistem.
Fericită ignoranță Efect de normalitate P10 a ignorat toate avertismentele compilatorului din obișnuință și nu a observat o nouă excepție care detaliază cauza eșecului său de construcție.
Selecția superficială Efect de contrast, Efect de încadrare, Efect Halo P4 a copiat și lipit o funcție din documentația sa direct în sintaxa sa, fără a o examina mai întâi.
Prejudecăți de memorie Primatitate și recentitate, Disponibilitate P1 a refolosit un model de design care a funcționat bine în sarcinile recente, deoarece își putea aminti cu ușurință structura codului.
Recreat din „A Tale in the Trenches: Cognitive Biases and Software Development” de Chattopadhyay et al., 2020, 23-29 mai. Preluat de la https://dl.acm.org/doi/pdf/10.1145/3377811.3380330

Înțelegerea părtinirii pentru a întrerupe un cerc vicios

Cu siguranță am recunoscut unele dintre aceste greșeli în propriile mele experiențe ca dezvoltator. Dacă cineva m-ar întreba de ce am făcut aceste greșeli, înainte de a-mi da seama ce sunt prejudecățile cognitive, probabil că aș spune, „pentru că am crezut că acesta este modul corect de a face asta”. Când vine vorba de comportamentul inconștient, este greu de înțeles de unde vine sau chiar dacă există. Este aparent inocent și inofensiv în acest moment, dar în timp, aceste greșeli pot duce la efecte negative grave, pe măsură ce se formează obiceiuri proaste și devin greu de spart. Când nu sunt verificate, un număr tot mai mare de erori sunt introduse în sistem și resursele sunt epuizate pentru remedierea acestor erori, potențial și într-un mod incorect - un cerc vicios.

Având o perspectivă exterioară, ca un cercetător tăcut, face mult mai ușor să reperezi aceste comportamente. Este și mai util dacă observatorul știe că există aceste comportamente și i se dă permisiunea de a le sublinia atunci când este văzut. Deoarece aceste greșeli afectează în cele din urmă afacerea, este la latitudinea organizației să înțeleagă aceste efecte ale producției într-un ritm rapid. Această înțelegere poate justifica investițiile în implementarea unor proceduri și instruire adecvate. Deși m-am concentrat doar asupra modului în care apar prejudecățile cognitive în dezvoltarea de software, ne putem imagina cum pot apărea acestea și în alte departamente. În esență, oricine caută să fie productiv în munca sa poate beneficia de înțelegerea prejudecăților cognitive.

Ești interesat să-ți dezvolți cariera în cadrul unor culturi de echipă ca aceasta? Consultați pozițiile noastre deschise de mai jos pentru a fi primii care află despre noi oportunități.


nhu Nhu Tran”>
Nhu Tran

Nhu Tran este un dezvoltator de software la Rewind. Tran este un programator cu experiență, familiarizat cu întregul ciclu de viață al dezvoltării software, de la proiectare la dezvoltare, la implementare și la testare. Când nu se află în fața unui ecran, Tran poate fi găsită coborând un munte iarna sau construind un glamping confortabil vara.

Mulțumiri speciale prietenilor noștri de la Rewind pentru cunoștințele lor despre acest subiect.
Acțiune
Tweet
Acțiune
0 acțiuni