Автор статьи: Максим Рогоза
Я использую Архимейт в своей работе уже более 7 лет. Когда я познакомился с этим языком, то он привлек меня тем, что позволял изображать систему в динамике, то есть отображать не только структуру программы, но и бизнес-процессы, которые она автоматизирует, и средства, на которых она развернута. К тому же Архимейт казался очень простым — подумаешь, каких-то 10 стрелок и 20 компонентов. На тот момент я был уже очень опытным программистом и архитектором, у меня был огромный опыт проектирования систем и баз данных, также я на приличном уровне освоил несколько языков программирования. И казалось, что выучить такой простой язык — это дело нескольких часов.
Но как же я был не прав: приличные Архимейт модели у меня стали получаться только через 3 месяца, а спустя год я понял, что всё, что я рисовал ранее — хорошо бы перерисовать (справедливости ради, это был все-таки перфекционизм). Но вот почему Архимейт оказалось освоить совсем не так просто?
Несколько позже, когда я уже сам стал обучать других людей языку Ахимейт, то я понял, что с этой проблемой сталкиваются практически все, кто начинает погружаться в этот язык. Опытные разработчики легко запоминают все элементы языка, но вот как только дело доходит до моделирования — начинаются проблемы. Люди. Знакомые с UML изображают статичные архитектурные схемы — похожие на компонентные диаграммы UML. Специалисты, знакомые с BPML или другими нотациями описания бизнес-процессов, рисуют хорошие схемы, описывающие бизнес-процессы. Но вот объединить все в единую модель, как задумали создатели Архимейта, поначалу не получается ни у кого.
Понять, в чем причина, мне удалось благодаря тому, что на тот момент я увлекся изучением норвежского языка, и в процессе изучения мне удалось нащупать некоторые параллели. И ведь действительно, Архимейт — это язык, то есть сложная знаковая система, соотносящая понятийное содержание и типовое звучание (написание). Одним словом, такой же язык, как и те, что используют люди для письма. А ведь изучение любого языка — это не только изучение слов и грамматических правил. Чтобы изучить язык, обязательно нужна практика. С помощью практики мозг учится использовать языковые конструкции для описания мыслей и образов, которые существуют у человека в виде некого ментального представления. Невозможно перевести текст с одного языка на другой, просто подставляя слова одного языка на место слов другого. Даже перестроения фразы под новые грамматические конструкции будет недостаточно. Чтобы хорошо перевести текст с одного языка на другой, нужно прочитать фразу, осознать ее, и после построить новую, используя языковые конструкции второго языка. Ровно по этой же причине люди, знакомые с каким-то языком моделирования, не могут сразу начать полноценно моделировать на Архимейт. Архимейт может использовать похожие компоненты и связи, но структура языка получается другой, и модели другие.
У меня на изучение Архимейта до уровня, когда я смог сносно рисовать модели, ушло 3 месяца. Конечно, что-то я мог рисовать гораздо раньше, но вот именно сложные модели стали получаться за такой срок. Кстати говоря, норвежский на базовом уровне я смог освоить за такой же срок, так что процессы обучения новому языку происходят примерно одинаково. Оба языка я изучал полностью самостоятельно — то есть рисовал, ну или говорил, потом смотрел/слушал, исправлял, потом снова рисовал и так далее, пока не стало получаться хорошо. В последствии мне пришлось обучать Архимейту других людей и в построении обучения я начал использовать тот же подход — основной упор на практику и разбор ошибок.
По моему опыту, обучение в группе с преподавателем и большим количеством практики делает изучения языка гораздо более эффективным. Например, на моем курсе, который я веду в OTUS, студенты с минимальным опытом осваивают Архимейт за 2 месяца. Очень помогает работа в группе и совместный разбор ошибок, когда студенты видят не только свои ошибки, но и ошибки своих товарищей. Все это позволяет изучать язык эффективнее.
Кстати сказать, в начале каждого курса у меня возникают моменты, когда студенты начинают просить показать серьезные модели или жалуются на то, что в качестве примера я показываю простые «синтетические» диаграммы. Им кажется, что это не серьезно. Но ведь и изучение иностранных языков все начинают с фраз типа My name is Vasya, а не с чтения поэм Шекспира. В начале обучения мозг не способен воспринимать сложные языковые конструкции — да, их можно запомнить, но понимания не будет, и не будет возможности на их основе строить что-то свое. Поэтому правильный подход к изучению любого языка (включая Архимейт) — это обучение от простого к сложному и обязательно практика, лучше в группе (аналог погружению в языковую среду). Тогда обучение получается легким и эффективным.
В заключение хотелось бы дать такой совет: если вы решили самостоятельно освоить Архимейт — не надейтесь, что вы сделаете это быстро, не пытайтесь искать в интернете схемы и их копировать — гораздо лучше начать потихоньку моделировать какие-то простые вещи, а потом самостоятельно и критически разбирать то, что получилось. Если есть возможность обратиться к коллеге или другу, знакомому с языком, то можете показывать свои модели для получения обратной связи и так, постепенно усложняя, вы обязательно освоите моделирование. Особенно, если у вас уже есть опыт использования других архитектурных языков. Если же есть возможность учиться в группе, то обучение для вас пройдет гораздо проще и быстрее. Если время и средства позволяют, не отказывайте себе в такой возможности — так вы потратите гораздо меньше своего времени, а результат будет несомненно лучше.
Первые шаги можно сделать, посетив открытый урок «Описание имплементации и внедрения на языке Архимейт». На нем изучим назначение слоя имплементации и внедрения, его назначение и практику применения. Записаться можно по ссылке.