6 Нетехнически умения, от които се нуждае всеки разработчик на софтуер

Вижте също: Меки умения

Разработчиците на софтуер управляват света. Добре, може да не е толкова драматично, но фактът остава, че разработването на софтуер се превърна в една от най-въздействащите области.

Почти всеки продукт или услуга, които използваме ежедневно (освен очевидни изключения), има зад гърба си екип от разработчици на софтуер. Също така е вълнуваща работа, където идеите са насочени към реалността и където човек наистина може да промени това.

От гледна точка на изкарването на прехраната, разработката на софтуер е също толкова интересна, колкото и търсенето, значително надхвърлящо предлагането . Спадът в търсенето определено също не е в обозримо бъдеще.



Докато техническите умения са от съществено значение за всеки разработчик на софтуер, който желае да го направи на място, нетехническите умения могат да бъдат също толкова важни. Много хора няма да се съгласят, но в определени ситуации тези нетехнически умения могат дори да станат по-важни от основните технически умения.

воденето на бележки по време на четене е полезен начин за

И така, за кои нетехнически умения говорим, точно?

Разработчици Soft Skills

Решаване на проблеми с умения

Когато разговаряте с ветерани разработчици на софтуер, те често обобщават цялото разработване на софтуер с една дума (или две, в зависимост от това как го пишете) - решаване на проблеми.

А именно, когато го премахнете до самите основи, разработването на софтуер е чисто решаване на проблеми.



На макро ниво всяко софтуерно решение е решение на проблем, който хората имат, дори когато не знаят, че го имат. На микро ниво разработването на софтуер е свързано с безброй малки неща, които могат да имат различни имена, но които са просто проблеми, изискващи елегантни, прости решения.

За съжаление, не всички хора, които работят в разработването на софтуер, разбират това и много от тях не работят по своите умения за решаване на проблеми , като резултат.

Те разбират неправилно проблема и в крайна сметка създават допълнителни. Те се придържат към старите практики, защото са работили в миналото, въпреки че естеството на проблема е напълно различно. Те губят дни и седмици за нещо, което би могло да отнеме няколко часа, ако са подходили по правилния начин.



Примерите са безкрайни.

Не трябва да е така. Решаването на проблеми е умение, което може да се научи и усъвършенства активно и всеки, който иска да се занимава с разработка на софтуер, трябва да отдели време за това.

Учебни умения

Разработката на софтуер се променя с безумно бързи темпове, особено ако го сравните с някои други области. Технологии и рамки идват и си отиват, въвеждат се нови платформи и устройства и традиционните се бракуват.

Често това се случва в средата на разработването на определена част от софтуера.



Това означава, че никой разработчик на софтуер не може да научи всичко за своята индустрия и да го счита за свършено. С други думи, всеки уважаващ себе си разработчик на софтуер ще трябва да отдели значително количество време, за да научи за най-новите разработки в тази област.

Това е мястото, където човек е умения за учене наистина ще направи разлика.

Нека си представим двама разработчици на софтуер, които са абсолютно еднакви по всякакъв начин - образование, опит, текущи умения за кодиране и т.н. Единствената разлика е, че Програмист A има страхотни умения за учене и Програмист Б притежава по-малко от звездни умения за учене.



Разработена е нова рамка за разработване на приложения, абсолютно по-добра от всичко, което е дошло преди нея (това между другото не се случва в реалния живот) и изведнъж всички работят в нея.

Отнема Програмист A два месеца, за да овладеете новата рамка, докато Програмист Б се бори с него шест месеца по-късно.

Изведнъж нашите двама идентични досега разработчици на софтуер се различават. Единствената причина - Програмист A имал превъзходни умения за обучение

В реалния свят това не се свежда до една рамка. Разработката на софтуер включва непрекъснато обучение и възприемане на нови практики. Ето защо е абсолютно важно разработчиците на софтуер да работят върху своите умения за учене.

формули за повърхност и обем за 3D фигури

Умения за работа в екип

Много малко разработчици на софтуер работят сами по проекти. Разбира се, някои проекти могат да започнат като операции на един човек, но в по-голямата част от случаите продуктовият екип ще нарасне преди скоро.

В по-голямата си част разработчиците на софтуер работят в екип.

най-добрият начин да си водите бележки, докато четете

В съвременната разработка на софтуер, особено ако говорим за Agile софтуерна разработка (ще стигнем до това по-късно), способността на екипа да си сътрудничи добре често е решаващият фактор дали софтуерът е завършен навреме, до необходимите спецификации, и в рамките на бюджета.

Доброто екипно сътрудничество гарантира, че хората работят върху това, върху което трябва да работят, че всички се чувстват комфортно при молбата за помощ (и я получават), че проблемите се забелязват и решават рано, че никой не се чувства претоварен и т.н.

