> Проекты
Система управления процессом разработки (DEVPROM)

 
 
 

Что такое "Система управления процессом разработки"?

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

Зачем нужны системы управления процессом разработки?

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

Для кого предназначена эта система?

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

Зачем создавать очередную Bug-Tracking систему?

Данная система предоставляет гораздо большую функциональность нежели типичная система управления ошибками. Система позволяет вести базу знаний по проекту, планировать состав релизов, загрузку участников, контролировать ход работ по проекту, подготавливать требования, справочную документацию, организовывать хранилище артефактов, трассировать изменение функциональности начиная от пожелания и заканчивая справочной документацией.  
 
Инструментарий данной системы покрывает каждую фазу процесса разработки программного обеспечения, а не только фазы разработки и тестирования. Возможность гибкой настройки методологии разработки позволяет реализовать максимально эффективный процесс разработки вашего программного продукта.  
 
Большинство Bug-Tracking систем распространяются как отдельные программные продукты, которые требуют установки Web-сервера, дополнительных библиотек, собственной установки и конфигурирования. Данная система предоставляется в виде Web-сервиса, в который включено как приложение для управления процессом разработки, так и хостинг вашего проекта. Все что вам нужно: Web-броузер и желание вовремя завершить проект. 

Чего не может эта система?

Данная система не сможет выполнить за вас проект, как и любая методология, это лишь набор методик и инструментария, которые существенно повышают ваши шансы не провалить проект и получить весомое преимущество над другими командами разработчиков.  
 
Система не предназначена для управления исходным кодом проекта, на наш взгляд, конкурировать с CVS, Perforce или Vault смысла нет. В качестве хостера для исходного кода вашего проекта можете использовать бесплатные сервисы, например, cvsdude.org  

Какие преимущества предоставляет эта система?

1. Информационная поддержка процесса разработки программного обеспечения - в системе хранится вся информация по проекту: о релизах, фазах разработки, требованиях, пожеланиях, ошибках и доработках. Система обеспечивает трассировку между артефактами процесса разработки, то есть позволяет отследить всю цепочку: от пожелания до документации.
 
2. Обратная связь с заказчиком или пользователями. Заказчик или пользователи самостоятельно могут вводить пожелания и регистрировать обнаруженные ошибки. Вам нужно лишь завести специального участника проекта с ролью "Заказчик" и пользователям сообщить логин и пароль для доступа к вашему проекту.
 
3. Гибкая методология разработки программного обеспечения позволяет успешно вести разработку как небольших так и средних проектов. Система реализует фундамент для любой гибкой методологии итерационно-инкрементного процесса разработки, позволяет описывать требования любого уровня, планировать состав работ по релизам и контролировать их выполнение.
 
4. Вы можете управлять составом участников проекта, наделять их необходимыми ролями в проекте. Система разграничивает доступ к различным операциям на основании ролей, назначенных участникам проекта.
 
5. Прозрачность процесса. Вся информация по процессу разработки доступна в одном месте, в связи с чем существенно упрощается контроль процесса разработки участниками проекта, заказчик также может контроллировать процесс разарботки или даже принимать в нем участие в части формирования пожеланий и управления приоритетами реализации или исправления ошибок.
 
6. Web-доступ к проекту. Вы можете работать над проектом в любое время суток, в любом удобном для вас месте, где есть интернет, вся информация по проекту, артефакты и сведения по ходу его выполнения у вас всегда будут под рукой. Не нужно пересылать или переносить документы с одного компьютера на другой.
 
7. Измеряемость процесса разработки. Используя систему управления процессом разработки, ваш проект обретает измеряемость, что повышает степень контроллироуемости разработки, что является одинм из важных критериев для заказчика, повышает его уверенность в успехе выполнения проекта, а следовательно и в выборе вас как подрядчика.
 
8. Групповая работа над артефактами проекта при помощи Wiki. База знаний по проекту, требования и справочная документация реализованы в форме Wiki, что позволяет любому участнику проекта вносить изменения и выяснять что изменилось и кто автор изменений в том или ином артефакте.
 
9. Централизованное хранилище документов, моделей, исходного, бинарного когда и других артефактов. Все участники получают доступ к самым свежим версиям артефактов. Вам не потребуется их пересылать всем участникам, просто выложите их в общий доступ.
 
