Что определяет роль «разработчика программного обеспечения»

10

Я младший разработчик программного обеспечения и работаю в компании менее года.

В то время как я всегда думал, что разработка программного обеспечения означает разработку программного обеспечения и кодирования чего-либо, мои задачи в большей степени связаны с типом администрирования, таким как настройка Jenkins, SQL Replication и т. Д.

Включены ли эти виды работ в роль разработчика или разработчик разрабатывает только программное обеспечение? Должен ли я поговорить с моим менеджером об этом? Является ли это обычным способом для компаний оценивать «развивающиеся» навыки?

МСЗ
источник
9
Зависит от того, кто твой заостренный босс.
Нил
Каждая компания будет определять роли немного по-своему. Спросите своего менеджера, какие обязанности и ожидания влечет за собой эта роль.
Бернард
4
Есть периоды, когда плотникам приходится загружать пиломатериалы, толкать тачки и т. Д. Это все часть работы. Если вы неопытный плотник, вы, вероятно, делаете гораздо больше, чем старший плотник.
Брайан Оукли
1
Разработка программного обеспечения> написание кода. Если разработчик программного обеспечения не знает, как настроить / использовать и / или не знает ценности (подобного инструмента) Jenkins, то по определению они будут (очень) младшим разработчиком программного обеспечения. Подумайте об обучении на рабочем месте и посчитайте, что вам повезло, что вы не работаете в среде, где вам приходится запускать свой собственный CI-сервер на собственной виртуальной машине, поддерживаемой в свободное время, чтобы поддерживать уровень качества программного обеспечения, ожидается, но на практике не рекомендуется, если такие инструменты не разрешены в их (в основном ручном) "процессах".
Майкл

Ответы:

11

Мне кажется, что они наняли младшего, потому что они не могли позволить себе старшего, а не потому, что они на самом деле хотели младшего (кого-то, в кого они могут инвестировать и наставлять, пока не станут старшими). Я управлял командой, которая навязывала это решение менеджерам, которые не знали лучше.

Он закончил со всеми видами неудачных заданий, таких как создание обучающих видео для пользователей и тому подобное, и я до сих пор чувствую себя виноватым из-за этого, но я находился под давлением, и ожидалось, что добавление головы в комнату разработки только ускорит процесс ,

Это печально, потому что это ставит вас и вашего босса в хитрые позиции.

У него, вероятно, нет работы, которой он мог бы доверять младшего, и любые старшие, которых он мог иметь, не могли отвлекаться от их повседневной жизни. Самый простой выход - дать младшему множество задач, не связанных с разработкой, с которыми он также не хочет тратить время старших разработчиков.

Но из этого возникает несколько проблем.

Во-первых, для работы, которую он вам дает, нужен старший разработчик. В частности, сервер сборки должен быть настроен кем-то, кто создает программное обеспечение и знает, где находятся болевые точки.

Во-вторых, младший не становится более полезным. Через пять лет вы все равно будете выполнять те же задачи, потому что вам все еще нельзя доверять фактическую работу по разработке.

В-третьих, младший со временем (как и вы) поймет, что не помогает своей карьере. Предположение, что юниоры имеют низкое качество, а не мало (и ищут), является ужасной, но очень распространенной ошибкой в ​​этой отрасли.

Так что, да, сядь со своим боссом. Но поймите затруднительное положение, в котором он находится. Посмотрите, сможете ли вы прийти к какому-то соглашению, которое решает проблемы каждого. Вам понадобится старший наставник, и некоторые из ваших текущих задач нужно будет передать старшему. Это замедлит проект, но, в конечном итоге, окупится. Это то, что вам нужно, чтобы связаться с вашим боссом и, возможно, с его боссами. Кроме того, посмотрите, сможете ли вы найти что-то, что вы можете предложить взамен, чтобы снизить расходы.

Если вы не можете, то вы можете посмотреть в другом месте.

прецизионный самописец
источник
Это НЕ «задачи старшего разработчика». Это (Дженкинс) просто следуя инструкциям. Старшие разработчики выбирают путь (из опыта), младшие разработчики следуют по пути. Если бы младший разработчик жаловался на настройку jenkins, я бы искал другого младшего разработчика; время, необходимое для его настройки, меньше, чем время, чтобы опубликовать этот вопрос и прочитать ответы. (Я знаю, потому что я настраивал hudson / jenkins много раз. И репликацию базы данных. Ооочень много раз.) «Просто сделай это», тогда вы будете знать, как. Если ты никогда не учишься делать что-то и ожидаешь быть лидером, ты ничто иное, как PHB на тренировке.
Майкл
@michael_n: Полностью не согласен. Существует различие между настройкой Jenkins и настройкой всей среды сборки таким образом, чтобы оно уменьшало усилия со стороны всех разработчиков, позволяя безопасное развертывание одним щелчком мыши и т. Д. И в этом разница между тем, что Junior даст вам и что старший даст вам, когда попросят настроить сервер сборки.
фунтовые
... и все же я согласен с вами: «Есть разница между настройкой Jenkins и настройкой всей среды сборки». Точно. Так что, я думаю, это зависит от того, интерпретируете ли вы вопрос буквально (я так и сделал). Установка Дженкинса - это день; настройка сборки make / ant / maven занимает дни и может легко превратиться в недели, и должна быть сделана правильно. Хорошие менеджеры могут разбивать вещи и делегировать, основываясь на своем опыте (в этом отношении я был плохим менеджером в прошлом, решив делать все сам, только потому, что это будет на самом деле быстрее. Но это не масштабируется, и " команда "не развивается.)
Майкл
@michael_n: Посмотрите, что вы имеете в виду. Я склонен иметь более низкие ожидания менеджера, я думаю. Особенно тот, кто нанимает младшего по финансовым причинам, а не по будущему планированию.
фунтовые
7

