Найти тему

Работа в команде - важнейший навык разработчика

GitHub flow
GitHub flow

В институте несколько лет назад меня учили чему-то не тому. Первые же рабочие дни дали понять, что зачастую IT-образование крайне далеко от реальности.

Сегодня ситуация гораздо лучше - большинство топовых ВУЗов отходят от стандартных форм обучения, и делают ставку на проектную деятельность и работу в команде. Это здорово. Это то, чего не хватает огромному количеству вузов поменьше.

Разработка на практике оказалась в большей степени совсем не написанием кода, как я по началу наивно предполагал. Прежде чем этот код вообще начать писать, нужно для начала изучить пачку сложных инструментов для командной работы - все эти системы контроля версий, CI/CD, баг-трекеры и так далее.

Освоение каждого из этих инструментов в мастерстве занимает огромное количество времени. Но результат того стоит. В больших компаниях процесс разработки невероятно сложный, и наблюдать за тем, как функционирует каждая его шестеренка - это великолепно. Особенно, если эти шестеренки - твоих рук дело.

Я привык работать один, я так продуктивнее

Я слышал эту фразу от более опытного разработчика из своей команды. За такими фразами обычно следуют проблемы.

Продуктивность такого разработчика обычно заключается в его собственной скорости "решения" задач.

  • Исправил баг всего за 15 минут? Держи два новых!
  • Сделал фичу по заголовку задачи? Заказчик хотел другое!
  • Сделал фичу - а где тесты? Протестировал на проде!

Инструменты для командной работы, естественно, отвергаются за ненадобностью.

Читатель, не будь таким разработчиком.

Изучи git-flow

Их много видов. Можно изучить любой. Пойми зачем они нужны и какие проблемы решают.

Git - чудесная система контроля версий. Без подобных систем написание совместного кода в проекте на сегодняшний день невозможна. Git в своей концепции настолько прост и удобен, что его можно (и нужно!) использовать даже в собственных pet-проектах, где нет командной разработки.

Разберись в CI/CD процессах

-2

Сегодня много хороших систем для ci/cd - Teamcity, Jenkins, Travis, Gitlab CI, GitHub Actions и так далее. Все они оперируют примерно одними и теми же понятиями. Разберись в том, из каких шагов состоит весь процесс сборки твоего приложения. Научись писать собственные шаги на декларативных языках, сейчас это есть уже у всех.

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

Научись работать с баг-трекерами

Сколько команд при переходе на удаленку перенесли свои доски со стикерами в Jira?
Сколько команд при переходе на удаленку перенесли свои доски со стикерами в Jira?

Jira, вероятно, еще долго будет здесь лидером. Создание и хорошее ведение задач нужно не только, чтобы начальник следил за тем, что ты делаешь. Команда целиком должна понимать над какими задачами вцелом ведется работа.

Agile, Scrum - тут же. Не буду говорить плюсах и минусах методологий, отмечу лишь то, что везде есть свои невероятно полезные практики. Спринтование помогает с пониманием своей скорости работы над задачами и сроками их закрытия. Kanban доска невероятно удобна для визуального понимания текущего прогресса, не только команды, но и личного.

Jira, и многие другие баг-трекеры не только позволяют создавать задачки с текстом, но и удобно работать с практиками гибких методологий разработки.

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

Делись своей экспертизой и опытом

Notion как база знаний
Notion как база знаний

Но не в Word! Есть множество невероятно удобных систем на сегодняшний день. Даже тот же Confluence все еще очень функциональный, мощный и удобный для написания статей.

Отдельно здесь отмечу великолепный Notion. Писать тексты нужно в современных редакторах. В большинстве случаев огромного разнообразия функционала того же word не надо никому. Написание текста в Notion по степени удовольствия сравнимо с программированием на знакомом языке в настроенной под себя IDE.

Мотивация писать статьи со своим опытом думаю и так понятна - к ним можно вернуться через время и освежить свою память, или ткнуть в статью человека если его вопрос уже подробно описан текстом. Правильно написанные тексты могут экономить кучу как своего времени, так и времени других людей.

На этом заканчиваю с советами, а вас прошу оставлять комментарии под данным материалом. Делитесь своим опытом!