Как вы управляете жизненным циклом вашего проекта? - PullRequest
6 голосов
/ 30 января 2009

Как вы управляете жизненным циклом вашего проекта?

Например: вы начинаете с шаблона? Используете ли вы версии, такие как SVN, в качестве авторитетного источника? Вы архивируете проекты, если да, когда и как? Когда проект возрождается (работа возобновляется), как это происходит? Используете ли вы автоматизированные сценарии для таких вещей, как создание сайтов IIS, БД, архивирование, запуск и т. Д.?

Особый интерес представляет управление многими проектами на разных этапах развития.

Ответы [ 4 ]

6 голосов
/ 01 февраля 2009

Разработка: Мы не начинаем с шаблона, потому что мир меняется достаточно быстро, чтобы сделать обслуживание шаблона постоянной работой. Мы призываем всех использовать одну и ту же среду IDE (Eclipse), чтобы они могли помогать друг другу в своей среде.

Управление проектами: Мы используем GForge для управления нашими проектами. Sourceforge немного лучше, но GForge намного дешевле и имеет другую модель оплаты лицензий. GForge включает в себя CVS, SVN, хранилище документов, средства отслеживания ошибок и прекрасно все интегрирует. Это позволяет легко увидеть, где находится проект. Открытые проблемы и закрытые проблемы с изменениями подключенного кода, все интегрировано.

Версия: Хотя мы попробовали SVN, мы вернулись к CVS, потому что он лучше соответствует нашим потребностям и отлично работает.

Резервные копии: Наш сервер GForge, содержащий все наши проекты и исходный код, работает на сервере VMWare EX. Резервное копирование выполняется ежедневно на уровне виртуальной машины, и мы делаем моментальные снимки виртуальной машины, если считаем, что по какой-то причине нам нужны более частые точки восстановления.

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

Почти все проекты создаются с использованием Maven, что также облегчает жизнь нашим разработчикам. Обычно восстановление проекта занимает всего несколько шагов:

  • Скачать затмение
  • Подключение к CVS через SSH (extssh встроен в Eclipse)
  • Извлечь проект (опция «Оформить» по умолчанию)
  • Запустите "Maven Eclipse" и обновите Eclipse
  • Запустите юнит-тесты в Eclipse, чтобы увидеть, все ли работает.

Сборки: Все наши проекты построены на отдельном сервере сборки. Каждое утро сервер сборки выполняет полную сборку и помечает CVS, если все тесты завершаются успешно. В течение дня производятся ежечасные сборки, а при сбоях команда автоматически получает электронное письмо. Обычно мы используем один сервер сборки для каждого проекта, и это простой luntbuid-сервер (Linux, Tomcat, Luntbuild).

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

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

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

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

Если у вас есть интегрированный сервер проекта или нет, я думаю, что очень важно иметь систему. Это позволяет переключать разработчиков между проектами, не теряя их. Это экономит время. Особенно, когда клиент возвращается к вам через 2 или 3 года для модификации старого программного обеспечения (да, это происходит).

Все, что мы используем, является открытым исходным кодом (вы даже можете использовать форк с открытым исходным кодом GForge). Дело не в инструментах, а в том, как вы их используете.

2 голосов
/ 30 января 2009

Это будет зависеть от характера работы. Работая дома для частных клиентов, я начинаю с открытия папки для клиента с набором стандартных документов, которые я настраиваю, таких как контракты, счета-фактуры, отчеты, требования, тестирование, хранилище кода и т. Д. По мере развития проекта, Я добавляю / изменяю каталог по мере необходимости.

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

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

1 голос
/ 30 января 2009

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

Что касается всех документов , относящихся к выпуску - от листов планирования и ресурсов до спецификаций, тестовых примеров, пользовательских и технических руководств для создаваемого нами программного обеспечения и т. Д. - мы храним их на сайте портала Sharepoint. Преимущества этого сайта Sharepoint в том, что пользователи имеют доступ через веб-сайт (поэтому нет необходимости предоставлять административный доступ к вашему хранилищу ;-), вы можете точно контролировать права доступа и можете включать управление версиями. Мы также используем теги, чтобы указать, принадлежит ли документ к определенной версии (например, пакет обновления xy) или продукту, или является ли он в целом действительным.

Что касается сценариев , мы используем несколько, например, для выполнения. ночные сборки плюс модульные тесты (мы обычно делаем это для последнего и текущего выпуска), но также для развертывания полного программного решения (включая создание сайта IIS, обновление модели данных базы данных, ...) на наших тестовых серверах. Это nant сценарии, использующие множество переменных для путей, номеров версий и т. Д., Поэтому их очень легко скопировать и изменить для нового выпуска.

1 голос
/ 30 января 2009

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

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

...