Кирил Драгомиров е най-младият Director of Engineering в Delasport, като негов фокус е отделът, който разработва цялостната платформа на компанията. Кирил започва пътя си в Delasport като програмист и в кратък срок успява да израсне до team lead, след това до мениджър на няколко екипа и в крайна сметка – до директор на една от най-динамичните и бързо развиващи се дивизии.
В модела си на работа той успява да съчетае креативното с високотехнологичното, което води до иновативен и устойчив продукт, използван на 4 континента. Кирил успява да мотивира хора от различни поколения да работят в един екип, което помага за качествената работна среда. Това от своя страна дава голямо поле за развитие.
В следващите редове Кирил разкрива част от наученото както от работата си като програмист, така и от позицията си на директор на голям отдел.
Като инженерен директор имам привилегията да работя с голям брой талантливи и креативни програмисти. Според мен мотивацията и амбицията играят колосална роля в развитието на човек – както обичам да казвам: „Човек е толкова голям, колкото са големи мечтите му“. И докато най-важното е да проектираме мечтите си и да изготвим план как да ги осъществим, не трябва да се надпреварваме с времето, а да направим план за качественото си развитие.
Няма лесно начало, но няма и непостижими мечти. Както вече стана дума, последователното изпълнение и отдадеността на човек са ключови в това да постигне дори нещата, които смята за невъзможни. Всеки има уникални умения, но тези, които растат в кариерата си, често имат подобни качества, навици и практики.
Ето седем, които събрах въз основа на опита си като Director of Platform Engineering в Delasport.
Овладейте основите. Може да е изкушаващо да преминете към най-новите frameworks и инструменти, но стабилната основа и принципите са от съществено значение, за да можем както да изграждаме, така и лесно и безпроблемно да надградим и разширим вече съществуваща функционалност.
Съсредоточете се върху разбирането на алгоритми, структури от данни и основна софтуерна архитектура и да не забравяме – тествайте се! Проверката на кода и разписването на тестове ще ви помогнат да разгърнете още повече потенциала си. Тези основи са ключови в адаптирането към всеки език или framework, с който ще се сблъскате.
Усвоете нагласа за растеж (growth mindset). Вашата способност да учите и да се адаптирате е по-ценна от всяко специфично умение. Не се страхувайте да излизате от зоната си на комфорт – така израствате. А да чувате за нови технологии не трябва да ви плаши, това ще бъде често срещано явление, което трябва да ви радва и мотивира. Технологиите ще се променят във времето, както и най-добрите практики.
Бъдете отворени за обратна връзка, търсете възможности да учите и гледайте на предизвикателствата като на възможности за растеж. Не се страхувайте да признаете това, което не знаете – това е първата стъпка към научаването на нещо ново.
Приоритизирайте чистия и разбираем код. Писането на работещ код е важно, но писането на код, който другите могат да разберат и поддържат, е още по-важно. Отдайте приоритет на елегантния код, като поддържате всичко максимално изчистено и красиво. Не забравяйте, че кодът се чете много по-често, отколкото се пише, така че винаги мислете за следващия разработчик, който ще трябва да разбере работата ви.
И още нещо изключително важно – не се ядосвайте, когато някой ви разглежда кода и го оценява. Растем заедно с останалите. Коментарите, които ще получите, са забележки, които ще ви помогнат утре да бъдете още по-смели и силни в заданията си.
Explore more
Разберете бизнес контекста. Твърде често програмистите се фокусират единствено върху техническите детайли и губят от поглед по-голямата картина. Отделете време, за да разберете целите на вашата компания, нуждите на вашите клиенти и контекста на пазара. Бъдете проактивни, бъдете любопитни и се опитайте да влезете в кожата на отсрещния, които ще използва „големия нов фийчър“. Това ще ви помогне да вземате по-интелигентни решения, да приоритизирате задачите по-ефективно и да произвеждате софтуер, който наистина носи добавена стойност.
Още нещо – ще можете да съветвате за решения, които биха оптимизирали реализацията от към човешки, финансов ресурс и време.
Развийте силни комуникационни умения. Техническите способности са само част от пъзела на успеха. Важно е да можете ефективно да комуникирате идеите си, да слушате обратната връзка и да работите в екип. Двама са винаги по-бързи и по-силни от един. Екипната работа всъщност е на мода и ще остане така. Комуникирайте, споделяйте идеи и бъдете част от екипа.
Добрата комуникация може да преодолее пропуските, да предотврати недоразумения и да насърчи по-сплотена и продуктивна екипна среда.
Тествайте рано и често. Не чакайте до края на проект, за да започнете да тествате своя код. Тестове, тестове, тестове! Правило, което избягваме да приемем, но всъщност започваме да уважаваме и ценим, за жалост, на етап, в който се чудим: „защо отново не работи… аз добавих само един if.“
Направете тестовете неразделна част от своя процес на работа. Писането на unit тестове и въобще test-driven development (TDD), може да спести безброй часове отстраняване на грешки и да осигури по-висококачествен софтуер. И една подсказка – още повече да разчупи призмата, през която виждате следващата голяма задача.
Намерете си ментор и бъдете ментор. Бъдете ментора, който искате да имате. Ученето от опита на другите може значително да ускори растежа ви. Потърсете ментор, който може да ви напътства, да ви предложи съвет и да ви даде ценна обратна връзка. Доверете му се, той иска да бъдете също толкова добри, колкото него!
В същото време не се колебайте да споделите знанията си с по-новите от себе си. Споделянето на вече наученото ще ви направи по-уверени, ще ви накара да стъпите още по-здраво на пътеката към успеха. Преподаването е един от най-добрите начини да задълбочите разбирането си.
Като се фокусирате върху тези седем области, вие не само ще развиете силни технически умения, но и ще се позиционирате като ценен член на екипа. Може би все още не знаете, но екипът ще се превърне в още една част от вас, за която ще се тревожите и ще растете. Ще бъдете човек, който разбира както собствения си занаят, така и бизнеса на компанията, за която разработвате „големите епици“.
Не забравяйте, че вашият път като програмист е маратон, а не спринт. Стремете се постоянно към знание и развитие, защото с всеки написан ред код изграждате по-силна, по-умела и по-добра версия на програмиста у вас. Никога не спирайте да учите – прогресът е пътят към успеха!