Как работать разработчиком и получать удовольствие

Начнем с того, что я уже третий год работаю андроид разработчиком и за это время успел сменить порядка 5 мест работы (если конечно работа по фрилансу на месяц тоже считается работой). И все компании в корне отличались друг от друга. Я работал как в большой компании типа Сбербанка, так же и в маленьких продуктовых типа EWA — learn English, так же и в стартапах, приложения которых недавно вышли в гугл плей маркет или же я был автором первого релиза. И за все это время я получил бесценный опыт, которым хочу сегодня с вами поделиться.

Сразу предупрежу — статья не претендует на роль уникального ответа аля истина в последней инстанции — это все мое субьективное мнение основанное на личностном опыте.

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

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

  1. Первым пунктом является факт заинтересованности разработчика в том проекте/продукте, который он разрабатывает. Было время я разрабатывал продукт, которым просто не мог пользоваться сам, оно было для рынка Азии. И именно поэтому весь фидбек я получал только от самих пользователей. Или же, например, те же самые продукты, которыми пользуешься не так часто, тогда твой интерес в нем не так сильно выражен. Если брать позитивный опыт, то тот продукт, который я сейчас разрабатываю — я им пользуюсь наверно каждый день. И не только андроид версией, но и веб. И мне естественно интересно не только как разработчику чтобы продукт был на высоте, т.е. работал стабильно и развивался, но и как пользователю. Здесь я могу влиять немного на сам продукт, выражая свое мнение как пользователь. И это прекрасно. Поверьте мне, когда ты заинтересован в проекте, ты разрабатываешь с большим интересом. И даже если взять в расчет пункт с зарплатой, то поверьте, за большие деньги ты будешь кодить какое-то время, но потом, из-за того, что у тебя очень слабая заинтересованность в конечном продукте, ты устанешь, будешь вялым и твоя мотивация будет на дне. Так что, друзья мои, первым делом ищите компанию, в которой вам будет интересно разрабатывать продукт, если повезет, то приложение, которым вы бы пользовались очень часто. Тогда у вас будет четкое понимание насколько оно удобно для использования и насколько качественно сделано. Ведь нет на свете лучшего тестировщика, чем пользователь. А когда это и разработчик в одном лице, то и значит, что баги будут фикситься в кратчайшие сроки и сам багофикс не будет раздражать, а лишь радовать успешная стабилизация.
  2. На второе место я наверно все же поставлю процессы разработки. На собеседованиях очень мало (если не нисколько вообще) внимания уделяется вопросам процессов. А на самом деле это наверно самый важный пункт после заинтересованности человека. Ведь исходя из того, насколько у вас хорошо выстроены процессы разработки в компании/команде зависит общая атмосфера на работе и в том числе успешность конечного продукта и следовательно ваше психологическое состояние. Ведь представьте, если вы живете на седьмом этаже и каждое утро вам нужно тратить по 10 минут только для того, чтобы вызвать лифт, то вам рано или поздно надоест это все дело и скорей всего, если ничего не изменится, вы просто найдете квартиру на первом или втором этаже. Итак, что же не так с процессами разработки. А как показывает практика, в большом количестве компаний он не выстроен вообще или же выстроен для галочки или же выстроен таким некорректным образом, что толку не особо много. Что же такое процессы разработки, спросите меня вы? Все. Вся ваша работа. Потому что кроме написания непосредственно кода, наш разработчик проходит (12 кругов ада) несколько этапов, перед тем как приложение выйдет в релиз. Все начинается с того, что возникает потребность в некоем функционале. Дальше необходимо формализовать это дело. Продумать так называемые тест кейсы, продумать влияние этого функционала на другие. Рассмотреть сроки реализации, подготовить приличный дизайн (и я не только про макеты от дизайнера). Очень часто упускается из виду такая вещь как логика UI. Которую можно отнести к такому понятию как UX — user experience. Будет ли удобно пользователю использовать этот новый функционал или же он через 2 минуты после обновления вам напишет гневный отзыв в гугл плей маркет? После всего этого необходимо, определив сроки исполнения, приступить к самой разработке и здесь очень важно четкое и ясное понимание что требуется от каждого участника команды. Я не верю в T-shape или так называемых разнорабочих, которые и жнец и на дуде игрец. Нет, каждый должен делать то, в чем он хорош. Разделение труда, потому что ты разделяешь не только труд, но и ответственность. Мы говорим про процессы разработки и надо упомянуть такой важный аспект, как тестирование функционала перед релизом. Как показывает мой опыт, в большинстве компаний это самое слабое место. Меня поражает как в иной раз начальство решает выпускать сырой продукт и после поражается гневным отзывам пользователей. Здесь можно долго еще говорить, но в кратце проблема именно в этапе тестирования. Оно либо очень короткое и чисто для галочки, или же его в принципе нет и разработчик сам тестировщик. Так же стоит упомянуть такую вещь как DevOps. Я работал в компаниях, где до сих пор разработчик руками генерит артефакт и отдает через телеграм на тестирование начальству. На этом пункте можно долго еще оставаться, но пойдем дальше.
  3. Кадры. У меня была дилемма, поставить их на второе место или все же на третье. Но по сути эти 2 пункта очень сильно связаны, если не сказать, что одно целое. Итак, кадры решают все. Я видел много людей, поверьте мне, за 3 года и 5 мест работы я повидал как самых настоящих ботанов и профессионалов своего дела, так и абсолютно бездарных айтишников и иже с ними. Не спорю, возможно этот человек божественно готовит яичницу, но зачем он тогда здесь пытается понять что происходит вообще и в основном тщетно. Беда IT на сегодняшний день, на мой взгляд, в острой нехватке нужных кадров. Из-за чего на их места приходят кто попало, без всякой подготовки, образования и в частых случаях без малейшего желания заниматься этой работой. А только потому что здесь платят зарплату и она ничего так себе по сравнению со средней по региону. В вузе я видел некоторых аспирантов, абсолютно не имеющих интереса в том, чем они занимаются. Но это были просто студенты, которые не хотели выходить из статуса учебы. Как говорится — магистратура и другие способы избежать взрослой жизни. Точно так же я видел бездарнейших программистов, проджект менеджеров, аналитиков, всяких дизайнеров, которые просто художники (здесь я бы очень поспорил с ними). Есть такая фраза на английском — good for nothing. Так вот, это они. Им некуда было податься, они не умели ничего. И вот, он пришел в ИТ. Молодец. А начальство не может его уволить, так как замену не найти просто. На рынке труда нельзя просто так взять и найти более менее нормального сотрудника. А если и можно найти, то не за те деньги, которое начальство готово платить. Но самое ужасное еще то, что эти кадры еще и не хотят развиваться. Я было обьяснял дизайнеру как необходимо делать макеты. Знаете какой я получил ответ от начальства? У нас нет времени на это. Нет времени на что? Чтоб твой сотрудник развивался и делал качественный продукт и уменьшал время разработки? Ведь мало кто действительно понимает, что если ты за 1 неделю выпустил релиз, а потом 2 недели переделывал, то в конечном итоге ты потратил на 1 этот экран 3 недели. А если бы твои работники имели необходимые знания и умения в работе, то всего этого можно было бы избежать и ты б закончил все за 10 дней и без переделывания с нуля. Так что исходя из моего опыта скажу словами народа — рыба гниет с головы. В первую очередь обратите внимание на начальство, насколько оно адекватное. Ведь вокруг хорошего человека будут собираться хорошие люди. And vice versa. Ровно так же я пытался улучшить качество тестирования, но каждый раз получал тот же самый ответ — у нас нет времени. Ага. Нет времени чтобы сделать качественное тестирование и выпустить релиз без критичных багов, но у нас есть время собраться в офисе в пятницу перед новым годом чтобы выпустить хот-фикс. И что самое ужасное на мой взгляд — это отсутствие тесткейсов, на эту тему я могу говорить и спорить до посинения. Но как показывает практика, очень мало людей понимают важность написания тесткейсов. А если кто-то и говорит, что понимает, то опять же ссылается или на нехватку времени или же на профнепригодность кадров. А когда ты пытаешься влиять на качество скилов других работников, тебя начинают просто презирать и вообще не вмешивайся в нашу работу. Вот поэтому ты и берешь листок бумаги и пишешь — до свидания. Кадры решают все. И если в вашей команде нет хороших кадров, то дело обречено на провал. Что меня поражает на самом деле так это то, что многие начальники оправдывают это тем, что — ну наша лодка кое-как остается на плаву и слава богу. Не раскачивай лодку, дружище. Да, классно, твои гребцы потеряли весла, дно пробито и заколочено пробкой, а ты сам в истерике выгребаешь воду из лодки и говоришь — зато мы на плаву. Ну супер. Еще одним немаловажным моментом я бы хотел отметить так называемый тимбилдинг. Я давно начал задумываться о вопросе — должны ли люди на работе оставаться всего лишь людьми на работе или же должны перерасти в статус друзей/приятелей и как это влияет на успех команды. На данный момент у меня нет однозначного ответа, но я больше склоняюсь к тому варианту, где люди неплохо так дружат между собой. Открою вам маленький секрет. В студ. годы я ходил в вуз больше не потому что мне там было ох как интересно, а потому что там были интересные люди, там было общение, веселье и так далее. И ровно так же я продолжал ходить на плохую работу только потому что там есть пара-тройка интересных людей, с которыми нескучно. Да, так бывает, что на работе самое интересное это поход на обед с коллегами. И ради этого ты готов ехать на работу 5 раз на неделе (об этом подробнее ниже). Но как показывает практика, дружеские отношения с коллегами это не самое важное и поэтому я все же увольнялся из компаний, где единственным плюсом были задушевные разговоры во время обеда.
  4. Три пункта выше наверно самые важные, а теперь настало время для менее важных, но не настолько, чтобы ими пренебрегать. Давайте поговорим о том, где находится офис. Знаю знаю, очень многим абсолютно все равно и они будут говорить — ну камон. Какая разница. А разница все же есть. Неужели для вас не имеет разницы как долго и каким образом добираться до работы? Неужели вам нравится ехать на электричке полчаса, а потом еще 20 минут на метро чтобы добраться до заветного офиса? Сейчас скажут — просто переезжай поближе к месту работы. Ну а если я на этой работе не буду достаточно долго работать? Да и знаете ли вы как непросто менять место жительства? Самое интересное то, что на одной работе я доезжал до офиса быстрее, добираясь из заМКАДа, чем те самые москвичи. Просто потому что Москва большой город. Ты можешь жить на одном краю Москвы, а офис может быть на другом конце и тебе добираться полтора часа. В этот пункт можно отнести так же и график работы. Если вы не любите просыпаться рано утром, то в какой-то момент этот пункт перечеркнет все плюсы работы которые есть. Предположим, ваше начальство требует приезжать на работу не позже 9 утра. А вам ехать полтора. Значит будильник будет вас воскрешать из мертвых каждые будни в 6. Итого, вы 3 часа в дороге, 9 на работе (все говорят про 8 часов работы, но постоянно забывают про час на обед). И ровно половину суток вы потратили, поздравляю. Осталось 12 часов в сутках, 8 на сон или сколько вам нужно? Мне нужно 10, если не 11 чтобы выспаться, но по крайней мере 9. Итак, ты постоянно раздражен постоянными поездками ржд и метро и у тебя вечный недосып, окей. Но ты все так же едешь на свою работу и там получаешь удовлетворение от работы. Ура! Повторяй что ты взрослый и ты должен терпеть боль и все будет хорошо. А теперь просто представь, что ты работаешь удаленно. Ты не тратишь времени на дорогу — минус 3 часа, ты не тратишь нервишки в давке в вагонах метро и ржд. Тебе не нужно вечером гладить свою рубашку чтобы ее надеть с утра. Тебе не нужно готовить себе обед на работу и класть ее в контейнеры. Ты можешь спокойно поесть супа дома. Но даже если мы не говорим про удаленную работу, то можем обсудить такой вариант — гибкое начало графика. И это все равно вас не спасет, ведь какая разница, если вы начинаете работать в 9 утра или в 11, вам все равно сидеть в душном офисе 9 часов. По поводу душных офисов. Да, они душные. Во-первых окон нет, во-вторых система кондиционирования вроде бы есть, но толку… уж лучше бы ее не было. Где пульт от кондея, убавьте, мне дует! Так что по настоящему хорошей работой можно считать частичную занятость или же когда твое начальство не похоже на гестапо и не требует отсиживать ровно по 9 часов в офисе. Хотя у меня были коллеги, которые сами вгоняли в рамки не только себя но и других — мы приходим в 9 утра, так что давай и ты.
  5. Поговорим о зарплате? Смотрите, было время я получал хорошую зарплату, но все остальные аспекты работы угнетали. И знаете что? Это была худшая моя работа. Да, я за пару месяцев заработал очень много денег. Но еще я заработал себе психологические проблемы и моральное истощение. После чего лечился отпуском целый месяц и не контактировал с людьми от слова совсем. Проблема нашего века в общем и ИТ в частности, что из тебя хотят выжать все соки. Да, тебе предлагают в основном достойную компенсацию (очень спорно конечно), но на кой хрен она тебе нужна? Ты получаешь много денег и потом тратишь много денег чтобы вернуться в нормальное состояние. Я однажды писал про заедание стресса. Вот и смотрите. Ты работаешь в трудных условиях, а потом заедаешь свой стресс сладким. Итого у тебя ожирение, тратишь деньги на пироги, но зато у тебя хорошая зарплата. Ага. Ну да. А теперь представь что ты нашел такую работу, где тебя все устраивает, но ты не получаешь так много денег. Поверьте моему опыту, это лучший вариант. Тебе тогда не придется заедать стресс или запивать его алкоголем и следственно причинять вред собственному здоровью, а после получения зарплаты тратить на восстановление. И кто в плюсе?

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

