Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko

Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko

Skyeng Kirill Rogovoy teknologiburua (flashhhh) hitzaldietan aurkezpen bat egiten du, garatzaile on bakoitzak onena izateko garatu behar dituen trebetasunei buruz hitz egiten du. Istorio hau Habra irakurleekin partekatzeko eskatu nion, Kirilliri ematen diot hitza.

Garatzaile on bati buruzko mitoa zera da:

  1. Kode garbia idazten du
  2. Teknologia asko ezagutzen ditu
  3. Kodetze lanak azkarrago
  4. Algoritmo eta diseinu eredu mordoa ezagutzen ditu
  5. Clean Code erabiliz edozein kodea birfaktorizatu dezake
  6. Ez du denbora galtzen programaziorik gabeko zereginetan
  7. Zure teknologia gogokoen %100 menderatu

Horrela ikusten ditu HR-k hautagai idealak, eta hutsik dauden lanpostuak, horrenbestez, horrelakoak ere ikusten ditu.

Baina nire esperientziak dio hori ez dela oso egia.

Lehenik eta behin, bi ohartarazpen garrantzitsu:
1) nire esperientzia produktu taldeak dira, hau da. produktu propioa duten enpresak, ez azpikontratazioa; azpikontratazioan dena oso ezberdina izan daiteke;
2) junior bat bazara, orduan aholku guztiak ez dira aplikagarriak izango, eta ni zu banintz, programazioan kontzentratu egingo nintzateke oraingoz.

Garatzaile ona: errealitatea

1: batez besteko kodea baino hobea

Garatzaile on batek badaki arkitektura polita sortzen, kode bikaina idazten eta akats gehiegirik ez egiten; Oro har, batez bestekoa baino hobeto egiten du, baina ez dago espezialisten %1 onenen artean. Ezagutzen ditudan garatzailerik ederrenak ez dira hain kodetzaile bikainak: bikainak dira egiten dutenean, baina ezin dute ezer apartekorik egin.

2: Arazoak konpontzen ditu sortu baino

Pentsa dezagun proiektuan kanpoko zerbitzu bat txertatu behar dugula. Zehaztapen teknikoak jasotzen ditugu, dokumentazioa begiratu, zerbait zaharkitua dagoela ikusten dugu, parametro osagarriak gainditu behar ditugula ulertzen dugu, doikuntza batzuk egin, dena nolabait inplementatzen saiatu eta metodo okerren batek behar bezala funtzionatzen du, azkenik, pare bat igaro ondoren. egunetan ulertzen dugu ezin dugula horrela jarraitu. Egoera honetan garatzaile baten jokaera estandarra negoziora itzultzea eta esatea da: β€œHau eta bestea egin nuen, honek ez du horrela funtzionatzen, eta horrek ez du batere funtzionatzen, beraz, joan zaitez asmatu. ” Enpresa batek arazo bat du: gertatutakoan sakondu behar duzu, norbaitekin komunikatu eta nolabait konpontzen saiatu. Hautsitako telefonoa hasten da: "esaiozu, mezu bat bidaliko diot, begira zer erantzun dioten".

Garatzaile on batek, halako egoera baten aurrean, berak topatuko ditu kontaktuak, berarekin harremanetan jarriko dira telefonoz, arazoa eztabaidatuko du eta ezer ez badago, pertsona egokiak bilduko ditu, dena azalduko du eta alternatibak eskainiko ditu (seguruenik, beste bat egongo da). laguntza hobea duen kanpoko zerbitzua). Halako garatzaile batek negozio arazo bat ikusten du eta konpontzen du. Bere zeregina itxi egiten da negozio arazo bat konpontzen duenean, eta ez zerbaitekin topo egiten duenean.

3: Gutxieneko ahalegina egiten saiatzen da emaitzarik handiena lortzeko, makuluak idaztea esan nahi badu ere

Produktu-enpresetan softwarearen garapena ia beti da gasturik handiena: garatzaileak garestiak dira. Eta garatzaile on batek ulertzen du negozio batek diru kopuru handiena lortu nahi duela gutxieneko gastatuz. Berari laguntzeko, garatzaile on batek bere denbora garestiaren gutxieneko kopurua gastatu nahi du enpresaburuarentzat etekin handiena lortzeko.

