Transcript ***** 1

OMG! Essence of Software Engineering?

ЛАФ’2013

В мире много методов приемов практик идеологий разработки ПО

Literate Programming DevOps MDD V-model MSF ISO 24744 TDD Persona’s method

SCRUM

CI DoD Use Cases EssUP Pair Programming Kanban ISO 12207

RUP

Persona’s method Kanban PRINCE2 XP User Story V-model UML OpenUP TDD Continious Integration SCRUM Pair Programming BPMN

Тысячи их!!1

Я смотрю, ты совсем запутался?

Ну, не совсем, но я правда иногда не понимаю – как все это связано между собой.

Тем более, что у каждой команды все равно свой собственный метод. Подвести бы под это какую-нибудь основу… Ну, несколько таких методов я сам придумал. UML там, RUP… А про основу – это ты хорошо сказал! Смотри, я придумал для тебя Единую Теорию Всего Программирования…

Определены в терминах Я назвал ее SEMAT – Software Engineering Method And Theory. Мы опишем все методы через практики и… Основы!

Смотри:

Методы Практики Основа Язык Methods Practices The Kernel The Language

Состоят из Описаны при помощи элементов

У нас есть три области интереса (Area of concerns):

Потребитель Решение Предприятие Customer Solution Endeavor

Внутри каждой области есть АЛЬФЫ – это очень клевые штуки, я их сам придумал – а ещё есть деятельности и компетенции. Для всего этого есть графический язык, как UML, только круче!

Альфы

ALPHA

Abstract-Level Progress Health Attribute

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

Activity Space

Компетенции

Competence

Потребитель Возможность

Альфы

Решение Требования Стейкхолдер Программная система Предприятие Работа Команда Технология работы

Альфы и семантика

Потребитель Возможность предоставляет Стейкхолдер потребляет и использует фокусирует Решение удовлетворяет Требования Программная система задают ограничения создает Предприятие Работа планирует и производит Технология работы Команда

Потребитель Исследовать возможность

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

Понять нужды Убедиться в удовлетворении Изучать использование системы Решение Понять требова ния Спроек тировать систему Реализо вать систему Протес тировать систему Развер нуть систему Обслу живать систему Предприятие Приготовиться выполнять работу Координи ровать дела Поддерживать команду Отслеживать прогресс Прекратить работу

Компетенции

Потребитель Представление интересов стейкхолдеров Решение Предприятие Анализ Разработка Тестирование Лидерство Управление

Теперь смотри, как это работает: мы «протаскиваем» проект по состояниям альф, выполняя дела из деятельностей при помощи наших компетенций.

Альфа

Имеет

Состояние альфы

Подтверждает Намечает

Рабочий продукт

Создает/изменяет

Деятельность

Воплощается в

Дело Компетенция

Ох… Круто! Хотя и сложновато как-то.

Ладно, спасибо большое , Ивар, я теперь сам попробую разобраться – что это, и чем может помочь аналитику.

Не вопрос, обращайся! А штука полезная, сам увидишь. И не такая уж сложная.

Ладно, пойду пока еще какой нибудь язык придумаю. Или что нибудь еще, что можно сократить до трех букв. See u!

Где здесь место для аналитика?

Потребитель Исследовать возможность Понять нужды Убедиться в удовлетворении Изучать использование системы Возможность Представление интересов стейкхолдеров Стейкхолдер Решение Требования Понять требования Анализ Программная система Предприятие Работа Команда Технология работы

Выявлены Представлены Вовлечены В согласии Удовлетворены развертыванием системы Удовлетворены работой системы

Стейкхолдеры выявлены.

Механизмы вовлечения стейкхолдеров согласованы, представители обозначены.

Представители стейкхолдеров вовлечены в работу и выполняют свои обязанности.

Представители стейкхолдеров находятся в согласии.

Минимальные ожидания представителей стейкхолдеров удовлетворены.

Система удовлетворяет или превышает минимальные ожидания стейкхолдеров.

Идентифицирована Решается программной системой Оценена Жизнена Использована Принесла выгоду

Коммерческая, социальная или бизнесовая возможность идентифицирована.

Потребность в программном решении обоснована и подтверждена.

Ценность успешного решения установлена.

Все согласны, что решение может быть произведено достаточно быстро и дешево, чтобы воспользоваться ценностью.

Система создана и демонстрирует использование возможности.

Операционное использование или продажи создают ощутимую выгоду.

Выявлены Определены Ясны Приняты Адресуют потребности Полны

Все согласны, что новая система нужна.

Назначение и предмет новой системы ясны.

