Разработка
Что делать, если в проекте нечего делать: 3 совета разработчикам
Для Android-разработчиков это та точка, в которой нет новых фич и нет значимых/осмысленных ошибок. Такая ситуация пугает многих людей и заставляет искать новую работу или новый путь в карьере.
Я прочитал множество история от разработчиков, которые счастливы работать в компаниях, где они, фактически, ничего не делают. Отсутствие работы делает их счастливыми. Их мечта стать «забытым работником» сбылась. Я видел их своими глазами. Что касается меня, то я ненавижу скуку.
Прежде чем продолжить, я хотел бы добавить, что я здесь рассказываю о работе в стартапе, но большую часть информации можно применить и к работе в крупных компаниях, а также к другим мобильным, не-Android, разработчикам.
Нам всем, даже когда мы любим нашу работу, любим компанию, на которую работаем, и никогда не сменили бы нашу текущую работу на другую, время от времени становится скучно. Это жизнь, всегда есть взлеты и падения, и мобильному разработчику очень просто свалиться в состояние «я понятия не имею, что делать теперь, когда продукт вышел».
Теперь, не поймите меня неправильно, после выпуска приложения, всегда есть множество дополнительных функций, которые вы откладывали на будущие несколько релизов. Обычно бизнес-команда/менеджеры пытаются добавлять новые функции «на будущее» так часто, что их хватает на год или два. Но когда все они реализованы, когда поправлены все баги, которые появились от их внедрения, бизнес-команде надо идти и продавать эти функции новым/старым клиентам, или придумывать новые фичи, которые можно добавить в приложение – и тогда, как правило, в разработке наступает пауза.
Для мобильных разработчиков, вроде меня, которые ненавидят скуку, пережить такую полную заморозку кода очень трудно. Есть множество вариантов такой заморозки, но я буду говорить об отсутствии новых фич, когда разработчики еще могут делать изменения, которые полезны и необходимы, до тех пор, пока не появятся новые функции для реализации.
Для Android-разработчиков это та точка, в которой нет новых фич и нет значимых/осмысленных ошибок. Такая ситуация пугает многих людей и заставляет искать новую работу или новый путь в карьере.
Так что мы, как Android-разработчики, должны делать в такой ситуации? Как мы можем пережить это состояние, служа нашим работодателям и в тоже время становясь лучшими инженерами? Многие предпочитают просто передохнуть, посмотреть кино или поработать над сторонними проектами, но лично я считаю, что если мне платят хорошие деньги за мою работу, то этот долг можно вернуть компании и заодно выучить что-то новое. Но как?
Есть много способов сохранить производительность и улучшить свои навыки, но вот 3 основные вещи, которые я люблю сделать, когда начинаю испытывать скуку на работе – вещи, чтобы поддерживать свою продуктивность, улучшить себя в долгосрочной перспективе и принести пользу моему работодателю.
1. Рефакторинг
Да, вы прочитали это правильно. Рефакторинг кода! Заставьте себя и всю вашу остальную команду рефакторить. Ни один код не идеален, посмотрите хотя бы на исходники Android (как старые, так и новые). У многих программистов есть мнение «не чинить то, что не сломано», и это просто плохо. Как разработчик вы должны знать, что код НИКОГДА не идеален и всегда его можно улучшить. Великолепный недавний пример – приложение Uber. Они просто переписали все свое Android приложение, так как оно не получилось идеальным с первого раза, и при этом у них 100+ Android разработчиков.
Это может быть архитектура, код может быть не очень объектно-ориентированным (да, это часто случается, особенно в Java), это может быть файл strings.xml, ваш макет, локализация, доступность или многое другое, но тут всегда есть что улучшить или добавить.
Попробуйте поговорит с iOS командой и узнайте, как дела у них – может быть вы научитесь чему-либо друг у друга.
Лично я пытаюсь найти самый большой God Object и выработать способы реорганизовать его. Если у вас такого нет, попытайтесь найти чрезмерную абстракцию где-либо, там всегда есть что поправить.
3 ресурса для рефакторинга:
- «Чистый код» Роберта С. Мартина
- «Рефакторинг: Улучшение существующего кода» Мартина Фаулера
- Сайт SourceMcom
Прекрасный источник идей для улучшения вашего Android-приложения – официальная документация. Я гарантирую, что вы найдете больше одного улучшения, только в одном этом материале, и сможете применить их к вашему «идеальному» Android-приложению.
2. Улучшайте
Под «улучшайте» я подразумеваю новшества в работе. Инновации вне работы тоже отличная идея. Но пока вы на работе – старайтесь думать о том, как сделать ваш продукт лучше. Помогите команде дизайнеров и бизнес-команде идеями будущих релизов, новыми функциями, которые можно добавить, удалить или заменить.
Поговорите с вашей командой дизайнеров, они могут быть не до конца осведомлены обо всех особенностях материального дизайна или стандартах пользовательского взаимодействия в Android. Несколько лет назад я работал с командой дизайнеров, которая выдавала нам смесь Android и iOS дизайна. Они думали, что раз это хорошо работает на iOS, то должно подойти и для Android.
Будьте вовлеченными и расскажите о своих идеях. Худшее, что может случиться, это то, что ваши идеи не примут. Ну так что. Вас не уволят и не понизят за попытку сделать продукт лучше – наоборот, другие разработчики могут заметить такую попытку и последовать вслед за вами.
Поговорите с QA-командой. Выясните, как вы можете помочь им лучше выполнять свою работу. Не все QA-инженеры являются разработчиками. Вы можете помочь им, например, создав скрытое меню, в которой они смогут делать доступные только им вещи. Или вы можете сделать отдельное приложение для тестирования функциональности в разных сценариях, которые трудно охватить существующими инструментами.
3. Рост
Что я имею ввиду под ростом? Становитесь лучшим инженером, а не просто программистом. Изучайте научную основу, копайте глубже. Станьте достойными Google, Uber и Microsoft, чтобы эти компании захотели нанять вас.
Зачем? Прежде, чем я сам отвечу на этот задаваемый много раз вопрос, я дам вам 4 ссылки на подборки, одна из которых предназначена конкретно Android-разработчикам:
- Насколько важно изучение алгоритмов и теории для того, чтобы стать отличным программистом?
- Чтобы стать хорошим Android-разработчиком, мне нужно знать структуры данных и алгоритмы?
- Будет ли полезно понимание структур данных и алгоритмов для Android-разработчика?
- Если продвинутые алгоритмы и структуры данных никогда не используются в индустрии, то почему мы изучаем их?
Итак, вы хотите быть посредственным разработчиком, или экспертным инженером по программному обеспечению?
Много читайте. Что читать? Medium или документацию по Android во время сборки, даже если вы не закончите читать статью, которую начали. Просто делайте. Это длинный путь. Есть множество книг и статей, которые вам надо прочитать как разработчику.
Последнее, но не менее важное в росте, это посещение митапов. Я сам не очень хорош в этом, так что этот пункт относится и ко мне – встречайтесь с другими Android-разработчиками. Выбирайтесь из офиса, наслаждайтесь прогулкой, обучением и общением. Это точно поможет вам в долгосрочной перспективе.