Распределенная команда разработчиков-необходимые инструменты [закрыто]
У меня есть команда разработчиков, распределенных по всему миру в разных часовых поясах.
Каковы наилучшие инструменты для достижения максимальной производительности в такой команде?
Я ищу:
- Управление Версиями
- Отслеживание Ошибок
- Управление Сборкой
- любая другая вещь, которая может помочь
Спасибо
9 ответов:
Когда вы говорите "с открытым исходным кодом", вы просто имеете в виду свободное программное обеспечение, или вы имеете в виду"мне нужно/предпочитаю иметь возможность видеть исходный код"?
Обратите внимание, что на ваше решение будет влиять характер вашего проекта. Есть много бесплатных сайтов для разработки / размещения проектов, которые требуют, чтобы ваш проект был проектом с открытым исходным кодом и бесплатным/открытым для общественности.Вы также можете выбрать конкретную платформу хостинга, основанную на языке, который вы используете для разработки проекта. Для например, сайте CodePlex (http://www.codeplex.com/) - это сайт, на котором размещена открытым исходным кодом .Проекты в сети, и Java.Net (http://community.java.net/projects/) хозяева проектов Java.
Другие ответы, данные на ваш вопрос, являются твердыми, вот то, что я использую в настоящее время или использовал в прошлом:
Отличный инструмент непрерывной сборки JetBrains TeamCity. (http://www.jetbrains.com/teamcity/) инструмент имеет поддержку out of the box для многих инструментов сборки, а также для построения Решения Visual Studio из коробки. Это бесплатно для команд из 20 или менее разработчиков. Он также имеет множество функций из коробки, и может быть запущен и запущен для вас в считанные минуты - удивительно низкая кривая обучения без сокращения функций.
Полезным репозиторием SVN, который является бесплатным для двух разработчиков и сэкономит вам время на настройке и администрировании вашего собственного репозитория SVN, является Unfuddle. (http://www.unfuddle.com) Unfuddle также имеет дополнительные платные функции и основное отслеживание задач.
Другим платным репозиторием исходных текстов является ProjectLocker (http://www.projectlocker.com ), который имеет недорогие репозитории SVN и интеграцию Trac для управления задачами.
Полезным инструментом отслеживания задач является запоминание молока (http://www.rememberthemilk.com ) - он не работает на "билетах", как Trac, он не только для отслеживания проектов, но и позволяет отправлять друг другу задачи по электронной почте и иметь общие списки задач. я также указываю на них. потому что сам продукт разрабатывается распределенной командой разработчиков, и вы можете попробовать отправить их по почте за советом. :-)
Всего наилучшего вашей команде!
Этот вопрос недостаточно конкретизирован. Для каждой категории существует множество пакетов, предназначенных для поддержки совместной работы людей, распределенных по всему миру в разных часовых поясах.
Таким образом, я могу дать рекомендацию, основанную на инструментах с открытым исходным кодом, которые работали для меня в прошлом. У вас могут быть особые потребности, требующие более конкретных решений, но вы не упомянули о них. Кроме того, для повышения производительности полезно, если люди могут продолжать использовать инструменты, с которыми они знакомы, и вы не объяснили, какие инструменты уже известны вашим людям.В любом случае, вот моя рекомендация:
- использовать Subversion для управления версиями
- Используйте Roundup в качестве баг-трекера
- Используйте make для управления сборкой, используйте Buildbot для автоматизированных распределенных сборок
- использовать списки рассылки, основанные на Mailman
Для среды .NET:
- SVN сервер: VisualSVN сервер (бесплатно)
- SVN клиент: AnkhSVN 2.0 (open-source)
- непрерывная интеграция: CruiseControl.Net (опенсорс)
- баг-трекер: BugTracker.NET (с открытым исходным кодом). Но если вы можете, я бы рекомендовалTrac .
Я очень доволен Assembla - они размещают SVN сервер и Trac для ваших проектов по очень разумным ценам (или бесплатно, если проект является публичным).
Рассмотрим Fogbugz для отслеживания ошибок. Это полезно.
Как система управления версиями: почему не распределенная система, как git (если вы не используете Windows), Mercurial или Bazaar?
Для отслеживания ошибок я бы пошел на Trac - он также имеет интегрированную Wiki, что всегда полезно для проектной документации.
Что касается управления сборкой, вы могли бы перейти на круиз - контроль или ant-я не очень эксперт в этой области.Однако есть кое-что, что вы действительно должны принять во внимание: основной проблемой для распределенных команд является не набор инструментов, а коммуникация .
Это еще более важно в" гибкой " установке, как предлагает ваш тег.Лучшее смягчение, которое я когда-либо видел для этой проблемы, - это видеоконференции. Это очень эффективно для повышения пропускной способности связи в распределенных командах, и с GTalk и Skype теперь действительно недорого.
A wiki является обязательным.
Это помогает в качестве асинхронного средства связи между ans внутри команд. Люди могут поделиться своими советами (например, как мне это скомпилировать, как активировать трассировки ... ). Его можно использовать для сбора проектных решений или изменений... Люди могут задавать вопросы всей команде, не забивая другие почтовые ящики. Он также может быть использован для расширения документации.
Существует миллион wiki , выберите один в зависимости от того, что вы планируете делать с ним.
Я думаю, что вам понадобится еще несколько вещей, чтобы помочь с этим проектом, чем то, о чем вы просили.
Во-первых, я дам свои рекомендации для вашего списка:
- управление версиями: git или svn, если вы используете любой из них, вам понадобится способ, чтобы ваши разработчики знали, кто проверил, что и когда, Trac хорош для этого для svn
- отслеживание ошибок: Trac (не Bugzilla), Mantis, FogBuz
- Управление сборкой: CruiseControl отлично подходит для непрерывной интеграции; если вам нужно построить скрипты попробуйте Ant или Maven
Другие вещи, которые вам, вероятно, понадобятся:
- инструмент для совместной работы: у Trac есть Вики или выберите Вики по вашему выбору
- чат инструменты: даже если они находятся в разных часовых поясах, мгновенная связь будет необходима. IRC, Jabber, Skype, который отлично подходит для видео или аудио звонков через интернет.
- Управление проектами: вам понадобится способ настройки релизов (спринтов, если используется Scrum) и отставания. Мой любимый инструмент для этого-Acunote: (http://www.acunote.com есть некоторые другие, но они более дорогие, и вы получаете все функции, которые вам, вероятно, не нужны.
Надеюсь, это поможет.
Да, я твердо верю, что в распределенных командах инструмент важен. Общение достаточно сложно, если вы не работаете локально вместе. Такой инструмент, как например Agilo for Scrum, основанный на trac, предлагает вам wiki, доску планирования (интерактивную доску) и поддерживает вас таким образом, чтобы улучшить общение с вашими коллегами.