Hemen bi mutur daude. Bata da, oro har, arazo guztiak makulu batekin ebatzi ditzakezula, arkitekturaz arduratu gabe, birfaktorizatu gabe, etab. Denok dakigu nola amaitzen den normalean: ezer ez dabil, proiektua hutsetik berridazten dugu. Beste bat da pertsona bat botoi bakoitzerako arkitektura aproposa lortzen saiatzen denean, ordubete zereginean eta lau birfactorizazioan. Itxura bikaina ematen du horrelako lanaren emaitzak, baina arazoa da negozioaren aldetik hamar ordu behar direla botoi bat osatzeko, lehenengo eta bigarren kasuetan, arrazoi ezberdinengatik besterik gabe.

Garatzaile on batek badaki mutur horien arteko oreka egiten. Testuingurua ulertzen du eta erabaki egokiena hartzen du: arazo honetan makulu bat moztuko dut, sei hilabetean behin ukitzen den kodea delako. Baina honetan, traba egingo dut eta dena ahalik eta ondoen egingo dut, oraindik garatu gabe dauden ehun ezaugarri berri arrakasta dudanaren araberakoak izango direlako.

4. Enpresa kudeatzeko sistema propioa du eta bertan edozein konplexutasuneko proiektuetan lan egiteko gai da.

Printzipioak lantzea Gauzak egitea - Zeregin guztiak testu-sistemaren batean idazten dituzunean, akordiorik ez ahaztu, denak bultzatu, garaiz leku guztietan agertu, momentuan zer den garrantzitsua eta zer ez den garrantzitsua dakizu, ez dituzu inoiz zereginak galtzen. Horrelako pertsonen ezaugarri orokorra zera da, haiekin zerbait adosten duzunean ez duzula inoiz kezkatzen ahaztuko ote diren; eta badakizu, gainera, dena idazten dutela eta ez dutela orduan milla galdera egingo, erantzunak lehendik eztabaidatuak.

5. Baldintzak eta aurkezpenak zalantzan jartzen eta argitzen ditu

Hemen ere bi mutur daude. Alde batetik, eszeptiko izan zaitezke sarrerako informazio guztiarekin. Zuk baino lehen jendeak irtenbide batzuk asmatu zituen, baina uste duzu hobeto egin dezakezula eta aurretik etorritako guztia berriro eztabaidatzen has zaitezke: diseinua, negozio irtenbideak, arkitektura, etab. Horrek denbora asko galtzen du bai garatzailearentzat bai ingurukoentzat, eta eragin negatiboa du enpresa barruko konfiantzan: beste pertsonek ez dute erabakirik hartu nahi, badakitelako tipo hori itzuliko dela eta dena hautsiko duela. Beste muturra da garatzaile batek sarrerako, zehaztapen teknikoak eta negozio-nahiak harrian landutako zerbait bezala hautematen dituenean, eta konpondu ezin den arazo baten aurrean bakarrik hasten da pentsatzen ari dena egiten ari den ala ez. Garatzaile on batek ere erdibide bat aurkitzen du hemen: bera aurretik edo gabe hartutako erabakiak ulertzen saiatzen da, zeregina garapenera joan aurretik. Zer nahi du negozioak? Bere arazoak konpontzen ari al gara? Produktu-diseinatzaileak irtenbide bat asmatu zuen, baina ulertzen al dut zergatik funtzionatuko duen irtenbideak? Zergatik sortu zen taldeko buruak arkitektura berezi hau? Zerbait argi ez badago, galdetzera joan behar duzu. Argibide honen prozesuan, garatzaile on batek aurretik inori bururatu ez zitzaion irtenbide alternatibo bat ikus dezake.

6. Inguruko prozesuak eta pertsonak hobetzen ditu

