Опыт создания и внедрения интегрированной системы автоматизации процессов разработки программного обеспечения

advertisement
Опыт создания и внедрения интегрированной
системы автоматизации процессов разработки
программного обеспечения
Грачев Антон
Гаврилов Евгений
LUXOFT
Проблемы автоматизации процессов
разработки ПО
 Сложность быстрого получения информации о различных
данных в проекте и ее сопоставления в едином
визуальном «интерфейсе»
 Проблемы распределенной разработки ПО
 Увеличение количества инструментов под разные
методологии разработки
Начало пути
Цели разработки интегрированной системы:
 Комплексная поддержка жизненного цикла разработки
программного обеспечения (от сбора требований до
поддержки);
 Поддержка распределенной разработки ПО
 Поддержка различных систем разработки ПО
(возможности их взаимной интеграции)
 Единый визуальный интерфейс
Опыт LUXOFT
LUXOFT начал разрабатывать интегрированную систему под
названием «LUXProject» с 2006 г.
К настоящему моменту LUXProject, это:
1. Поддержка проектов основанных на различных методологиях
(«классические» (RUP-like) процессы, Agile)
2. Web-доступ из любой точки мира
3. Возможность ролевого доступа в систему (включая доступ Заказчику
проекта)
4. Возможность быстрой кастомизации функционала
Компоненты LUXProject
$
$
Project Stakeholder
Only ONE (!) System Administrator
Our project manager
Our development team
Client project manager
Client development team
Our Analyst
Client Analyst
Subcontractors teams
Subcontractors teams
Our Quality Assurance
Client Quality Assurance
SOAP
Web Container Apache Tomcat
Java-COM
Bridge
Auto alerts and notifications / LUXproject event-driven core
Indexing and Search Service
Apache Lucene
LDAP
Central
Administration
/Security/
OpenLDAP
IM Server
/Jabber/
Wildfire
WebDAV File Management
Apache Slide
Calendar and
Planning
iCalendar std.
Reporting,
Metrics,
History,
Statistics
Web Access to
Source Code
ViewCVS/FishEye
Process
Improvement
- metrics
- statistic
JMX
Management
MS Word
Documents
XML-RSS
MS Outlook
Calendar, Tasks
Software Engineering Processes / LUXproject event-driven workflow engine
JIRA engine
Management of
Requirements
Task, Resource, Time,
Risk, Issue, Defects
Custom Workflows
Confluence
Wiki engine
Knowledge Base
Text Search
Document Versioning
Mail Indexing Service
Document Templates
Discussion Forum
Source Code
Repository
Versioning, releases,
Peer review.
Subversion, CVS, etc
In progress, the
closest release
Future releases
MS Excel
Timesheet, Reports
XMPP/Jabber
Single SignOn
Implemented
MS Project
/ to LUXproject initial
project setup /
Java Standard Edition 5.0
RFP/RFI
Response
Subsystem
Continues
Integration
/ Build /
Server
CrouseControl
Adobe Acrobat
Documents, Reports
Event Queue
ICQ/Miranda/GoogleTalk
IM Messaging
RMI/IIOP
LUXProject
Функционал LUXProject для проектов использующих
«классические» процессы (в т.ч. поддержка CMMI
модели)










Управление задачами;
Управление рисками;
Формирование отчетности;
Управление требованиями;
Управление изменениями;
Управление сборкой;
Управление тестированием (включает управление test cases и дефектами);
Управление качеством (процессные аудиты и анализ статистических данных);
Управление конфигурацией;
Управление коммуникациями (возможность вести базу знаний);
LUXproject
Пример функционального модуля “Risks”
LUXProject
Функционал LUXProject для проектов использующих
Agile-практиках





Управление задачами (в части - ведение бэклога продукта, управление
релизами, ведение бэклога итерации, персональный план работ);
Управление рисками;
Управление дефектами;
Управление коммуникациями (Scrum and retrospective meetings);
Управление конфигурацией;
Интеграция интерфейсов пользователя
 Задачи:
 Единая точка входа
 Общая навигация (header, footer)
 Единый стиль
 Проблемы
 Разные идеологии UI
 Конфликты терминологии
Интеграция интерфейсов пользователя: решение
LUXproject
Confluence
JIRA
FishEye …
Функциональная интеграция
 Административные функции
 создание проектов, пользователей
 Процессные функции
 Мониторинг активностей (Timeline)
 создание кросскомпонентных сущностей
 Агрегация данных в Dashboards
 Отображение JIRA items, commits на Wiki-страницах
Функциональная интеграция:
решение
 Единый язык доменной модели (не зависящий от языка
компонентов)
 Использование механизма событий (Publish/Subscribe) –
независимость ядра системы от компонент
 Потенциальная взаимозаменяемость компонент
 Простой upgrade компонент на новые версии
 Распределенная модель взаимодействия компонент
Внедрение LUXproject
Схемы внедрения:
Установка с «нуля»
 Компания хочет получить новый опыт и прогрессивные практики
 В компании не используются аналогичные системы
Установка с последующей кастомизацией функционала системы
и миграцией данных.
 Компания считает что процессы в компании «зрелые» или
уникальные
 Компания использует аналогичные «tracking» системы (например
JIRA, ClearQuest, Bugzilla) и хочет сохранить исторические данные.
Внедрение LUXproject
Процессный шаблон - это совокупность настроек функциональных
модулей системы, под конкретную методологию разработки.



Выбор конкретной
методологии
разработки при
открытии проекта
Кастомизация
проекта в процессе
проекта
Возможность
сохранить
кастомизированный
шаблон и
использовать его в
дальнейшем
Внедрение LUXproject
Пример процессного шаблона – “Agile”.
LUXProject
Вопросы?
Download