Смекни!
smekni.com

Комплексная автоматизация проектов разработки ПО в условиях кризиса (стр. 1 из 2)

Реферат

«КОМПЛЕКСНАЯ АВТОМАТИЗАЦИЯ ПРОЕКТОВ РАЗРАБОТКИ ПО В УСЛОВИЯХ КРИЗИСА»


ВВЕДЕНИЕ

В настоящий момент многие компании – разработчики ПО столкнулись с проявлениями кризиса в виде падения объемов продаж, замедления роста бизнеса, ужесточения требований банков к получателям кредитов. Чтобы сохранить эффективность, организациям требуется существенно повысить результативность процесса разработки ПО. Для этого необходимо решать сложные проблемы, связанные с:

 планированием (расхождение первоначально запланированных и фактических трудозатрат в процессе реализации проекта);

 управлением задачами (потеря со стороны менеджера проекта контроля над задачами и сроками их выполнения, в том числе отсутствие понимания, сколько времени сотрудники реально тратят на ту или иную работу, какова производительность проектной команды и т.д., что особенно актуально для больших распределенных команд);

 управлением изменениями (заказчик в процессе разработки меняет требования, при этом внесение изменений отдельно не оплачивается; как следствие, чтобы сдать проект, команде приходится увеличивать объем работ и, соответственно, трудозатраты);

 приемо-сдаточными испытаниями (отсутствие четких критериев сдачи-приемки проекта приводит к недовольству заказчика и, как следствие, к затягиванию сроков завершения проекта и появлению незапланированных работ);

 управлением рисками (отсутствие формализованного управления рисками может привести в процессе реализации проекта к событиям, которые потребуют изменения объема работ);

 проектными коммуникациями, как внутрикомандными, так и с заказчиком (время на коммуникации тратится неэффективно, особенно эта проблема касается географически распределенных команд);

 конфигурационным управлением (программный код хранится локально, не поддерживается версионность; сборка производится спорадически, в нее случайно включается устаревший, неактуальный код; силы команды тратятся на выяснение актуальной версии сборки).

Все вышеперечисленные проблемы ведут к одному результату – расхождению значений изначально запланированных и фактических трудозатрат, что снижает показатели эффективности и доходности проектов.

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

Считается, что автоматизация проектной деятельности – достаточно дорогостоящее мероприятие. Тем более сложно ожидать, что руководство компании пойдет на дополнительные затраты в условиях кризиса. Найти выход из подобной ситуации можно, используя готовые решения, интегрированные в единую систему.

В свое время компания «Люксофт», проанализировав и опробовав в реальных проектах ряд доступных продуктов, создала интеграционное решение для автоматизации процесса разработки – LUXproject.

При создании данного решения были поставлены следующие цели:

 комплексная поддержка жизненного цикла разработки ПО (от заключения контракта до поддержки клиента);

 поддержка распределенной разработки;

 поддержка различных методологий разработки;

 снижение затрат на разработку и внедрение системы за счет использования готовых решений (как коммерческих, так и бесплатных).

LUXproject по сути является «процессной оболочкой», которая интегрирует в себе следующие технологии и продуты: JIRA, Confluence, GreenHopper, CruiseControl, Subversion, FishEye, WebDAV и др.

Они хорошо зарекомендовали себя на рынке, накоплен богатый опыт их использования.

Одним из достоинств данных продуктов является большой потенциал их кастомизации. Существуют целые сообщества программистов, занимающихся разработкой open-source-плагинов1 для JIRA и Confluence. Также на рынке имеется много коммерческих плагинов, существенно расширяющих функционал.

В результате было создано решение, которое можно отнести к системам ALM (Application Lifecycle Management), объединяющим в себе:

 инструменты управления проектами и процессами;

 инструменты разработки и тестирования;

 средства коммуникаций для распределенных команд.

Поскольку учет трудозатрат осуществляется на всем протяжении разработки ПО, то автоматизация управления должна «пронизывать» все проектные процессы жизненного цикла создания ПО.

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

Далее будут описаны основные направления, концепции и способы автоматизации проектов разработки ПО, благодаря которым возможно эффективно управлять проектными трудозатратами, предотвращая появление незапланированных трудозатрат. В качестве практического примера будет рассмотрена реализация функционала LUXproject.

1. Планирование и контроль выполнения задач

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

Применительно к проектам разработки ПО одним из недостатков популярных систем календарного планирования и управления (типа MS Project) является отсутствие возможности связывать задачи с другими проектными активностями и устанавливать зависимость между элементами их жизненных циклов.

Для решения данной проблемы все чаще используются системы с возможностью отслеживать состояние проектных активностей (issue tracking).

Трекер (от англ. track, что значит «след») – специальная система для отслеживания состояния проектных активностей (задач, требований, дефектов). Подобные системы появились в конце 1990-х гг. для обнаружения ошибок в коде при проведении тестирования в проектах разработки ПО. Впоследствии выяснилось, что можно успешно применять эти системы для отслеживания и других проектных активностей. Обычно в трекере для каждой проектной активности установлен определенный жизненный цикл, однако во многих представленных на рынке системах предусмотрена возможность гибкой настройки жизненного цикла в зависимости от требований проекта.

В LUXproject применяется трекер JIRA компании Atlassian. Благодаря гибкой архитектуре трекера можно создавать разнообразные жизненные циклы с учетом проектных требований.

Например, в компании используются несколько методологий ведения проектов разработки ПО:

 agile-практики;

 методологии, основанные на RUP-подобных процессах;

 проекты, связанные с поддержкой пользователей.

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

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

При этом трекер не заменяет систем календарного планирования, а дополняет их. Идеальная связка системы календарного планирования и трекера выглядит следующим образом: вначале руководитель проекта разрабатывает структуру декомпозиции работ (этапы, задачи, подзадачи) и формирует команду (планирует ресурсы), затем он экспортирует информацию о задачах в трекер (посредством специального модуля экспорта данных). В процессе реализации проекта рядовые сотрудники изменяют статус задач в трекере, связывают задачи с другими проектными активностями, заносят в систему данные о времени выполнения работы. Руководитель проекта периодически переносит информацию из трекера в систему календарного планирования, где проводит комплексный анализ изменений в ходе проекта и осуществляет соответствующие корректирующие и предупреждающие действия.

2. Интеграция и единый пользовательский интерфейс

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

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

Следует отметить, что интеграция wikiдвижка, трекера, версионного репозитория и инструментов разработки в едином визуальном интерфейсе (рис. 2) имеет существенные достоинства, такие как возможность создавать прямые ссылки между различными функциональными модулями и наличие прозрачных переходов из одного функционального модуля в другой.

Например, в LUXproject интегрирован wikiдвижок Confluence компании Atlassian, который позволяет выводить на страницу информацию из других систем, формируя ее расположение и параметры отображения путем простейших конфигурационных настроек, благодаря чему можно быстро адаптировать проект к конкретным требованиям внутренней и внешней среды.

3. Проектные коммуникации

У распределенных команд, особенно находящихся в различных часовых поясах, могут возникнуть проблемы с передачей оперативных данных в ходе проекта и представлением актуальных проектных артефактов. Самый распространенный способ решения этих проблем заключается в предоставлении доступа к некой информационной системе с помощью различных протоколов и методов, например доступ через VPN. Однако последний не всегда удобен, особенно если надо организовать доступ с территории заказчика, где существует жесткая политика информационной безопасности.