Выбор и внедрение процесса: от водопада до Kanban/XP/RUP Александр Сербул Руководитель направления контроля качества интеграции и внедрений @AlexSerbul А нужен ли процесс? Если проект маленький – можно сделать и «на коленке» Когда разработчиков >2-3 - процесс нужен Когда проект объемный, сложный – процесс нужен Когда планируется поддерживать и развивать веб-систему – процесс нужен Как работать с проектами – решает руководство компании либо менеджер проекта. Делаем «на коленке» Согласуется расплывчатое ТЗ Ничего не проектируется - зачем, все понятно Разработчик делает «лишь бы работало и побыстрее» Тестировщик покликал – вроде работает Аврально вносятся изменения Документация – а что это? Этап сдан? Делаем «на коленке» Риски: • • • Систему все сложнее развивать (экспонента) • • • • Веб-система монолитна - боится изменений Новый программист пытается все переписать с нуля Программист может и не разобраться в такой веб-системе Никто не помнит, как все работает (даже Заказчик) Любое изменение рождает много ошибок Тестировщик не знает, как все проверить Давайте все спроектируем заранее! Процесс – «Водопад», «Каскадная модель»: • Подробно все проектируем, рисуем интерфейсы, описываем в ТЗ • • • • • Получаем ТЗ на 1000-2000 страниц Кодируем Проводим нагрузочные испытания Тестируем Сдаем проект Заказчику Иногда работает на сложных, больших, специфических проектах. Любое изменение требует больших затрат на пересогласование, перепроектирование… Давайте все спроектируем заранее! Итеративный процесс Повторяем все фазы, но на каждом этапе Улучшается обратная связь с Заказчиком – он принимает каждый этап (итерацию) Занимаемся самыми приоритетными задачам и рисками Затраты на проект распределяются равномерно, а не в конце проекта Постоянное тестирование – в процессе, а не в конце Эффективная загрузка команды (+) Эффективно работает на сложных, больших проектах. Изменения требований – можно пережить. RUP (-) Много ролей, сложно настроить, внедрить, поддерживать процесс. Итеративный процесс, RUP Agile Agile – управление требованиями Agile - планирование Agile – короткие итерации, feedback Agile – unit tests Selenium XP Экстремальное программирование (extreme programming) – 13 правил Kanban Цель - сократить время прохода задачи до «готовности» • Задача = ММФ – минимальная маркетинговая фича • • • Уменьшение числа || выполняемых задач (“work in progress”) Визуализация задач Постоянное совершенствование производства Система очень проста, удобна как для веб-студий, так и для работы с фрилансерами. Kanban Kanban Спасибо за внимание! Вопросы? Александр Сербул serbul@1c-bitrix.ru @AlexSerbul