Разработка Для Души: Как Справляться С Нехваткой Времени И Мотивации
В свободное от менеджерской работы время мне нравится заниматься разработкой небольших проектов, однако, как и многие другие разработчики, я сталкиваюсь с двумя основными ограничениями: нехваткой мотивации и времени.
Почему свободное время — это ограничение
У меня есть около 10 часов в неделю, которые я могу провести за компьютером. Это ограничение меняет подход к разработке. Небольшой проект, который можно было бы реализовать за месяц фуллтайма (40 часов в неделю на 4 недели, итого ~160 часов), растягивается на 4 месяца при 10 часах в неделю. Это сильно влияет на восприятие проекта.
Почему мотивация — это ограничение
Я много раз начинал (и забрасывал) проекты. Мотивация — хитрая штука. В начале вдохновляет идея, и ты готов работать 24/7, чтобы быстрее увидеть результат. Проблема в том, что такой режим работы негативно сказывается на личную жизнь и основную работу. Если длительное время не видно результата, мотивация исчезает. Сложно работать 4 месяца над чем-то, что не приносит ощутимых результатов, когда можно проводить время с семьей и друзьями.
Как с этим работать?
Оглядываясь назад, оба ограничения кажутся очевидными, но я долгое время не принимал их в расчет. В какой-то момент я осознал их влияние и начал искать способы обойти их, чтобы не забрасывать свои начинания.
Как и любой разработчик, в начале своей карьеры я думал, что скоро запущу проект, который начнет приносить много денег. Эдакий win-win: делаешь то, что нравится, и получаешь кучу свободы и денег. На деле оказалось, что разработка — это лишь небольшая часть процесса, которая сама по себе редко приводит к финансовому успеху. Я пытался запустить разные проекты, но не хватало опыта, знаний и, в конечном счете, мотивации. В итоге проекты забрасывались.
В какой-то момент я для себя вывел формулу, которая работает для меня уже несколько лет. Я решил, что буду разрабатывать только те проекты, которые могу использовать сам, и начинать ими пользоваться в течение первых двух месяцев.
Этот подход сильно повлиял на то, как я веду разработку в свои 10 часов в неделю. Я понял, что думать над идеей или заниматься проектированием можно в транспорте или во время бытовых дел, чтобы по максимуму использовать доступное время на реализацию. Также я по максимуму урезаю функционал, фокусируясь только на самых важных функциях, и не уделяю времени UI (например, верстке), так как это для меня наиболее затратная часть. Начать пользоваться проектом я могу и на bootstrap, со временем сделав его красивым.
Со временем у меня накопился набор практик и инструментов, которые я использую в разработке своих проектов. Если с инструментами все более-менее понятно, то практиками хотелось бы поделиться отдельно (вероятно, в следующем посте).
Как это применить в менеджерской работе
Что касается мотивации — это справедливо и при работе в компании. Как менеджер, я должен поддерживать мотивацию инженеров. Один из способов — организовывать проекты так, чтобы по ним как можно раньше получать обратную связь. Разработка небольшими итерациями прекрасно помогает этого достичь. Основная проблема в том, что многие разработчики (да и менеджеры тоже) не хотят или не умеют работать мелкими шагами, и часто, это уже сложившаяся культура в компании, которую крайне сложно поменять. В итоге разработка затягивается, мотивация падает, и проекты забрасываются, так и не принеся никакой пользы компании.