Gure inguruan prozesu asko gertatzen ari dira: eguneroko bilerak, topaketak, scrums, teknologiaren berrikuspenak, kodearen berrikuspenak, etab. Garatzaile on bat altxatuko da eta esango du: begira, astero elkartzen gara eta gauza bera eztabaidatzen dugu, ez dut ulertzen zergatik, ordu hau Contran pasako genuke. Edo: hirugarren egiteko jarraian ezin naiz kodean sartu, ezer ez dago argi, arkitektura zuloz beteta dago; Agian gure berrikuspen-kodea herrena da eta birfaktorea egin behar dugu, birfaktoratu dezagun bilera bi astean behin. Edo kodearen berrikuspenean, pertsona batek ikusten du bere lankide batek ez duela tresna jakin bat behar bezain eraginkortasunez erabiltzen, hau da, geroago etorri eta aholku batzuk eman behar ditu. Garatzaile on batek sen hori du; horrelakoak automatikoki egiten ditu.

7. Bikaina besteak kudeatzen, nahiz eta kudeatzailea ez izan

Trebetasun hori ondo lotzen da "arazoak sortzea baino konpontzea" gaiarekin. Askotan, eskaera egiten dugun lanpostuaren testuan ez da ezer idazten kudeaketari buruz, baina gero, zure esku ez dagoen arazoren baten aurrean, hala ere, beste batzuk nola edo hala kudeatu behar dituzu, haietatik zerbait lortu, baldin eta ahaztu - bultzatu, ziurtatu dena ulertu dutela. Garatzaile on batek badaki nori zer interesatzen zaion, pertsona horiekin bilera batera deitu dezake, akordioak idatzi, slack-era bidali, egun egokian gogorarazi, dena prest dagoela ziurtatu, pertsonalki zuzeneko erantzule ez bada ere. zeregin hori, baina bere emaitza ezartzearen araberakoa da.

8. Ez du bere ezagutza dogma gisa hautematen, etengabe kritikarako irekita dago

Denek gogoratu dezakete aurreko lan bateko lankide bat, bere teknologiarekin konprometitu ezinik dagoena eta denak infernuan erreko direla garrasi egiten duen mutazio oker batzuengatik. Garatzaile on batek, industrian 5, 10, 20 urtez lan egiten badu, bere ezagutzaren erdia ustelduta dagoela ulertzen du, eta gainerako erdian ez daki dakiena baino hamar aldiz gehiago. Eta norbait harekin ados ez dagoen bakoitzean eta alternatiba bat eskaintzen duen bakoitzean, ez da bere egoaren aurkako erasoa, zerbait ikasteko aukera baizik. Horri esker, ingurukoak baino askoz azkarrago hazten da.

Konpara dezagun garatzaile ideal baten ideia orokorrean onartutakoarekin:

Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko

Irudi honek goian deskribatutako puntuetatik zenbat kodearekin erlazionatuta dauden erakusten du, eta zenbat ez. Produktu-enpresa baten garapena programazio heren bat baino ez da, gainerako 2/3ek zerikusi gutxi dute kodearekin. Eta kode asko idazten dugun arren, gure eraginkortasuna bi heren β€œgarrantzigabe” horien araberakoa da.

Espezializazioa, generalismoa eta 80-20 araua

Pertsona batek arazo estu batzuk konpontzen ikasten duenean, luze eta gogor ikasten duenean, baina gero erraz eta erraz konpontzen dituenean, baina erlazionatutako arloetan esperientziarik ez badu, hori espezializazioa da. Generalismoa da prestakuntza-denboraren erdia norberaren konpetentziaren arloan inbertitzen denean, eta beste erdia erlazionatutako arloetan. Horren arabera, lehenengo kasuan, gauza bat primeran egiten dut eta gainerakoa gaizki, eta bigarrenean, dena gutxi-asko ondo egiten dut.

80-20 arauak esaten digu emaitzaren %80 ahaleginaren %20tik datorrela. Diru-sarreren %80 bezeroen %20tik dator, irabazien %80 langileen %20tik, etab. Irakaskuntzan, horrek esan nahi du ezagutzaren %80 ematen dugula lehen denboraren %20an.

