Как получить мотивацию для работы над задачами, которые не помогают вам стать лучше

Для меня есть два аспекта любой задачи, поставленной перед разработчиком в программном проекте. Они не являются исключительными, поэтому задача может быть (например) 40% аспекта 1 и 60% аспекта 2:

  1. Задания, требующие от вас изучения новых вещей или улучшения вашего понимания. Это улучшит вас как разработчика, а полученные знания/опыт можно будет перенести либо в другие области того же проекта, либо в другие проекты.
  2. Задачи, специфичные для проекта или даже для одной очень небольшой его области. Их выполнение может только улучшить вас как конкретного разработчика в этом проекте. Даже в этом случае полученные знания/опыт полезны только в этой конкретной части проекта, поэтому бесполезны, если только в будущем не будет много задач, сосредоточенных на той же части.

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

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

Зачем другим людям выполнять грязную работу, которая вам не нравится? Вы когда-нибудь задумывались о том, что «другим членам команды, которые много работали над этими конкретными областями» , это тоже не нравится?
@MarkRotteveel Я говорю вовсе не о тяжелой работе. Есть области, которые я написал, когда кто-то работает над ними, это займет в 5 раз больше времени, чем у меня, и изучение этой части не добавит им никакого опыта или знаний, я считаю, что у них нет причин делать это до тех пор, пока Я не ухожу.
@uylmz Я подозреваю, что вы попали в самую точку, даже не осознавая этого - дублирование знаний и опыта среди нескольких членов команды является хорошей практикой именно потому, что люди уходят, заболевают, умирают и тому подобное.
Motosubatsu Я всегда предполагаю, что они выигрывают в лотерею, богатый дядя оставляет им миллионы. Гораздо удобнее для сотрудников :-)

Ответы (4)

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

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

Что касается того, как мотивировать себя в те времена, когда вы застряли, делая то, что вам не хочется, вот несколько советов, которые работают для меня:

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

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

платить за какой-то несчастный случай, который еще не произошел или может даже не произойти никогда

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

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

Я использовал несколько стратегий, в зависимости от типа задачи, суммы, ожидаемого времени и т. д.:

  1. Скучная ручная работа? Вместо того, чтобы выполнять простую задачу более 100 раз в течение следующих 5 часов, я найду способ ее автоматизировать (или, по крайней мере, полуавтоматизировать). Это может занять 8 часов, но это а) веселее, б) менее подвержено ошибкам (почти всегда), в) повторно используемо (потому что мы знаем, что одноразовые проблемы имеют тенденцию многократно подниматься из мертвых), г ) по крайней мере, вы практиковали свои навыки написания сценариев, и следующее задание будет проще и эффективнее [используя ваши слова, вы только что переместили задание в группу 1]
  2. Превратите это в соревнование. Измеряйте что-то и старайтесь постоянно обыгрывать это. Конечно, помогает, если вы не единственный, кто выполняет эту работу.
  3. Попробуйте найти удовольствие в самой задаче. Это очень зависит от задачи и ее типа. Если вы работаете над испорченным унаследованным кодом, покажите коллеге забавные моменты: «Эй, Пит, просто работаю над , когда вы открываете этот класс в IDE, линтер выглядит как одна большая полоса прокрутки». Если вы часто работаете над этим, вы можете устроить (ежемесячное) соревнование на «самый худший/самый сумасшедший/самый уродливый найденный код» или что-то в этом роде.
  4. Работает для довольно коротких задач - включи громкую (трэшевую) музыку, отключи мозг и займись делом.
  5. Помните, что больше всего вы учитесь на плохих вещах. Я всегда знал, что это антипаттерн для регистрации и создания исключения в java. Увидев реальный журнал этого, вы запомните/поймете это намного больше (и навсегда). Я разглагольствовал о том, что некоторые хаки maven трудно понять. Потом я увидел муравьиные скрипты. Внезапно я больше не жалуюсь.
  6. Усложните задачу, включив части из первой группы: Часть кода с ошибками? Пишите (модульные) тесты. Наследственный ад? Сделайте небольшой рефакторинг. [современные рабочие процессы должны помочь вам оправдать потраченное на них время]
  7. Создайте внутренний мир: если мне нужно поработать над чем-то, что мне не нравится, это поможет мне написать электронное письмо о проблеме, о том, как это сделать правильно и т. д. Даже если я знаю, что шансы на успех равны нулю, я сделаю это. Сделай так. Когда снова что-то случится, я напишу продолжение по этому электронному письму. [и, возможно, получить удовольствие от того, как люди избегают проблемы, оправдываясь и т. д.]
  8. Как и в предыдущем случае, я буду создавать задачи для всего, что не так, и держать их в бэклоге, а затем соглашаюсь, что это низкий приоритет, но никогда не закрываю, пока не будет решено. [помогает и с другими вещами]
  9. Способ «хорошего самочувствия» работает с проблемами и т. д. Мне приятно быть «парнем, который знает», а другие приходят за помощью, или быть «спасенным парнем», или просто быть хорошим товарищем по команде и брать его за помощь. команда (например, волонтерство для выполнения задания, которое все ненавидят, и использование любого метода, чтобы сделать его более увлекательным и, если возможно, избавиться от него).
  10. Делайте регулярные перерывы, чтобы сохранять рассудок.

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

Как получить мотивацию для работы над задачами, которые не помогают вам стать лучше

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

Таким образом, если ваша единственная цель работы в вашей компании — улучшение, ваша мотивация должна состоять в том, чтобы закончить «не улучшающую» задачу А, чтобы вы могли работать над «улучшающей» задачей Б.

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