Не всеки се ражда като истински отборен играч и много хора се борят наистина да приемат съвместна дейност манталитет. Хубавото е, че това е поредното умение, което може да се научи и е нещо, което всички разработчици на софтуер трябва да проучат.

Лидерски умения

Разработката на софтуер е област, в която е възможно да се развие сравнително бързо. Не са нужни десетилетия, за да стане някой старши разработчик на софтуер и да бъде поставен в позиция, в която да ръководи екип.

Всъщност е обичайна практика (поне в добри компании / екипи за разработка на софтуер) разработчиците да наставляват хора с по-малко опит, дори когато самите те не са твърде опитни.

Това означава, че хората трябва да развият своите лидерски умения по-рано в разработването на софтуер, отколкото в повечето други индустрии. Необходимостта от това се засилва допълнително от факта, че реалността при разработването на софтуер често е доста забързана и доброто ръководство наистина може да промени това.

Трябва да се отбележи обаче, че лидерството в разработването на софтуер има тенденция да се различава от лидерството в някои други индустрии (още веднъж, особено при разработването на софтуер Agile ). При разработването на софтуер лидерството е по-малко авторитетно и предписващо, отколкото в други области, като хората в „лидерски“ роли често са предимно подкрепящи и наставнически фигури.

Като се има предвид това, някои класически лидерски умения винаги ще бъде добре дошъл.

Пъргави умения

От неговата „стандартизация“ през 2001 г. Agile разработката на софтуер е изминала дълъг път и днес повечето проекти за разработка на софтуер се извършват с помощта на един от многото Agile рамки / методи / подходи , или комбинация от няколко.

Agile разработването на софтуер набляга на чести издания на работещ софтуер, намаляване на документацията, самоорганизация на екипите, засилено сътрудничество, подобрена комуникация с клиентите и редица други идеи и практики, насочени към предоставянето на по-добър софтуер.

По-голямата част от компаниите няма да предадат добър разработчик на софтуер само защото нямат знания или опит в Agile. Някои основи могат да бъдат възприети сравнително бързо и лесно, като останалата част от аклимацията се случва с течение на времето.

Като се има предвид това, усъвършенстването на нечии Agile умения определено може да направи разработчика на софтуер по-подходящ за съвременния свят на разработка на софтуер. Освен това, Agile ценностите и идеите могат да помогнат на разработчика да стане по-добър в това, което прави, независимо от текущата им работна ситуация.

Добрата новина е, че няма недостиг на ресурси, що се отнася до разработването на софтуер Agile. От една страна има няколко Пъргав и Scrum блогове където човек може да намери съкровище от теоретични и практически знания. За разработчици, които обичат по-практичен подход, модерни безплатни Scrum инструменти може да бъде чудесен начин за учене на практика. Има и курсове и организации, които предоставят официални сертификати.

Добро старомодно съчувствие

Когато говорим за разработка на софтуер, съпричастност може да не изглежда особено важно умение. След като обаче наистина започнете да мислите за това, осъзнавате, че това може да направи разликата между приличен разработчик на софтуер и наистина страхотен.

Първо, разработчикът на софтуер трябва да може да се постави на мястото на своите (бъдещи) потребители. Без това софтуер, разработен до съвършенство, може лесно да се провали, просто защото никой не се нуждае от него или поне никой не се нуждае от него в такава форма.

За съжаление, дори разработчиците, които не се чувстват твърде горди или късогледи, често са победени от подсъзнателните си пристрастия и вярвания относно това, което хората искат.

В допълнение към това, разработчиците на софтуер трябва да проявяват съпричастност към хората, които ще работят по техния софтуер в бъдеще. Понякога разработчикът ще трябва да избере между двете:

как да изградя изречение на английски
  • Завършване на нова функция (която отговаря на най-основните изисквания) за тридесет минути и създаване на пълен кошмар за хора, които ще надграждат върху нея или ще я поддържат в бъдеще (като също така стават обект на безброй бъдещи проклятия и кукли Вуду в процеса) .
  • Прекарване на цял ден за въпросната функция, писане на чист, поддържаем код, който ще накара усмивката на лицето на някого две години по-надолу.

Въпреки че и в двата случая функцията ще бъде функционална, всеки в индустрията за разработка на софтуер ще ви каже, че вторият избор е единственият етичен.

Всичко е свързано с мисленето и за други хора.




Заключителна дума

Въпреки това, което мнозина мислят, е необходимо повече от просто да можеш бързо да кодираш, за да станеш страхотен разработчик на софтуер. Това включва много умения и инвестирането на време и усилия в развитието на тези умения има много смисъл.


Продължете към:
Вземане на решение
Умения за личностно развитие