А.Байда -- OMG Essence и SEMAT

2,190 views

Published on

Доклад Андрея Байды "Стандарт OMG Essence и работа инициативы SEMAT" на 71 заседании Русского отделения INCOSE, 13 февраля 2013г.

Published in: Technology

А.Байда -- OMG Essence и SEMAT

  1. 1. Стандарт OMGEssence и работаинициативы SEMAT Андрей Байда
  2. 2. История• Сентябрь 2009: инициатива основана Бертраном Майером, Ричардом Соли и Иваром Якобсоном• Декабрь 2009: опубликован призыв к действию (http://semat.org/?page_id=2)• Февраль 2010: видение на год (http://blog.paluno.uni- due.de/semat.org/wp-content/uploads/2012/03/SEMAT-vision.pdf)• Июнь 2011: OMG FACESEM (Foundation for the Agile Creation and Enactment of Software Engineering Methods) RFP• Март 2012: видение на 3 года (http://blog.paluno.uni- due.de/semat.org/wp-content/uploads/2012/03/Semat_- _Three_Year_Vision13Jan12.pdf)• Осень 2012: появляются инструменты (карты, моделер)• Январь 2013: вышла книга «The Essence of Software Engineering» 2
  3. 3. Структура SEMATAdvisory Board: Ivar Jacobson, Bertrand Meyer, Richard SoleyExecutive Committee Members: Paul McMahon (Chair), Arne-JorgenBerre, Michael Goedicke, Shihong Huang, Mira Kajko-Mattsson, BruceMacisaac, Ed Seymour, Ian Michael SpenceTracks:• Kernel track• Language track• Theory trackRegional Chapters:• China Chapter• Latin American Chapter• Russian Chapter 3
  4. 4. OMG• Июнь 2011: OMG FACESEM RFP• Февраль 2012: Первая заявка (3 конкурирующих: Essence от SEMAT, KUALI-BEH от нескольких профессоров из Мексики и SEMDM от команды ISO 24744)• Август 2012: Переработанные заявки Essence (включены суб- альфы) и KUALI-BEH• Ноябрь 2012: Окончательные заявки (включены компетенции)• Декабрь 2012: Первое голосование (fast track)• Февраль 2013: Подача заявки Essence, с учетом комментариев голосовавших• Март 2013: Второе голосование (fast track) 4
  5. 5. Призыв к действиюСегодня некоторые области программной инженерии страдают от незрелыхпрактик. Характерные проблемы включают:• Распространенность увлечений, более характерная для индустрии моды, нежели для инженерных дисциплин;• Отсутствие основательной, широко признанной теоретической базы;• Огромное число методов и их вариантов, разница между которыми плохо понимается и искусственно преувеличивается;• Отсутствие заслуживающих доверия экспериментальных оценок и валидации;• Разрыв между научными исследованиями и практическим применением.Мы поддерживаем процесс переопределения программной инженерии на основеубедительной теории, проверенных принципов и лучших практик, которые:• Включают ядро, состоящее из общепринятых элементов, с возможностью расширения под конкретные нужды;• Затрагивают как вопросы технологии, так и человеческий фактор;• Поддержаны индустрией, наукой, исследователями и пользователями;• Поддерживают расширение, вызванное изменениями в требованиях и технологиях. 5
  6. 6. In a Nut Shell – what we need to change Industry AcademicsProfessionals Executives Education ResearchWant to become Big companies have -Teaching instances -The Gap betweenexperts. Challenges: many processes. of methods such as research and-Their skills are not Challenges: Scrum, RUP, instead industryeasily reusable for a -Reuse practices of common base; -No widely acceptednew product. -Reuse training doesn’t create theory-Their career path -“Reuse” of people generalistsfollows a zig-zag track -Evolutionaryfrom hype to hype. improvement is hard SEMAT targets the whole software community. 6
  7. 7. Key New Principles• Being agile when working with methods. – The full team owns their method, rather than a select few – Focus on method use rather than comprehensive method description – Evolve your team’s method, rather than keeping your method fixed 7
  8. 8. Key New Principles• Being agile when working with methods.• Separation of Concerns 8
  9. 9. Key New Principles• Being agile when working with methods.• Separation of Concerns, For instance, specify the kernel, and make extensions without changing or complicating the kernel – Separating the kernel from practices – Separating alphas from work products – Separating the essence from the details. – Separating what the least experienced developer needs from what experienced developers need. 9
  10. 10. The approach is practical• The common ground is the kernel Kernel 10
  11. 11. The approach is practical• The common ground is the kernel Онтология? – Inside the Kernel are Kernel elements. They have states to measure progress and health. – Focus on method usage rather than method Kernel descriptions opportunity stakeholders provide use and consume focuses set up to address software software system support requirements system fulfils Scopes and constrains produces work team performs and plans way of working 11
  12. 12. Связь между методами, практиками, ядром и языком“I am freeing the statue from the block” - Michelangelo (attributed) So to paraphrase Michelangelo: “We are freeing the kernel from the methods” 12
  13. 13. Ядро (kernel)A kernel is a set of elements used to form a commonground for describing a software engineering endeavor.Состоит из альф и пространств дел, объединенных вобласти интересов.Ядро также предоставляет набор компетенций, которыедополняют альфы и пространства дел.Ядро:• Исполняемое• Расширяемое• Практичное 13
  14. 14. Альфы (alphas) (Customer)Решение Клиент < определяют (identifies) Заинтересованные Возможность стороны Opportunity Stakeholders consume) (use and используют focuses > уточняет организуются для реагирования на поддерживают (support) > >(Solution) Требования Программная система Requirements Software System < удовлетворяет (fulfils) (set up to address) > constrains) > (Scopes and ограничивают предмет и определяют (produces) < производит Работы < планирует и выполняет Команда Предпринятие Work (performs and plans) Team (Endeavor) Технология работы (Way of Working) 14
  15. 15. Стейкхолдеры Люди, группы или организации, кто (Заинтересованные затрагивает или которые затрагиваются программной системой. стороны) Признаны Стейкхолдеры были определены. The stakeholders have been identified.Стейкхолдеры (Stakeholders) Recognized Механизмы вовлечения стейкхолдеров согласованы и назначены Представлены представители стейкхолдеров. Represented The mechanisms for involving the stakeholders are agreed and the stakeholder representatives have been appointed. Представители стейкхолдеров активно вовлечены в работу и выполняют свои Вовлечены обязанности. Involved The stakeholder representatives are actively involved in the work and fulfilling their responsibilities. В согласии Представители стейкхолдеров в согласии. In Agreement The stakeholder representatives are in agreement. Удовлетворены для Минимальные ожидания представителей стейкхолдеров были достигнуты. разворачивания The minimal expectations of the stakeholder representatives have been achieved. Satisfied for Deployment Удовлетворены Система удовлетворяет или превышает минимальные ожидания в использоании стейкхолдеров. Satisfied in Use The system meets or exceeds the minimal stakeholder expectations. 15
  16. 16. Пространства дел (activity spaces)(Customer)Клиент Исследовать возможности Понять потребности Обеспечить удовлетворение Использовать систему заинтересованных сторон заинтересованных сторон Explore Possibilities Understand Stakeholder Needs Ensure Stakeholder Use the System SatisfactionРешение(Solution) Управлять Спроектировать Протестировать Развернуть систему Понять требования систему Изготовить систему систему системой Understand the Deploy Shape Implement the System Test the System Operate Requirements the System the System the System Предпринятие (Endeavor) Подготовиться к работе Координировать дела Поддерживать команду Отслеживать прогресс Завершить работу Prepare to do the Work Coordinate Activity Support the Team Track Progress Stop the Work 16
  17. 17. Клиент Компетенции Представительство 1 Assists стейкхолдера Stakeholder Representation 2 AppliesРешение 3 Masters Анализ Разработка Тестирование Analysis Development Testing 4 AdaptsПредпринятие 5 Innovates Лидерство Менеджмент Leadership Management 17
  18. 18. Overview of the End of Phase Milestones Vanilla EssUP $up Stakeholders Opportunity Requirements System Work Team Way of Working Recognized Identified Initiated SeededInception Represented Solution Needed Principles Conceived Established Value Approach Foundation Involved Bounded Prepared Formed Established Selected EstablishedElaboration Demonstrable Started Collaborating In Use Under In Agreement Viable Coherent Usable Performing In Place Control AcceptableConstruction Addressed Satisfied for Addressed Performing Working Well Deployment Fulfilled Ready Concluded OperationalTransition Concluded Satisfied in Use Benefit Accrued Fulfilled Retired Closed Adjourned Retired 18
  19. 19. Как пользоваться[0. Связать достижение альфами определенных состояний спереходами между стадиями жизненного цикла.]1. Определить текущее состояние предпринятия при помощичеклистов, предлагаемых стандартом для альф.2. Определить к каким состояниям каких альф требуется перейти впервую очередь.3. Определить те задания, которые необходимо выполнить, чтобыдостичь желаемых состояний, определенных на шаге 2.[4. Убедиться, что используемые практики позволяют заполнить всепространства дел.][5. Убедиться в наличии достаточного количества членов команды снеобходимыми уровнями компетенций для успешного следованияпрактикам.] 19
  20. 20. Набор обстоятельств, который благоприятен Возможность для разработки или изменения программной системы. Коммерческая, общественная или инвестиционная возможность, которая могла бы быть адресована программным решением, определена. Определена A commercial, social or business opportunity has been identified that could be addressed Identified by a software-based solution.Возможность (Opportunity) Нужно Потребность в программном решении была решение подтверждена. Solution Needed The need for a software-based solution has been confirmed. Польза Польза успешного решения была установлена. установлена The value of a successful solution has been established. Value Established Согласовано, что решение может быть произведено достаточно быстро и Жизне- дёшево, чтобы успешно адресовать возможность. способна Viable It is agreed that a solution can be produced quickly and cheaply enough to successfully address the opportunity. Адресована Решение, которое произведено, демонстрирует адресацию возможности. Addressed A solution has been produced that demonstrably addresses the opportunity. Извлекается Эксплуатация или продажа решения создаёт осзязаемые выгоды. выгода The operational use or sale of the solution is creating tangible benefits. Benefit Accrued 20
  21. 21. Что программная система должна делать, Требования чтобы адресовать возможность и удовлетворить стейкхолдеров. Начаты Согласована потребность в новой системе. Conceived The need for a new system has been agreed.Требования (Requirements) Ограничены Назначение и тема новой системы ясны. Bounded The purpose and theme of the new system are clear. Требования обеспечивают непротиворечивое описание существенных Непротиворечивы характеристик новой системы. Coherent The requirements provide a consistent description of the essential characteristics of the new system. Приемлемы Требования описывают систему, которая будет приемлема для Acceptable стейкхолдеров. The requirements describe a system that is acceptable to the stakeholders. Достаточное количество требований было адресовано, чтобы удовлетворить Адресованы потребность в новой системе способом, приемлемым для стейкхолдеров. Addressed Enough of the requirements have been addressed to satisfy the need for a new system in a way that is acceptable to the stakeholders. Удовлетворены Требования, которые были адресованы, полностью удовлетворяют Fulfilled потребность в новой системе. The requirements that have been addressed fully satisfy the need for a new system. 21
  22. 22. Система, сделанная из программ, оборудованияПрограммная система Программная система (Software System) и данных, которая обеспечивает свою главную пользу путём выполнения программ. Архитектура, которая адресует ключевые технические риски и любые Архитектура выбрана применимые организационные ограничения, выбрана. Architecture Selected An architecture has been selected that addresses the key technical risks and any applicable organizational constraints. Исполняемая версия системы, которая демонстрирует, что архитектура Демонстрируемая Demonstrable соответствует назначению системы, доступна и поддерживает тестирование. An executable version of the system is available that demonstrates the architecture is fit for purpose and supports functional and non-functional testing. Подходит для использования Система подходит для использования и демонстрирует все качественные Usable характеристики эксплуатируемой системы. The system is usable and demonstrates all of the quality characteristics required of an operational system. Готова Система (как целое) была принята для разворачивания в её Ready эксплуатационном окружении. The system (as a whole) has been accepted for deployment in a live environment. Эксплуатируется Система используется в её эксплуатационном окружении. Operational The system is in use in a live environment. Выведена из эксплуатации Система больше не поддерживается. Retired The system is no longer supported. 22
  23. 23. Группа людей, активно участвующих в Команда разработке, сопровождении, поставке и поддержке какой-то программной системы. Намечена Миссия команды ясна и знания о том, как растить команду, наличествуют. Seeded The team’s mission is clear and the know-how needed to grow the team is in place. Команда была пополнена достаточным количеством людей с принятыми Сформирована обязательствами, чтобы начать миссию.Команда (Team) Formed The team has been populated with enough committed people to start the mission. Сотрудничает Члены команды работают как одно целое. Collaborating The team members are working together as one unit. Производит Команда работает результативно и эффективно. Performing The team is working effectively and efficiently. Распущена Команда больше не ответственна за выполнение своей миссии. Adjourned The team is no longer accountable for carrying out its mission. 23
  24. 24. Дела, включающие умственные или физические Работы усилия для достижения результата. Инициирована Работа была запрошена. Initiated Work has been requested. Подготовлена Все предусловия для начала работы выполнены. Prepared All pre-conditions for starting the work have been met.Работы (Work) Начата Работа происходит. Started The work is proceeding. Работа продвигается хорошо, риски под контролем, уровень произво- Под контролем дительности достаточен для достижения удовлетворительного результата. Under Control The work is going well, risks are under control and productivity levels are sufficient to achieve a satisfactory result. Закончена Работа по производству результатов была закончена. Concluded The work to produce the results has been concluded. Закрыта Все остающиеся служебные задачи были завершены и работа была Closed официально закрыта. All remaining housekeeping tasks have been completed and the work has been officially closed. 24
  25. 25. Адаптированный по месту набор практик иТехнология работы инструментов, используемый командой для ведения и поддержки работы. Технология работы (Way-of-Working) Принципы Принципы и ограничения, которые определяют технологию, установлены. установлены The principles, and constraints, that shape the way-of-working are established. Principles Established Ключевые практики и инструменты, которые формируют основу технологии, Основа положена выбраны и готовы к использованию. Foundation Established The key practices, and tools, that form the foundation of the way of working are selected and ready for use. Используется Некоторые члены команды используют технологию и адаптируют её. In Use Some members of the team are using, and adapting, the way-of-working. Все члены команды используют технологию работы, чтобы выполнять свою Наличествует работу. In Place All team members are using the way-of-working to accomplish their tasks. Работает хорошо Технология для команды работает хорошо. Working well The way-of-working is working well for the team. Выведена из Технология больше не используется командой. употребления The way-of-working is no longer in use by the team. Retired 25
  26. 26. Представитель A person, or group, empowered to represent aстейкхолдера subset of the stakeholders in the endeavor. Recognized The need for a sub-set of the Identified stakeholders to be represented has been identified. A stakeholder representative has been Represented empowered to work with the team and Empowered understands his or her responsibilities to Representative the team and the people he or sheStakeholders Stakeholder represents. Involved The stakeholder representative is Engaged actively involved in the work and fulfilling his or her responsibilities. In Agreement The stakeholder representative is Satisfied satisfied with the work done and the software system produced. Satisfied for The stakeholder representative is Deployment delighted with the work done and Delighted the software system produced. Satisfied in Use 26
  27. 27. A lack of something necessary, Потребность desirable or useful, requiring supply or relief. IdentifiedA need related to the opportunity and the Solutionstakeholders is identified. Identified Needed OpportunityThe value to the customers and other Value Valuestakeholders of a successful solutionthat addresses the need is Established Establishedestablished. Need DrivesThe minimal expectations for a solution Viablethat addresses the need have been met. SatisfiedThe minimal expectations for a solution Expectations Addressedthat addresses the need have been Exceededexceeded to the extent that thestakeholders are delighted.. Benefit Accrued 27
  28. 28. a condition or capability needed by aЕдиница требований stakeholder to solve a problem or achieve an objective. ConceivedA specific condition or capability Boundedthat the Software System must Identified Requirement Item Requirementsaddress has been identified. CoherentThe Requirement Item is ready to Describedbe implemented. DrivesThe Requirement Item is Acceptableimplemented in the Software ImplementedSystem and demonstrated to work.Successful implementation of the Addressed VerifiedRequirement Item in the SoftwareSystem has been confirmed. Fulfilled 28
  29. 29. An error, flaw, or fault in a Software System that Ошибка causes the system to fail to perform as required. Architecture Selected Demonstrable Software SystemAn error, fault or flaw in the Software DetectedSystem is observed and logged. UsableThe cause of the Bug in the LocatedSoftware System has been found. Bug Inhibits ReadyThe Bug has been removed from the FixedSoftware System. OperationalThe removal of the Bug from theSoftware System has been Closedconfirmed. Retired 29
  30. 30. Элемент Independently developable and testable part системы of a system. Architecture SelectedA system element has been identified as part of Demonstrablethe Software System and its responsibilities and Identified Software Systemits position in the Software System are clear. System ElementThe System Elements interfaces have been Interfaces Usableagreed. Agreed DrivesThe System Element has been implementedand tested, and is believed to be ready for Developed Readyintegration into the Software System.The System Element has been verified andis ready for live use as part of the Software Ready OperationalSystem. Retired 30
  31. 31. Член команды An individual acting as part of a team. Seeded A team member with specific skills is Wanted sought to join the team. Team Member Formed The team member is on board and learning how to contribute to the team. On-Board TEAM Collaborating The team member is helping her Drives Contributing teammates and driving the teams performance PerformingThe team member is preparing to leave the Exitingteam. Adjourned 31
  32. 32. A portion of work that can be clearly identified, Задача isolated, and then accepted by one or more team members for completion. Initiated PreparedThe task has been identified and is Identifiedready to be done Task Started WorkThe task has been accepted by one ormore team members and work has In Progress Drivesstarted. Under ControlThe work required to do the task has been Donecompleted. Concluded Closed 32
  33. 33. Overview of the End of Phase Milestones A Waterfall Lifecycle $ Stakeholders Opportunity Requirements System Work Team Way of Working Identified Initiated Principles Recognized Established Seeded (FoundationInitiation Solution Needed Established) Represented Prepared Value In Use Involved Conceived Started Formed Established In Place Bounded (Collaborating)Requirements Coherent (Performing) Under In Agreement Acceptable Control Formed (Working Well)Analysis & (Collaborating)Design (Performing) Architecture (Working Well) Viable Formed Selected (Collaborating)Implementation (Performing) Formed (Working Well) Demonstrable (Collaborating) (Usable)Testing Addressed (Performing) Satisfied for Addressed Fulfilled Ready Formed (Working Well) Deployment (Collaborating)Deployment (Performing) Concluded Satisfied in Use Benefit Accrued Operational Closed Adjourned (Retired) Retired 33
  34. 34. Exploratory $ Stakeholders Opportunity Requirements System Work Team Way of WorkingExploratory Recognized Initiated Principles Represented Identified Seeded Established Solution Needed Prepared Inception Value Approach Foundation Involved Conceived Started Formed Established Selected Established Approach Bounded Selected In Use Elaboration Collaborating Demonstrable In Place Under In Agreement Viable Coherent Usable Performing Working Well Control Acceptable Construction Usable Addressed Satisfied for Deployment Addressed Fulfilled Ready (Concluded) Performing Working Well Concluded Transition Satisfied in Use Benefit Accrued Fulfilled Operational Closed Adjourned Retired Retired 34
  35. 35. Standard $ Stakeholders Opportunity Requirements System Work Team Way of WorkingStandard Recognized Identified Principles Established Initiated Conceived Represented Solution Needed Value Bounded Approach Seeded Foundation Involved Prepared Established Selected Established Inception Started Formed In Use Coherent Demonstrable Elaboration Under In Agreement Viable Acceptable Usable Collaborating In Place Control Usable Performing Working Well Construction Addressed Ready Satisfied for Deployment Addressed Fulfilled Ready (Concluded) Performing Working Well Concluded Transition Satisfied in Use Benefit Accrued Fulfilled Operational Closed Adjourned Retired Retired 35
  36. 36. A Funding / Decision Making Lifecycle $ Stakeholders Opportunity Requirements System Work Team Way of WorkingIdea to Recognized Identified InitiatedOpportunity Conceived Represented PrinciplesDecision to Involved Solution Needed Bounded Prepared Seeded EstablishedJustify Value Approach Started FoundationDecision to In Agreement Established Coherent Formed Selected EstablishedFund In Use UnderDecision to Viable Acceptable Demonstrable Collaborating In Place ControlFund Update Usable Performing Working Well Addressed Ready Satisfied forDecision to Go Deployment Addressed Fulfilled Ready Concluded Performing Working WellPublic ConcludedDecision to Satisfied in Use Benefit Accrued Fulfilled Operational Closed Adjourned RetiredHandover Retired 36
  37. 37. Графический синтаксис fulfills > Requirements ObjectivesSoftware System Agreed Состояние Рабочий продукт Ядро Activity Activity Space Компетенция 37
  38. 38. Метод и практики Метод проекта Х Практика Архитектурная Scrum вариантов практика использования 38
  39. 39. Пример для ScrumScrum 1 Requirements Product Backlog Product Work 1..* 1 owner Sprint Sprint Backlog Team Developer Software 1..* Scrum System Increment master 39
  40. 40. Пример для Scrum Sprint Planning Meeting Sprint PlanningPrepare to do the Work Meeting Daily Scrum Coordinate the Work Daily Scrum Sprint Review Sprint Retrospective Track Progress Sprint Review Sprint Support the Team Retrospective 40
  41. 41. Средства моделированияКолода карт SEMAThttp://www.ivarjacobson.com/SEMAT_Kernel_Cards_Download/Моделлерhttp://www.ivarjacobson.com/EssWork_Practice_Workbench/ 41
  42. 42. Summary – What is new?“This (SEMAT) meeting in Zurich(2010) is likely to be an historicoccasion much like the 1968 NATOsession in Garmish.” - Watts Humphrey (CMMI) 42
  43. 43. Спасибо Вопросы? Андрей Байда (andrey.a.bayda@gmail.com) 43

×