Что я должен задать предыдущей команде разработчиков во время моей единственной встречи (1-3 часа)?

Существует проект Ruby on Rails (1,8, 2,3,2). Первая версия проекта была сделана какой-то организацией. Я буду реализовывать следующие версии этого проекта без какой-либо помощи этой организации. Я смогу поговорить с разработчиками из предыдущей команды разработчиков во время встречи (1-3 часа).

Статистика проекта: ~ 10k LOC, 1.0/0.6 код для теста, rspec

Какие вопросы о проекте вы можете порекомендовать?

Ответы

Ответ 1

Сначала просмотрите весь проект и выясните насколько это возможно, чтобы у вас был контекст и вы можете понять, что они говорят вам.

Задать

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

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

Ответ 2

Я бы попросил прохождение кода. Не по очереди, но больше для общей структуры проекта, отношений между отдельными модулями и т.д.

Ответ 3

Узнайте, почему. Как легко видеть в кодовой базе, но почему это невозможно понять, и укусит вас в задницу.

Например...

Какие части приложения были самыми большими проблемами производительности? Какие из этих проблем были решены? Какие еще проблемы?

Почему вы выбрали шаблон/инструмент/библиотеку x? Что еще вы считали? Почему?

Это, мы надеемся. (Хит какой-то лес.) Помогите удержать вас от того, чтобы тащиться по той же кривой обучения и ошибкам, с которыми пришлось столкнуться первой команде, и должно дать вам хорошее представление о том, где первая команда действительно сделала плохой выбор, вместо того, выбор основан на факторах, которые вы еще не учли.

Ответ 4

Спросите, будут ли новые функции вызывать какие-либо существенные изменения в существующем коде (архитектурно) и что импликация будет связана с другими зависимыми частями приложения.

Также получите свои электронные письма, так как у вас появятся дополнительные вопросы.

Ответ 5

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

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

Ответ 6

Принесите куки (или пиццу, пиво или вино, если необходимо); вы захотите, чтобы у них были положительные воспоминания о вас, когда вы звоните с вопросами.

Изменить:, чтобы ответить на вопрос: "Могу ли я предложить вам печенье, приготовленное на дому?"

Ответ 7

Возможно, вы уже это сделали, но я бы удостоверился, что вы можете:

  • Оформить заказ последней версии
  • Запустите все миграции
  • Запустите все тесты
  • Развертывание (даже если на промежуточном сервере)
  • Запустить приложение локально

Перед тем, как идти на собрание, чтобы вы могли убедиться, что сможете, когда закончите.

Ответ 8

Другие вещи, которые могут быть полезны

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

Ответ 9

Ничего себе! Все отличные ответы, вплоть до куки.

Мой вклад предполагает, что это ваш единственный шанс получить доступ к старой команде разработчиков, поэтому вам нужно отбросить ее на ступеньку:

  • Повестка дня. Разделите встречу на несколько частей, например:

    • Быстрый (15 мин.) ввод и обзор.
    • Один на один с членами команды.
    • Обзор дизайна как группы и т.д.
  • Положительная энергия. Особенно, если отношения по своей сути сложны, держите позитивный фокус, постулируя: какие улучшения вы бы поместили в следующую версию - (переписать не вариант, прямо Joel) - захватить каждый нюанс и проскользнуть мимо их уровня комфорта только ближе к конец.

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

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

Дон