Работа по системе SCRUM
Scrum http://ru.wikipedia.org/wiki/Scrum — методология управления разработкой информационных систем для гибкой разработки программного обеспечения. Scrum чётко делает акцент на качественном контроле процесса разработки. В свою очередь данная система входит в группу систем и принципов Agile http://ru.wikipedia.org/wiki/Agile, которая исповедует открытость и нацеленность на конечный продукт, ставя перед собой в первую очередь, удовлетворение потребностей именно пользователей. Благодаря постоянной работе с удаленным персоналом и удаленным заказчиком, компания 5-SOFT перешла на работу по системе SCRUM.
Что это такое и как оно работает:
Scrum — это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные небольшие промежутки времени (спринты от 2 до 4 недель) предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет. Возможности ПО к реализации в очередном спринте определяются в начале спринта на этапе планирования и не могут изменяться на всём его протяжении. При этом строго-фиксированная небольшая длительность спринта придаёт процессу разработки предсказуемость и гибкость.
Главные действующие роли в Scrum:
- ScrumMaster — тот, кто ведёт Scrum митинги и следит, чтобы при этом соблюдались все принципы Scrum (роль не предполагает ничего кроме корректного ведения самогоScrum-а, руководитель проекта скорее относится к Product Owner и не должен являться ScrumMaster);
- Владелец Продукта (Product Owner) — человек, который представляет интересы конечных пользователей и других заинтересованных в продукте сторон;
- Кроссфункциональная Команда (Scrum Team), состоящая как из разработчиков, так и из тестировщиков, архитекторов, аналитиков и т. д. (при этом размер команды в идеале составляет 7±2 человека). Команда является единственным полностью вовлечённым участником разработки, и отвечает за результат как единое целое. Никто кроме команды не может вмешиваться в процесс разработки на протяжении спринта.
На протяжении каждого спринта, 15-30 дневного периода (длительность определяется командой), создаётся функциональный рост программного обеспечения. Набор возможностей, которые реализуются в каждом спринте, происходят из этапа, называемого product backlog (документация запросов на выполнение работ), обладающего наивысшим приоритетом по уровню требований к работе, который должен быть выполнен. Запросы на выполнение работ (backlog items), определенных на протяжении совета по планированию спринта (sprint planning meeting), перемещаются в этап спринта. На протяжении этого собрания Владелец Продукта информирует о заданиях, которые должны быть выполнены. Тогда Команда определяет, сколько из желаемого они могут выполнить, чтобы завершить необходимые части на протяжении следующего спринта. Во время спринта команда выполняет определенный фиксированный список заданий (т. н. sprint backlog). На протяжении этого периода никто не имеет права менять список требований к работе, что следует понимать как заморозку требований (requirements) во время спринта.
Преимущества:
Таким образом, благодаря данной системе, мы получаем прозрачное видение текущего проекта со стороны заказчика. Заказчик, со своей стороны, может безболезненно вносить поправки и корректировки на промежуточных стадиях. А так же производить оплату частями, за каждый предоставленный модуль в конце каждого спринта. Он всегда может приостановить разработку проекта на любой срок с наименьшими для себя финансовыми потерями и финансовыми потерями для разработчиков. Удобна эта система когда разработка какого-либо глобального проекта ведут сразу несколько команд- разработчиков. В этом случае, заказчику несравнимо сложно отслеживать ход работ и сопоставлять результаты и сроки по каждой из команд и конечные сроки реализации. Но благодаря SCRUM он будет иметь четкие, оговоренные сроки, а так же он будет точно знать, что именно в эти сроки будет реализовано каждой из команд. Что поможет заказчику делать более определенные прогнозы на конечный релиз продукта.