Инструменты, которые помогут небольшому магазину получить более высокий балл по “Тесту Джоэла”

StackOverflow https://stackoverflow.com/questions/15024

Вопрос

Вопросы с №1 по №4 по Тест Джоэла на мой взгляд, все дело в используемых инструментах разработки и существующей системе поддержки разработчиков:

  1. Используете ли вы систему управления версиями?
  2. Можете ли вы выполнить сборку за один шаг?
  3. Делаете ли вы ежедневные сборки?
  4. У вас есть база данных ошибок?

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

Что касается управления версиями, я знаю, что Subversion - отличное решение, и если вы работаете в одиночку, вы могли бы даже использовать sourcegear's Хранилище.

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

Если вы сможете ответить "да" на вопрос о сборке за один шаг, я думаю, создавать ежедневные сборки было бы легко, но какие инструменты вы бы порекомендовали для автоматизации этих ежедневных сборок?

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

Это было полезно?

Решение

  1. управление версиями: Подрывная деятельность или Переменчивый или Мерзавец
  2. автоматизация сборки: NAnt, MSBuild, Грабли, Мавен
  3. непрерывная интеграция: CruiseControl.NET или Континуум или Дженкинс
  4. отслеживание проблем: Трасса, Багзилла, Близнецы (если он должен быть .NET и бесплатным)

Не забывайте об автоматическом тестировании с помощью НАнит, Подходит, и Вода.

Другие советы

Мой любимый стек:

1) Подрывная деятельность.Я заинтригован распределенным управлением версиями, но пока не имел возможности попробовать что-либо в anger.Для централизованного решения svn надежен как скала.

2) Муравей.Maven приятно использовать, когда он работает, но как старый хакер ant, я нахожу, что за maven трудно уследить, когда что-то идет не так.

3) Хадсон.До сих пор об этом не упоминалось, но определенно стоит изучить.Невероятно удобный и активно обслуживаемый инструмент.Ранее мы платили за Anthill Pro, который казался ненадежным, и его было больно чинить каждый раз, когда он выходил из строя.

4) Мы платим за jira.Недешево, но гораздо удобнее, чем рассмотренные нами варианты с открытым исходным кодом, и к тому же очень гибко.

Мой инженерный стек:

  1. Git (я люблю GitHub, но Git не требует размещенного решения)
  2. Грабли
  3. CruiseControl.rb
  4. Туманный жук

Без сомнения, на этот выбор влияет мой стек разработки, который чаще всего включает Ruby, Rails, SQLite, Firefox и OSX.

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

  1. Мерзавец
  2. Сделать
  3. Cron ( Хрон )
  4. Трасса

Я человек немногословный ;-)

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

Эта функция - то, что мне нравится в git.Я думаю, что это действительно присутствует только в распределенных системах контроля версий;однако использование DVCS не означает, что вам действительно нужно заниматься распределенной разработкой.

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

Если вам нужны ежедневные сборки, введите команду build в свой cron.ежедневно.Настройте перехват procmail для обработки почты из cron, если это необходимо.

Для отслеживания ошибок используйте $(apt-cache search bug tracking).В принципе, пока на коробке написано "багтрекер" и вы знаете, что другие люди им пользуются, он, вероятно, будет работать нормально.Среди постоянных посетителей - bugzilla, mantis и trac.

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

Хорошим средством отслеживания проблем, которое было относительно недорогим, было axoSoft вовремя.Я использовал его в течение многих лет, прежде чем получить MS TFS.

Nant и Управление круизом являются основными продуктами моего окружения.

Я не думаю, что вам действительно больше нужна обфускация в .Net (смотрите другой ответ)

Я бы не рассматривал Vault, SVN действительно является лидером рынка на данный момент (и бесплатным).Git выглядит довольно многообещающе, но в настоящее время это только командная строка с крутой кривой обучения.

MSBuild превосходит NAnt для .Net 2 или 3.5

CC.Net это превосходно.

*4) Красный Рудник

Я рекомендую Битнами для тестирования различных стеков.В нем есть Trac, Redmine и Subversion, а также несколько других, не связанных между собой.

Ознакомьтесь с этими статьями о непрерывной интеграции с использованием MSBuild, CruiseControl.NET, FxCop, NUnit, NCover и Subversion...

Из окопов разработки программного обеспечения

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

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

Для автоматизации сборки и непрерывной интеграции взгляните на Командный город От Реактивные Мозги.

В нем есть много возможности и это действительно несложно настроить и использовать.

Если вы используете Visual Studio 2005/2008, она соберет ваше решение напрямую, без необходимости в дополнительных скриптах (если вам нужна только сборка).

Он также выполнит ваши модульные тесты и соберет статистику успеха сборки, времени выполнения модульных тестов и т.д. И т.п.

Лучше всех:Pro Edition бесплатна для команд численностью до 20 пользователей и 3 агентов сборки.

  1. управление версиями:резюме
  2. сборка gnu make
  3. задание cron, вызывающее bash-скрипты
  4. багзилла
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top