Разработка: Мы не начинаем с шаблона, потому что мир меняется достаточно быстро, чтобы сделать обслуживание шаблона постоянной работой. Мы призываем всех использовать одну и ту же среду 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). Дело не в инструментах, а в том, как вы их используете.