Üks kõige ülekoormatud ametitest, mida idioodid juhtivad, on managerid, kes juhivad programmeerijaid. Mitte kõik, vaid need, kes pole kunagi ise programmeerijad olnud. Need, kes arvavad, et on võimalik „tõsta” efektiivsust (või tõsta „efektiivsust”?) raamatute meetodite abil. Isegi ei viitsi neid raamatuid lugeda — video on ju olemas.
Need, kes pole kunagi koodi kirjutanud. Need, kellele tehakse Hollywoodi filme programmeerijatest — noh, need, kus vaadatakse e-kirju käskude kaudu. Need, keda huvitavad ainult näitajad, tähtajad ja nende enda palk.
Need, keda on enamik.
Aga nad on idioodid muul põhjusel. Nad tahavad efektiivsust või vähemalt tulemuslikkust (no, manager, googelda, mis vahe on), arusaamata kummastki. Üldse mitte mõistes protsessi olemust, tulemuse saavutamise protsessi, protsessis toimuvat kadu, arendusega seotud kulusid. Lühidalt, töötavad programmeerijaga nagu musta kasti.
Tulid programmeerijate juhtimiseks täpselt ühe põhjusel: siin on hype, raha, turg ja palju selliseid idioote. On koht, kus peituda.
Kui oleks liikvel mehhaniseerimise tootmise buum, siis nad joonduksid sinna. Universaalid on kehvad. Ei imestaks, kui tüübi, kes detsembris meie kvartalis kuuski müüb, juurde tuleb IT-juhi puhkuse ajal.
Lühidalt, kui on võimalus, käige neist meestest eemale. Ärge muretsege, nad leiavad endale töö. Keegi neist ei teeni kunagi midagi head, kuni ta ei hakka ise programmeerijaks. Sest nad ei mõista protsessi olemust, mehhanismi ega loogikat.
Noh, rohkem ei räägi ma juhtidest. Nüüd asja juurde, programmeerijatele. Kuidas suurendada arenduse efektiivsust, õppides kirjutama kvaliteetset koodi.
Efektiivsuse suurendamiseks tuleb kiiremini lahendada ülesandeid, kaotamata kvaliteeti. Kiiremini ülesandeid lahendades peab suutma kohe kirjutada kvaliteetset koodi. Ja "kvaliteetne", ja "kirjutama", ja "kohe". Selgitan metafooriga.
Kvaliteetset koodi kirjutada on nagu osata võõrkeeles õigesti rääkida. Kui keelt ei oska, kulutad rohkelt aega, et oma mõtteid õigesti vormistada.
Kui kiiresti on vaja midagi öelda, liimitakse lihtsalt mõnest sõnast kokku, tihti isegi mitte õigeid, artikel unustatakse, sõnade õige järjekord ei tule kõne alla, rääkimata verbide aegadest ja halvast hääldusest.
Kui on aega vastuse formuleerimiseks, tuleb avada sõnastik või interneti tõlkija ja kulutada palju aega oma mõtete sõnastamiseks. Tunne on ikkagi ebameeldiv: ütled vastust ja ei tea, kas see on õige või mitte. Samuti on see kodeerimise puhul – tõesti kirjutad, tõesti töötab, aga kas see on kvaliteetne või mitte – ei tea.
Kokkuvõttes on kahekordne ajakulu. Vastuse väljamõtlemiseks kulub aega. Selle vastuse formuleerimiseks kulub samuti aega – ning seda mitte just vähe.
Kuid kui kvaliteetse koodi kirjutamise oskus on olemas, saab vastust formuleerida kohe, kui see pähe tuleb, kulutamata lisainfot tõlkimiseks.
Kvaliteetse koodi kirjutamise oskus aitab arhitektuuri projekteerimisel. Sa lihtsalt ei mõtle peas valele, ellu viimata või käpardlikule variandile.
Kokkuvõttes: kvaliteetse koodi kirjutamise oskus kiirendab oluliselt probleemide lahendamist.
Aga see ei ole kõik. Tänu hallitusseentega juhtidele on üks probleem – meil pole põhjust kirjutada kvaliteetset koodi. Juht koodi ei vaata, klient koodi ei vaata. Me näitame üksteisele koodi harva, vaid mõnikord, teatud projektides, kus on määratud «koodi kontrollija» või perioodiline refaktooring.
Selgub, et enamikul juhtudel jõuab halb kood tootmisse või kliendini. Isikul, kes kirjutas halva koodi, kujuneb püsiv närviühendus – halba koodi kirjutada võib mitte ainult, vaid peab – seda aktsepteeritakse ja selle eest makstakse isegi.
Seetõttu pole kvaliteetse koodi kirjutamise oskusele üldse võimalust areneda. Tavalise töötaja kirjutatud koodi ei kontrolli kunagi keegi. Ainus põhjus, miks ta õpib normaalselt programmeerima, on sisemine motivatsioon.
Kuid see sisemine motivatsioon on vastuolus tõhususe ja tootlikkuse plaanide ning nõudmistega. See vastuolu lahendatakse selgelt mitte kvaliteetse koodi kasuks, sest kehva koodi pärast ei karistata kedagi. Ja plaanist kinnipidamise mittetäitmise puhul tuleb tõsisemat tagajärge.
Mis teha? Ma näen ja pakun kahte teed, mida saab kombineerida.
Esiteks – näidata oma koodi kellelegi organisatsiooni sees. Mitte reaktiivselt (kui palutakse/tahetakse), vaid proaktiivselt (noh, vaata mu koodi, palun). Siin on oluline mitte magusat juttu ajada, mitte püüda koodi kriitikat viisakasse vormi riietada. Kui kood on halb, siis ütleme otse: kood on halb. Loomulikult koos selgitustega ja soovitustega, kuidas seda paremaks teha.
Aga see tee on ka päris kesine. Selle sobivus sõltub kontaktipunktist. Kui töö on juba tootmisse läinud ja selgub, et kood on kehv, siis pole mõtet seda enam ümber teha. Täpsemalt öeldes, puudub põhjus — lisaks hakkavad mõõdud halvenema. Jõuavad menedžerid ja suruvad efektiivsuse nõudmisi. Ja isegi ära proovi neile seletada, et halvasti kirjutatud kood toob paratamatult kaasa vead — see tuleb sulle endale kalliks maksma. Sa saad ainult lubada, et sa enam nii ei tee.
Kui töö aga pole veel üle antud, või on alles alanud, siis koodi (või selle projekti, mõtte) halvustamine võib olla täiesti praktiline — inimene teeb asja korralikult.
Teine tee, kõige ägedam — hakata vabatahtlikult open source’i arendama oma vabal ajal. Eesmärk on see, et hulk programmeerijaid, just programmeerijaid, näeks sinu koodi ja annaks sellele hinnangu. Ettevõttes pole kõigil aega. Aga maailma programmeerijatele pole justkui midagi teha, ja kui sa kirjutad kasulikku ja rakenduslikku asja, siis nad kindlasti heidavad pilgu sisse.
Minu arvates on peamine asi, et koodi kirjutamine toimub mitte-töötamise ajal, kuna see ei sega kvaliteedi ja tulemuste kiiretoimelisuse vahelist tasakaalu. Isegi kui aastaga kirjutad oma arendust. Sulle ei avalda survet ei tähtajad, ei tehnilised ülesanded, ei raha, ei ülemus. Täielik vabadus ja looming.
Ainult vabas loovuses mõistad ja tunnetad, mis on suurepärane kood, näed programmeerimiskeelte ja tehnoloogiate ilu ning tunned äriliste ülesannete võlu. Ja õpid kirjutama kvaliteetset koodi.
Tõsi, see nõuab sinult isikliku aja investeeringut. Nagu ka kõik muu areng. Vaata seda mitte kui kulu, vaid investeeringuna – endasse.
Allikas: habr.com
