Описание
В данном курсе участники знакомятся с основными понятиями и контекстом архитектуры ПО, с практикой идентификации существенных требований, проектирования, документирования и анализа, которые архитектор ПО может применять в своей работе для проектов с различной предметной областью и технологической базой.
Теоретический материал подкреплён примерами, короткими письменными и устными упражнениями для участников. Вторая часть каждого дня курса даёт возможность применить эти практики, работая в команде по 3-4 человека: необходимо проработать пример от постановки бизнес-целей к черновому архитектурному документу. Тренер и другие команды дают оценку и ставят новые вызовы вашему решению.
удостоверение о повышении квалификации государственного образца
Цели
Для ведущего разработчика - понять, в чем заключается работа архитектора, и какие навыки следует развивать, какие новые области осваивать для овладения данной специальностью.
Для аналитика - разобраться, как разделить обязанности с обязанностями архитектора, что лучше требовать от архитектора, а что наоборот, должен предоставить аналитик. Понять, как лучше поделить управление требованиями и общение с разными стейкхолдерами между аналитиком и архитектором; почувствовать на собственном опыте, с какими вопросами и сложностями сталкиваются архитекторы в своей работе.
Для руководителя проекта - прояснить, нужна ли в подразделении выделенная позиция архитектора, что теряет проект, если такой позиции нет. Чем должен заниматься специалист на этой позиции, какие цели и задачи необходимо ставить архитектору и как правильно оценивать его работу.
Целевая аудитория
Дополнительная:
- архитекторы;
- технические лидеры и ведущие разработчики;
- системные аналитики и проектировщики.
Даже если в организационной структуре не выделена отдельная позиция архитектора, представление о практиках работы с архитектурой ПО совершенно необходимо разработчикам и тех. лидерам для того, чтобы обеспечить долгосрочное внутреннее и внешнее качество создаваемых систем и достигать целей проектов. Для аналитиков и менеджеров курс также очень полезен, так как даёт достаточно подробное понимание работы архитектора, методов этой работы, и того, как необходимо со своей позиции поддерживать и обеспечивать эту работу. Знания и навыки, которые получают участники тренинга, фундаментальны и в силу этого применимы в проектах для любой предметной области и в процессах, построенных по любым методологиям разработки.
- менеджеры проектов, качества, предпродажной подготовки.
Предварительная подготовка
- Опыт в программной инженерии в различных ролях более трех лет.
- Более 1 года участия в проектах разработки ПО в одной из ролей, указанных в целевой аудитории.
- Базовые знания английского языка.
Разбираемые темы
-
1. Введение в курс (теория - 2 ч.)
- Контекст;
- Основные понятия;
- Обзор дисциплины проектирования и анализа архитектур программных систем;
- Роль архитектора.
-
2. Архитектура в жизненном цикле проекта разработки ПО (теория - 2 ч.)
- Применение изученных архитектурных практик в жизненном цикле проектов разработки ПО, их сочетание с разными проектными методологиями, в т. ч. гибкими (Agile) методологиями разработки;
- Разновидности роли архитектора, взаимодействие с ролями аналитика и менеджера проекта.
-
3. Инициация проекта (теория - 2 ч., практика - 2 ч.)
- Взаимосвязь архитектуры с системным окружением (техническим и организационным, заинтересованными сторонами и бизнес-целями;
- Выявление заинтересованных сторон и бизнес-целей.
-
4. Идентификация требований (теория - 3 ч., практика - 3 ч.).
- Формализация и приоритезация требований к характеристикам качества системы: производительность и масштабируемость, доступность, безопасность, изменчивость и пр.
-
5. Проектирование архитектуры (теория - 3 ч., практика - 3 ч.)
- Понятие тактики проектирования, метод проектирования архитектуры от атрибутов качества (Attribute Driven Design, ADD);
- Процесс принятия решений, паттерны, подходы, стили;
- Типичные тактики для достижения основных характеристик качества.
-
6. Документирование архитектуры (теория - 3 ч., практика - 3 ч.)
- Назначение и структура описания архитектуры; подход «точек зрения» (viewpoints) и архитектурных представлений (views);
- Детальное рассмотрение нескольких распространённых наборов «точек зрения» (“Kruchten 4+1” и “Rozanski & Woods”), использование техник моделирования в документировании;
- Перспективы применённых тактик для достижения требуемых характеристик качества системы;
- Типовой шаблон описания архитектуры;
- Использование упрощённого описания на начальных этапах проекта;
- Применение альтернативных техник описания архитектуры ПО (C4, cloudfront).
-
7. Архитектурный анализ (теория 3 ч., практика 1 ч.)
- Формальные процессы анализа и оценки архитектуры с вовлечением различных заинтересованных сторон, выявление принятых компромиссных решений и архитектурных рисков, дальнейшая работа с рисками.
- Методы оценки ATAM (Architecture Tradeoff Analysis Method), ARID (Active Reviews for Intermediate Designs), CBAM (Cost-Benefit Analysis Method).
IT Архитектор с обширным опытом в сфере интеграции: SOA, BPM, Веб-Сервисы, Системы ориентированные на сообщения, Микросервисы.
Работал с существующими системами и участвовал в разработке систем с нуля.
Александр – эксперт с практическим опытом более 14 лет. За свою карьеру он успешно реализовал проекты в ведущих российских и мировых IT-компаниях.
О проектах:
В рамках проектов Александр занимался разработкой клиентских (Web и Desktop) и серверных приложений (SOA, MSA, Mono), разработкой архитектурных IT-систем, настройкой рабочих и IT процессов, анализом и оптимизацией проектов по сложности и стоимости.
Также Александр занимался разработка IT-стратегий для клиентов и утверждением архитектурных стандартов для приложений, участвовал в разработке бизнес-архитектуры.
Текущая сфера интересов - разработка распределенных систем с ограниченным уровнем доверия.
Курсы, сертификаты, членство в профессиональных организациях:
-
ICAgile Certified Professional
-
MongoDB M220 JavaScript
-
MongoDB M220 Java
Андрей с 2007 г. занимается разработкой ПО в финансовой области с использованием стека технологий .Net. Имеет большой опыт построения middle-ware-систем, а также обладает технологической экспертизой решений. Основные задачи стоят в области интегрирования нескольких разрозненных систем в единую информационную систему с высоким уровнем отклика.
Более 5 лет Андрей активно ведет собственный блог (http://softblog.violet-tape.ru), где рассказывает о технологиях разработки в статьях и видеоуроках. Является постоянным участником дискуссионного клуба Microsoft «Клуб директоров разработки». Также выступал в качестве автора для журнала MSDeveloper.ru.
Андрей постоянно интересуется новыми технологиями, способными сократить рутинную ручную работу, максимально отделить рутинные процессы от человеческого влияния: Continuous Integration, Testing, Deployment.
В Luxoft Training Андрей проводил курсы для сотрудников таких компаний, как Aker Solutions, Ижмаш - Беспилотные системы, Ойл-Телеком, Лаборатория Касперского, Московская биржа - Технологии, Video International, Ай-Теко, UBS, CreditSuisse.