Требования обеспечивают целостное описание неотъемлемых характеристик системы.

Описание системы через требования приемлемо для стейкхолдеров.

Достаточное количество требований направлено на удовлетворение потребностей в новой системе.

Требования полностью удовлетворяют потребности в новой системе.

Чек-листы для состояний

Стейкхолдеры

Выявлены  Идентифицированы все различные группы заинтересованных сторон (стейкхолдеров), которых затрагивает или может затронуть разработка или функционирование системы.

 Достигнуто согласие между группами стейкхолдеров (как минимум, между теми, кто финансирует, использует, поддерживает и обслуживает систему).

 Определены обязанности представителей стейкхолдеров.

Чек-листы для состояний

Стейкхолдеры

Представлены  Представители стейкхолдеров согласились взять на себя ответственность.

 Представители стейкхолдеров уполномочены нести ответственность.

 Представители стейкхолдеров готовы к сотрудничеству между собой.

 Представители стейкхолдеров уважают и поддерживают технологию работы команды.

Спасибо, кэп!

Чек-листы для состояний

Требования

Выявлены  Стейкхолдеры согласны, что система должна быть создана.

 Выявлены стейкхолдеры, которые будут пользоваться системой.

 Выявлены стейкхолдеры, которые будут финансировать создание системы.

 Ясно, какую возможность будет использовать будущая система.

Чек-листы для состояний

Требования

Определены  Выявлены стейкхолдеры, вовлеченные в разработку новой системы.

 Все стейкхолдеры согласны с назначением новой системы.

 Ясно, что будет являться показателем успешности системы.

 Все стейкхолдеры разделяют понимание объема предложенного решения.

 Согласован способ описания требований.

 Имеется механизм для управления требованиями.

 Ясная схема приоритезации требований.

 Выявлены и признаны ограничения.

 Ясно сформулированы все предположения.

Расширения Kernel

Можно определить собственные

под-альфы,

их статусы и чеклисты для проверки.

Что еще полезно: компетенции

Представление интересов стейкхолдеров Анализ

Способность собирать, выражать и

балансировать

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

Способность понять возможности и потребности стейкхолдеров, и преобразовать их в согласованный набор требований.

Что эти люди делают для команды

Представление интересов

Люди с этой компетенцией • • помогают команде: Понять бизнес-возможность.

Осознать сложности и потребности потребителей, пользователей и других • заинтересованных сторон.

Приоритезировать и • согласовывать требования.

Взаимодействовать со • стейкхолдерами.

Понимать – насколько хорошо система удовлетворяет нуждам стейкхолдеров.

Анализ

Люди с этой компетенцией • помогают команде: Идентифицировать и понять • нужды и возможности.

Докопаться до корневых причин • проблем.

Собрать, понять и продуктивно • обсуждать требования.

Создавать и согласовывать • спецификации и модели.

Визуализировать решения и понимать их последствия.

Необходимые навыки

Представление интересов

• • • • Необходимые навыки: Ведение переговоров Фасилитация Нетворкинг Хорошая письменная и • устная речь Эмпатия

Анализ

• Необходимые навыки: Письменная и устная • коммуникация Наблюдать, понимать и • • записывать детали Декомпозиция Видеть целое исходя из • требований Формулирование требований

Заключение: что дает Kernel?

• • •

Фокусирует внимание на состоянии альф:

стейкхолдеров, возможности и требований;

Разделяет роли для работы со

стейкхолдерами и для анализа требований;

Предоставляет высокоуровневые

последовательности состояний ключевых альф и чек-листы для их диагностики.

Для чего использовать Kernel

• • • • • • • Для оценки состояния проекта (без привязки к конкретной методологии) Для планирования Для сравнения двух методологий и

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

Для обучения Для масштабирования Для оптимизации методов Для подбора людей

Немедленная польза

1. Применять чек-листы 2. Включать пункты из чек-листов в договоры и проектные документы

Текущий статус и ссылки

В настоящее время стандарт находится на рассмотрении в OMG (статус: OMG Final Submission, 18 feb 2013). OMG сейчас проверяет соблюдение авторских прав.

Ожидаемая дата рассмотрения – август 2013.

Инициатива SEMAT: http://www.semat.org/ Карты на английском: http://www.ivarjacobson.com/SEMAT_Kernel _Cards_Download/

Спасибо за внимание!

Юрий Куприянов Эксперт по системному анализу и разработке ПО, эксперт по коммуникациям и фасилитации, интерактивным методикам, преподаватель, тренер.

Обращайтесь за консультациями!

[email protected]

http://facebook.com/yksi12 skype: yury.kupriyanov