Почему я не жду субботы, или Мой опыт создания комфортной рабочей среды
Всем привет! Меня зовут Никита, я Senior Software Engineer в SimCorp. У меня за плечами 6 лет работы в небольшом количестве компаний, таких как SimCorp, собственный стартап (около 10 человек), Cellebrite. Начинал свою карьеру в компании SimCorp с позиции student helper в команде, которая отвечает за разработку и саппорт внутреннего фреймворка, там же я и работаю и сейчас.
Сегодня я хотел бы поделиться интересными вещами, которые происходят у нас. Цель данной статьи — рассказать о трансформации команды инженеров, в которой все члены команды становятся ключевыми игроками на поле боя. Статья может быть интересной для тех, кому важно не только девелопить, но и проводить время в комфортной среде с людьми, в том числе и в нерабочей обстановке. И также для тех, кто готов попробовать «починить» свою команду, если в ней что-то не работает.
Можно сказать, что в нашей команде сформировался хороший костяк. Компания придерживается подходов таргетированного хантеринга, поэтому люди надолго задерживаются и даже возвращаются снова. На тот момент в нашей команде были касты: очень опытные сотрудники, гуру, неопытные и я — буфер между ними. Сейчас мы цельный механизм и очень хорошо общаемся вне работы, мы поддерживаем связь даже, если меняем работу. Но, самое важное, что мы являемся частью одного процесса, и это объединяет нас.
Сделаю небольшое отступление, так как есть нечто отличающееся в компании от других компаний, которые мне доводилось узнать. У нас очень уникальный стек задач, кто-то скажет, что фреймворки — это плохо, но наша компания вкладывает в это деньги на протяжении уже
В середине компании разработан собственный стайл-гайд, и главная цель конкретно в нашей команде — это качество. Мы серьезно относимся к процессу код ревью, вчитываемся в каждую букву. Также есть некий тренд уделять особое внимание тулам, которыми можно пользоваться во время разработки, шорткатам и прочим вещам, которые могут ускорить разработку. Пожалуй, на этом мы остановимся, я хотел вас познакомить с обстановкой, которая находится у нас внутри.
Монологи
Одна из главных проблем, которую мы имели и преодолели — неумение слушать друг друга. Иногда инженерам намного проще писать, а не разговаривать. Мы часто перебивали друг друга на митингах, процесс очень напоминал Верховную Раду, мы только не дрались :) И так как важные решения принимала небольшая групка людей, которые давно работали в компании и хорошо знали систему, намного проще было переговорить с кем-то из них две минуты, чем вводить других в курс дела. Никто не тянул на себя клеёнку, это просто была специфика в команде.
Карантин выступил основным триггером для изменений. Мы все начали работать удаленно, возросло количество митингов, и было невозможно продолжать работать в таком стиле. На тот момент у меня были проблемы с сетапом, приходилось вести разговоры с виртуалки, что делало делей в
Именно сейчас я понимаю, как важно налаживать коммуникацию в середине любой команды. Для людей очень важно общение и очень важно обсуждение в сфере ИТ. Во-первых, программирование — это командная работа. Не бывает хорошего продукта, который написал один человек. Очень важно находить правильные решения, которые основаны на разных подходах, на опыте разных людей, на разных взглядах. Также очень важно понимать, что любой человек в команде уникален, при условии, что он изначально должен быть хорошо подобран.
Интересный факт, что discovery insight воркшоп, в котором приняла участие вся наша тима и который был организован по нашему запросу, послужил триггером и сделал конфликт в тиме явным для всех ее членов. Хотя целью воркшопа было построить команды через понимание друг друга, а также узнать предпочтения друг друга в коммуникациях, что поможет нам стать более продуктивной командой.
Кому интересно, об инструменте ID можно прочитать здесь. Воркшоп прошел жестко: мы перебивали друг друга, буллили и мало что вынесли оттуда. Это и была последняя капля, которая переполнила чашу. Я даже, если честно, уволился вскоре после того, но спустя месяц вернулся. Я бы рекомендовал всем пройти такой воркшоп, если у вас есть проблемы в командах. Он очень хорошо показывает атмосферу внутри команды, а также ее готовность к изменениям.
С чего начали мы: у нас основной мессенджер — Microsoft Teams. Там есть функция поднятия руки, мы просто начали поднимать её каждый раз, когда кто-то хотел сказать. Я уверен, что в других мессенджерах есть похожий функционал. По началу это не сильно работает, но если кто-то один будет придерживаться этому правилу, все начнут обращать на него внимание. Люди выработают привычку не вести монологи и почувствуют, что нормально делать паузы. Это очень помогло мне активно участвовать в митингах, а также помогло нашим мидлам участвовать в митингах.
Менторство
Два года назад я вернулся в SimCorp на позицию senior-девелопера, на тот момент у нас было два middle-девелопера и два lead-девелопера. Речь далее пойдет о развитии мидлов. Я почти сразу понял, что мне выпала участь быть ментором для ребят. Вначале я пытался акклиматизироваться к возвращению в компанию, пытался поднять какие-то скилы. Так произошло, что в силу возраста или же позиции ребята чаще ходили ко мне за советами или обсуждениями. Я сначала относился к этому, как к благотворительности, сам же видел себя в тусовке лидов, думал, что там я могу быть более полезным.
Спустя некоторое время я начал ощущать, что уходит очень много времени на ревью задач от ребят. Та и сами ребята были все более не уверены в себе. Я решил попробовать другой подход: сделать так, чтобы ребята приходили ко мне уже с идеями, а не только с проблематикой, и мы просто советовались, как лучше решить проблему. Я считаю, что именно в этом проявляется основное отличие сеньора от мидла — способность самому принимать правильные решения помимо качества написания кода. Таким образом я нашел для себя гэп софт-скилов, над которыми нужно работать. Также я спросил у ребят, что именно помогало им в росте, они отметили следующее:
- Максимальное погружение в обстановку девелопмента. Постоянно кто-то давал им дельные советы, проходя мимо, завязав общение возле кофейного автомата, за обедом. Все их задачи попадали в продакшн, не было никаких тренировочных задач и задач в стиле — нужно покрыть код юнит-тестам. Это влияло на их отношение к написанию кода.
- «Один в поле не воин». На первых порах были проблемы с написанием вообще С# кода. Очень помогало, когда более опытный человек сидел рядом, говорил, что делать, а второй имплементировал это в коде. Очень рекомендую использовать данную практику, человек обучается в «турбо»-режиме.
- Разные люди в команде. Чтобы пройти у нас ревью, важно не только написать рабочий код, но он должен быть оптимизированным и при этом хорошо читаемым. Так, у нас в тиме у каждого выработались свои преимущества, есть люди — перфекционисты, которые помогут обыграть любой код так, что код будет похож на поэму, есть люди, которые быстро находят решения в любых ситуациях. Таким образом ребята пребывали как будто в каком-то научном центре, где тысячи специалистов, при этом каждый специализируется на своем.
- Общедоступные курсы. Не всегда бывает достаточно внутренних курсов компании, и тут пришел на помощь доступ к pluralsight. Там они могли найти что-то, что интересовало их.
Спустя полгода ребята стали более опытными, и их таски стали доходить до закрытия. Хороший показатель их роста — это то, что мы можем спокойно уйти в отпуск, не думая, что же будут делать ребята. (Мы любим ходить в горы на пару дней, чтобы найти свой дзен).
Мы создали среду, которая простимулировала быстрое развитие, а не ждали, пока ребята вырастут сами. Мне нравится работать с молодыми специалистами, потому что они более заинтересованы учиться и сфокусированы на результате, у них свежий взгляд на процессы и на изменения, которые нужны. Я не считаю своей заслугой их рост, они сами сделали себя, я всего лишь задал им направление и помогал на поворотах. Я бы очень рекомендовал всем вкладывать усилия в начинающих коллег, они больше всего принесут вэлью. По сути, это ваше масштабирование. Также вы как специалист становитесь лучше, да и ощущение того, что вы помогли вырасти кому-то — неповторимо.
Мозговой штурм и парное программирование
Мы работаем в основном по методу мозгового штурма и парного программирования. Сделаю отсыл на определение данной терминологии.
Мозговой штурм — это когда собирается группа людей, и целью данной встречи является поиск решения проблем.
Парное программирование — термин говорит сам за себя, это процесс, когда работают два и более программиста над одной задачей с целью достижения лучшего результата.
Тема абсолютна не новая, я просто расскажу, как это происходит у нас. До карантина мы собирались в митинг-руме и рисовали схемки, сидели до последнего. Когда начался карантин, мы как будто лишились рук. По началу все были замкнутыми, происходили очень быстрые коннекты по пару минут и все. Наши мидлы в тот момент активно начинали развиваться и постоянно сидели на коле, по сути, весь день.
По началу это очень бесило, как же это так, люди могут весь день трясти языком. Но чуть позже были заметны результаты, они, по сути, применяли практики pair-программинга. Мы попробовали в масштабах всей тимы, и нам понравилось. Как описывал мой коллега: «Это подобно тому, как муравьи накидываются на большое животное и побеждают его».
Какие плюсы от этого? Можно не слайсить очень детализировано задачи, да и не всегда комфортно заслайсить задачу. Вместо работы одного senior/lead девелопера на протяжении недели может сформироваться групка с
Наша компания выбрала для себя работу по аджайл. Хотя у нас в тиме скорее канбан или даже ватерфлоу. Как завещал аджайл, мы имеем право тратить часть времени на свое обучение. У нас есть возможность выделять один день в каждом спринте (раз в две недели — IP день) на инновации. Это происходит следующим образом: накануне нашего инновационного дня мы определяем топики, которые выносит каждый, и голосуем за
В последнем PI (planning iteration, состоит из 5 спринтов и 6 ip-спринта) мы решили потратить все наши IP-дни на разработку нового веб-клиента для нашего продукта в последнем спринте. Это просто было желание позаниматься вебом в команде, до этого клиентом выступали вин формы. Мы полностью сменили стек наших технологий, некоторые из нас получили опыт в веб-программировании, также мы увидели места для улучшения. В итоге мы показали, что наш продукт ложится в веб и продемонстрировали это. Наши результаты продемонстрировали во всей компании, и компания очень активно взяла вектор и на это направление. Тем самым меняем компанию. Старайтесь находить время на смену рода деятельности, а также улучшать свои процессы. Умножьте секунду, которую вы можете сэкономить, на количество людей в тиме, арте и, например, на месяц, получится неплохая цифра, особенно, если ее перевести в деньги.
Оффтоп
Для меня очень важна обстановка внутри команды, наверное, это даже один из моментов, почему я не рассматриваю другие вакансии. Люди, когда находятся в дружественном коллективе и хорошей обстановке, намного счастливей. Хоть у меня наверняка не самая интересная работа в мире, но я никогда с утра не просыпаюсь с мыслями, когда уже суббота. Все эти наверняка понятные вещи очень сильно влияют на производительность команды и ее успешность.
Ранее было очень трудно прижиться в команде. Скорее всего, это было вызвано нашей спецификой работы. Человек сразу погружался в большой продукт, у него стояли очень технические задачи, явно с которыми он ранее не встречался. Та и наш фокус стоял более на производительности команды, себя, без учета новобранца. Сейчас новые коллеги отмечают, что у нас очень комфортно и интересно и хотят перейти к нам из других команд.
Если раньше адаптация новых людей к тиме проходила сложно, что тянуло за собой длительный хайринг и увольнения в течение испытательного срока, то сейчас благодаря тому, что наш костяк нашел общий язык, вход в нашу тиму стал гораздо проще, люди приходят и остаются. Мы увидели успешную историю и поняли, что умными люди не рождаются.
Еще хочу поделиться крутым опытом, прошлым летом мы почти всей тимой с семьями поехали на море работать на две недели. Мы сняли один дом на всех, на первом этаже устроили рабочие места в стиле Пентагона. Это было очень круто проводить время вместе, как и на работе, так и вечером, жаря мясо во дворике или на пляже.
Выводы:
- Атмосфера важна, хотя раньше я не предавал этому значение.
- Важен психологический комфорт, когда очень разные люди дополняют друг друга, и не вступают в конфронтацию, а открыто делятся мнением и прислушиваются друг к другу.
- Общению надо учиться, и чем раньше, тем лучше для тебя. У меня был опыт общения с ключевым людьми в государственных органах. Бывали кейсы, когда несколько раз организовывались встречи с одной и той же агендой, но результат был только после нахождения правильного подхода к собеседнику (я не о коррупции). После этого я читаю книги не только по программированию.
- Хорошо, когда в тиме нет иерархии, а опыт и компетенции — это то, чем люди охотно делятся.
- Для менторства имеет смысл выбирать самых опытных, так как они диктуют темп и имеют сферу влияния на команду. При этом важно, чтобы ментор понимал, зачем он это делает.
24 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів