Процесс разработки программного обеспечения

1.

Процесс разработки
Введение в специальность
Иван Домашних

2.

Процесс

3.

Культуры программных проектов

4.

Культуры программных проектов
Книга от Энтони Лаудера
• Научная: исследования
• Заводская: конвейер
• Дизайнерская: архитектура
• Сервисная: сопровождение пользователя

5.

Научная эпоха 1970-1990
• Квалифицированный персонал
• Большие и сложные проекты
• Требования меняются редко
• Упор на техническое качество решения
Literate programming: программа как проза
Программа как статья или теорема

6.

Водопадная модель - 1970
или каскадная модель
анализ
проектирование
программирование
тестирование
сопровождение

7.

Заводская эпоха 1980-2000
• ИТ-разработка воспринимается
как конвейер на заводе
• Задача делится на этапы
• Результат проверяется по спецификациям
Waterfall в тяжелой форме,
быдлокодинг по спецификациям

8.

Архитектурная эпоха 1995-2005
• ИТ-разработка рассматривается
как проект по созданию системы
• Задача делится на этапы с четкими целями, ролями,
временем прохождения и создаваемыми
артефактами
• На каждом этапе происходит оценка результатов
• В архитектуру на этапе проектирования
закладывается гибкость
CASE-средства, IDE, UML, RUP,
дизайн первичен

9.

Сервисная эпоха 2000-…
• Наблюдение за траекторией движения проекта и
приближением к цели, вместо тщательного планирования
• Итеративное движение с корректировкой положения
цели (требований к системе)
• Баланс между строгой дисциплиной и ее отсутствием
Agile-методологии
Клиентоориентированность

10.

Планируем движение цели

11.

Но цель движется

12.

Лучше двигаться шагами

13.

Лучше двигаться шагами

14.

Лучше двигаться шагами

15.

Лучше двигаться шагами

16.

Инкрементальная модель
проектирование
анализ
программирование
тестирование
сопровождение

17.

Культуры перемешаны
Можно найти представителей всех 4-х культур,
особенно легко на конференции
Каждая культура в чем-то сильна
Успешные компании тяготеют к разным в
зависимости от своих продуктов и заказчиков

18.

Что же использовать?
В своих проектах, проектном практикуме

19.

Agile-методологии из
сервисной эпохи

20.

Agile Manifesto – 2001
Люди и взаимодействие
важнее процессов и инструментов
Работающий продукт
важнее исчерпывающей документации
Сотрудничество с заказчиком
важнее согласования условий контракта
Готовность к изменениям
важнее следования первоначальному плану
+12 основополагающих принципов

21.

Agile-методологии
Гибкие методологии
Самые популярные:
• Scrum
• eXtreme Programming
• Kanban
Каждой можно посветить книгу или хотя бы лекцию…

22.

Книги про Agile

23.

Поговорим про самые
важные идеи…

24.

Ценность для заказчика
в условиях беспрецедентной скорости изменений

25.

Цикл Деминга
1. Plan:
Планируй
2. Do:
Выполняй
3. Check:
Проверяй
4. Act = Adopt, Adapt or Abandon:
Принимай, Приспосабливайся или
Отказывайся

26.

Изменение продукта
• Быстрый первый релиз
• Небольшие релизы
• Обратная связь от заказчика
• Корректировка планов и приоритетов
• Сначала самое ценное, потом остальное

27.

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

28.

Совершенствование процесса
Периодические ретроспективные встречи для
выявление проблемных мест
Улучшение процесса
Что нам помогает, что тормозит?
Как сделать в 2 раза быстрее?
Как сделать проще?

29.

Ограничение числа
незавершенных задач

30.

История в разработке
Аналитика
Разработка
Тестирование
Сделано
3 задачи
2 задачи
300 задач
100 задач
Работы
на полгода
Соотношение вложенных денег
и полученного результата?
Стоит ли тестировать эти задачи?
Через сколько будет готова
новая фича для заказчика?

31.

Борьба с незавершенкой
• Поиск и расширение бутылочного горлышка
• Кроссфункциональность сотрудников
Путешествие налегке!

32.

Эффективные коммуникации

33.

Тесное общение с заказчиком
• Представитель заказчика в команде разработки
• Планирование с заказчиком
• Демонстрации результатов для заказчика
• Контракт, позволяющий менять набор
функционала походу

34.

Здоровая культура в команде
Уважительное отношение

35.

Здоровая культура в команде
Взаимопомощь

36.

Здоровая культура в команде
Честно о проблемах

37.

Сначала стремитесь понять,
а потом быть понятым
Навык 5 из книги Стивена Кови
«7 навыков высокоэффективных людей»

38.

Новые подходы
к управлению

39.

Жесткая иерархия

40.

Проактивность сотрудников

41.

Самоорганизующаяся команда
Заказчик определяет
цель
Команда решает все
остальное
Зачем?
Как?

42.

Кроссфункциональная команда
Иерархическая организация
Матричная организация
Отдел вратарей
Команда 1
Вратарь 1
Вратарь 1
Вратарь 2
Защитник 1
Отдел защитников
Защитник 1
Защитник 2
Отдел нападающих
Нападающий 1
Команда 2
Вратарь 2
Защитник 2
Нападающий 1
Нападающий 2
Нападающий 2
Все на поле!

43.

44.

Agile Manifesto
Люди и взаимодействие
важнее процессов и инструментов
Работающий продукт
важнее исчерпывающей документации
Сотрудничество с заказчиком
важнее согласования условий контракта
Готовность к изменениям
важнее следования первоначальному плану
+12 основополагающих принципов

45.

Желаю вам стать людьми,
с которыми будет комфортно
разрабатывать программы

46.

Вопросы?
Иван Домашних
[email protected]
English     Русский Правила