Меки умения за разработчици – нашето супер ръководство
Супер ръководство за колеги
Отминаха дните, когато единствените очаквания от разработчиците бяха съсредоточени само около техните умения за кодене. Писането на правилния код и неговото тестване все още са крайъгълни камъни при тях, но вече всеки разработчик се нуждае от допълнителни “меки умения”.
Вижте нашето Ръководство за меки умения за разработчици.
Накратко
Да си отличен в писането на код не е достатъчно
Меките умения за софтуерен разработчик променя играта
Прегърнете меките умения – тази статия ви помага да ги разпознаете
Изискванията за меки умения се развиват и променят
Развиването на вашите меки умения като разработчик ще ви направи устойчиви и железни в бъдеще (чуйте това, роботи!)
Меките умения за разработчиците не са модна прищявка
Отминаха дните, когато единствените очаквания от разработчиците бяха съсредоточени около техните умения за разработка на софтуер и технически умения. Писането на правилния код, писането и изпълнението на тестове все още са крайъгълни камъни на дейностите на разработчиците. Тъй като софтуерната индустрия се интегрира с бизнеса, очакванията от разработчиците се развиват. Дори ако сте софтуерист, работещ в компания за разработка на софтуер, пак ще си взаимодействате с връстниците си – има големи шансове да станете член на екип – част от по-голям екип. Ще говорите с колегите си (дизайнери, QA инженери, ръководители на проекти, мениджъри, търговци) и други заинтересовани страни. Ето защо меките умения са ключова част от инструментариума ви като разработчик на софтуер, както и желанието ви да ги научите.
Ако писането на отличен код и инженеринг не е достатъчно, тогава кои меки умения са ви необходими? Как разработчиците могат да насочат усилията си към изграждане и засилване на меките им умения?
Кои са меките умения за софтуерните разработчици?
Има няколко определения за това какво представляват меките умения. Повечето от тях са съсредоточени около идеята, че са тези, които ви позволяват да общувате и да взаимодействате с други хора. И да го направи по смислен и хармоничен начин. Това включва неща като комуникация, съпричастност, търпение и други.
Някои хора са родени комуникатори и изглежда имат особен афинитет към меките умения. Но добрата новина е, че почти всеки може да се научи как да бъде отличен комуникатор. Можете да се научите да проявявате повече съпричастност и да станете по-уверени.
Меки умения за разработчици - нашето супер ръководство
В тази статия споделяме някои от най-добрите меки умения, за да ви помогнем да ги разпознавате. След като ги познаете, ще можете да ги развивате и да напредвате във вашата работна (и лична) среда. Някои от тези съвети са получени от мениджъри за наемане на разработчици на софтуер.
1. Комуникация
Комуникацията е обичайна заподозряна в повечето списъци с меки умения – не само за разработчиците – но и за всяка професия. Но при разработването на софтуер комуникацията е от решаващо значение. Имайте предвид, че комуникацията е двупосочен път. Трябва да сте добър слушател. Слушането на вашите колеги, клиенти или потребители ще промени всичко. Когато слушате, получавате супер яко стратегическо предимство в сравнение с тези, които само говорят. Можете да научите нещата, да разширите кръгозора си и да подобрите мирогледа си. Също така ви помага да приоритизирате задачите и изискванията.
След като започнете да говорите, направете го с яснота и увереност. С убеждение. Опитвате се да постигнете нещо с комуникация. Вашата способност да говорите е вашето оръжие и полезен инструмент. Използвайте го! Също така, бъдете учтиви и никога не прекъсвайте другия човек, когато говори. Това също ще покаже, че можете да бъдете търпеливи, да слушате и да запазвате самообладание. Имайте предвид, че комуникацията е не само вербална – тя е и невербална. Ето защо е изключително важно да останете съсредоточени, да слушате, да не прекъсвате и да говорите уверено. Всичко това допринася за вашия стил на общуване. Необходимо е да можете да общувате ефективно.
2. Съпричастност
Въпреки че може да отделите голяма част от времето си за писане на код, вие си взаимодействате с други хора. „Поставянето на себе си на мястото на другия човек“ е начин да опишете съпричастността с ясни думи. Разбирането на други хора, техните вярвания, умствени и лични характеристики ще ви бъдат от полза. Ще можете да коригирате поведението си, да отговорите на техните нужди и да се уверите, че ги вземате предвид. Това е нещо, което често се пренебрегва. Но най-добрите разработчици ще се опитат да разберат своите клиенти или колеги, тъй като това ще им позволи да си вършат работата. Отново емпатията е вашето предимство – тя ще ви позволи да видите нещата с техните очи. Това ще ви направи по-разумни и достъпни.
Някои от често срещаните проблеми при разработването на софтуер могат да бъдат избегнати с малко повече съпричастност. Не е нужно да сте потребителски анализатор, UX дизайнер или антрополог. Да бъдеш по-съпричастен започва и завършва с това, че си човек, който осъзнава другите хора.
3. Търпение
Разработката на софтуер не е лесна работа. Това е сложно усилие, което почти винаги включва продължителни процеси. От началото на проекта, през неговото изпълнение, тестването, внедряването и актуализациите… Повечето от тези дейности отнемат много време, дори в гъвкава среда. Търпението е особено важно, когато започвате като разработчик. Най-важният човек, с когото някога ще трябва да имате търпение, сте вие. Дайте си достатъчно време, достатъчно шансове да допуснете грешки и ги поправете. След като сте търпеливи към себе си, е по-лесно да бъдете търпеливи към други хора. Понякога хората ще се нуждаят от по-силна убедителност, ще трябва да направите всичко възможно, за да им „продадете“ вашата идея или подход. Търпението е вашият съюзник в тази мисия.
4. Отвореност и адаптивност
Стив Джобс казва това по време на свое обръщение към випускници във Станфорд: “Останете гладни. Останете глупави.” По същество той ви насърчава да бъдете отворени. Той се опитва да ви накара да бъдете възприемчиви към отзивите на други хора. Думите му са актуални днес, когато се появяват нови технологии и парадигми.
Преди десетилетие или малко повече – моделът “waterfall” за разработване на софтуер все още работеше. По-късно дойдоха по-пъргавите и стройни подходи. Това означава, че хората трябва да променят нагласите си и да се адаптират към промяната. Някои бяха по-успешни в тези усилия. Други се мъчеха. Въпреки че нашата склонност да бъдем отворени и приспособими може да има своите корени в нашето възпитание и общ мироглед, тя може да бъде развита далеч извън тези първоначални настройки.
Когато наемаме разработчици, ние сме привлечени от хора с подчертано любопитство. Хора, които се интересуват да научат повече (силно желаещи да учат), които не се страхуват да се провалят. Тези, които ще се опитват отново и отново, докато стигнат до някакви заключения. На въпроса защо го правят, най-добрият им отговор е „защото това е учене“.
Не се страхувайте да опитвате и експериментирате. Технологичният стек на вашата компания не включва технология, която ви интересува? Няма проблем! Опитайте и проучете в личното си време. По-късно можете да го представите на вашия екип и шеф и евентуално да ги мотивирате да приемат тази технология. Тук в Геокон, ние насърчаваме хората да правят това по време на нашите петъчни кодинг сесии и нашата 4-часова седмична вътрешна образователна система.
Това, че сте отворени, ще ви направи по-добър програмист. Това ще означава, че можете да откриете собствените си слабости и да се справите с тях. Задаването на въпроси е друг начин да станете по-отворени. Това е от решаващо значение за всички ваши ръководни роли. Това показва, че сте отворени да се учите от другите, че сте готови да слушате и че оценявате другите. В известен смисъл това едновременно отбелязва полетата за комуникация, съпричастност и отвореност.
5. Критично мислене, креативност и решаване на проблеми
Преди около шест или седем години разговаряхме с клиент от Швейцария, който посети нашия офис в Германия. Говорихме и го запознахме с нашите разработчици и дизайнери. В един момент той изрече думите, които все още помня. „Да си софтуерист е опасна работа. Винаги отстранявате проблеми!“
И ако направите крачка назад и погледнете развитието от по-широка перспектива – наистина става въпрос за решаване на сложни проблеми. От софтуер, захранващ космическите кораби, сателити и ракети, до операционните системи на вашите телефони и чак до счетоводен софтуер – винаги става въпрос за решаване на проблемите. Техният обхват и сложност са различни, но характерът е еднакъв.
Като добър разработчик ще бъдете критичен мислител. Този, която ще се предизвика сам, за да реши сложни проблеми. Този, който ще се накара да мисли творчески за неортодоксални подходи, да импровизира дори.
Хората често свързват творчеството с дизайна, музиката, изкуствата, но творчеството не е монопол на никого. Като разработчик ще използвате някои творчески техники (няма значение дали ги познавате официално), за да решавате сложни проблеми. Понякога трябва да изтласкате тези изпълнения до ръба, докато работите на по-слаб хардуер. Има ситуации, когато сте наясно, че проблемът, с който се сблъсквате, има повече възможни решения.
Способността ви да бъдете критичен мислител ще ви позволи да оцените тези решения и да изберете това, което ще работи най-добре. Вашето творчество ще ви позволи да се разширите и да надграждате върху него. И всичко това ще ви изглежда като решаване на проблеми.
Вече забелязвате модела. Всички изброени тук меки умения се допълват взаимно. И резултатът е универсален софтуерен разработчик със силен лидерски потенциал.
6. Отчетност и смирение
Често допускаме грешки. Някои са по-въздействащи от други. Някои може дори да останат незабелязани и вие ще въздъхнете с облекчение. За да растете и се развивате като разработчик на софтуер, трябва да приемете и да поемете собствеността върху грешките си. В това се състои отговорността. Човешката природа е да се опитва да се скрие и да избегне последиците, които произтичат от грешките.
Признаването на грешки и поемането на отговорност е възпрепятствано от лошото управление и лидерство в компанията. Ако грешките бъдат наказани по начин, който представлява тежък тормоз, малко хора ще вдигнат ръка и ще кажат, че са допуснали грешка. Така че, за да развиете отговорност – имате нужда от две страни. Себе си и вашата среда. Но имайте предвид – поемането на отговорност за всяка грешка, докато правите много от тях, няма да ви отведе далеч. Ще се случат грешки – използвайте това като възможност да се поучите от тях и да не ги повтаряте отново.
Отговорноста се отнася до смирението. Никой не очаква да станете напълно покорен и без увереност. Но е добре да балансирате самочувствието и смиреността. Уверените хора ще имат това уникално качество да бъдат двигатели на промяната. Смирените хора ще разберат, че макар да имат уменията и средствата да изпълняват успешно задачите си, те далеч не са всемогъщи. Вместо това те ще признаят, че могат да се учат от другите. Виждаме, че нашите водещи разработчици и дизайнери често се учат от нашия младши персонал. Те могат да предложат различни и често пъти ценни прозрения. Да бъдеш смирен ще ти позволи да оставиш настрана факта, че имаш 10+ години опит. Ще ви позволи да приемете прозрения и идеи от по-малко опитни колеги.
Да бъдете смирени дори малко ще ви направи по-добър разработчик. По-добър човек. Това ще ви позволи да видите отвъд съществуващите социални структури и йерархии.
7. Увереност
Видяхте, че то идва, нали? Твърде много добро е вредно. Твърде смирен или страдащ от „синдром на самозванеца“ може да ви навреди по много начини. Най-добрият антидот? Увереност.
Изграждането на увереност върху здрава основа отнема време. Често е свързано с годините опит, който имате. Решаването на подобен проблем за пети път трябва да бъде по-лесно и по-познато за вас, отколкото да го решавате за първи път. Това трябва да ви даде усещане за контрол и компетентност. Увереността нараства, когато се захранва с контрол и компетентност.
Често виждаме липса на увереност при нашите младши разработчици и дизайнери. Те не са сигурни как да продължат. Те могат да стигнат до точката, в която са заседнали и вие ставате свидетели на „парализа на анализа“. В този момент правим крачка назад. Изграждането на доверие също се нуждае от подхранваща среда. Някой, който желае да помогне, образова и обясни. Хора, които са достатъчно уверени, за да могат да бъдат смирени. Вижте как се свързва със смирението.
Въпреки че е добре да правите грешки, да се учите и да изграждате увереността си във времето, трябва да покажете, че сте способни да го направите. Малко неща са по-тъжни (в разработването на софтуер), отколкото да виждаш умни хора да се страхуват да опитат. Хора, които започват да търсят в Google и отиват на StackOverflow, преди дори да помислят за задачата. Пробвайте. Не започвайте всяка работа с „Не знам как да реша това!“ – Или, още по-лошо – „Това не е за мен!“.
Вие сте инженери и решавате проблеми. Опитайте, преди да напуснете. Трябваше да освободя хора, които не могат да покажат способността да се опитват да решават своите задачи. Правете грешки, на кого му пука. Но бъдете достатъчно уверени, че можете да намерите решение или поне да атакувате проблема от няколко ъгъла.
С времето ще видите, че се подобрявате в това. Ще имате повече победи и увереността ви ще расте. Сега, бъдете умни и не позволявайте това да ви отведе до точката, в която да станете нереалистични и суетни. Не забравяйте, че самочувствието се нуждае от смирение.
8. Управление (на хора, време и проекти)
В зависимост от вашата роля, може да участвате в управлението на хора и проекти, може би дори в екип по проекти. Докато повечето екипи ще имат специален мениджър на проекти, значително количество задачи, занимаващи се с проект, хора и управление на времето ще зависят от вас и вашите способности.
От всичко това управлението на времето е най-изтъкнатото като проблем. Отчасти защото дори да не управлявате (директно) хора и проекти, вие управлявате времето. Като разработчици трябва да внимавате за времето. Докато повечето от вас се радват на известна гъвкавост в работната си среда (работа на разстояние, гъвкаво работно време), все още имате срокове, които трябва да спазите, и прогнози, които да дадете.
Една от ключовите характеристики, които искаме да търсим сред нашите хора (както разработчици, така и дизайнери), е способността им да ни дават оценки и да се придържат към тях. И ние очакваме това от всички нива на опит. Младшите ще имат повече проблеми с това и няма да изпълнят прогнозите си за времето. Старшите и лидерите ще бъдат по-добри в тази задача. Това демонстрира способността ви да управлявате времето си и ни разказва малко за вашите личностни черти.
Лесно е да се превърнете в “да-човек” и да казвате „да“ на всички молби от колегите си. В крайна сметка в човешката природа е да се опитва да помага на другите. Но трябва да се научите да казвате „не“. Ако кажете „Да“ на всички – няма да отговорите на ничии очаквания. Най-добрите ви намерения ще станат източник на разочарование. Това ще навреди на вашата увереност и способност да постигнете най-добрата си работа.
Освен че можете да кажете „Не“, когато има смисъл, правилното управление на времето означава точност и спазване на срокове. Ако кажете „това ще отнеме две седмици“ и след това поискате още три дни – в повечето случаи това е добре. Но ако дори след тези три дни все още не сте готови и се нуждаете от повече време, ще трябва да поговорим.
„Решението“ на това предизвикателство изглежда почти твърде лесно – винаги искайте повече време, отколкото ви е необходимо. Въпреки че е добре да имате малко буферно време за неочаквани ситуации, даването на твърде удобни оценки на времето не е професионално. Освен това показва, че не сте толкова ефективни, колкото другите …
9. Работа в екип и сътрудничество
Разработката на софтуер е колективен спорт. Въпреки че можете да бъдете екип за разработчици от един („UX екип от един“ е доста популярна версия на тази фраза), в действителност ще работите с повече хора. Ако във вашата компания няма повече разработчици, тогава шансовете са, че ще работите с повече дизайнери, проектни лидери и клиенти. Във всеки случай малки са шансовете да останете напълно сами по някой проект.
Това означава, че ще трябва да можете да работите в екип. Не е лесно, тъй като с някои хора е трудно да се работи. Това означава, че трябва да разчитате на няколко меки умения, изброени тук. Това включва търпение, съпричастност, комуникация и управление на времето – поне.
Въпреки че идва с набор от предизвикателства, работата в екип е от съществено значение и води до по-добри резултати. И ако това звучи като клише – имайте предвид, че има все повече изследвания, показващи, че хората работят по-добре в екипи. От „ефекта на социалното улесняване“ на Флойд Олпорт до проучванията на Харвард и Оксфорд, показващи подобни ефекти. Все още не сте убедени? Разгледайте тази публикация в блога, описваща 7 проучвания, доказващи ефективността и важността на работата в екип.
В обобщение
Този списък може да изглежда впечатляващ и дълъг. Освен че умеете да пишете код и да тествате, сега трябва да сте експерт по меки умения? Може би си мислите, че сте разработчик, а не супергерой? Техническите Ви умения Ви служат добре. Това вече е нещо – вече имате повечето от тези умения в себе си. Може да не сте наясно с някои от тях. Надяваме се, че тази статия ви помага да разкриете някои и да отгледате други.
Както можете да видите, повечето от тях са свързани. Трябва да сте достатъчно смирени, за да развиете увереността си. Управлението на хората ще изисква от вас да покажете своите съпричастност, комуникация и умения за работа в екип. Този списък не е тук, за да ви помогне да избирате индивидуални умения. Той е тук, за да ви помогне да ги разпознаете и е тук, за да ви помогне да нарисувате по-широка картина на уменията, необходими днес. На този етап се надявам, че достатъчно ясно казах, че меките умения са ценни за всеки разработчик на софтуер.
Подобно на промяната на работното място, технологиите и бизнес средата, този списък с най-добрите умения за разработчици също ще се промени. В бъдеще, водени от изкуствен интелект и роботи, вашите умения и креативност за решаване на проблеми ще станат още по-критични. Роботите няма да могат да се конкурират с това от доста време. В същото време писането на код и тестове ще се превърнат в задачи, които ще могат да се автоматизират до известна степен. Вашите меки умения са вашето предимство и вашата стратегия за защита на бъдещето. Прегърнете ги.
Нека поговорим
Ако искате да се присъедините към страхотен екип, отидете на страницата ни за отворени позиции и кандидатствайте. Ще ви помогнем да развиете своите умения за развитие и инженерство, както и вашите меки умения.
Ще се радваме да чуем мението ви и да научим как можем да допринесем за вашия успех. Вижте нашата работа и научете повече за услугите, които предлага Геокон. Сега вече знаете, че ще работите с разработчици и дизайнери, които също подхранват меките умения.