Тиімділіктің құпиясы - тиімді менеджер емес, сапа коды

Ең ақымақ мамандықтардың бірі - бағдарламашыларды басқаратын менеджерлер. Барлығы емес, бірақ өздері бағдарламашы болмағандар. Кітаптардағы әдістерді қолдана отырып, тиімділікті «жоғарлатуға» (немесе «тиімділікті» арттыруға) болады деп ойлайтындар. Дәл осы кітаптарды оқып әуре болмай, бейне бір сығандық.

Ешқашан код жазбағандар. Бағдарламашылар туралы голливудтық фильмдер түсірілгендер - пәрмен жолы арқылы электрондық поштаны көретіндер. Көрсеткіштерден, мерзімдерден және өз жалақысынан басқа ештеңеге қызықпайтындар.

Көпшілікті құрайтындар.

Бірақ олар басқа себеппен ақымақ. Олар бірін де, екіншісін де түсінбей, тиімділікті немесе ең болмағанда тиімділікті қалайды (келіңіз, менеджер, Google айырмашылығы неде). Жалпы мәнін түсінбей, нәтиже алу үрдісін, осы процесте орын алатын шығындарды, әзірлеуге кеткен шығындарды. Қысқасы, бағдарламашымен қара жәшік сияқты жұмыс істеу.

Олар бағдарламашылардың басшылығына бір себеппен келді: бұл жерде хайп, ақша, нарық және бір топ ақымақтар. Адасқан жері бар.

Механикалық құрастыру өндірісінде хайп болса, біз сонда жүгіретін едік. Станция вагондары сорды. Желтоқсанда біздің ауданда шырша сататын жігіттің демалыста IT менеджері болғанына таң қалмас едім.

Қысқасы, мүмкін болса, мына жігіттердің мойнына оқ жаудырыңыз. Уайымдамаңыз, олар жұмыс табады. Олардың ешқайсысы өздері бағдарламашы болмайынша, лайықты ештеңе жасамайды. Өйткені ол өзі басқарып отырған процестің мәнін, механизмін, логикасын түсінбейді.

Жақсы, менеджерлер туралы жеткілікті. Енді бағдарламашылар үшін. Жоғары сапалы код жазуды үйрену арқылы даму тиімділігін қалай арттыруға болады.

Тиімділікті арттыру үшін сапаны жоғалтпай, мәселелерді тезірек шешу керек. Мәселелерді тезірек шешу үшін жоғары сапалы кодты бірден жаза білу керек. Және «жоғары сапалы», «жазыңыз» және «бірден». Метафора арқылы түсіндірейін.

Сапалы код жазу шет тілінде дұрыс сөйлеумен бірдей. Сіз тілді білмесеңіз, онда өз ойыңызды тұжырымдауға көп уақыт жұмсайсыз.

Егер сізге шұғыл түрде бірдеңе айту керек болса, сіз жай ғана кейбір сөздерді ұстанасыз, көбінесе дұрыс емес, мақалаларды, дұрыс сөз тәртібін ұмытып кетесіз, етістіктің шақтары мен нашар айтылуын айтпағанда.

Жауапты құрастыруға уақытыңыз болса, сөздікті немесе онлайн аудармашыны ашып, өз ойыңызды тұжырымдауға көп уақыт бөлуге тура келеді. Дегенмен, сезім әлі де жағымсыз болады: сіз жауап айтасыз және оның дұрыс немесе дұрыс емес екенін білмейсіз. Бұл кодпен бірдей - ол жазылған сияқты, ол жұмыс істейтін сияқты, бірақ оның сапасы жақсы ма, жоқ па - жұмбақ.

Бұл екі есе бос уақытты жоғалту болып шығады. Жауап алу үшін уақыт қажет. Бұл жауапты тұжырымдау үшін де уақыт қажет - бұл аз емес.

Егер жоғары сапалы код жазу дағдысы бар болса, онда жауапты аудармаға қосымша уақыт жұмсамай-ақ, бастың ішінде пісіп болғаннан кейін бірден тұжырымдауға болады.

Жоғары сапалы код жазу дағдысы архитектураны жобалау кезінде көмектеседі. Сіз өзіңіздің ойыңызда дұрыс емес, іске асырылмайтын немесе қол жетімді нұсқаларды қарастырмайсыз.

Қорытындылай келе: жоғары сапалы код жазу дағдысы мәселені шешуді айтарлықтай жылдамдатады.

