Критерии выбора системы электронного документооборота
Гибкость, возведенная в абсолют
1. Гибкость, возведенная в Абсолют
или как настроить процесс
разработки программного
обеспечения
2. Контекст
Модели ЖЦ
Software Engineering Coordinating Committee, IEEE, ISO, ГОСТ
Методологии разработки
DOD, IBM, Microsoft, Agile-сообщество…
Процессы
ООО «Рога и копыта»
3. Модели ЖЦ: что имеем?
• Водопад
• Итерационная (инкрементальная) модель
• Модель Боема (спиральная модель)
7. Процесс разработки в вашей
команде
• Оптимален с любой точки зрения
• Идеал грации и красоты
• Великолепен
• Строг и справедлив
• Прекрасен
• Грациозен
• Грандиозен
• Просто душка
8. Разумеется, процесс в ваше команде
обладает всеми атрибутами зрелого процесса
• Осознанность
• Документированность
• Переносимость
• Конкретность области применимости
• Пригодность к анализу
• Наличие ресурсов для поддержки и
развития
9. • Процесс, который мы создаем, часто
является идеальным на тот момент
времени, для которого он создавался (в лучшем
случае)
Процесс идеален – зачем что-то
менять?
11. Изменение во внешней среде
• Компания изменила рынок сбыта
• Изменилось законодательство
• Директор компании прочитал статью про
Agile/EUP/MSF
• …
12. Изменение состава команды
• Вы наняли в штат Чака Норриса
• Вы наняли в штат гражданина название
страны вычеркнуто отделом цензуры
• Ваш гениальный архитектор уехал работать
в IBM
13. Изменение стадии проекта
• Стадии проекта по Unified Process
– Inception
– Elaboration
– Construction
– Transition
18. А что, собственно, можно гнуть?
• Набор шагов (этапов) процесса
• Содержание шагов (роли, артефакты,
активности, техники)
• Длину итераций (если у вас они есть)
• Методологию
• Модель
19. Набор этапов и их содержание
• Зачем команде нужен конкретный этап?
• Зачем команде нужен артефакт «Б»
(существуют артефакты, удобные заказчику)
• Есть ли в команде люди, которые могут
сделать этот артефакт?
• Зачем команде нужна техника «А»
• Готова ли команда применять эту технику и
хочет ли она ее применять?
20. Длина итераций
• На разных стадиях проекта длины итераций
могут быть разными
• У вас вообще может не быть итераций
• У вас может быть итерация длинной в год
23. Как понять, что пора что-то менять
Постоянно задавайте себе вопрос:
«А не фигню ли я делаю?»
24. Какие риски принимать во
внимание?
• Любые риски могут повлиять на процесс
Риск Что делаем с процессом
Новые технологии Включаем в процесс R&D стадию
Некачественные и изменяющиеся
требования
Не «паримся» подробным ТЗ.
Детализируем требования
непосредственно перед реализацией.
Недостаточный уровень
технологической экспертизы в команде
Включаем в процесс активности по
обсуждению технологических вопросов,
привлекаем экспертов
Низкая производительность команды Вводите в процесс итерации
Любые другие риски - Любые изменение в процессе
- Не все риски можно убрать
изменениями в процессе
25. Что измерять?
Цель процесса Метрики
Быстро выйти на рынок - Длительность цикла разработки
Обеспечить высокое качество - Количество дефектов
- Степень покрытия кода тестами
Точные предварительные оценки - Степень «недооцененности»
проектов
- Velocity
- Throughput
Быстрая поставка новых фич - Lead time
- Cycle time
- Wasted time
- Effectiveness
Оставаться в рамках графика и бюджета - Число изменений в требованиях
• Цели процесса определяют метрики
26. Окей, я все измерил. Что дальше?
• Пример 1.
– Focus Factor уменьшается с каждой итерацией –
сокращаем итерации. Или вообще переходим на
Kanban. Или п….м аналитиков.
• Пример 2
– Растет Wasted time – автоматизируйте рутину,
посмотрите в сторону Continuous Integration и
Continuous Delivert
• Пример 3
– Растет технический долг – выторговывайте время на
него
• …
27. И в качестве постскриптума
• Не возводите все в абсолют. Даже гибкость