Жизненный цикл заказного ПО

Preview:

DESCRIPTION

Открытый семинар для студентов в компании CUSTIS (3 октября 2013). Лектор: Игорь Беспальчук, руководитель проектов, сертифицированный Scrum Product Owner. Из этого семинара вы узнаете о фазах, этапах и процессах, которые проходит программное обеспечение от идеи до финальной реализации. Видеозапись семинара: https://vimeo.com/76600088.

Citation preview

3 октября 2013 года

Жизненный цикл заказного

программного обеспечения

Игорь Беспальчук

Руководитель проектов

дирекции по развитию технологий

Про семинар

«Big Picture»

заказной разработки

Объемлющая рамка

для последующих тем:

Архитектура

Технологии

Командная работа

2/98

План

Пара слов о компании и о себе

Что такое жизненный цикл?

ЖЦ применительно к ПО

ЖЦ заказного ПО

Методологии разработки

3/98

О компании CUSTIS

4/98

Наша компания занимается:

проектированием,

5/98

Наша компания занимается:

…разработкой,

6/98

Наша компания занимается:

…внедрением,

7/98

Наша компания занимается:

…сопровождением,

8/98

Наша компания занимается:

…развитием

9/98

Наша компания занимается:

проектированием, разработкой, внедрением,

сопровождением и развитием…

…заказных информационных систем

на полном жизненном цикле

t

10/98

Для

Банков Торговых сетей

Госкорпораций Предприятий ЖКХ

11/98

Структура компании

>200

12/98

Профессиональная инфраструктура

26%

13/98

Отличники

20%

14/98

Мальчики и девочки

30%

15/98

О себе

16/98

Игорь Беспальчук

35 лет

(2001) Окончил

МГТУ им. Н. Э. Баумана (ИУ-8)

Программист (Oracle, C#)

(2006) Пришел в CUSTIS

(2008) Руководитель проекта

для ГК «Спортмастер»

(2010) Руководитель отдела

технологического развития

(2013) Руководитель проектов

дирекции по развитию технологий 17/98

План

Пара слов о компании и о себе

Что такое жизненный цикл?

ЖЦ в применении к ПО

ЖЦ заказного ПО

Методологии разработки

18/98

Что такое жизненный цикл?

У кого/чего он бывает?

Что это вообще такое?

Кому и зачем он нужен?

Как он устроен?

И с чем его едят?

19/98

Модель жизненного цикла

Объект

20/98

Модель жизненного цикла

21/98

План

Пара слов о компании и о себе

Что такое жизненный цикл?

ЖЦ в применении к ПО

ЖЦ заказного ПО

Методологии разработки

22/98

К программному обеспечению

А зачем применять понятие ЖЦ к ПО?

«Как разрабатывается ПО»?

И как управлять этим процессом?

Смотря какое… и смотря когда… и для кого

И вообще – что это за объект такой: «ПО»?

23/98

Объект №1: ПО в разработке

ЖЦ разработки ПО

– от идеи до финальной реализации

24/98

Объект №2: ПО в эксплуатации

ЖЦ эксплуатации ПО

– от внедрения до списания

25/98

Объект №3: продукт на рынке

26/98

План

Пара слов о компании и о себе

Что такое жизненный цикл?

ЖЦ в применении к ПО

ЖЦ заказного ПО

Методологии разработки

27/98

ЖЦ заказной разработки

На примере нашей компании

На полном ЖЦ – от замысла до вывода

Процессы, роли, артефакты, инструменты

Сравниваем и сопоставляем

28/98

Виды разработки

Box

Inhouse

Game

SaaS

Web

Mobile

ERP

Custom

Office

Desktop

S

M

L

29/98

Сопоставляем

Заказную разработку

Коробочный софт

Разработку Inhouse

Малые проекты

30/98

Карта процессов

31/98

Карта процессов

32/98

Замысел

33/98

Замысел

Идея

Проблема

Возможность

34/98

Замысел: процессы

Замысел Определение

Оценка и планирование

Анализ ситуации, определение замысла

35/98

Замысел: отличия от коробки

Замысел часто созревает у заказчика,

а не у производителя

Это какая-то насущная проблема

(или возможность) бизнеса. Замысел

(и вообще все) подчинен деятельности

предприятия

Потребитель и подрядчик контактируют

напрямую

36/98

Замысел: отличия от Inhouse

Заказчик часто еще не знает, кто будет

делать (предстоит выбор подрядчика)

Не ограничен возможностями Inhouse

(например, технологиями)

Можем разбежаться, если одной из сторон

не интересно предложение

Нет «знакомства» друг с другом,

истории отношений (иногда, конечно,

есть)

37/98

Замысел: размер важен

Замысел может быть весьма нечеткий

и очень далеко отстоять от результата

Нужно преодолеть огромный барьер

рисков и опасений заказчика (особенно

при первом заказе). Масштаб здесь имеет

значение

Прототипы, опыт, референсы, харизма,

финансовая состоятельность – все

становится очень важно

38/98

Завершается

Соглашением

39/98

Определение

40/98

Определение

Ключевые решения

Функции

Устройство

Технологии

Команда

План работ

Ведущие эксперты

41/98

Определение: процессы

Замысел Определение

Концептуальное проектирование

Оценка и планирование

Прототипирование

Организация

Наладка инфраструктуры

Анализ ситуации, определение замысла

42/98

Оценка и планирование

«План – ничто,

планирование – все»

43/98

Концептуальное проектирование

Фундаментальные

решения

Определяют дальнейшее

Не обязательно

реализуются раньше

44/98

Прототипирование

Быстро

Понятно

Снять риски

Реализуемости

Целеполагания

45/98

Организация команды

Найм

Внутри

и снаружи

Руководитель

Роли

Отношения

46/98

Инфраструктура

Сервера сборки

Регламенты работы

Организация материалов

Инструменты

47/98

Определение: отличия от коробки

Диалог

Интеграция и контекст

Прямые задачи

Влияние заказчика

48/98

Определение: отличия от Inhouse

Контекст «с нуля»

Нормы отрасли

Жестче обязательства

49/98

Определение: размер важен

Неопределенность

Важность архитектуры

Героизм

50/98

Завершается

Переходом

на плановую работу

В полном составе

На понятный результат

По понятной технологии

51/98

Перерыв?

52/98

Производство

53/98

Производство

Реализация

функционала

Итерации

Версии

54/98

Производство

Не так уж и стабильно

За год меняется все

Команда

Архитектура

Ситуация

Планы

Сложность

Объем

55/98

Производство: процессы

Определение Производство Внедрение

Концептуальное проектирование

Оценка и планирование

Прототипирование

Организация

Наладка инфраструктуры

Анализ требований

Проектирование

Конструирование

Тестирование

Демонстрация и сбор обратной связи56/98

Производство: отличия от коробки

Промежуточные версии

«Налипает» много

Сроки могут быть жестче

57/98

Производство: отличия от Inhouse

Договорные отношения

Команда на проект

Нет прямого прессинга

Дальше от потребителя

58/98

Производство: размер важен

Догнать паровоз

Организация важна

Процессы и документы

ЖЦ команды

Сложность играет свою игру

LOC

59/98

Производство завершается

Готовностью функционала

60/98

Внедрение

61/98

Внедрение

Включить в работу

Ничего не сломав

И без остановки

«Бережно»

62/98

Внедрение: процессы

Концептуальное проектирование

Оценка и планирование

Организация

Наладка инфраструктуры

Анализ требований

Проектирование

Конструирование

Тестирование

Демонстрация и сбор обратной связи

Обучение

Производство Внедрение

63/98

Внедрение: отличия от коробки

Интеграция

Обучение

Данные

Наследие

64/98

Внедрение: отличия от Inhouse

Цепочка длиннее

Отношения формальнее

65/98

Внедрение: размер важен

Риски простоя

Сложность

Количество

участников интеграции

Много нового

66/98

Эксплуатация

67/98

Эксплуатация

Все только

начинается…

Две системы –

два мира

68/98

Эксплуатация: процессы

Внедрение Эксплуатация

Оценка и планирование

Организация

Наладка инфраструктуры

Анализ требований

Проектирование

Конструирование

Тестирование

Демонстрация и сбор обратной связи

Обучение

Обновление

Сопровождение

69/98

Сопровождение

Диагностика

Обслуживание

Поддержка

Консультации

Наладка

Исправление

ошибок

Управление

инцидентами

70/98

Доработки

По требованиям

По возможности

По необходимости

Управление

изменениями

71/98

Обновления

Не только код

Но и данные

Быстро

Откат

Автоматическая

установка

Хотфиксы

72/98

Эксплуатация: отличия от коробки

Наша задача

Один потребитель

Один бизнес-процесс

SLA

73/98

Эксплуатация: отличия от Inhouse

Доступ затруднен

Данные закрыты

Длиннее цепочка

Усложняет диагностику

и обновления

74/98

Эксплуатация: размер важен

Больше доделок

Сложность

обновления

Сложность

диагностики

Больше

знаний

75/98

Чем заканчивается эксплуатация?

Выводом

из эксплуатации

Интенсивным

развитием

76/98

Интенсивное развитие (ИР)

77/98

Интенсивное развитие

Когда что-то

меняется сильно

Или добавляется новое

Масштаб сравним

с начальной разработкой

78/98

Интенсивное развитие

Эксплуатация Интенсивное развитие

Концептуальное проектирование

Оценка и планирование

Прототипирование

Организация

Наладка инфраструктуры

Анализ требований

Анализ ситуации, определение замысла

Проектирование

Конструирование

Тестирование

Демонстрация и сбор обратной связи

Обучение

Обновление

Сопровождение

79/98

Промежуточный итог

Сделали обзор фаз ЖЦ заказной

разработки

Посмотрели на ключевые процессы

И сравнили с другими видами

80/98

План

Пара слов о компании и о себе

Что такое жизненный цикл?

ЖЦ в применении к ПО

ЖЦ заказного ПО

Методологии разработки

81/98

Методология

Чем определяется ЖЦ разработки ПО?

Проектная методология

или

Методология разработки

Отвечает на вопрос

«Как следует разрабатывать ПО?»

Методология определяет

модель жизненного цикла

А также задает процессы, роли, артефакты

82/98

Эволюция методологий

разработки ПО

1970

Waterfall

1996

RUP

1986

Spiral

Agile,

SCRUM

Жесткость

2001 2009

Kanban

2013

?

83/98

Водопадная модель

Используется как мальчик для битья

84/98

Итеративные методологии

Все современные методологии

RUP, MSF, SCRUM (и др. agile), PMBoK

85/98

Итерации

86/98

Про RUP

Rational Unified Process

Более 30 ролей и более 50 артефактов

Требуется тщательная адаптация,

чтобы не утонуть в сложности

Дорогие шаблоны документов

и инструменты

87/98

Про Agile-методологии

Процессы – ничто, люди – все!

Ну, или процессы – почти ничто…

http://agilemanifesto.org/

http://agilemanifesto.org/iso/ru/

88/98

Про SCRUM

Простой процесс

Подручные инструменты

Иллюзия легкого решения

всех проблем

89/98

Количество предписаний

90/98

Еще одно сравнение

91/98

Общий знаменатель

OMG Essence

Методы (Methods)

Практики (Practices)

Основа (The Kernel)

Язык (The Language)

Составлены из

Описаны

при помощи

элементов

Определены

в терминах

92/98

Essence Language

93/98

Подводим итоги

94/98

Коротко о главном

Для качественной работы и управления

необходимы богатые представления

о контексте

В частности – о полном жизненном цикле

той деятельности, в которую вы включены,

и тех объектов, которые создаете

95/98

Коротко о главном

Заказная разработка (как и другие виды)

обладает своим, специфическим ЖЦ

со своими особенностями

Непосредственно программирование –

только маленький шаг внутри огромного

объекта разработки и развития ПО

96/98

Коротко о главном

Маятник методологий разработки ПО

уже успел качнуться в обе стороны –

к переутяжеленным и переоблегченным

методологиям

Но серебряной пули не существует,

и любому большому проекту нужна своя

уникальная методология, зависящая

от особенностей и контекста

97/98

Спасибо!

Вопросы?

Игорь Беспальчук

ibespalchuk@custis.ru

98/98

Recommended