10x Programatori: Mit sau realitate?

Programatorii 10x sunt un subiect fierbinte de discuție în industria software în zilele noastre, așa că m-am gândit că ar fi o idee bună să vă împărtășesc punctul meu de vedere în această privință.

Honestly I don’t know the exact definition of a 10x programmer, but I assume it refers to hyper productive programmers (which may not map to exactly 10 times productivity, but to a significant level near or more than 10 times).

Bazându-mă pe cele câteva succese pe care le-am avut în timp ce am livrat bucăți ultra mari de software pentru startup-uri și corporații și pe experiența de lucru cu câțiva programatori de top, pot împărtăși câteva idei despre acest subiect.

Programatorul de 10x atunci

Software-ul dezvoltat acum 20-30 de ani era mult mai simplu în comparație cu software-ul modern, în ceea ce privește funcționalitatea, securitatea, performanța și scalabilitatea. Pe de altă parte, doar o mână de biblioteci sau framework-uri erau disponibile la acea vreme pentru a implementa orice funcționalitate.

Din acest motiv, software-ul scris în urmă cu 20-30 de ani presupunea un efort semnificativ de programare.

Definirea unui programator 10x în acest context este relativ ușoară. Diferența dintre cantitatea de efort de programare de bază acordată pentru implementarea aceluiași set de funcționalități de către programatorii 10x și de către programatorii obișnuiți.

10x dev

Inginerul 10x acum

Înainte de a intra în detalii suplimentare, haideți să clarificăm un lucru: dezvoltarea de software este un proces complex, iar programarea este doar unul dintre domeniile care trebuie să contribuie la un software modern.

Din cauza utilizării crescute a software-ului, în special pe internet, atât de către consumatori, cât și de către organizații, software-ul este foarte complex și ar putea fi o decizie nebunească să construiești ceva de la zero. Sincer, cu excepția cazului în care este vorba de o platformă sau de un sistem de operare complet nou, programarea de bază necesară pentru a dezvolta un software modern este mai puțin intensă în comparație cu eforturile mai vechi.

În timp ce cunoștințele și efortul de programare sunt încă foarte importante, cantitatea de efort care este necesară pentru a construi un software excelent (fără erori, sigur și vandabil) este în inginerie.

Așa că, în contextul actual, un programator de 10x poate să nu aducă prea multă valoare în industrie, dar un inginer de 10x creează un impact foarte larg în procesul de dezvoltare.

Aș dori să adaug aici cei 3 cenți ai mei.

1. Folosesc cât mai bine instrumentele

Dezvoltarea de software este un proces complex, care implică o mulțime de tipuri diferite de efort. În afară de codificare, implică eforturi de la documentarea procesului, la formatarea datelor, de la citirea datelor de jurnal, la trimiterea de rapoarte, de la testarea automată, la testarea manuală, de la depanarea complexă, la investigarea manuală a problemelor și așa mai departe și așa mai departe.

Un efort uriaș poate fi făcut extrem de eficient prin utilizarea setului corect de instrumente și platforme (care sunt adecvate bugetului și altor constrângeri ale clientului).

Editori

Scrierea de software implică unul sau mai multe editoare, unele dintre acestea fiind denumite și IDE (Integrated Development Environment). IDE-urile moderne, cum ar fi Visual Studio sau Eclipse, oferă o cantitate mare de funcționalități pentru a face dezvoltatorii productivi, dar o cantitate semnificativă din aceste caracteristici nu sunt cunoscute de majoritatea dezvoltatorilor.

DE-urile populare au, de asemenea, plugin-uri comerciale și gratuite (cum ar fi Resharper), care permit și mai multă productivitate a dezvoltatorilor.

În afară de IDE-uri, alți editori precum NotePad++, MarkdownPad etc. sunt, de asemenea, foarte utili într-un context relevant.

Utilități și servicii online

Utilități și servicii online precum citirea sau căutarea în fișiere jurnal de mari dimensiuni, depanatoare http precum Fiddler, instrumente de construire și implementare etc.

Instrumente proprii

Inginerii de 10x își creează, de asemenea, propriile seturi de instrumente pentru a efectua acțiuni repetitive pentru care este posibil ca software-ul adecvat să nu fie disponibil în exterior.

În foarte multe cazuri, proprietarii de afaceri dintr-o casă de dezvoltare de software nu par a fi interesați să investească prea mult în instrumente pentru dezvoltatori, dar utilizarea setului corect de instrumente va permite o cantitate surprinzătoare de productivitate.

Pentru dezvoltatorii de software, care sunt unele dintre cele mai scumpe persoane care pot fi angajate, merită să se cheltuiască bani pe un set de instrumente potrivite pentru ei.

În calitate de lider al unei echipe de dezvoltatori .net, dezvoltarea unui șablon de pornire ASP.NET Core & Visual Studio conform celor mai recente practici de codare .net a ajutat echipa mea să crească productivitatea generală de trei ori.

2. Ei nu reinventează roata

Industria software a devenit foarte matură în ultimele trei decenii. Aproape fiecare problemă pe care dezvoltatorii încearcă să o rezolve prin codare a fost rezolvată și este disponibilă sub formă de API-uri (fie sub formă de servicii binare, fie sub formă de servicii web), dintre care unele sunt comerciale, în timp ce altele sunt gratuite.

În plus, cadrele open source oferă, de asemenea, o mare flexibilitate pentru a înțelege comportamentul API-ului subiacent sau pentru a-l personaliza în funcție de nevoile utilizatorilor.

Înainte de a se arunca în programare, inginerii 10x se asigură, de fapt, că această problemă nu a mai fost rezolvată complet (sau parțial) înainte sau, dacă da, nu sunt disponibile pentru a fi folosite.

3. Ei scriu (în mod continuu) cod frumos proiectat

Scrierea unui software excelent necesită definirea unei arhitecturi bune care nu numai că respectă modele și principii bune de proiectare, dar profită și de infrastructurile moderne. Producerea unui cod bine proiectat nu numai că permite scrierea de noi funcționalități mai rapid, dar reduce semnificativ și bug-urile.

Dar, o inginerie frumoasă necesită o îmbunătățire continuă.

Am văzut o cantitate surprinzătoare de cod de slabă calitate în diferite proiecte software în cariera mea profesională, care adaugă continuu datorie tehnică. Un proiect simplu care a început în urmă cu 5 ani este plin de cod urât fără inginerie și necesită peste 20 de persoane pentru a se ocupa de ciclul de dezvoltare (unde își petrec de fapt 80% din timp reparând bug-uri).

Unul dintre principalele motive din spatele acestei situații îngrozitoare, am constatat, este „frica”.

Organizațiile, în special entitățile de tip enterprise, se tem în cea mai mare parte de schimbare.

Dezvoltarea de software este o disciplină care se schimbă incredibil de rapid în ceea ce privește instrumentele, cadrele și ingineria, și necesită schimbări continue pentru a ajunge la locul potrivit.

Schimbarea este înfricoșătoare, dar nu este atât de periculoasă pe cât pare, mai ales în industria software (cu seturile potrivite de instrumente și oameni). Dar dacă nu se face conform așteptărilor, nu va dura mult timp pentru ca într-o zi proiectul să fie abandonat în întregime.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.