Codificare cowboy

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Codificarea cowboy este un termen folosit pentru a descrie o metodologie de dezvoltare software în care programatorii au autonomie deplină în controlul planificării proiectelor, alegerea algoritmilor , instrumentelor de dezvoltare și stilului de programare a codului. Un „codificator de cowboy” poate fi un dezvoltator izolat sau parte a unui grup, dar în absența oricărui management extern care controlează aspectele de dezvoltare ale proiectului, cum ar fi natura, domeniul de aplicare, setul de caracteristici.

Codificarea cowboy poate avea conotații pozitive sau negative, în funcție de opiniile dvs. cu privire la sarcinile de gestionare și de proces formal în dezvoltarea de software. Adesea folosit ca un termen derogatoriu de către susținătorii metodologiilor de dezvoltare software, este totuși reevaluat de programatori care își practică munca în cadrul unor comunități.

Dezavantaje ale „codării cowboy”

În contextul „codării cowboy”, lipsa metodologiilor formale de gestionare a software-ului din proiect poate fi indicativă (deși nu neapărat) a unui proiect mic sau de natură experimentală.

Proiectele software cu aceste atribute pot prezenta:

  • Puncte slabe în structura de distribuție

Proiectul poate lipsi de un studiu de fezabilitate, estimare, planificare sau implementare care poate cauza întârzieri ale proiectului. Termenele bruște și situațiile de urgență în publicarea software-ului și actualizărilor ar putea favoriza producerea de cod murdar și rapid scris, în care erorile sunt corectate în scopul funcționalității imediate și nu într-un stil curat și o abordare flexibilă și generală. Greșelile corectate în acest mod trebuie adesea detectate în viitor cu mai multă atenție și mai multă pierdere de timp de dezvoltare ulterioară.

  • Dezvoltatori fără experiență

Codificarea cowboy-ului este comună hobbyiștilor sau programatorilor care sunt încă studenți care ar putea fi inițial foarte familiarizați cu tehnologiile, cum ar fi instrumentele de dezvoltare, pe care le necesită proiectul. Aceasta poate însemna că timpul necesar învățării cunoștințelor de bază poate fi subestimat și scurtat, provocând întârzieri ulterioare în procesul de dezvoltare, care sunt mult mai severe. Lipsa de experiență poate duce, de asemenea, la ignorarea normelor acceptate în mod obișnuit, făcând codul sursă dificil de citit sau provocând conflicte între semantica constructelor limbajului și rezultatul producției lor.

  • Cerințe de proiectare incerte

În aplicațiile software personalizate, chiar și atunci când se utilizează un ciclu de dezvoltare dovedit, pot apărea probleme cu clientul în ceea ce privește cerințele. Codificarea cowboy poate accentua această problemă, deoarece de multe ori nu escalează cerințele într-un interval de timp rezonabil, iar clientul găsește caracteristici care nu sunt încă utilizabile în momentul termenelor scontate. La fel, proiectele cu clienți mai puțin tangibili (proiecte experimentale) pot începe cu dezvoltarea imediată a codului și nu cu o analiză formală a cerințelor de proiectare. Lipsa analizei de proiectare poate duce la alegeri tehnologice incorecte sau insuficiente care, în cel mai rău caz, pot necesita un efort suplimentar de programare și timp de la programator, obligându-l să se conecteze la platformă sau la limbajul de programare.

  • Incompletitate

Multe modele de dezvoltare software utilizează o abordare incrementală care conturează prototipuri funcționale în fiecare etapă. Proiectele neadministrate pot avea mai puține șanse de testare și iterație între unitățile de lucru, lăsând proiectul incomplet pentru perioade lungi de timp.

Avantajele „codării cowboy”

  • Dezvoltatorii mențin instruire gratuită inspirată de artă la locul de muncă, care poate încuraja experimentarea, învățarea și distribuirea gratuită a rezultatelor.
  • Fără o dezvoltare atentă și un rol separat de proiectant de cadru, programatorul, spre deosebire de managerul de proiect, este responsabil pentru eliminarea blocajelor proiectului. Acest lucru poate îmbunătăți viteza de dezvoltare.
  • Dezvoltatorii independenți pot începe cu tehnici de „codare cowboy”, apoi pot trece la o dezvoltare mai rațională mai târziu, atunci când resursele sunt mai mari, în vederea utilizării comerciale sau a creării de comunități sau proiecte sprijinite.
  • Proiectele mici pot fi împovărate cu metodologii grele de gestionare a software-ului, „codificarea cowboy” elimină această povară.
  • Cu „codificarea cowboy”, un proiect de nivel amator care, cu o greutate de proiect și planificare prea elaborată și costisitoare, altfel nu ar avea posibilitatea unui viitor, poate încă să se realizeze.