Как вы выходите из роли сопровождающего кода? [закрыто]

13

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

Я программист-самоучка. До того, как я начал свою первую профессиональную работу, у меня было около десятка проектов, которые я начал и успешно отправил.

Написание нового кода и поддержка существующего кода - две совершенно разные задачи. Это все равно, что сравнивать авиационного инженера с авиамехаником.

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

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

Я чувствую, что на этот вопрос нет простого ответа, но может ли кто-нибудь подсказать мне? Вы когда-нибудь были на первом этаже нового проекта? Что нужно, чтобы добраться туда?

nbv4
источник
Подаете ли вы заявку на работу в Code Maintainer?
Джеймс
@James все работы - это работы по сопровождению кода, или, по крайней мере, все работы, с которыми я сталкивался ...
nbv4
Не расстраивайтесь. В технологии нет ничего постоянного. Вы можете почувствовать себя механиком против инженера. Но я думаю, что есть много компаний с лидерами-самоучками и рабочими пчелами с учеными степенями. Статус, знания и усилия по соблюдению формального образования должны иметь определенную награду, но является ли ваш ответ «Что вы сделали для меня в последнее время?» лучше, это долгий путь.
DeveloperDon

Ответы:

6

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

  • В худшем случае, первоначальная система была спешно собрана, первоначальная команда взяла на себя ответственность за все это. Они следовали правилу 80/20, поэтому, хотя может существовать минимальный жизнеспособный продукт, который можно продать, многим покупателям нужно много исправлений и небольших улучшений. Много проблем, но не так много славы. У вас самая тяжелая работа, и она неблагодарная. Я надеюсь, что это не ваша ситуация.
  • В лучшем случае вы показали, что вы осторожны со своей работой и вам можно доверять вносить изменения в выставленный продукт, не нарушая его. Оставшиеся проблемы слишком сложны для людей, которые соединили оригинальную систему. Может быть, им не удалось создать систему, которая будет работать долго, и вы, возможно, в качестве их замены, чтобы исправить ситуацию и спасти клиентов, проект и прибыль.
  • Весьма вероятно, что 60% стоимости проекта приходится на техническое обслуживание. Возможно, это время, может быть, ваша организация разделяет между новой разработкой и обслуживанием, но вы в 3/5 большинства, потому что многие из нас занимаются обслуживанием.

Вот несколько вещей, чтобы попробовать:

  • Делай отличную работу, имей отличное отношение, будь лидером идеи.
  • Насколько это возможно, работа в команде, а не в одиночку.
  • Учите новые языки.
  • Изучайте новые платформы.
  • Просьба работать над небольшими программами, возможно, даже подать заявку в меньшие компании.
  • Обучайтесь и занимайтесь документацией. Когда проекты начинаются, даже в эпоху после водопада, им требуется много письменной координации для составления дорожной карты, документирования, оценки и уточнения требований.
  • Проекты опасно начинать в руках людей, которые не ценят управление требованиями, оценку и оценку рисков, поэтому изучайте и применяйте эти навыки как можно чаще.
  • Получите более формальное обучение или сертификаты. Это может повысить ваш статус и сделать вас более привлекательным выбором, когда формируются команды для новых проектов разработки.
  • Начать компанию или некоторые консультации на стороне. Это дает вам творческий выход для вашей любимой работы и дает вам более полное представление о том, каково начинать без кода или документации.
  • Станьте ближе к своему боссу и людям, которые планируют новые проекты.
  • И наоборот, если вы очень близки к тестерам и контролю качества, их результаты часто являются входом в техническое обслуживание, так что угадайте, с кем ваш начальник считает, что вы действительно хорошо работаете?
  • Заведите как можно больше друзей и заслужите уважение как можно большего количества разработчиков с нуля.
  • Новые разработчики могут делать люди, поэтому будьте осторожны с любым намеком на критику или негатив. Дайте им свои идеи свободно без вины или суждения. Ваши идеи не нуждаются в представлении, просто скажите их. Никогда не говорите, мы привыкли делать это таким образом, или это не работает, попробуйте это. Никогда не говори, я не знаю, но это может сработать. Просто скажи идею. Или лучше покажи это.
  • Найдите и воспользуйтесь любой возможностью, чтобы создать подтверждение концепции, которая может превратиться в ваш новый проект.
  • Остерегайтесь, кто назначает вам работу. Обычно это должен быть кто-то в вашей цепочке команд. Если это ваши сверстники, отодвиньте часть времени назад. Если это кто-то, кого вы курируете, должна быть веская причина, по которой управление инвертируется. Если это QA или тест, убедитесь, что это имеет значение для вашей цепочки команд и не запланировано таким образом, что задерживает работу, которую вы обещали ранее.
  • Остерегайтесь совершенства. Новые разработки часто предназначены для быстрых людей, даже если они смотрят в глаза и не ставят точки.
  • Потратьте время на изучение и отработка ранних навыков проекта, соответствующих вашей линии развития. Это может включать в себя: создание исходных репозиториев, определение среды сборки, настройку сервера постоянной интеграции, тесную работу с командой аппаратного обеспечения для разработки новых плат с пакетами поддержки плат или написание самопроверки. Это может даже помочь узнать, как работать с покупкой, чтобы купить новые инструменты разработки, обучение и аппаратное обеспечение COTS.
  • Убедитесь, что вы продолжаете работу до того, как ваш проект по техническому обслуживанию будет закрыт, возможно, купив свои навыки внутри компании, руководителям команд и, возможно, менеджерам или за ее пределами.
  • Быть в курсе всех технологий, которые вы знаете, и знать много технологий.

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

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

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

Есть много новых программ, которые еще нужно написать.
Будьте готовы, и вы будете работать над одним на удивление скоро.

DeveloperDon
источник
4

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

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

До тех пор вы можете попытаться научиться рефакторингу старых приложений для очистки модулей.

Хорошее чтение - « Работа с устаревшими приложениями » и « Рефакторинг к шаблонам ». Если вы не читали оригинал Refactoring (Fowler), пожалуйста, сделайте это. И выучить Test-Driven Development (TDD) всегда помогает.

Если вы работаете с PHP, я написал практическую статью, в которой этот код по-прежнему выполняется ...

Веселиться!

Aadaam
источник
1

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

paxRoman
источник