Pull to refresh

Инструменты инфраструктурной поддержки для Agile проекта на Java

Reading time4 min
Views16K
Ни для кого не секрет, что для слаженной работы команды, особенно в проектах управляемых по методологии Agile, важен эффективный обмен информацией между участниками. Для того, чтобы информационные потоки не разрушались под влиянием человеческого фактора, стандартные процедуры по управлению информацией автоматизируются. В данной статье рассмотрен пример технической инфраструктуры, использующейся сотрудниками компании ООО «Креатив Медиа» при разработке Web-проектов на платформе Java, например, в проекте социальной сети Campus.ru.

В первой части данного обзора я перечислю используемые нами инструменты, а во второй – кратко опишу смысл их интеграции друг с другом.
Итак, мы используем:
Eclipse Ganymede for Java Developers – IDE для разработки.
• Плагины для Eclipse:
o Run-Jetty-Run плагин для отладочного запуска Web-приложения в локальном контейнере Jetty внутри Eclipse.
o TestNG плагин для запусков автоматизированных юнит-тестов.
o Aptana Studio для удобной работы с HTML, CSS, JavaScript
o MDT для рисования UML-диаграмм
o Subclipse плагин для интеграции с системой версионного контроля кода Subversion.
o Mylyn плагин для интеграции с системой баг-трекинга Redmine.
o M2 плагин для интеграции с системой сборки Maven.
Maven 2 система контроля зависимостей модулей, сборки и развертывания проекта.
Nexus локальный сервер Maven репозитория. Используется для хранения локальных артефактов Maven, и как прокси-сервер для локального хранения удаленных артефактов Maven. Значительно сокращает время загрузки удаленных артефактов всеми членами команды, и предохраняет от недоступности внешних репозиториев.
Subversion система версионного контроля исходного кода проекта. Работа с исходным кодом организована в соответствии с Agile-методологией (подробнее см. здесь www.infoq.com/articles/agile-version-control).
Team City система Continuous Integration для автоматических сборок проекта и запуска автоматических тестов, после каждого изменения кода в Subversion.
Redmine система управления задачами и дефектами в проекте. Также имеет встроенную Wiki, которую мы активно используем для документирования важных архитектурных решений, требований и прочей полезной информации. Поскольку мы используем методологию Scrum, то очень полезным оказался плагин для Redmine, рисующий Burndown-диаграмму.
JMeter инструмент для автоматизированного нагрузочного тестирования приложений.
Selenium IDE инструмент для автоматизированного функционального тестирования приложений.
• Email, ICQ, Skype, телефоны

Данный набор продуктов позволяет проекту в меньшей степени зависить от человеческого фактора, и позволяет обеспечивать качество кода проекта на должном уровне. Как показано ниже на рисунке, большинство продуктов интегрированы друг с другом, обеспечивая еще бОльшую эффективность этого инфраструктурного решения.
Интеграция продуктов друг с другом позволяет добиться желаемого результата за меньшее число действий и ничего при этом не забыть, а именно:
• С помощью плагина M2, операции по обновлению библиотек, сборке и развертыванию приложения можно выполнять не покидая среду разработки.
• Плагин Subclipse позволяет осуществлять управление исходным кодом в Subversion также не покидая среду разработки.
• При внесении изменений в код, хранящийся в Subversion, плагин Mylyn может автоматически переводить задачи в Redmine в нужный статус, на основании введенного в плагине Subclipse комментария. Про интеграцию Subversive и Mylyn см. документацию
• В свою очередь, плагин Burndown для Redmine автоматически строит burndown диаграмму, на основании информации о закрытых в Redmine задачах.
• После внесения изменений в Subversion, приложение Team City автоматически запускает сборочные скрипты Maven, которые осуществляют сборку, развертывание продукта на тестовом сервере, и его автоматизированное тестирование с помощью утилит TestNG и Selenium. По результатам этих действий все члены команды получают уведомление по email.

image

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

Важно упомянуть о сохранности данных. На сервере, где развернуты Subversion, Redmine, Nexus и Team City, все данные хранятся на зеркалируемых дисках (Raid 1), а также два раза в сутки информация архивируется и копируется в NAS.
Для предоставления возможности удаленной работы, удаленный доступ ко всей инфраструктуре возможен через OpenVPN.
Данная инфраструктура уже доказала свою эффективность, однако, мы не останавливаемся на достигнутом, и ищем новые пути совершенствования. Например, сейчас поглядываем в сторону системы версионного контроля GIT в надежде, что мерджинг бранчей в ней будет более дружелюбным.

А закончить обзор хочется философской мыслью: какими бы совершенными инструментами Вы не пользовались, они не спасут проект, потому что, как известно, кадры решают всё. Во-первых — проекту нужна профессиональная команда, во-вторых – эффективая методология и поставленные процессы, а уже в-третьих – удобные инструменты, автоматизирующие эти процессы, и делающие профессиональную команду Эффективной Профессиональной Командой.

Спасибо за внимание! Будет замечательно, если кто-нибудь тоже поделится своим опытом в данной области
Tags:
Hubs:
Total votes 37: ↑31 and ↓6+25
Comments31

Articles

Information

Website
www.cr-media.ru
Registered
Founded
Employees
Unknown
Location
Россия