40
Процессы разработки ПО Разработка корпоративных приложений.

Разработка корпоративных (бизнес) приложений (лекция 2)

Embed Size (px)

DESCRIPTION

Курс лекций для СТАНКИН. 2011 год.

Citation preview

Page 1: Разработка корпоративных (бизнес) приложений (лекция 2)

Процессы разработки ПО

Разработка корпоративных приложений.

Page 2: Разработка корпоративных (бизнес) приложений (лекция 2)

Зачем вообще нужны процессы

Люди не идеальны

• Контроль (внешний и внутренний), гарантии, риски, размеры организации (много дырок), трудоустройство теоретиков, передача знаний

Page 3: Разработка корпоративных (бизнес) приложений (лекция 2)

Многообразие страшных слов

• ISO (9000), ГОСТ, CMMI• PMBOK, PMI, ITIL (не про нас), • IDEF, UML• Водопад, RUP (OpenUP), MSF, Agile, Scrum,

Kanban, Lean, XP….

google it

Page 4: Разработка корпоративных (бизнес) приложений (лекция 2)

Стандарты (конституция)

• ГОСТ (ну вы поняли)• ISO (международный, про качество)• CMMI (американский про качество)

• Зачем?– Для военных и других критических сфер– Хотя сфера применения быстро сокращается

(см. шведская полиция - http://

blog.crisp.se/henrikkniberg/2011/05/27/1306495980000.html )

Page 5: Разработка корпоративных (бизнес) приложений (лекция 2)

Инструкции (законы)

• PMI (совм. С ISO) выпускает PMBOK• Инструкция про управления всем

(соответствующего размера)• В отличии от законов – можно не читать

Page 6: Разработка корпоративных (бизнес) приложений (лекция 2)

IDEF & UML (юридический язык)

• Светлая утопия о том, что можно формально описать ПО, а потом сгенерировать код

• IDEF0-14 (CASE!)– ERWin, BPWin, и их незавидная судьба (google)

• UML (то же самое, но толковые авторы)– Будете изучать в следующем семестре– Взлетело чуть лучше чем IDEF, но все равно не

очень

Page 7: Разработка корпоративных (бизнес) приложений (лекция 2)

ПРОЦЕССЫ РАЗРАБОТКИПодзаконные акты

Page 8: Разработка корпоративных (бизнес) приложений (лекция 2)

Что такое процесс

• Описывает что надо делать (жизненный цикл)

• В какой последовательности• Кому (требуемые квалификации и роли)• Как (конкретные практики)– Документация– Инженерные практики (как писать код, как

тестировать)

Page 9: Разработка корпоративных (бизнес) приложений (лекция 2)

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

• Водопад, RUP (OpenUP), MSF, Agile, Scrum, Kanban, Lean, XP…

• Есть фреймворки, есть процессы, есть практики: терминология размыта

• Смелое утверждение: все хорошие процессы являются циклом Деминга: – PDCA -> plan, do, check, act

Page 10: Разработка корпоративных (бизнес) приложений (лекция 2)

Эволюция процесса

1. Водопад 2. Итеративная разработка3. Гибкая разработка (SCRUM)4. Lean / Kanban

Page 11: Разработка корпоративных (бизнес) приложений (лекция 2)

Водопад

• Есть ли цикл Деминга (PDCA)?

Page 12: Разработка корпоративных (бизнес) приложений (лекция 2)

Проблемы?

Page 13: Разработка корпоративных (бизнес) приложений (лекция 2)

Итеративная разработка

• PDCA?

Page 14: Разработка корпоративных (бизнес) приложений (лекция 2)

Гибкая (agile) разработка

• PDCA?

Page 15: Разработка корпоративных (бизнес) приложений (лекция 2)

Lean / Kanban

• PDCA?• Тоже agile

Page 16: Разработка корпоративных (бизнес) приложений (лекция 2)

Играем в монетки

1 2 3 4 5 Посл.

1 2 3 4 5

Перв:

Посл:

По 20

По 5

По 1

1 2 3 4 5

Перв:

Посл:

Page 17: Разработка корпоративных (бизнес) приложений (лекция 2)

Резюмируя. Что изобрели?

• Конвейер • Почему на это потребовалось 40 лет?– Существенно сложнее чем классическое

производство– Много общения и взаимодействия людей– Логичное желание все задокументировать

заранее (чисто инженерный подход)

Page 18: Разработка корпоративных (бизнес) приложений (лекция 2)

Конвейер творческой работы (нужна идеология)

• Agile (Европа)– Люди и взаимодействие важнее процессов и

