Upload
custis
View
213
Download
2
Embed Size (px)
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