Какие средства разработки и создания жизненного цикла вы используете?

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

Меня интересует:

  • Средства разработки
  • Контроль версий
  • Отслеживание ошибок
  • Управление зависимостями
  • Управление конфигурациями
  • Автоматическое здание
  • Автоматическое тестирование
  • Непрерывная интеграция
  • Управление артефактами
  • Управление выпуском
  • Управление развертыванием
  • Отслеживание требований
  • Что еще?

Мне интересны не только те инструменты, которые вы используете, но насколько хорошо они интегрируются друг с другом, как легко они настраиваются и используются, и как им нравятся как разработчики, так и менеджеры. Наш проект представляет собой комбинацию Java, С++ и VHDL, но мне все равно хотелось бы услышать от людей с другими языками. Я сейчас иду по пути затмения, подрывной деятельности, trac, maven, hudson и nexus.

Кроме того, есть ли лучший термин, чем "Build Lifecycle", который включает в себя не только создание, но и поток кода, с которого разработчик создает его, когда он построен, протестирован и в производственной системе? "Жизненный цикл сборки" кажется ограниченным, но "жизненный цикл проекта" уже выполнен.

Ответ 1

  • Средства разработки JetBrains IntelliJ IDEA
  • Управление версиями Subversion
  • Отслеживание ошибок Atlassian Jira
  • Управление зависимостями Maven
  • Управление конфигурацией TeamCity
  • Автоматическое здание TeamCity
  • Автоматическое тестирование JUnit (?)
  • Непрерывная интеграция TeamCity
  • Управление артефактами Maven
  • Управление релизами Homo Sapien
  • Управление развертыванием Maven/Homo Sapien
  • Требования Трассировка Желаемое мышление
  • Однократная автоматизация Bash
  • Документация разработчика для разработчиков MediaWiki

Ответ 2

Я ненавижу Maven меньше, чем ненавижу Ant, а для Java вам нужно выбрать одно из этих зол. Если вы только начинаете, выберите Maven, тем более, что вы уже осознали, что ваш жизненный цикл сборки включает 12 разных и сложных дисциплин! Вам нужно будет выбрать соглашения для всех. Спасите себя от неприятностей и соглашайтесь с соглашениями, которые уже установил Maven.

Для непрерывной интеграции и общей автоматизации сборки мне нравится Hudson.

Ответ 3

В течение последних двух лет мы постепенно переходим от стратегии "каждый проект к своему собственному инструменту" к решению Trac + SVN + SCons и очень довольны этим.

Переключение на SCons было немного работы, но действительно окупилось. У нас есть гетерогенная среда, в основном C/С++ для разных встроенных платформ, модули ядра, некоторые настольные приложения и различные модули Python в качестве кода клея. На самом деле SCons сияет, когда вы хотите добавить поддержку своих собственных компиляторов и нишевых инструментов и вам необходимо адаптировать систему сборки к вашим требованиям. Раньше нам приходилось использовать другой графический интерфейс практически для каждой встроенной платформы - теперь, когда SCons напрямую вызывает компиляторы, рабочий цикл немного улучшился.

Наши разработчики либо использовали Emacs, либо Vim, и никто не хотел переключаться ни на что другое, поэтому мы (к счастью) придерживались этого. Я не очень хорошо разбираюсь в развертывании, поэтому я не могу говорить об этом.

Ответ 4

Если вы работаете с .NET, вам сложно побить Team Foundation Server для его интеграции с Visual Studio. Он содержит инструменты разработки, контроль версий, отслеживание проблем, управление конфигурацией, автоматическое тестирование, модульное тестирование, автоматическое построение, управление артефактами и все, что вы описали.

Конечно, TFS дорогой, часто не интуитивно понятный и отсутствует некоторые функции по сравнению с другими инструментами, которые я использовал. Если у вас есть лицензия MSDN, вы можете использовать TFS для рабочих групп (до 5 пользователей IIRC) бесплатно.

Ответ 5

Мы - магазин MS, использующий VS2008. Мы используем Subversion с Tortoise для SCC и управления версиями, а наш репозиторий размещен в сети, чтобы наша распределенная команда могла его использовать. Для сборки мы используем Hudson и CI, намного лучше, чем Nant или MSBuild. Отслеживание проблем - Bugzilla. Автоматическое тестирование - NUnit

Инструменты, которые следует избегать, включают Team Foundation Server и Sharepoint, слишком неуклюжие для использования в реальном мире.

BTW Кто-нибудь знает хороший инструмент Scrum, который может создавать схемы сжигания, идеально связанные с Basecamp?

Ответ 6

Мы также используем ряд инструментов, но мы все больше и больше движемся к Zed Builds and Bugs. Наша основная среда для разработчиков - Eclipse + Java, но мы также используем Visual Studio (все из них) и по меньшей мере 5 различных платформ unix.

Здесь полный список:

Ответ 7

Я использую svn и tac для некоторых моих проектов, а svn и fogbugz - для других. Они очень хорошо интегрируются.

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

Я использую Inno для выпусков win32. Пока нет продуктов для доставки на другой платформе - не знаете, как мы будем их развертывать.

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

Ответ 8

Team Foundation Server и Visual Studio.

Я помню, когда мой идеал был отладчиком Sun Visual C, а source control копировал все исходные файлы в новый именованный каталог и помещал его на сервер, который должен был быть скопирован.

Только это не было