Перейти к содержимому

SEMAT

SEMAT (Software Engineering Method and Theory) — инициатива по превращению программной инженерии в настоящую научно-техническую дисциплину.

SEMAT - это не метод, он не конкурирует с agile-подходами или “водопадом”, а подкрепляет их, делает лучше и при этом позволяет быстро понять, в каком состоянии находится проект. В каждой организации применяются самые разные языки программирования, среды и методологии разработки, но без единой платформы SEMAT они будут существовать сами по себе, без взаимосвязей с единой проектной структурой. SEMAT kernel - “метаметод”, который предоставляет универсальные механизмы измерения и анализа процесса производства, контроля за его прогрессом.

Главной своей задачей SEMAT ставит выработку нового набора типов компонент метода (новую “схему акта деятельности”), по составу которого будет достигнут не столько “научный результат” (творцов в SEMAT более чем хватает), но общественное согласие. По факту, основатели SEMAT хотят повторить успех UML в области SME — в начале 90-х по поводу UML договорились между собой представители самых разных методологий разработки и соответствующих им языков ОО-моделирования. Результат известен, UML сегодня “царь горы”. Те же самые люди, которые занимались унификацией UML из своих разнородных подходов в середине 90-х, возглавляют теперь SEMAT. Тем самым развитие SME приобретает еще и социальное измерение: способ задания в SEMAT онтологии метода упирает на “разделяемость” (shared) множеством людей, как основное свойство онтологии — когда они получат результат (набор компонент метода), по факту под этим результатом подпишутся множество людей, и SEMAT будет претендовать на статус “стандарта де-факто”.

Semat-concept

В концепции SEMAT выделяют:

  1. Ядро. Под всеми методологиями лежит единое ядро (это то, что в девелоперских проектах делается всегда и везде). Ядро не “математично”, а представляет собой скорее экспертные суждения. Главный принцип его формирования таков: использовать только что, что нужно абсолютно всем. При этом, конечно, пользователи могут добавлять собственные проектные практики, которые описываются в терминологии ядра и таким образом становятся более понятными.
    • Альфы. Ядро само по себе очень компактно, а основная работа с помощью SEMAT строится на так называемых “альфах”, абстрактных атрибутах, которые изменяются в проекте, и изменения которых нужно понимать, отслеживать, обеспечивать, направлять, контролировать.
  2. Язык. Так как разработчики документацию и книги практически не читают, им нужно предоставить интуитивно понятный графический синтаксис (символический визуальный язык). Эффект от него поразительный: например, полсотни страниц классического описания Scrum умещается в две страницы в синтаксисе SEMAT.
  3. Практики - последовательность действий, совершаемых в рабочих процессах. Практики описываются элементами Ядра.
  4. Методы - наборы практик.