А вот и да! Это было очень сложно, но я смог найти такую работу. Итак, в ней есть все 5 пунктов плюсов.

  1. Я пилю приложение музыкального плеера/соц.сети.
  2. С самого начала я выстроил с командой процессы разработки таким образом, каким нужно мне.
  3. Минутка сексизма — со мной работают в команде одни мужчины. Все они взрослые и адекватные люди, каждый из которых делают свою работу просто замечательно и имеет достаточный опыт, чтобы его никто не учил как и что делать. А если и есть погрешности, то все с радостью готовы выслушать.
  4. Я работаю удаленно, и не просто удаленно, а еще и 15 часов в неделю. Да, да, мой день выглядит так — проснуться тогда, когда выспишься, без будильника. После чего спокойно позавтракать, заняться тем, чем хочется, в какой-то момент начать кодить и ровно через 3 часа закончить (я решаю какие задачи успею за 3 часа кодинга и ставлю таймер). После чего я закрываю ноутбук и живу. Как ни странно, я наконец-то начал гулять в парке. У меня появилось не только время, но и желание. И когда я гуляю в парке, я не заедаю стресс сладким и не размышляю о том, как же все хреново. Потому что во-первых невозможно устать за 3 часа кодинга, а во-вторых не о чем думать. Все нормально.
  5. Ну и зарплата у меня соответственно небольшая. Но ее хватает ровно на то, чтобы оплатить жилье и необходимые траты на еду и т.д. У меня нет причин запивать стресс или заедать его, значит я не трачу огромные суммы на водку, бургеры и пирожные. Да и по факту, тогда, когда я много зарабатывал я не особо тратил. Я не транжира по сути. А пойти погулять в парке не стоит ничего. Берешь свой мобильник, наушники, открываешь приложение которое разрабатываешь и гуляешь вечером. Красота. Ничего от жизни больше не нужно.

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

Запись опубликована в рубрике Программирование Java. Добавьте в закладки постоянную ссылку.