инструментов– Работающий продукт важнее исчерпывающей

документации– Сотрудничество с заказчиком важнее

согласования условий контракта– Готовность к изменениям важнее следования

первоначальному плану

Page 19: Разработка корпоративных (бизнес) приложений (лекция 2)

Конвейер творческой работы (идеология 2)

• Lean (Япония, Toyota production system)– Исключение потерь (см. теория ограничений)– Вызов (постоянная постановка целей)– Постоянное улучшение процесса– Докопаться до истины (5Whys)– «Вытягивание» (pull vs push) работы– Поток ценности, JIT– Ограничение работы в процессе– SHU-HA-RI (повторяй, думай, забудь правила)

Page 20: Разработка корпоративных (бизнес) приложений (лекция 2)

РОЛИ В РАЗРАБОТКЕ ПОкто

Page 21: Разработка корпоративных (бизнес) приложений (лекция 2)

Менеджер

• Менеджер проекта (project / product / program manager / owner)

• Ответственность за все• Координация

А дальше очень сильно зависит от внедренного процесса и конкретного процесса

Page 22: Разработка корпоративных (бизнес) приложений (лекция 2)

Аналитик

• Обдумывает (анализирует) предметную область – Опрашивает экспертов / клиента или является

экспертом• Детально описывает требования со всеми

нюансами

Page 23: Разработка корпоративных (бизнес) приложений (лекция 2)

UI дизайнер

• Смотрит на требования • Рисует как все это выглядит• Думает про usability• Решает про навигацию

Page 24: Разработка корпоративных (бизнес) приложений (лекция 2)

Архитектор

• Придумывает как это все делать (глобально)– Какие технологии подойдут– Какие потребуются ресурсы (сервера и прочее)– Как будет устроена система, из каких больших

частей– По итогу – всякие красивые диаграммы и

прочее, иногда – прототип системы

Page 25: Разработка корпоративных (бизнес) приложений (лекция 2)

Разработчик (логика, БД, UI)

• Разгребает все что пришло свыше• Есть еще ведущий разработчик (team lead)– Обычно координирует и направляет остальных– Представляет интересы других– Иногда – заводит и распределяет конкретные

задачи

Page 26: Разработка корпоративных (бизнес) приложений (лекция 2)

Quality Engineer (QA, тестер)

• Пишет тест кейсы (как проверить) по тому что написал аналитик

• Пишет автоматизированные тесты• Лично все тестирует и принимает– Заводит баги

Page 27: Разработка корпоративных (бизнес) приложений (лекция 2)

Другие

• Технический писатель, • Release / Deploy инженер• Линейные начальники• ….• Перекладыватель бумажек

Page 28: Разработка корпоративных (бизнес) приложений (лекция 2)

Идеальный член команды

• Если все такие – процесс не нужен

• Обычно становятся большими начальниками

Page 30: Разработка корпоративных (бизнес) приложений (лекция 2)

В следующих сериях

• Краткое введение в SCRUM (далее рассматривать будем именно его)

• Роль product owner’а подробнее

Page 31: Разработка корпоративных (бизнес) приложений (лекция 2)

Темы для докладов

• AOP• MSF• Kanban / Lean

Page 32: Разработка корпоративных (бизнес) приложений (лекция 2)

Лабы

• Открытые данные– http://www.apps4russia.ru/– http://apps4russia.reformal.ru/– http://data.worldbank.org/

• Готовое:– http://minenergo.gov.ru/activity/statistic/ – http://www.fms.gov.ru/about/ofstat/– http://www.federalspace.ru/main.php?id=10

• Повышенный балл:– Или наличие БД– Или наличие веб интерфейса

Page 33: Разработка корпоративных (бизнес) приложений (лекция 2)

Вопросы?

Page 34: Разработка корпоративных (бизнес) приложений (лекция 2)

PO

Page 35: Разработка корпоративных (бизнес) приложений (лекция 2)

Scrum роли

• Управленец• Технарь

Page 36: Разработка корпоративных (бизнес) приложений (лекция 2)

Backlog

Page 37: Разработка корпоративных (бизнес) приложений (лекция 2)

Scrum

Page 38: Разработка корпоративных (бизнес) приложений (лекция 2)

Scrum

Page 39: Разработка корпоративных (бизнес) приложений (лекция 2)

Разработчик (часть 1)

Лекция хз

Page 40: Разработка корпоративных (бизнес) приложений (лекция 2)

Основы программирования

• Базовые элементы синтаксиса, процедурное программирование– If / циклы / функции / переменные

• Указатели и работа с памятью (C )• ООП (C++)

•библиотеки / платформа