За каждый момент гордыни я всегда платил. Разрывом рабочих отношений, ошибками в программных продуктах, ударом по репутации, финансовыми потерями. Я бы и рад сказать, что быстро усваивал уроки, но нет. Признаться себе в том, что ты возгордился, нелегко, равно как и исправлять свои ошибки. Однако это единственный путь, который не усыпан граблями и разочарованием. Наше эго – это определенно не то, что надо взращивать за чужой счет.
Pet projects
Будем откровенны: даже лучшие рабочие проекты, с которыми вы столкнетесь, могут надоесть. Возможно, они потребуют от вас длительной монотонной работы или будут использовать технологический стек, который вас не вдохновляет. А возможно, вы уже проработали над этими проектами так долго, что они вам просто смертельно наскучили.
Не стоит отчаиваться! Когда почувствуете, что вас начинает тянуть к чему-то новому, но бросать свою работу вы, естественно, не планируете, найдите себе pet project. Возможно, у вас давно зреет идея, которую хотелось бы реализовать. Может, вы поработали с каким-то open source проектом, пришли от него в восторг и хотите поучаствовать в его развитии. Или просто жаждете попробовать язык программирования, синтаксис которого приснился вам в эротическом сне (не могу сказать, случалось ли такое с кем-нибудь, но и обратного гарантировать не могу).
Pet projects, как и любая деятельность, не связанная с вашей основной работой, – это огромный новый опыт и расширение навыков. Особенностью таких проектов (будь то создание личного меганавороченного калькулятора расходов или участие в работе над open source продуктом) является то, что вы испытываете огромное желание заняться ими «прямо сейчас». Вы мотивированны, вам интересно, вы испытываете положительные эмоции от работы с такими проектами. Эти положительные эмоции крайне полезны и помогают воспринимать новые знания быстрее и качественнее.
Главная проблема, связанная с pet projects, – время. Ваше бедное свободное время. Если соблюдать баланс между трудом и отдыхом (А Я ОЧЕНЬ НАДЕЮСЬ НА ЭТО!), то у вас в распоряжении остается не так много свободного времени, которое можно посвятить чему-то очень похожему на вашу основную работу. Я совру, если скажу, что не проводил выходные и вечера после рабочего дня за новым языком программирования или проектом, который был мне очень интересен, поэтому не стану отговаривать и вас. В конце концов, то, как вы отдыхаете и от чего получаете удовольствие, – это только ваше дело, ничье больше.
Pet projects могут быть очень полезны для вас. Они снимают умственное напряжение от основной работы, помогают мозгам не ржаветь, дают новые знания, новые подходы и опыт, радуют, когда вы добиваетесь прогресса. Черт, они могут даже помочь справиться с выгоранием, если вы найдете проект, вызывающий те же чувства любопытства и восторга, с которыми вы пришли в эту индустрию.
Не расстраивайтесь, если прямо сейчас слишком загружены работой, чтобы заниматься дополнительным проектом. Интерес и тяга к новому всегда с вами, просто дайте себе время, чтобы закончить дела.
Тезисы
■ От любого проекта можно устать.
■ Pet projects – простой способ поднять себе настроение и вернуть мотивацию.
■ Работая над проектами, которые доставляют удовольствие, вы значительно быстрее получаете новые знания.
■ Если у вас не хватает времени на свой pet project, не расстраивайтесь, просто включите его в свое расписание заранее.
Задание
Составьте список из 5 или 10 технологий, языков программирования или сфер IT, которые вам хотелось бы узнать получше. Держите этот список под рукой, обновляя его, если необходимо. Когда вы почувствуете, что устаете от рабочего проекта, достаньте список, подумайте, что бы вы могли сделать, используя эти технологии, какой проект могли бы написать, к примеру, за выходные. Выделите себе немного времени после работы, чтобы составить план будущего проекта. Если вас начало затягивать, если вы чувствуете мотивацию – пробуйте!
История из жизни
Я уже не перечислю всех мини-проектов, которыми занимался многие годы, но мне запомнился один, ставший для меня отдушиной в череде очень сложных проектов, когда мне казалось, что я полностью заржавел. Я настолько устал от стека технологий и языков программирования, которые мы использовали, что мне нужна была «свежая кровь» – область, в которой я мало разбирался, то, что стало бы для меня испытанием. Я решил написать эмулятор CHIP8 на языке Rust. Да, я был вымотан и очень устал, но даже полчаса работы над этим маленьким проектом в день давали мне невероятное чувство радости, которое я помню до сих пор.
Аврал! Свистать всех наверх!
Почти в любом IT-проекте чередуются стадии спокойной, размеренной разработки и авральной, бешеной работы. Чаще всего количество и продолжительность таких стадий напрямую зависят от качества управления проектом, и в большинстве случаев вы никак не сможете на это повлиять. Если вы работаете в игровой индустрии, то я даже не буду объяснять, что такое crunch time, вы очень скоро познакомитесь с этим сами.
С логической точки зрения мы понимаем, что спокойная, размеренная работа – это то, к чему надо стремиться в разработке программных продуктов. Вдумчиво, последовательно, без спешки и с учетом требований. Однако реальность коммерческой разработки никогда такой не была и вряд ли станет. Конкуренты всегда будут дышать в спину вашего проекта, а пиар-отдел, продвигающий конкретную дату выхода продукта на рынок, не будет менять ее в процессе рекламной кампании. Да, авральная работа над проектом – зло, но чаще всего оно неизбежно, и вам, как профессионалу, надо быть к этому готовым.