6 Нетехнически умения, от които се нуждае всеки разработчик на софтуер
Вижте също:Меки уменияРазработчиците на софтуер управляват света. Добре, може да не е толкова драматично, но фактът остава, че разработването на софтуер се превърна в една от най-въздействащите области.
Почти всеки продукт или услуга, които използваме ежедневно (освен очевидни изключения), има зад гърба си екип от разработчици на софтуер. Също така е вълнуваща работа, където идеите са насочени към реалността и където човек наистина може да промени това.
От гледна точка на изкарването на прехраната, разработката на софтуер е също толкова интересна, колкото итърсенето, значително надхвърлящо предлагането. Спадът в търсенето определено също не е в обозримо бъдеще.
Докато техническите умения са от съществено значение за всеки разработчик на софтуер, който желае да го направи на място, нетехническите умения могат да бъдат също толкова важни. Много хора няма да се съгласят, но в определени ситуации тези нетехнически умения могат дори да станат по-важни от основните технически умения.
И така, за кои нетехнически умения говорим, точно?

Решаване на проблеми с умения
Когато разговаряте с ветерани разработчици на софтуер, те често обобщават цялото разработване на софтуер с една дума (или две, в зависимост от това как го пишете) - решаване на проблеми.
А именно, когато го премахнете до самите основи, разработването на софтуер е чисто решаване на проблеми.
На макро ниво всяко софтуерно решение е решение на проблем, който хората имат, дори когато не знаят, че го имат. На микро ниво разработването на софтуер е свързано с безброй малки неща, които могат да имат различни имена, но които са просто проблеми, изискващи елегантни, прости решения.
За съжаление, не всички хора, които работят в разработването на софтуер, разбират това и много от тях не работят по своитеумения за решаване на проблеми, като резултат.
Те разбират неправилно проблема и в крайна сметка създават допълнителни. Те се придържат към старите практики, защото са работили в миналото, въпреки че естеството на проблема е напълно различно. Те губят дни и седмици за нещо, което би могло да отнеме няколко часа, ако са подходили по правилния начин.
Примерите са безкрайни.
Не трябва да е така. Решаването на проблеми е умение, което може да се научи и усъвършенства активно и всеки, който иска да се занимава с разработка на софтуер, трябва да отдели време за това.
Учебни умения
Разработката на софтуер се променя с безумно бързи темпове, особено ако го сравните с някои други области. Технологии и рамки идват и си отиват, въвеждат се нови платформи и устройства и традиционните се бракуват.
Често това се случва в средата на разработването на определена част от софтуера.
Това означава, че никой разработчик на софтуер не може да научи всичко за своята индустрия и да го счита за свършено. С други думи, всеки уважаващ себе си разработчик на софтуер ще трябва да отдели значително количество време, за да научи за най-новите разработки в тази област.
Това е мястото, където човек еумения за учененаистина ще направи разлика.
Нека си представим двама разработчици на софтуер, които са абсолютно еднакви по всякакъв начин - образование, опит, текущи умения за кодиране и т.н. Единствената разлика е, чеПрограмист Aима страхотни умения за учене иПрограмист Бпритежава по-малко от звездни умения за учене.
Разработена е нова рамка за разработване на приложения, абсолютно по-добра от всичко, което е дошло преди нея (това между другото не се случва в реалния живот) и изведнъж всички работят в нея.
ОтнемаПрограмист Aдва месеца, за да овладеете новата рамка, докатоПрограмист Бсе бори с него шест месеца по-късно.
Изведнъж нашите двама идентични досега разработчици на софтуер се различават. Единствената причина -Програмист Aимал превъзходни умения за обучение
В реалния свят това не се свежда до една рамка. Разработката на софтуер включва непрекъснато обучение и възприемане на нови практики. Ето защо е абсолютно важно разработчиците на софтуер да работят върху своите умения за учене.
Умения за работа в екип
Много малко разработчици на софтуер работят сами по проекти. Разбира се, някои проекти могат да започнат като операции на един човек, но в по-голямата част от случаите продуктовият екип ще нарасне преди скоро.
В по-голямата си част разработчиците на софтуер работят в екип.
В съвременната разработка на софтуер, особено ако говорим за Agile софтуерна разработка (ще стигнем до това по-късно), способността на екипа да си сътрудничи добре често е решаващият фактор дали софтуерът е завършен навреме, до необходимите спецификации, и в рамките на бюджета.
Доброто екипно сътрудничество гарантира, че хората работят върху това, върху което трябва да работят, че всички се чувстват комфортно при молбата за помощ (и я получават), че проблемите се забелязват и решават рано, че никой не се чувства претоварен и т.н.
Не всеки се ражда като истински отборен играч и много хора се борят наистина да приематсъвместна дейностманталитет. Хубавото е, че това е поредното умение, което може да се научи и е нещо, което всички разработчици на софтуер трябва да проучат.
Лидерски умения
Разработката на софтуер е област, в която е възможно да се развие сравнително бързо. Не са нужни десетилетия, за да стане някой старши разработчик на софтуер и да бъде поставен в позиция, в която да ръководи екип.
Всъщност е обичайна практика (поне в добри компании / екипи за разработка на софтуер) разработчиците да наставляват хора с по-малко опит, дори когато самите те не са твърде опитни.
Това означава, че хората трябва да развият своите лидерски умения по-рано в разработването на софтуер, отколкото в повечето други индустрии. Необходимостта от това се засилва допълнително от факта, че реалността при разработването на софтуер често е доста забързана и доброто ръководство наистина може да промени това.
Трябва да се отбележи обаче, че лидерството в разработването на софтуер има тенденция да се различава от лидерството в някои други индустрии (още веднъж,особено при разработването на софтуер Agile). При разработването на софтуер лидерството е по-малко авторитетно и предписващо, отколкото в други области, като хората в „лидерски“ роли често са предимно подкрепящи и наставнически фигури.
Като се има предвид това, някои класическилидерски умениявинаги ще бъде добре дошъл.
Пъргави умения
Отнеговата „стандартизация“през 2001 г. Agile разработката на софтуер е изминала дълъг път и днес повечето проекти за разработка на софтуер се извършват с помощта на един отмногото Agile рамки / методи / подходи, или комбинация от няколко.
Agile разработването на софтуер набляга на чести издания на работещ софтуер, намаляване на документацията, самоорганизация на екипите, засилено сътрудничество, подобрена комуникация с клиентите и редица други идеи и практики, насочени към предоставянето на по-добър софтуер.
По-голямата част от компаниите няма да предадат добър разработчик на софтуер само защото нямат знания или опит в Agile. Някои основи могат да бъдат възприети сравнително бързо и лесно, като останалата част от аклимацията се случва с течение на времето.
Като се има предвид това, усъвършенстването на нечии Agile умения определено може да направи разработчика на софтуер по-подходящ за съвременния свят на разработка на софтуер. Освен това, Agile ценностите и идеите могат да помогнат на разработчика да стане по-добър в това, което прави, независимо от текущата им работна ситуация.
Добрата новина е, че няма недостиг на ресурси, що се отнася до разработването на софтуер Agile. От една страна има няколкоПъргавиScrum блоговекъдето човек може да намери съкровище от теоретични и практически знания. За разработчици, които обичат по-практичен подход,модерни безплатни Scrum инструментиможе да бъде чудесен начин за учене на практика. Има и курсове и организации, които предоставят официални сертификати.
Добро старомодно съчувствие
Когато говорим за разработка на софтуер,съпричастностможе да не изглежда особено важно умение. След като обаче наистина започнете да мислите за това, осъзнавате, че това може да направи разликата между приличен разработчик на софтуер и наистина страхотен.
Първо, разработчикът на софтуер трябва да може да се постави на мястото на своите (бъдещи) потребители. Без това софтуер, разработен до съвършенство, може лесно да се провали, просто защото никой не се нуждае от него или поне никой не се нуждае от него в такава форма.
За съжаление, дори разработчиците, които не се чувстват твърде горди или късогледи, често са победени от подсъзнателните си пристрастия и вярвания относно това, което хората искат.
В допълнение към това, разработчиците на софтуер трябва да проявяват съпричастност към хората, които ще работят по техния софтуер в бъдеще. Понякога разработчикът ще трябва да избере между двете:
- Завършване на нова функция (която отговаря на най-основните изисквания) за тридесет минути и създаване на пълен кошмар за хора, които ще надграждат върху нея или ще я поддържат в бъдеще (като също така стават обект на безброй бъдещи проклятия и кукли Вуду в процеса) .
- Прекарване на цял ден за въпросната функция, писане на чист, поддържаем код, който ще накара усмивката на лицето на някого две години по-надолу.
Въпреки че и в двата случая функцията ще бъде функционална, всеки в индустрията за разработка на софтуер ще ви каже, че вторият избор е единственият етичен.
Всичко е свързано с мисленето и за други хора.
Заключителна дума
Въпреки това, което мнозина мислят, е необходимо повече от просто да можеш бързо да кодираш, за да станеш страхотен разработчик на софтуер. Това включва много умения и инвестирането на време и усилия в развитието на тези умения има много смисъл.
Продължете към:
Вземане на решение
Умения за личностно развитие
Интересни Статии
- Аз, робот: поглед към бъдещето
- Критичното мислене и случаят с „Bigfoot”
- Постоянство и упоритост - Присъединете се към нашия #MTtalk!
- Как точно да говорите мръсно и да го включите, без да се чувствате смутен
- 21 вида мъже, които си заслужават да дадат шанс
- Ейджизмът на работното място: Присъединете се към нашия #MTtalk
- Каква е тайната на щастливия екип?
- Истина и лъжи за набиране - #MTtalk
- Интроверти и екстраверти - кой печели у дома?
- Лист за площ, повърхност и обем
- 2017 - Накарайте вашите цели да работят за вас
- Какво е симпатия?
- Как да ръководя екип с няколко поколения
- Умения за грамотност
- Подготовка за устни презентации