JavaRush /Java блог /Random /Кофе-брейк #84. 20 вопросов, которые разработчик должен з...

Кофе-брейк #84. 20 вопросов, которые разработчик должен задать после присоединения к новой команде

Статья из группы Random
Источник: Trstringer Команды разработчиков программного обеспечения работают по-разному. Даже в рамках одной компании существует много нюансов, которые варьируются от команды к команде. Программисту, меняющему коллектив, придется работать с новыми людьми и над новым программным обеспечением. Поскольку я уже проходил через это, у меня есть возможность поделиться несколькими полезными советами. Кофе-брейк #84. 20 вопросов, которые разработчик должен задать после присоединения к новой команде - 1Вот 20 вопросов, которые, как я думаю, кодеру следует задать после присоединения к новой команде разработчиков программного обеспечения. Вопросы сгруппированы по категориям.

Технические вопросы

1. Как происходит локальная сборка программного обеспечения?

Это одна из первых вещей, которую вам следует усвоить. В конце концов, вы будете разрабатывать и запускать программное обеспечение. Сборка — это первый шаг!

2. Как происходит локальное тестирование программного обеспечения?

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

3. Как настроить среду разработки?

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

4. Где находится исходный код?

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

5. Где находится конвейер CI / CD и как он работает?

В любой команде, которая обеспечивает качество поставляемого продукта, одним из наиболее распространенных инструментов является конвейер CI / CD. Узнайте, где он находится, и получите краткий обзор того, как он работает (можете даже попытаться сделать это сами). Взгляните на некоторые из недавних запусков, чтобы увидеть, как выполняются основные этапы.

6. Как сильно команда отстает от плана?

Вы будете работать с программным обеспечением в его текущем состоянии. Хорошо бы при этом просмотреть список невыполненных задач и узнать какие приоритеты при выпуске продукта.

7. Как происходит предварительное и производственное тестирование?

Есть ли интеграционные среды? Команда делает Canary-сборку и развертывание для тестов? Практикует ли эта команда метод Chaos Engineering? Узнайте, как ваша новая команда обеспечивает соответствие производственного программного обеспечения определенному стандарту.

8. Кто дежурный по коду?

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

9. Где внутренняя документация?

Где команда хранит свою внутреннюю документацию? Из чего она состоит? Это актуальная версия?

Сотрудничество

10. Каковы обязанности каждого члена команды?

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

11. Каков недельный ритм команды?

Ваша команда собирается на ежедневный стендап? Будет ли еженедельная проверка кода? Узнайте, как выглядит “типичная” неделя в вашей новой команде.

12. К кому обращаться с вопросами “новичка”?

Обычно, когда вы вступаете в новую команду, вам назначают сотрудника, который должен помочь с адаптацией. Это тот, кто знает, как все работает. Не стесняйтесь обращаться к нему с вопросами, даже если вы считаете себя опытным разработчиком. И уж тем более, если вы мало что знаете о программном обеспечении, над которым работают ваши новые коллеги.

13. Кто отвечает за новые функции?

Кто менеджер по продукту? Есть ли в команде архитектор, работающий с кодерами? Узнайте о запросах на новые функции. А еще лучше, выделите время для разговора с этим человеком (или людьми), чтобы понять, как должен выглядеть продукт в ближайшем и отдаленном будущем.

14. Как команда общается между собой?

Команда использует для общения Slack или Teams? Или может, большая часть асинхронного общения все еще происходит по электронной почте? Обычно разработчики в течение дня часто обсуждают текущие вопросы. Как новый член команды вы должны иметь доступ к этим каналам связи.

Взаимодействие с клиентами

15. Как мы получаем отзывы клиентов?

Если программное обеспечение выложено на GitHub, то могут ли GitHub Issues использоваться для получения отзывов от клиентов? Есть ли в команде отдел продаж, который занимается общением с клиентами? Может, в компании есть отдел поддержки, который собирает информацию о проблемах клиентов? Иными словами, выясните, как происходит взаимодействие с пользователями: через другую платформу, человека или команду.

16. Каковы соглашения о поддержке для наших клиентов?

Есть ли SLA (Service Level Agreement — соглашение об уровне обслуживания), которому мы должны следовать? Как происходит поддержка пользовательских сценариев?

17. Где находится общедоступная / клиентская документация?

Это важный вопрос. Независимо от того, насколько хорошее ваше программное обеспечение, клиентская документация должна быть точной и актуальной. Где можно просмотреть эту документацию? Какая версия документации сейчас актуальна? Кто за это отвечает? (Надеюсь, ответом будет — “все”).

Вопросы, связанные с продуктом

18. С какими проблемами может столкнуться наше программное обеспечение?

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

19. На чем сосредоточены заинтересованные стороны?

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

20. Каков цикл выпуска программного обеспечения?

Полезно знать, как часто и когда программное обеспечение выпускается для клиентов. Как часто происходит развертывание? Релиз выпускается каждый квартал или два раза в год? Понимание графика выпуска программного обеспечения может дать вам хорошее представление о ритме работы.

Заключение

Становиться частью новой команды разработчиков программного обеспечения и работать над новой технологией — действительно захватывающее время для большинства программистов! Время познания и тайн. Надеюсь, эти вопросы помогут вам ускорить процесс адаптации, когда вы присоединитесь к новой команде!
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