Ăks kĂ”ige ĂŒlekoormatud idiootide ametitest on juhid, kes juhtivad programmeerijaid. Mitte kĂ”ik, vaid need, kes pole kunagi olnud programmeerijad. Need, kes arvavad, et saab tĂ”husust "suurendada" (vĂ”i tĂ”sta "efektiivsust"?) raamatute meetodite abil. Isegi mitte vaevamata neid raamatuid lugeda - ju vĂ”etakse videoid, eks.
Need, kes pole kunagi koodi kirjutanud. Need, kellele tehakse Hollywoodi filme programmeerijatest - noh, need, kus elektronposti vaadatakse kÀsurealt. Need, keda ei huvita miski muu kui nÀitajad, tÀhtaegade ja nende enda palk.
Need, keda on enamus.
Aga nad on idioodid teisel pĂ”hjusel. Nad soovivad efektiivsust vĂ”i vĂ€hemalt tulemuslikkust (noh, manager, googelda, mis vahe on), mitte mĂ”istmata kumbagi. Ăldse mitte mĂ”istes protsessi, kuidas tulemusi saavutatakse, kadusid, mis selle protsessi kĂ€igus toimuvad, arenduskulud. ĂhesĂ”naga, töötades programmeerijaga nagu musta kasti.
On tulnud programmeerijate juhtimisele just ĂŒhel pĂ”hjusel: siin on hype, raha, turg ja hunnik samasuguseid idioote. On koht, kus varjuda.
Kui oleks hype mehhaanilises montaaĆŸitootmises - jookseksid sinna. ĂkskĂ”iksed universaalid. Ma ei imestaks, kui tĂŒĂŒp, kes mĂŒĂŒb detsembris meie kvartalis kuuskesid, on IT-manager puhkuses.
LĂŒhidalt, kui on vĂ”imalus, ajage need poisid minema. Ărge muretsege, nad leiavad endale tööd. Ăkski neist ei tee kunagi midagi korralikku, kuni nad ise ei saa programmeerijaks. Sest nad ei mĂ”ista sisu, mehhanismi, protsessi loogikat, mida nad juhivad.
Nii, nĂŒĂŒd jĂ€tame managerid kĂ”rvale. RÀÀgime nĂŒĂŒd tĂ”siselt, programmeerijatele. Kuidas tĂ”sta arenduse efektiivsust, Ă”ppides kirjutama kvaliteetset koodi.
Efektiivsuse tĂ”stmiseks tuleb ĂŒlesandeid kiiremini lahendada, kvaliteeti kaotamata. Et ĂŒlesandeid kiiremini lahendada, tuleb osata kohe kirjutada kvaliteetset koodi. Ja "kvaliteetne", ja "kirjutada", ja "kohe". Selgitan metafooriga.
Kvaliteetse koodi kirjutamine on nagu vÔÔrkeeles oskuslik rÀÀkimine. Kui keelt ei oska, kulutad tohutult aega, et formuleerida oma mÔtteid selles keeles.
Kui vaja on kiiresti öelda, vÔib muuta lihtsalt mingid sÔnad, sageli ei ole need Ôiged, unustadesartiklid, Ôige sÔnade jÀrjekorra, rÀÀkimata verbide ajast ja kehvast hÀÀldusest.
Kui on aega vastuse sĂ”nastamiseks, tuleb avada sĂ”naraamat vĂ”i veebitĂ”lkija ja kulutada palju aega oma mĂ”tete sĂ”nastamiseks. Tunde, tĂ”ele au andes, jÀÀb aga ebameeldivaks: sa ĂŒtled vastuse, kuid ei tea, kas see on Ă”ige vĂ”i mitte. Sarnane on ka koodiga - nĂ€iliselt oled kirjutanud, nĂ€iliselt töötab, aga kas see on kvaliteetne vĂ”i mitte - kes teab.
See tÔlgib kahekordse ajakulu. Vastuse vÀlja mÔtlemiseks kulub aega. Selle vastuse sÔnastamiseks kulub samuti aega - ja mitte just vÀhe.
Kui kvaliteetse koodi kirjutamise oskus on olemas, saab vastust sÔnastada kohe, kui see mÔttes valminud on, kulutamata energiat tÔlkimiseks.
Kvaliteetse koodi kirjutamise oskus aitab arhitektuuri projekteerimisel. Sa lihtsalt ei mÔtle valele, teostamatule vÔi valesti kirjutatud variantidele.
KokkuvĂ”tteks: kvaliteetse koodi kirjutamise oskus kiirendab oluliselt ĂŒlesannete lahendamist.
Aga see ei ole veel kĂ”ik. TĂ€nu tobeda juhtimisele on ĂŒks probleem - meil ei ole pĂ”hjust kirjutada kvaliteetset koodi. Juht ei vaata koodi, klient ei vaata koodi. Me nĂ€itame ĂŒksteisele koodi harva, vaid mĂ”nes projektis, kus on mÀÀratud koodi 'kontrollija' vĂ”i perioodiline refaktoreerimine.
Tuleb vĂ€lja, et enamikes juhtudes lĂ€heb halbu kood tootmisse vĂ”i kliendile. Inimesel, kes on kirjutanud halba koodi, kujuneb stabiilne nĂ€rviĂŒhendus - halbu kood kirjutada mitte ainult vĂ”ib, vaid peab; seda vĂ”etakse vastu ja isegi makstakse selle eest.
LĂ”ppude lĂ”puks pole kvaliteetse koodi kirjutamise oskusele ĂŒldse vĂ”imalust areneda. Konditsionaalset töötajat ei kontrolli keegi kunagi. Ăksainus pĂ”hjus, miks ta Ă”pib korralikult programmeerima, on sisemine motivatsioon.
Aga see sisemine motivatsioon on vastuolus efektiivsuse ja produktiivsuse plaanide ja nĂ”uetega. See vastuolu lahendatakse selgelt mitte kvaliteetse koodi kasuks, kuna halva koodi eest ei karistata isegi. Ja plaani mittetĂ€itmise eest - seda kĂŒll.
Kuidas olla? NÀen ja pakun vÀlja kaks teed, mida saab kombineerida.
Esimene â nĂ€idata oma koodi kellelegi ettevĂ”ttes. Mitte reaktiivselt (kui kĂŒsitakse/soovitakse), vaid proaktiivselt (hei, vaata mu koodi, palun). Siin on oluline mitte liialdada kiitustega, mitte pĂŒĂŒda koodi kriitikat viisakaks vormida. Kui kood on halb, siis me ĂŒtleme otse: kood on halb. Loomulikult koos selgitustega ja soovitustega, kuidas seda paremaks teha.
Aga see tee on ka ise ĂŒsna kesine. Selle sobivus sĂ”ltub punktist, kus kontakt toimus. Kui töö on juba tootmisesse jĂ”udnud ja selgub, et kood on halb, ei ole selle ĂŒmbertegemine enam mĂ”tet. TĂ€psemalt, pĂ”hjus â muidu langevad ka mÔÔdikud. Juhtub, et juhid tulevad ja sundivad efektiivsuse nĂ”udmisi. Ja isegi Ă€ra ĂŒrita neile selgitada, et halb kood toob endaga kaasa tĂ”rkeid â sinuga endaga tuleb see vĂ€lja. JÀÀb vaid endale lubada, et enam nii ei tee.
Kui töö ei ole veel ĂŒle antud vĂ”i on alles alanud, siis koodi (vĂ”i selle projekti, ideede) halvustamine vĂ”ib olla tĂ€iesti praktiline â inimene teeb asja korralikult.
Teine tee, kĂ”ige Ă€gedam â tegeleda avatud lĂ€htekoodiga arendusega vabal ajal. EesmĂ€rk on ju see, et palju programmeerijaid, tĂ”eliselt programmeerijaid, nĂ€eksid sinu koodi ja vĂ€ljendaksid arvamust. EttevĂ”ttes pole kellelgi aega. Aga maailma programmeerijatel polegi midagi muud teha, ja kui sa kirjutad praktiliselt kasuliku asja, siis nad kindlasti vaatavad sisse.
Peamine asi, minu arvates â see on koodi kirjutamine vabal ajal, sest kvaliteedi ja tulemuse kiire esitlemise konflikti ei teki. Kirjuta oma arendus aastaga. Sinu peale ei avalda survet ei tĂ€htajad, ei spetsifikatsioon, ei raha, ei ĂŒlemus. TĂ€ielik vabadus ja loovus.
Ainult vabades loovustes mĂ”istad ja tunnetad, mis on hea kood, nĂ€ed programmeerimise ilu ja tehnoloogiat, tunned Ă€ra Ă€riĂŒlesannete vĂ”lu. Ja Ă”pid kirjutama kvaliteetset koodi.
TĂ”si, see nĂ”uab sinult isiklikku aja investeeringut. Nagu tegelikult kĂ”ik muu areng. Vaata seda mitte kui kulu, vaid kui investeeringut â iseendasse.
Allikas: habr.com
