Как сделать так, чтобы разработчики процветали
Сила компании исходит от ее команды и структуры, которую они создали для работы над проектами в рамках всей организации. Вы можете нанять самых лучших людей в мире для работы в своей компании, но если у вас нет хорошо отлаженной машины, где все работает с высокой эффективностью, то вы вряд ли получите от них максимальную отдачу. На протяжении своей карьеры я работал в различных компаниях, включая стартапы, небольшие компании, компании среднего размера и даже крупные компании.
Таким образом, имея за плечами весь этот опыт, я получил возможность работать в различных условиях, как в быстро меняющихся, так и в медленных, с различными методологиями и иерархиями для выполнения работы. В этой статье мы рассмотрим некоторые современные методы и инструменты, которые компании могут внедрить, чтобы сделать свою команду разработчиков более эффективной и результативной.
Преимущества хорошего онбординга
В зависимости от того, насколько хорошо проведена подготовка, ваша команда может быть настроена либо на успех, либо на проблемы. Хороший процесс онбординга будет содержать документацию по всем вопросам, связанным с проектом, которая может включать в себя лучшие практики написания кода и способы создания запросов на исправление (PR). Можно пойти еще дальше и попросить другого, более старшего разработчика в команде, помочь новичкам настроить среду разработки и выступить в роли приятеля, чтобы у них была точка доступа, когда им понадобится устранить неполадки.
Задумавшись, я могу вспомнить несколько действительно неудачных ситуаций, которые мне пришлось пережить в прошлом. В одном случае мы работали с устаревшей кодовой базой, и документация была крайне устаревшей и запутанной. Она была неинтуитивной и создавала очень негативный опыт, полный стресса и неверия в то, насколько все было сложно.
Чем более гладким будет процесс внедрения, тем более счастливым будет разработчик. Новые сотрудники всегда стремятся приступить к работе над проектом, поэтому в интересах вашей команды как можно быстрее ввести их в курс дела, чтобы избежать ситуации, когда они заблокированы и не могут внести свой вклад. Плохой командный дух разрушает моральный дух, поэтому постарайтесь этого избежать.
Управление проектами
Когда речь заходит об управлении проектами, компания может использовать несколько способов. Первым шагом должно стать принятие решения о методологии управления проектом. Существуют различные методологии, которые могут быть реализованы, но две наиболее популярные из них — Agile Scrum и Kanban.
Существует множество инструментов, помогающих нам управлять нашими командами и проектами. Некоторые из наиболее известных инструментов включают:
-
Jira
-
Trello
-
Asana
-
Notion
-
ClickUp
-
Понедельник
-
Shortcut
-
Confluence
Что такое методология Agile Scrum
Суть управления проектами Agile заключается в том, что все делается итерационно, а работа завершается командами в сроки, известные как спринты. В Agile существует процесс, который управляет бэклогом заявок, спринтами и рефлексией в дополнение к другим встречам, которые часто называют церемониями. Agile-спринты могут длиться несколько недель, и перед началом спринта команда собирается вместе, чтобы договориться о том, над какими функциями, ошибками или проблемами предстоит работать.
В течение всего спринта должны проводиться различные церемонии, которые вы будете посещать вместе с командой. Перед началом спринта проводится собрание по планированию спринта, на котором команда обсуждает сюжетные точки, которые будут связаны со всеми сюжетными задачами с максимальным количеством, назначенным на спринт. Учитывая это количество, ваша команда сможет понять, насколько достижимо выполнение всех задач в течение текущего спринта.
В некоторых случаях во время спринта могут проводиться дополнительные собрания по уточнению бэклога, на которых определяется, нужно ли изменить сюжетные точки некоторых заданий, или разделить большие сюжеты на меньшие, если они, например, слишком сложны. Agile-спринты предназначены для улучшения следующего спринта путем обучения на ошибках и использования итерации для повышения производительности и эффективности, а также для повышения значимости для клиента.
Итак, давайте разберем Agile Scrum и посмотрим, как он выглядит по шагам:
Шаг 1
Руководитель проектной группы просматривает бэклог тикетов и решает, над какими из них будет вестись работа в течение спринта.
Шаг 2
В самом начале команда работает над планированием спринта, где они обсуждают, какие тикеты будут в текущем спринте. Это также дает команде возможность назначить сюжетные баллы, которые, по сути, являются способом присвоения рейтинга сложности каждой задаче, чтобы все знали, сколько времени она может занять.
Шаг 3
На протяжении всего спринта команды проводят собрания (обычно это ежедневный стендап), которые проходят утром, прежде чем вы начнете работать над своими задачами. Вы обходите команду, и каждый получает возможность рассказать, что он сделал вчера, что он будет делать сегодня, и есть ли какие-либо блокирующие факторы, которые вызывают у него проблемы в работе.
Шаг 4
Когда спринт подходит к концу, проводится еще одна встреча, называемая ретроспективой спринта, где вся команда собирается вместе и обсуждает, что прошло хорошо, а что можно было сделать лучше. Этот цикл повторяется для каждого спринта.
Что такое доски Канбан
Доски Канбан отлично подходят для визуального представления структуры управления проектом. Они отображают информацию в виде столбцов, которые показывают каждый этап процесса. В самой простой форме вам понадобится всего 3 колонки. To Do, In Progress и Done. На GitHub вы можете создать простую доску Kanban для вашего проекта с различными задачами, проблемами и запросами на доработку для каждого элемента.
Это дает вам обзор проекта сверху вниз, и вы можете видеть, кто из членов команды работает над задачей и каков их прогресс. Trello, вероятно, является самым популярным примером приложения, в котором используются доски Канбан.
Agile Scrum, как правило, является предпочтительным выбором при выборе методологии, поэтому последним шагом будет определение того, какие инструменты вы хотите использовать. Тем не менее, использование системы с тикетами, такой как Jira, является общепринятым стандартом, и эти инструменты имеют много общего, поэтому ничто не мешает вам использовать более одного, если это подходит для вашего случая использования.
Важность сотрудничества и коммуникации
Следующая область, которую необходимо затронуть, — это сотрудничество и коммуникация между членами команды, как внутри отдела разработки программного обеспечения, так и с внешними подразделениями. Для команд разработчиков программного обеспечения очень важно обладать такими «мягкими» навыками, как сильная коммуникация. Кроме того, наличие правильного инструмента может существенно изменить способ взаимодействия членов команды друг с другом. В наши дни довольно часто приходится работать в удаленной среде, поэтому еще более важно, чтобы ваша компания использовала инструменты, которые хорошо справляются с обменом сообщениями и видеозвонками.
Некоторые из наиболее популярных инструментов в этой категории включают:
-
Slack
-
Discord
-
Microsoft Teams
-
Google Workspace
Экосистемы Google и Microsoft огромны, а продукты и услуги, входящие в их пакеты, создают жесткую конкуренцию, а также возможность выбрать правильный набор инструментов для вашей компании. Вам придется выбирать между Google Docs, Microsoft Office, Outlook, Gmail и соответствующими инструментами обмена сообщениями, такими как Google Meet и Microsoft Teams.
В качестве альтернативы Slack и Discord предлагают варианты для настройки структуры обмена сообщениями, которые могут даже работать с вашим конвейером CI/CD.
Заключительные мысли
Создание высокопроизводительной и дружелюбной среды для вашей команды разработчиков не обязательно должно быть сложной задачей. Даже если кажется, что вам придется потратить много времени на начальном этапе, помогая своим разработчикам процветать, вы настроите свою организацию на долгосрочный успех. В наши дни инструментарий достаточно хорош, и самым важным аспектом является обеспечение того, чтобы процесс внедрения охватывал все детали, чтобы ваши разработчики понимали, как использовать систему.