|
Технологический процесс разработки программного обеспечения
На современном этапе развития индустрии разработки программного обеспечения успешное развитие любого программного продукта сильно зависит от технологического базиса на который опираются процессы разработки программного обеспечения.
Наличие целостной методологии, которая покрывает весь производственный цикл - от идеи до запуска готового проекта, является одним из ключевых факторов успешной работы софтверной компании.
Компания "WEB100" в процессе разработке программного обеспечения использует классическую методологию RUP с отдельными элементами Scrum.
Такой подход позволяет успешно совмещать как преимущества RUP (использование итераций, непрерывное обеспечение качества на всех этапах разработки, компонентную архитектуру), так и артефакты Scrum (постоянное определение приоритетных задач, короткие митинги для синхронизации команды, коллективное владение кодом).
Результатом каждой итерации является готовый продукт (так называемый build), который можно передавать заказчику. Короткие итерации обеспечивают быстрый обратный отклик проектной команде от заказчика. Заказчик получает возможность гибко управлять требованиями, оценивая результат итерации и предлагая улучшения к созданной функциональности.
В конце каждой итерации проектная команда достигает запланированных на данную итерацию целей, создает или дорабатывает проектные артефакты и получает промежуточную, но функциональную версию конечного продукта.
Все требования и предложения находятся в приоритизированном списке задач, что позволяет быстро расставить приоритеты, достигнуть максимальной прибыльности от реализованной функциональности и заинтересовать команду в результате.
Итеративная разработка позволяет быстро реагировать на меняющиеся требования, обнаруживать и устранять риски на ранних стадиях проекта, а также эффективно контролировать качество создаваемого продукта.
Процесс состоит из серии повторяющихся итераций (их число зависит от конкретного проекта). В результате каждой итерации мы получаем промежуточную версию.
После очередной итерации продукт приобретает новую функциональность или улучшения в существующей функциональности.
Каждая итерация состоит из таких стадий:
- Проектирование
- Реализация
- Тестирование
Итеративный подход разбивает разработку на несколько итераций, в ходе каждой из которых выполняются практически все типы работ, и создается реальная работающая система с все более развитыми функциональными возможностями
На стадии проектирования производится анализ предметной области и построение исполняемой архитектуры, определяются и документируются основные требования и корректируются существующие.
Используемый инструментарий: Confluence, TWiki, DocBook
На стадии реализации происходит реализация большей части функциональности продукта. Эта стадия завершается выпуском промежуточной версии, которая переходит в стадию тестирования.
Используемый инструментарий: Jira, Bugzilla, Mantis, Confluence
Процесс тестирования
построен на интеграции ручного и автоматизированного тестирования.
Сложные моменты бизнес-логики перетестируются вручную, рутинные операции выполняют автоматизированные тесты, которые заносят результаты прогона в систему управления и выполнения тестов TestLink.
Автоматизированные тесты проводятся с помощью популярных решения для функционального тестирования Selenium и AutomatedQA TestComplete.
Такая интеграция позволяет максимально глубоко, быстро и эффективно тестировать промежуточные версии, выполнять регрессионное тестирование и протоколировать результаты.
После получения результатов тестирования они анализируются командой QA, выявленные ошибки записываются в систему оперативного управления процессом разработки (JIRA,Mantis) и передаются в отдел разработки.
Полный набор требований, зафиксированный границами проекта, оказывается реализованным после завершения финальной итерации.
После стадии тестирования создаётся финальная версия продукта и передается от разработчика к заказчику. Передача заказчику включает в себя программу бета-тестирования, обучение пользователей, а также определение качества продукта. Выполнение всех целей означает достижение вехи готового продукта (Product Release) и завершение полного цикла разработки.
Используемый инструментарий: Jira, Bugzilla, Mantis, AutomatedQA TestComplete, Testlink, Selenium, Watir.
|