10. Система реализована в форме Web-приложения. Вам не нужно устанавливать какое-либо приложение, организовывать собственный веб-сервер, заниматься администрированием и безопасностью. Все что вам нужно - это Web-браузер и доступ в интернет.
 
Система реализует гибкую методологию управления процессом разработки программного обеспечения, то есть вы легко можете исключить неиспользуемые в вашем проекте фазы, например, подготовку требований.
 
В данной системе используется итерационно-инкрементный процесс разработки программного обеспечния. Совокупность функциональности, реализуемая в каждой итерации, включается в релиз. Путем последовательного выпуска релизов проекта достигается инкрементная (последовательная) разработка функциональности проекта.
 
В проекте создаются участники и наделяются соответствующими ролями. Роли определяют полномочия на выполнение тех или иных действий в системе, а также на возможность отображения различных разделов системы.
 
В процессе присутствуют следующие фазы: анализ и проектирование, разработка, тестирование, стабилизация, документирование.
 
1. Участник с ролью "Заказчик" на закладке "Пожелания" формирует перечень пожеланий к функциональности продукта, создаваемого в рамках данного проекта. Если участие заказчика не предполагается, то все исходные документы (требования или техническое задание) загружаются в проект в качестве артефактов анализа.
 
2. Участник с ролью "Координатор" создает текущий релиз, который будет разрабатываться в ближайшее время. Пожелания, высказанные заказчиком, включаются в текущий релиз, что влечет за собой создание задачи с типом "Анализ", в результате выполнения которой будут подготовлены требования по данному пожеланию. Это стадия анализа и проектирования.
 
3. После того как требования подготовлены, по ним создаются доработки, список которых доступен на закладке "Планирование". Координатор проекта включает доработки в релиз, тем самым создавая задачи для участников проекта на реализацию данных доработок. При назначении работ координатор следит за загруженностью участников проекта и доступным объемом текущего релиза. Перераспределяя задачи между участниками и релизами, достигается максимальная эффективность в выполнении обязательств по релизу и складывается реальная картина выполнения проекта. Начинается фаза разработки.
 
4. Каждый участник проекта на закладке "Задачи" находит список назначенных ему заданий. Если для решения задачи требуется довольно продолжительное время, участник может Открыть задачу, показывая тем самым, что он занимается данной задачей. Если участник решил задачу, то он Выполняет ее, вводя часы, затраченные на ее решение. Это фаза разработки.
 
5. Если координатор при создании задачи на доработку или исправление ошибки указал Котнролера, то выполненная задача переходит в состояние "На проверке" и автоматически попадает на проверку Контролеру. Если Контролер не задан, то на закладке "Планирование" в перечне задач, включенных в релиз, координатор может назначить выполненные работы на проверку. Начинается фаза тестирования.
 
6. Тестировщик, указанный в качестве контролера по задаче, проверяет качество ее решения в соответствии с требованиями (или пожеланиями) и либо Отклоняет задачу, либо переводит ее в состояние Проверено. Отклоненные задачи вновь становятся доступными разработчикам для решения. Это фаза тестирования, плавно переходящая в фазу стабилизации.
 
7. Координатор контролирует ход выполнения работ по текущему релизу, следит за сроками по релизу и назначает новые задания участникам исходя из обнаруженных ошибок и доработок. Продолжается фаза стабилизации.
 
8. После выполнения основного объема работ по релизу участники проекта актуализируют справочную документацию по проекту и выкладывают артефакты, сформированные в ходе выполнения релиза. Фазой документирования завершается итерация по выпуску релиза.
 
9. Во время фаз разработки, тестирования, стабилизации и документирования координатор проекта совместно с аналитиками проекта обрабатывают поступившие пожелания и доработки и планируют будующие релизы и их состав.
 
10. По завершении работ по текущему релизу формируются заметки по релизу (Release Notes), которые могут быть переданы заказчику для отчетности или использованы для публикации в разделе "что нового?". Анализируются результаты работы всех участников проекта: сколько потрачено времени, кто и какое участие принимал, делаются выводы о возможностях команды и т.п. Изменяется текущий релиз. Итерация повторяется.
 
 
 
 
 Evgeny Savitsky © 2002-2005