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

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

Upload: amirutov

Post on 16-Apr-2017

341 views

Category:

Software


2 download

TRANSCRIPT

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

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

обеспечения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

развития

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

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

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

случае)

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

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

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

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

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

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

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

Agile/EUP/MSF • …

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

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

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

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

в IBM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Измеряйте

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- Velocity - Throughput

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

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

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

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

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

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

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

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

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

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

него • …

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

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

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