Я считаю термин «разработчик программного обеспечения» синонимом «программист». Таким образом, разработчик программного обеспечения - это человек, основной обязанностью которого является написание кода. На моей первой работе мое звание было «Разработчик», и моя основная ответственность заключалась в разработке и написании программного обеспечения. Но я думаю, что нет точного определения этого термина. Разные люди используют его по-разному, поэтому значение становится нечетким.

Но чтобы команда разработчиков работала эффективно, вам необходимо настроить такие компоненты, как серверы конфигурации, репликацию SQL, развертывание на тестовых серверах, мониторинг тестовых серверов, архивирование сборок и т. Д. (Возможно, не все из них применимы в любой ситуации) ,

Эти задачи займут много времени в начальной фазе проекта, но займут меньше времени после того, как вы запустили хорошую настройку.

К сожалению, разработчики предпочитают кодировать, а не управлять серверами сборки. Поэтому часто эти скучные задачи попадают в руки младших разработчиков, поскольку у старших разработчиков есть более важные задачи.

Я не испытывал ни одной компании, которая использует эти задачи как средство для оценки навыков.

Если вы не удовлетворены своими текущими обязанностями, я бы предложил обсудить этот вопрос с вашим непосредственным руководителем.

Пит
источник
1
В соответствии с этим существует различие между терминами .
Бернард
1
также согласно этому
smp7d
2

Это зависит. Кажется, что разные компании определяют это по-разному, а для некоторых это общий термин для множества технических функций. Для некоторых это просто название. Задавая тот же вопрос раньше, я получил ответ, похожий на «Только разработчики имеют возможность делать это в нашей организации», я бы сказал, может быть, но это не обязательно делает его разработкой).

Теоретический ответ заключается в том, что разработчик (по сравнению с программистом / программистом) - это человек, который «решает проблемы», даже если он не имеет отношения к «кодированию чего-либо».

Вы хотите больше кодировать, так что, возможно, спросите своего менеджера о дополнительных задачах по кодированию или о том, как выполнять кодирование? Вы упомянули операционные вещи, так что, возможно, некоторые из них могли бы быть сделаны фреймворками DevOps (проверьте chef и puppet ), которые сделают функции более эффективными и близкими к разработке.

Димитриос Мистриотис
источник
2

Это не редкость для разработчиков можно ожидать , чтобы иметь некоторые навыки системного администрирования. Как старший разработчик, я считаю, что около 5% моего времени уходит на такие задачи.

Однако, если вы не делаете любое кодирование, то вы , вероятно , следует поговорить с менеджером о получении кодирования задач. В конце концов, вы хотите создать опыт программирования. Вы также более ценны как программист, чем как системный администратор.

Густав Бертрам
источник
1

Код не очень полезен, если он не встроен в приложение должным образом или не имеет доступа к правильным данным, поэтому перечисленные вами действия кажутся очень соответствующими тому, что делает разработчик. Я должен добавить, что разработчики программного обеспечения также сильно запутались в документации и тестировании. Это действия, необходимые для производства программного обеспечения.

Хорошо, если в вашей компании есть специалисты, которые могут сделать это за вас, но если нет, то разработчики программного обеспечения несут ответственность за все, вплоть до (и, возможно, включая) развертывание приложения в производство и его поддержку там.

Мэтью Флинн
источник
0

Разработчик в небольшой или средней компании довольно часто берет на себя некоторые задачи администратора сервера / администратора базы данных / общие настройки.

Однако, если эти задачи начинают становиться основной частью ваших обязанностей, это может быть чем-то, о чем нужно беспокоиться в зависимости от ваших карьерных целей. Хотя вы, вероятно, можете процветать в определенных компаниях в качестве общего технолога, когда вам нужно перейти в новую компанию, это может вызвать много проблем в вашем переходе. Если вы не занимаетесь какой-либо традиционной разработкой, вам нужно обязательно указать это в своем резюме. Если вы хотите устроиться на работу в процессе разработки после того, как трудоустроился, как вы описали, вам, возможно, придется принять то, что вы «переоценили» за годы работы в отрасли.

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

Если вы не хотите застрять в своем текущем положении, я бы определенно попытался исправить ситуацию в ближайшее время.

smp7d
источник