Ideia bat dago: kodetzaileek soilik kodetu behar dute, diseinatzaileek diseinatu behar dute, analistek aztertu eta kudeatzaileek soilik kudeatu. Nire ustez, ideia hau toxikoa da eta ez du oso ondo funtzionatzen. Hau ez da denek soldadu unibertsala izan behar izatea, baliabideak aurreztea baizik. Garatzaile batek kudeaketari, diseinuari eta analitiki buruz apur bat ulertzen badu, arazo asko konpontzeko gai izango da beste pertsonarik inplikatu gabe. Ezaugarriren bat egin behar baduzu eta, ondoren, erabiltzaileek testuinguru jakin batean nola lan egiten duten egiaztatu behar baduzu, eta horrek bi SQL kontsulta beharko ditu, oso ona da analista honekin ez desbideratu ahal izatea. Botoi bat lehendik daudenekin analogiaz txertatu behar baduzu eta printzipio orokorrak ulertzen badituzu, diseinatzailerik inplikatu gabe egin dezakezu, eta enpresak eskertuko dizu.

Guztira: zure denboraren % 100 pasa dezakezu trebetasun bat mugaraino ikasten, edo denbora bera bost arlotan eman dezakezu, bakoitzean % 80 mailaz. Matematika inozo honi jarraituz, lau aldiz gaitasun gehiago lor ditzakegu denbora tarte berean. Hau gehiegikeria da, baina ideia ilustratzen du.

Lotutako gaitasunak ez %80an landu daitezke, %30-50ean baizik. 10-20 ordu eman ondoren, erlazionatutako arloetan nabarmen hobetuko zara, horietan gertatzen diren prozesuak asko ulertuko dituzu eta askoz autonomoagoa izango zara.

Gaur egungo ekosistema informatikoan, hobe da ahalik eta gaitasun gehien edukitzea eta horietako batean aditua ez izatea. Lehenik eta behin, trebetasun horiek guztiak azkar desagertzen direlako, batez ere programazioari dagokionez, eta, bigarrenik, denboraren % 99an oinarrizkoak ez ezik, zalantzarik gabe trebetasunik sofistikatuenak ere erabiltzen ditugulako, eta hori nahikoa da kodifikazioan ere, baita konpainia politak.

Eta azkenik, prestakuntza inbertsio bat da, eta dibertsifikazioa garrantzitsua da inbertsioetan.

Zer irakatsi

Beraz, zer eta nola irakatsi? Enpresa indartsu bateko garatzaile tipiko batek aldizka erabiltzen du:

  • komunikazio
  • autoantolaketa
  • plangintza
  • diseinua (normalean kodea)
  • eta batzuetan kudeaketa, lidergoa, datuen analisia, idazketa, kontratazioa, tutoretza eta beste hainbat gaitasun

Eta ia gaitasun horietako bat ere ez da kodearekin berarekin gurutzatzen. Bereiz irakatsi eta berritu behar dira, eta hori egiten ez bada, oso maila baxuan geratuko dira, eta horrek ez du modu eraginkorrean erabiltzeko aukera ematen.

Zein arlotan garatzea merezi du?

  1. Gaitasun bigunak editorean botoiak sakatzeari buruzkoak ez diren guztiak dira. Horrela idazten ditugu mezuak, nola jokatzen dugun bileretan, nola komunikatzen garen lankideekin. Gauza hauek guztiak agerikoak direla dirudi, baina askotan gutxietsi egiten dira.

  2. Autoantolaketa sistema. Niretzat pertsonalki, gai oso garrantzitsua bihurtu da azken urtean. Ezagutzen ditudan informatikako langile polit guztien artean, hau da gaitasun garatuenetako bat: oso antolatuta daude, beti egiten dute esaten dutena, ondo dakite zer egingo duten bihar, aste barru, hilabete barru. Beharrezkoa da zure inguruan gai guztiak eta galdera guztiak erregistratuta dauden sistema bat eraikitzea; horrek asko errazten du lana bera eta asko laguntzen du beste pertsonekin elkarreraginean. Uste dut azken urtean, norabide horretan garatzeak nire gaitasun teknikoak hobetzea baino askoz gehiago hobetu nautela; denbora-unitate bakoitzeko lan askoz gehiago egiten hasi nintzen.

  3. Proaktiboa, irekia eta plangintza. Gaiak oso orokorrak eta ezinbestekoak dira, ez informatikako bakarrak, eta guztiek garatu beharko lituzkete. Proaktibitateak neurriak hartzeko seinale baten zain ez egotea esan nahi du. Gertaeren iturburua zara, ez haiekiko erreakzioak. Irekitasuna edozein informazio berri objektiboki tratatzeko gaitasuna da, egoera norberaren mundu-ikuskeratik eta ohitura zaharretatik isolatuta ebaluatzeko. Planifikazioa gaurko zereginak astean, hilabetean, urtean arazoa nola konpontzen duen ikusteko argia da. Etorkizuna zeregin zehatz batetik haratago ikusten baduzu, askoz errazagoa da behar duzuna egitea, eta denboraren ondoren alferrik galdu zela konturatzeko beldurrik ez izatea. Trebetasun hori bereziki garrantzitsua da karrera baterako: urte luzez emaitzak arrakastaz lor ditzakezu, baina leku okerrean, eta azkenean pilatutako ekipaje guztia galduko duzu norabide okerra zihoala argitzen denean.

  4. Oinarrizko mailarekin erlazionatutako arlo guztiak. Bakoitzak bere arlo espezifikoak ditu, baina garrantzitsua da ulertzea 10-20 ordu denbora emanez "atzerriko" trebetasun batzuk mailaz igotzeko, aukera eta harreman-puntu berri asko aurki ditzakezula zure eguneroko lanean, eta ordu horiek baliteke. nahikoa izan karrera amaitu arte.

