Chiar fiecare dezvoltator de software sau programator a întâlnit cod scris de altcineva care dovedește clișeul „oricine poate codifica”. Dar ați întâlnit vreodată așa-zisul mitic „Dezvoltator 10x”? A fi un dezvoltator de 10x are mai puțin de-a face cu a excela la scrierea de cod și mai mult cu a ști exact ce cod să scrii.
Mulți dintre noi au început să programeze pentru un scop specific. De exemplu, am început să scriu cod pentru a juca automat jocuri MUD bazate pe text pentru mine în timp ce dormeam și eram la școală. Eram un copil de script la 13 ani și nici măcar nu știam asta. Puteam să vin cu o idee, să scriu codul și să-l testez – totul de unul singur.
Dezvoltarea de software este dificilă atunci când o facem pentru altcineva, deoarece adesea ne lipsește același tip de motivație și entuziasm care ne conduce atunci când ne urmărim propria viziune. Nu noi venim cu ideile, ne petrecem ore întregi în ședințe încercând să le înțelegem, iar apoi ne petrecem cea mai mare parte a timpului modificând codul altcuiva – sau cel puțin contribuind la el. Acest lucru poate duce la un nivel de detașare care diminuează productivitatea.
Pentru a fi un dezvoltator 10x, trebuie să învățați să excelați în acest mediu sau chiar să vă înființați propria companie pentru a conduce această sarcină.
Oricine poate fi un dezvoltator 10x, cel puțin pentru o parte din zi, în fiecare zi. Cred că există trei lucruri pe care toți dezvoltatorii ar trebui să se concentreze pentru a deveni mai productivi și un membru mai bun al echipei.
- Cele 3 lucruri
- Să știi ce
- Înțelegerea motivului
- Să știi când să faci ce
- Dominați Ce, De ce & Când pentru a deveni un dezvoltator 10x
- Începeți cu De ce
- Să fii un bun dezvoltator & Excelent rezolvator de probleme, nu cel mai bun programator
- Cândul este în instinctul vostru, sau nu este
- Să știi ce să faci și ce să întrebi
- Concluzie
Cele 3 lucruri
Pentru a fi un dezvoltator 10x, aveți nevoie de mai mulți ani de experiență de lucru cu orice limbaj de programare și set de instrumente pe care îl utilizați. Trebuie să vă pricepeți să rezolvați probleme și să scrieți cod; acest lucru este un dat.
Este important să înțelegeți că modul în care scrieți codul nu este ceea ce vă face un dezvoltator 10x, un inginer 10x, un programator 10x sau cum vreți să îi spuneți.
Cunoașteți cei 5 W: „Cine, ce, unde, de ce, când”. Deși toate acestea se aplică la dezvoltarea de software, vreau să mă concentrez asupra celor trei caracteristici care definesc dezvoltatorii 10x. aceste trei lucruri diferențiază dezvoltatorul mediu de dezvoltatorul 10x:
- Ce
- De ce
- Când
Să știi ce
În lumea corporatistă, dezvoltatorii au tendința de a lucra la proiecte pentru care nu sunt prea pasionați și pe care nu le înțeleg. Pentru majoritatea dezvoltatorilor, aceasta nu este o mare problemă, atâta timp cât primesc indicații foarte bune și așteptările sunt clar definite.
Problema este că, de obicei, dezvoltatorii nu primesc instrucțiuni adecvate. În schimb, noi folosim acest lucru numit „dezvoltare agilă”. Primim un post-it cu câteva cuvinte pe el și se așteaptă ca noi să știm exact ce trebuie făcut.
Dezvoltarea de software se bazează pe comunicare. Dezvoltatorii trebuie să știe la ce lucrăm, ce probleme încercăm să rezolvăm și exact cum trebuie să arate rezultatul. Cu cât știm mai multe de la început, cu atât mai repede putem merge mai repede. Cel mai important, cunoașterea intenției de lucru și a ceea ce va face ca lucrarea să fie un succes este crucială pentru reușită.
Dezvoltatorii răi vor petrece ore întregi mergând în direcția greșită într-un proiect fără să pună întrebări. Aceștia sunt ceea ce eu numesc dezvoltatori -10x, deoarece nu realizează nimic și irosesc timpul tuturor colegilor lor. Aproape toată lumea a întâlnit unii dintre acești dezvoltatori și poate fi frustrant să lucrezi alături de ei. Și trebuie să aveți grijă să nu le preluați obiceiurile!
Câțiva dezvoltatori lucrează bine chiar și fără o mulțime de detalii. Ei folosesc o mare cantitate de creativitate și pun întrebările potrivite. Acești unicorni sunt probabil dezvoltatori 10x. Aceștia știu cum să își dea seama de lucruri și adesea ridică nivelul întregii echipe care lucrează în jurul lor.
Subliniați că dezvoltatorii 10x sunt foarte buni în a determina rapid ce trebuie realizat și ce întrebări să pună.
Înțelegerea motivului
Poate cel mai mare obstacol al dezvoltării de software este înțelegerea motivului. Dacă nu înțelegi problema pe care încerci să o rezolvi, este foarte greu să o rezolvi.
De ce am făcut scripturi de terminal împreună pentru a juca jocul meu MUD în timp ce dormeam și eram la școală? Voiam să ating cel mai înalt nivel din joc, bineînțeles. Știam exact de ce și făceam tot ce puteam pentru a realiza acest lucru.
Aceeași abordare se aplică oricărui proiect de dezvoltare de software. Dezvoltatorii care înțeleg verticala industriei în care se află și problemele pe care încearcă să le rezolve vor fi mult mai productivi. Cunoașterea motivelor și înțelegerea verticalei ajută, de asemenea, la prevenirea muncii inutile, eliberând timp pentru a se concentra pe lucrurile care vor face un produs sau o caracteristică mai valoroasă pentru utilizatori.
Problema este că a ști de ce nu este suficient. Trebuie să ai o pasiune pentru problemă și să o înțelegi pe dinăuntru și pe dinafară pentru a fi cu adevărat un dezvoltator 10x. Cred că majoritatea dezvoltatorilor 10x sunt, de asemenea, oameni de produs în suflet, înzestrați cu o bună viziune de produs.
Să știi când să faci ce
Timparea este importantă pentru proiectele de dezvoltare software. Alegerea ordinii în care să lucrați la elementele din registrul de lucru este o sarcină aparent ușoară care este cu adevărat critică. Lucrați la ceva care poate ajuta compania dvs. să obțină un nou cont sau mergeți să curățați vechea datorie tehnică?
Ca echipe de dezvoltare, trebuie să jonglăm în mod constant cu ceea ce lucrăm și când lucrăm la asta.
Toate elementele de lucru pentru dezvoltarea de software se încadrează în aceste trei categorii:
- Lucruri pe care trebuie să le facem
- Lucruri pe care trebuie să le facem
- Lucruri pe care vrem să le facem
Trebuie să realizăm această nouă caracteristică pentru un client. Trebuie să reparăm bug-uri în software-ul nostru. Vrem să lucrăm la o datorie tehnică sau la o nouă caracteristică interesantă a produsului. Este întotdeauna un act de echilibrare.
Ar trebui să facem elemente de lucru din toate aceste trei găleți în același timp. Nu putem să ne petrecem tot timpul cu datoria tehnică, dar poate că ar trebui să îi dedicăm un mic procent din timpul nostru.
Dezvoltatorii trebuie să știe, de asemenea, când să construiască arhitecturi complexe în cadrul codului lor. Eu prefer să păstrez codul cât mai simplu posibil până când sunt forțat să adaug o arhitectură fără de care nu pot trăi altfel.
Dezvoltatorii trebuie să știe, de asemenea, când să evite să urmărească obiecte strălucitoare. Ei au tendința de a dori să se joace cu noi instrumente și tehnologii, dar aceste soluții pot doar să încetinească un proiect în loc să ajute la realizarea mai rapidă a acestuia.
Dezvoltatorii 10x sunt buni la jonglarea priorităților și înțeleg când să investească timp în arhitecturi față de a arunca cod spaghete pentru a face ceva să funcționeze. Nu uitați, utilizatorilor dvs. nu le pasă cum funcționează software-ul dvs. sau cât de fantezistă este arhitectura. Ei vor doar ca acesta să funcționeze. Dezvoltatorii 10x înțeleg acest lucru.
Dominați Ce, De ce & Când pentru a deveni un dezvoltator 10x
Acum să vorbim despre cum puteți stăpâni abilitățile importante de Ce, De ce și Când pentru a deveni un dezvoltator 10x.
Începeți cu De ce
Primul pas pentru a deveni un dezvoltator 10x este să deveniți pasionat de software și de problemele pe care încercați să le rezolvați. Trebuie să înțelegeți problema pe dinăuntru și pe dinafară. Acest lucru începe prin a fi entuziasmat de compania pentru care lucrați și de misiunea lor ca și companie.
Nu faceți un buton să facă ceva doar pentru că așa a spus cineva să facă. Străduiți-vă să înțelegeți de ce la un nivel mai înalt. Vei fi mult mai valoros pentru echipa și compania ta dacă rămâi concentrat pe de ce.
Să fii un bun dezvoltator & Excelent rezolvator de probleme, nu cel mai bun programator
Mă descriu mai degrabă ca un hacker-developer. Sunt genul care poate pune laolaltă niște coduri urâte pentru a rezolva aproape orice problemă foarte rapid. Codul meu este rareori frumos, dar funcționează. Și asta este ceea ce contează.
Nu trebuie să scrieți cod perfect arhitecturat cu teste unitare pentru a fi un dezvoltator 10x. Trebuie să știi când și când să nu faci aceste lucruri pentru a fi un dezvoltator 10x.
Un dezvoltator 10x este bun la rezolvarea unor probleme specifice și la satisfacerea nevoilor afacerii cu cod. Cel mai inteligent lucru pe care îl puteți face este să știți cât de departe trebuie să duceți un proiect înainte de a-l preda altcuiva care ar putea fi mai priceput la finalizarea unora dintre arhitecturi și a altor mici detalii.
Cândul este în instinctul vostru, sau nu este
Să știți când să construiți o arhitectură complexă față de când să faceți ceva împreună vine odată cu experiența și cu dezvoltarea simțurilor voastre de spider. Fie ai acel instinct, fie nu.
Câțiva dintre cei mai deștepți dezvoltatori cu care am lucrat vreodată au fost cei mai slabi la prioritizarea modelelor și a arhitecturilor în detrimentul funcționalității și a programelor. Ei au vrut să supra-inginerească și să rescrie lucrurile la nesfârșit, străduindu-se să obțină „codul perfect” mai degrabă decât „codul care poate fi livrat.”
Dezvoltatorii 10x trebuie să își folosească experiența și instinctul pentru a ști când să se concentreze pe arhitectură și perfecțiune față de a face rahaturi.
Să știi ce să faci și ce să întrebi
Atât de mult din dezvoltarea de software se reduce la abilitățile de comunicare. Din păcate, multe dintre notele și cerințele pe care le primim pentru elementele de lucru nu sunt foarte detaliate. Un dezvoltator 10x știe cum să le citească, să aplice „de ce” pe care îl știe despre afacere și să pună întrebări relevante.
Cei mai buni dezvoltatori știu cât timp trebuie să petreacă pe ceva înainte de a cere ajutor. Ei știu, de asemenea, ce întrebări să pună pentru a clarifica ceea ce trebuie făcut pentru a duce proiectul mai departe.
Concluzie
Scriu cod de peste 15 ani. Aș spune că sunt un dezvoltator de 10x, sau cel puțin pot fi. Știu la ce mă pricep. Când fac lucrurile la care mă pricep, pot face rapid o cantitate serioasă de muncă.
Dacă vreți să faceți un prototip pentru un nou produs, sunt omul vostru. Dacă aveți nevoie de ajutor cu Angular, React sau alte tipuri de dezvoltare front-end, cu siguranță nu sunt omul vostru. Aș fi un dezvoltator -10x la acele sarcini.
Dezvoltatorii de 10x nu sunt un mit. Ei chiar există. Ei sunt cel mai probabil manageri de dezvoltare, arhitecți, dezvoltatori principali sau fondatori de companii. Dacă nu sunt, probabil că ar trebui să fie. Am ajuns să fiu fondator de companie, de două ori acum.
De asemenea, nimeni nu va fi un dezvoltator 10x în fiecare zi, toată ziua. Nu avem energia sau concentrarea necesară pentru a lucra în acest ritm în fiecare zi. Nu suntem roboți.
Dacă înțelegeți „ce, de ce și când” de dezvoltare software, puteți fi mai productiv și un membru mai bun al echipei – poate chiar un dezvoltator 10x pentru câteva ore pe zi. Și asta poate face o mare diferență.
În timp ce sunteți aici și căutați cum să vă îmbunătățiți, verificați instrumentul nostru de analiză dinamică a codului, Stackify Prefix. Este gratuit și vă va ajuta să scrieți un cod mai bun.
.