Софтуерен разработчик е професия, която се занимава с изработката на компютърен софтуер. Софтуерните разработчици (наричани понякога „софтуерни инженери“) участват във всички етапи от разработката на софтуерни продукти – анализиране на изискванията, моделиране на бизнес процесите и проектиране на софтуера, реализация на функционалността, изпитване и поддръжка. В зависимост от функциите, които изпълняват в проекта, софтуерните разработчици могат да бъдат: бизнес анализатори, софтуерни архитекти, програмисти, специалисти по бази от данни, Web разработчици, специалисти по поддръжката и др. В зависимост от вида на разработвания софтуер могат да бъдат приложни разработчици или системни разработчици[1]. Приложните разработчици се занимават с проектирането и създаването на приложен софтуер. Системните разработчици разработват системите, които позволяват на компютрите да работят правилно. Това могат да бъдат операционните системи, вградени в компютрите, или потребителският интерфейс, позволяващ на потребителя да си взаимодейства с компютъра, в частност.
Отговорности
Отговорностите на софтуерния разработчик зависят от конкретната му длъжност и могат да не обхващат целия изброен спектър[2]
Изготвя спецификация, диаграма на работа, модел на решението
Дава препоръки за подобряване на съществуващи системи и програми
Модифицира съществуващ софтуер с цел отстраняване на грешки, адаптиране към нов софтуер или актуализиране на интерфейса и подобряване на работоспособността му
Проектира всяка отделна част от приложението или системата и планира как тези части ще работят заедно
Участва в имплементацията (същинското програмиране), понякога само напътства други, които осъществяват този процес
Осигурява качеството на продукта чрез тестване и отстраняване на дефекти
Документира всяка стъпка от работата на решението, за да може впоследствие тази документация да се използва като справка при поддръжка и последващо тестване
Участва във внедряване за реална експлоатация при клиента (инсталация, конфигурация, клиентски настройки, интеграция, миграция на данни)
Осигурява поддръжка на разработения софтуер
Работи съвместно с другите компютърни специалисти за осигуряване на оптималното решение
Образование
Обикновено се изисква висше образование, макар и в някои случаи да е достатъчен и само практически опит, за да се започне работа по специалността. Най-релевантни образователни специалности са Информатика, Компютърни системи и технологии, Информационни технологии, Компютърни технологии и приложно програмиране, Компютърни науки, Софтуерно инженерство. За хората от тази професия е важно да са винаги в крак с новите технологии и инструменти за разработка, което е свързано с непрестанно допълнително самообучение.
Необходими умения
Основните умения[3], които са необходими, за реализация в тази професия са
Способност за продуктивна работа в екип
Познания за съвременния софтуер и хардуер и по-конкретно в прилаганите технологии
Аналитично мислене и систематично подхождане към проблемите
Способност за ефективна комуникация
Умения за своевременно учене и усъвършенстване
Осигуряване на качествено и продуктивно изпълнение на задачите
Класификация на длъжността
Според българската класификация на професиите и длъжностите професията е в група 251 – Разработчици на софтуер и софтуерни приложения и анализатори.[4][5]
Технологии
В тази област се използва широка гама от технологии и платформи, като най-широко разпространении са C, Java, J2EE, C++/C#, Linux, .NET, Python, ADO, Perl, HTML/HTML5, JavaScript, ASP, PHP, MySQL, SQL Server, Oracle, Ajax