Гибкость, возведенная в абсолют

Post on 16-Apr-2017

352 views 2 download

Transcript of Гибкость, возведенная в абсолют

Гибкость, возведенная в Абсолют или как настроить процесс разработки программного

обеспечения

Контекст Модели ЖЦ

Software Engineering Coordinating Committee, IEEE, ISO, ГОСТ

Методологии разработки DOD, IBM, Microsoft, Agile-сообщество…

Процессы ООО «Рога и копыта»

Модели ЖЦ: что имеем?

• Водопад • Итерационная (инкрементальная) модель • Модель Боема (спиральная модель)

Методологии разработки: что имеем?

• ГОСТ 19, ГОСТ 34 • RUP/EUP • MSF • PSP • Agile • …

А теперь натягиваем методологию на реальность

Процессы: что имеем?

Процесс разработки в вашей команде

• Оптимален с любой точки зрения • Идеал грации и красоты • Великолепен • Строг и справедлив • Прекрасен • Грациозен • Грандиозен • Просто душка

Разумеется, процесс в ваше команде обладает всеми атрибутами зрелого процесса

• Осознанность • Документированность • Переносимость • Конкретность области применимости • Пригодность к анализу • Наличие ресурсов для поддержки и

развития

• Процесс, который мы создаем, часто

является идеальным на тот момент времени, для которого он создавался (в лучшем

случае)

Процесс идеален – зачем что-то менять?

Сопротивление изменениям бесполезно!

• Изменения во внешней среде • Изменение состава команды • Изменение стадии проекта

Изменение во внешней среде

• Компания изменила рынок сбыта • Изменилось законодательство • Директор компании прочитал статью про

Agile/EUP/MSF • …

Изменение состава команды

• Вы наняли в штат Чака Норриса • Вы наняли в штат гражданина название

страны вычеркнуто отделом цензуры • Ваш гениальный архитектор уехал работать

в IBM

Изменение стадии проекта

• Стадии проекта по Unified Process – Inception – Elaboration – Construction – Transition

Обычная ситуация на стадии Inception

Обычная ситуация на стадии Transition

Один процесс? Да ладно

Внешняя среда

Состав и уровень команды

Стадии проекта

Впрочем, а почему бы и нет?

Гибкость – наше все!

А что, собственно, можно гнуть?

• Набор шагов (этапов) процесса • Содержание шагов (роли, артефакты,

активности, техники) • Длину итераций (если у вас они есть) • Методологию • Модель

Набор этапов и их содержание

• Зачем команде нужен конкретный этап? • Зачем команде нужен артефакт «Б»

(существуют артефакты, удобные заказчику) • Есть ли в команде люди, которые могут

сделать этот артефакт? • Зачем команде нужна техника «А» • Готова ли команда применять эту технику и

хочет ли она ее применять?

Длина итераций

• На разных стадиях проекта длины итераций могут быть разными

• У вас вообще может не быть итераций • У вас может быть итерация длинной в год

Как понять, что пора что-то менять

Управляйте рисками

Как понять, что пора что-то менять

Измеряйте

Как понять, что пора что-то менять

Постоянно задавайте себе вопрос: «А не фигню ли я делаю?»

Какие риски принимать во внимание?

• Любые риски могут повлиять на процесс

Риск Что делаем с процессом

Новые технологии Включаем в процесс R&D стадию

Некачественные и изменяющиеся требования

Не «паримся» подробным ТЗ. Детализируем требования непосредственно перед реализацией.

Недостаточный уровень технологической экспертизы в команде

Включаем в процесс активности по обсуждению технологических вопросов, привлекаем экспертов

Низкая производительность команды Вводите в процесс итерации

Любые другие риски - Любые изменение в процессе - Не все риски можно убрать

изменениями в процессе

Что измерять?

Цель процесса Метрики

Быстро выйти на рынок - Длительность цикла разработки

Обеспечить высокое качество - Количество дефектов - Степень покрытия кода тестами

Точные предварительные оценки - Степень «недооцененности» проектов

- Velocity - Throughput

Быстрая поставка новых фич - Lead time - Cycle time - Wasted time - Effectiveness

Оставаться в рамках графика и бюджета - Число изменений в требованиях

• Цели процесса определяют метрики

Окей, я все измерил. Что дальше?

• Пример 1. – Focus Factor уменьшается с каждой итерацией –

сокращаем итерации. Или вообще переходим на Kanban. Или п….м аналитиков.

• Пример 2 – Растет Wasted time – автоматизируйте рутину,

посмотрите в сторону Continuous Integration и Continuous Delivert

• Пример 3 – Растет технический долг – выторговывайте время на

него • …

И в качестве постскриптума

• Не возводите все в абсолют. Даже гибкость