Извините, регистрация закрыта. Возможно, на событие уже зарегистрировалось слишком много человек, либо истек срок регистрации. Подробности Вы можете узнать у организаторов события.
18 и 19 октября 2014 года в Санкт-Петербурге состоится мастер-класс Евгения Кривошеева по методикам принятия осознанных проектных решений, на котором вы узнаете о практических приёмах, позволяющих принимать взвешенные решения при разработке программного обеспечения. Тренинг является расширенной версией мастер-класса «Проектирование обоснованной архитектуры», дополненной большим количеством практических упражнений.
Хороший дизайн минимизирует количество необходимых решений.
Этот тренинг – углубление прошлогоднего курса про обоснованную архитектуру, которая очень понравилась участникам. Но многие участники высказались за увеличение длительности за счет введения углубленной практики. Мы рады предложить Вам обновленную и углубленную версию этого тренинга.
Основной фокус тренинга лежит в плоскости обеспечения успеха Ваших проектов по разработке ПО. В условиях высокой неопределенности и изменчивости особое внимание стоит уделять обоснованности инженерных решений, способности поддерживать свою систему и, внезапно, здравому смыслу.
Авторы курса постарались обобщить успешный опыт, здравый смысл и практики Agile и дать Вам конкретные модели и инструменты, которые Вы сможете сразу же применить на производстве.
Цели
Для непрерывного повышения качества дизайна и кода, формирования соглашений в команде, получения удовольствия от разработки разработчики, проектировщики и архитекторы:
осознают важность требований – функциональных и атрибутов качества и смогут в своих проектах обеспечить их реализуемость минимальными затратами
разберутся с эффективным способом проектирования и смогут на практике выработать общекомандные принципы и соглашения
поймут способы работы с неопределенностью и смогут решать бизнес-задачи даже в условиях, когда ничего не ясно и все постоянно меняется
разберутся, зачем нужны методология и бизнес-модель компании при разработке и как они определяют дизайн и архитектуру
почувствуют практику emergent design и смогут свободно развивать свой продукт в условиях непрерывного потока изменений
поймут способы описания архитектуры и смогут на практике концентрировать усилия на наиболее важных вопросах для обеспечения качества сейчас и в будущем
поймут ключевые метрики ООП-дизайна и смогут объективно оценивать состояние своего проекта
разберутся с принципами ООП-проектирования и смогут на практике обоснованно выбирать из них и непрерывно повышать качество дизайна
Для выработки общих архитектурных принципов и соглашений в команде, резкого ускорения разработки, фокуса команды на качестве и поддерживаемости тимлиды и PM:
получат четкую и простую модель принятия решений и смогут выработать общие руководства и соглашения в своей команде, направленные на минимизацию бюджетов и максимизацию качества
почувствуют практику emergent design и смогут значительно повысить скорость разработки за счет откладывания некритичных решений и фокусировки на критичных
поймут способы описания архитектуры и смогут на практике быстро проверять наиболее критические точки в результатах работы команды
поймут ключевые метрики ООП-дизайна и смогут быстро оценивать качество проекта в текущий момент и его динамику
Опыт на старте
Желателен опыт промышленной разработки от 1 года
Программа
Обзор тренинга
Знакомство и сбор проблем
Разбивка по командам и формулировка кейсов
Архитектурная методология
Примеры типовых рефакторингов
Проблема осознанности решений
Модель требований
Метафора и vision
Модель предметной области
Дизайн как компромисс
Принцип специализации
Соглашения и guidelines
Модель процесса разработки
Типовые процессные паттерны
Бизнес-модель
Типовые паттерны бизнес-моделей
Решения как экономическая задача на всех уровнях
Практика:
Типовые критические пути в современных системах
Определение границ системы
Генерация беклога
Формулировка внешних атрибутов качества и критического пути
Внутренние guidelines
Как принципы agile определяют архитектуру
Закон единообразия
Итерации как адресация внешней неопределенности
Менеджмент и коммуникации как адресация внутренней неопределенности
Модель “разработка как сервис” в противовес проектной модели
Инкрементальная архитектура
Описание архитектуры
Границы системы
Подход «точек зрения» и архитектурных представлений («view»)
Точки зрения: 4+1 и Rozansky&Woods
UML
Виды диаграмм и их связь с точками зрения
Диаграмма классов
Практика: моделирование предметной области
Метрики ООП-дизайна
Суть ООП как работа с ответственностями
Новый взгляд на инкапсуляцию, абстракцию, полиморфизм
Coupling
Cohesion
Cyclomatic Complexity
Sonar Demo w/SQA plugin
Отображение метрик на атрибуты качества
Практика: описание архитектуры
Философия Emergent Design
Подход Lean к принятию архитектурных решений
Выявление критических путей для архитектурных решений
Практика: обоснование необходимости архитектурных решений
Фрактальная природа проектов
Множественные трассы сценариев
Верификация и валидация архитектуры
Tracing
Практика: проверка архитектуры
Контрактное проектирование
DbC vs Defensive Programming
Квадрант типизаций в ООП
Принципы ООП-проектирования
SOLID
TDA
LoD
Практика: детальное проектирование
Next Big Thing: functional programming
Завершение и разбор вопросов
В чем отличие от других тренингов по проектированию
Это, без преувеличения, уникальный тренинг – Вы не найдете подобных русскоязычных аналогов. Опыт авторов был четко структурирован, чтобы охватить все уровни software engineering: реализацию, дизайн, требования, процесс и бизнес-модель компании. Именно такой подход позволяет участникам увидеть целостную картину их работы и вырабатывать максимально эффективные решения в своей работе. Ведь разработчикам нигде не объясняют, зачем именно им важно понимать бизнес-модель и требования – как конкретно они влияют на архитектуру и дизайн.
Мы фокусируемся на конкретных и понятных целях наших участников, поэтому все темы рассматриваются через вопросы практического применения. Участники в рамках практики сами почувствуют специфику и смогут сделать самостоятельные выводы. А все устные обсуждения основаны не на книжных примерах, а на опыте и вопросах непосредственных участников тренинга. Мы обсудим именно Ваши проблемы и пожелания.
И помните – «хорошая архитектура минимизирует количество решений».
О тренере
Евгений Кривошеев консультирует компании TOP-50 из российского IT в направлении улучшения эффективности и гибкости ИТ-подразделений. Сторонник внедрения гибких процессов «снизу», посредством распространения инженерных практик и осознанного подхода к проектированию.
В прошлом — архитектор в крупных коммерческих проектах. Имеет более чем семилетний опыт преподавания технологий на платформах J2SE, J2EE, BEA Systems, IBM и параллельной разработки. Отличительная черта — объединение широкого кругозора и практических приемов, полученных в реальных проектах. Способен донести сложные технологические знания самому широкому кругу слушателей. Тренер компании ScrumTrek, в настоящее время активно развивает проект SkillTrek.
Контактное лицо: Андрей Дмитриев, +7(911)2805326