Бірақ бұл бәрі емес. Киізден жасалған етік менеджерлерінің арқасында бір қиындық бар - бізде жоғары сапалы код жазуға негіз жоқ. Менеджер кодқа қарамайды, клиент кодқа қарамайды. Біз кодты бір-бірімізге сирек көрсетеміз, тек кейде «тексеру» коды белгіленген немесе мерзімді рефакторинг бар кейбір жобаларда.

Көбінесе шикі код өндіріске немесе клиентке түседі екен. Жаман кодты жазған адам тұрақты нейрондық байланысты қалыптастырады - бұл жаман кодты жазуға ғана емес, сонымен қатар қажет - бұл қабылданады және олар тіпті төлейді.

Нәтижесінде жоғары сапалы код жазу дағдысы мүлде дамуға мүмкіндік бермейді. Шартты қызметкер жазған кодты ешқашан ешкім тексермейді. Оның қалыпты бағдарламалауды үйренуінің жалғыз себебі - ішкі мотивация.

Бірақ бұл ішкі мотивация жоспарлар мен тиімділік пен өнімділікке қойылатын талаптарға қайшы келеді. Бұл қайшылық жоғары сапалы кодтың пайдасына шешілмейтіні анық, өйткені адамдар адамдарды жаман код үшін сынамайды. Ал жоспарды орындамағаны үшін - тіптен.

Не істейін? Мен біріктіруге болатын екі жолды көріп, ұсынамын.

Біріншісі - компания ішіндегі біреуге кодты көрсету. Реактивті емес (сұрағанда/мәжбүрлегенде), бірақ белсенді түрде (ух, досым, менің кодты қараңыз, өтінемін). Мұнда ең бастысы - қантты снотты жарияламау, кодекске сынды сыпайы түрде қоюға тырыспау. Егер код сұмдық болса, біз былай дейміз: код - бос. Әрине, түсіндірулермен және оны жақсарту бойынша ұсыныстармен.

Бірақ бұл жол да солай. Оның қолданылуы контакт болған жерге байланысты. Егер жұмыс қазірдің өзінде өндіріске еніп, код сұмдық болып шықса, оны қайта жасаудың қажеті жоқ. Дәлірек айтқанда, себептер - көрсеткіштер де төмендейді. Менеджерлер сізге асығып, тиімділік талаптарын қояды. Сондай-ақ оларға жаман код міндетті түрде қателер түрінде қайтып келетінін түсіндіруге тырыспаңыз - бұл сізге кері әсер етеді. Сіз мұны қайталамауға ғана міндеттеме ала аласыз.

Егер жұмыс әлі жеткізілмеген болса немесе енді ғана басталса, кодқа (немесе оның жобасына, идеясына) қоқыс төгу практикалық мағынаға ие болуы мүмкін - адам мұны әдеттегідей жасайды.

Екінші әдіс, ең кереметі - жұмыстан тыс уақытта ашық бастапқы кодты әзірлеу. Мақсаты қандай: бағдарламашылар тобына, атап айтқанда бағдарламашыларға сіздің кодыңызды көру және ол туралы айту. Компанияда барлығының уақыты жоқ. Бірақ бүкіл әлемдегі программисттердің әлі де шаруасы жоқ, қолданбалы тұрғыдан пайдалы нәрсе жазсаңыз, олар міндетті түрде ішіне қарайды.

Негізгі трюк, менің ойымша, жұмыс емес уақытта код жазу, өйткені код сапасы мен нәтижені жеткізу жылдамдығы арасындағы қайшылық жұмыс істемейді. Кем дегенде бір жылдағы дамуыңызды жазыңыз. Сізге мерзімдер де, техникалық шарттар да, ақша да, бастық та қысым көрсетпейді. Толық еркіндік пен шығармашылық.

Еркін шығармашылықта ғана сіз керемет кодтың не екенін түсініп, сезінесіз, тіл мен технологияның сұлулығын көресіз және іскерлік тапсырмалардың сүйкімділігін сезінесіз. Жақсы, сіз жоғары сапалы код жазуды үйренесіз.

Рас, бұл сізге жеке уақытты қажет етеді. Кез келген басқа даму сияқты. Оған шығын ретінде емес, өзіңізге салынған инвестиция ретінде қараңыз.

Ақпарат көзі: www.habr.com

пікір қалдыру