Zer irakurri

Autoantolakuntzari buruzko liburu asko daude; industria oso bat da, non mutil bitxi batzuek aholku bildumak idazten dituzten eta prestakuntzak biltzen dituzten. Aldi berean, ez dago argi beraiek zer lortu duten bizitzan. Horregatik, garrantzitsua da egileei iragazkiak jartzea, nortzuk diren eta atzean zer duten begiratzea. Nire garapena eta ikuspegia lau liburuk eragin zuten gehien, denak modu batera edo bestera goian azaldutako gaitasunak hobetzearekin zerikusia dutenak.

Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko1. Dale Carnegie "Nola irabazi lagunak eta jendeari eragin". Gaitasun bigunei buruzko gurtza liburua, nondik hasi ez badakizu, aukeratzea irabazi eta irabazitako aukera da. Adibideetan eraikita dago, irakurterraza da, ez du ahalegin handirik eskatzen irakurritakoa ulertzeko eta lortutako gaitasunak berehala aplika daitezke. Oro har, liburuak jendearekin komunikatzeko gaia lantzen du.

Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko2. Stephen R. Covey "Pertson oso eraginkorren 7 ohiturak". Trebetasun ezberdinen nahasketa, proaktibitatetik hasi eta gaitasun bigunetara, talde txiki bat indar handi batean bihurtu behar duzunean sinergia lortzean arreta jarriz. Irakurtzeko erraza da ere.

Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko3. Ray Dalio "Printzipioak". Irekitasuna eta proaktibitatearen gaiak agerian uzten ditu, egileak eraiki zuen enpresaren historian oinarrituta, 40 urtez kudeatu zuena. Bizitzan gogor irabazitako adibide askok erakusten dute pertsona bat zenbaterainoko aurreiritzi eta menpe egon daitekeen, eta nola kendu.

Zergatik zure kodeketa berritzeak ez zaitu garatzaile hobea bihurtuko4. David Allen, "Getting Things Done". Auto-antolaketa ikasteko derrigorrezko irakurketa. Ez da hain erraza irakurtzen, baina bizitza eta gaiak antolatzeko tresna multzo zabala eskaintzen du, alderdi guztiak zehatz-mehatz aztertzen ditu eta zehazki zer behar duzun erabakitzen laguntzen dizu. Haren laguntzarekin, nire sistema propioa eraiki nuen, gauza garrantzitsuenak beti egiteko aukera ematen didan gainerakoa ahaztu gabe.

Ulertu behar duzu irakurtzea ez dela nahikoa. Gutxienez liburu bat irents dezakezu astean, baina efektuak hainbat egun iraungo du, eta gero dena bere lekura itzuliko da. Liburuak praktikan berehala frogatzen den aholku-iturri gisa erabili behar dira. Hau egiten ez baduzu, zure horizonteak zabaltzea da emango dizuten guztia.

Iturria: www.habr.com

Gehitu iruzkin berria