чек-листы

advertisement
OMG! Essence of Software
Engineering?
ЛАФ’2013
В мире много методов приемов
практик идеологий разработки ПО
V-model
TDD
Agile
ISO 12207
PRINCE2
RUP
Persona’s method
V-model
Continious Integration
SCRUM
TDD
EssUP
OpenUP
User Story
Pair Programming
Persona’s method
XP
UML
DoD
ISO 24744
Kanban
Kanban
Use Cases
MSF
MSF
SCRUM
CI
DevOps
Literate Programming
MDD
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/
Спасибо за внимание!
Юрий Куприянов
Эксперт по системному анализу и разработке ПО,
эксперт по коммуникациям и фасилитации,
интерактивным методикам,
преподаватель, тренер.
Обращайтесь за консультациями! 
yksi12@gmail.com
http://facebook.com/yksi12
skype: yury.kupriyanov
Download