• 18 октября 2014, суббота
  • Санкт-Петербург, пл. Победы, 1

Тренинг Евгения Кривошеева «Целостный дизайн»

Регистрация на событие закрыта

Извините, регистрация закрыта. Возможно, на событие уже зарегистрировалось слишком много человек, либо истек срок регистрации. Подробности Вы можете узнать у организаторов события.

Другие события организатора

3440 дней назад
с 10:00 18 октября до 19:00 19 октября 2014
Санкт-Петербург
пл. Победы, 1

18 и 19 октября 2014 года в Санкт-Петербурге состоится мастер-класс Евгения Кривошеева по методикам принятия осознанных проектных решений, на котором вы узнаете о практических приёмах, позволяющих принимать взвешенные решения при разработке программного обеспечения. Тренинг является расширенной версией мастер-класса «Проектирование обоснованной архитектуры», дополненной большим количеством практических упражнений.

Хороший дизайн минимизирует количество необходимых решений.

Этот тренинг – углубление прошлогоднего курса про обоснованную архитектуру, которая очень понравилась участникам. Но многие участники высказались за увеличение длительности за счет введения углубленной практики. Мы рады предложить Вам обновленную и углубленную версию этого тренинга.

Основной фокус тренинга лежит в плоскости обеспечения успеха Ваших проектов по разработке ПО. В условиях высокой неопределенности и изменчивости особое внимание стоит уделять обоснованности инженерных решений, способности поддерживать свою систему и, внезапно, здравому смыслу.

Авторы курса постарались обобщить успешный опыт, здравый смысл и практики Agile и дать Вам конкретные модели и инструменты, которые Вы сможете сразу же применить на производстве.

 

Цели

Для непрерывного повышения качества дизайна и кода, формирования соглашений в команде, получения удовольствия от разработки разработчики, проектировщики и архитекторы:

  1. осознают важность требований – функциональных и атрибутов качества и смогут в своих проектах обеспечить их реализуемость минимальными затратами

  2. разберутся с эффективным способом проектирования и смогут на практике выработать общекомандные принципы и соглашения

  3. поймут способы работы с неопределенностью и смогут решать бизнес-задачи даже в условиях, когда ничего не ясно и все постоянно меняется

  4. разберутся, зачем нужны методология и бизнес-модель компании при разработке и как они определяют дизайн и архитектуру

  5. почувствуют практику emergent design и смогут свободно развивать свой продукт в условиях непрерывного потока изменений

  6. поймут способы описания архитектуры и смогут на практике концентрировать усилия на наиболее важных вопросах для обеспечения качества сейчас и в будущем

  7. поймут ключевые метрики ООП-дизайна и смогут объективно оценивать состояние своего проекта

  8. разберутся с принципами ООП-проектирования и смогут на практике обоснованно выбирать из них и непрерывно повышать качество дизайна

Для выработки общих архитектурных принципов и соглашений в команде, резкого ускорения разработки, фокуса команды на качестве и поддерживаемости тимлиды и PM:

  1. получат четкую и простую модель принятия решений и смогут выработать общие руководства и соглашения в своей команде, направленные на минимизацию бюджетов и максимизацию качества

  2. почувствуют практику emergent design и смогут значительно повысить скорость разработки за счет откладывания некритичных решений и фокусировки на критичных

  3. поймут способы описания архитектуры и смогут на практике быстро проверять наиболее критические точки в результатах работы команды

  4. поймут ключевые метрики ООП-дизайна и смогут быстро оценивать качество проекта в текущий момент и его динамику

Опыт на старте

  1. Желателен опыт промышленной разработки от 1 года

Программа

  1. Обзор тренинга

  2. Знакомство и сбор проблем

  3. Разбивка по командам и формулировка кейсов

  4. Архитектурная методология

    1. Примеры типовых рефакторингов

    2. Проблема осознанности решений

    3. Модель требований

    4. Метафора и vision

    5. Модель предметной области

    6. Дизайн как компромисс

    7. Принцип специализации

    8. Соглашения и guidelines

    9. Модель процесса разработки

    10. Типовые процессные паттерны

    11. Бизнес-модель

    12. Типовые паттерны бизнес-моделей

    13. Решения как экономическая задача на всех уровнях

  5. Практика:

    1. Типовые критические пути в современных системах

    2. Определение границ системы

    3. Генерация беклога

    4. Формулировка внешних атрибутов качества и критического пути

    5. Внутренние guidelines

  6. Как принципы agile определяют архитектуру

    1. Закон единообразия

    2. Итерации как адресация внешней неопределенности

    3. Менеджмент и коммуникации как адресация внутренней неопределенности

    4. Модель “разработка как сервис” в противовес проектной модели

    5. Инкрементальная архитектура

  7. Описание архитектуры

    1. Границы системы

    2. Подход «точек зрения» и архитектурных представлений («view»)

    3. Точки зрения: 4+1 и Rozansky&Woods

  8. UML

    1. Виды диаграмм и их связь с точками зрения

    2. Диаграмма классов

  9. Практика: моделирование предметной области

  10. Метрики ООП-дизайна

    1. Суть ООП как работа с ответственностями

    2. Новый взгляд на инкапсуляцию, абстракцию, полиморфизм

    3. Coupling

    4. Cohesion

    5. Cyclomatic Complexity

    6. Sonar Demo w/SQA plugin

    7. Отображение метрик на атрибуты качества

  11. Практика:  описание архитектуры

  12. Философия Emergent Design

    1. Подход Lean к принятию архитектурных решений

    2. Выявление критических путей для архитектурных решений

  13. Практика: обоснование необходимости архитектурных решений

  14. Фрактальная природа проектов

    1. Множественные трассы сценариев

  15. Верификация и валидация архитектуры

    1. Tracing

  16. Практика: проверка архитектуры

  17. Контрактное проектирование

    1. DbC vs Defensive Programming

  18. Квадрант типизаций в ООП

  19. Принципы ООП-проектирования

    1. SOLID

    2. TDA

    3. LoD

  20. Практика: детальное проектирование

  21. Next Big Thing: functional programming

  22. Завершение и разбор вопросов

В чем отличие от других тренингов по проектированию

Это, без преувеличения, уникальный тренинг – Вы не найдете подобных русскоязычных аналогов. Опыт авторов был четко структурирован, чтобы охватить все уровни software engineering: реализацию, дизайн, требования, процесс и бизнес-модель компании. Именно такой подход позволяет участникам увидеть целостную картину их работы и вырабатывать максимально эффективные решения в своей работе. Ведь разработчикам нигде не объясняют, зачем именно им важно понимать бизнес-модель и требования – как конкретно они влияют на архитектуру и дизайн.

Мы фокусируемся на конкретных и понятных целях наших участников, поэтому все темы рассматриваются через вопросы практического применения. Участники в рамках практики сами почувствуют специфику и смогут сделать самостоятельные выводы. А все устные обсуждения основаны не на книжных примерах, а на опыте и вопросах непосредственных участников тренинга. Мы обсудим именно Ваши проблемы и пожелания.

И помните – «хорошая архитектура минимизирует количество решений».

 

662a3562-a1e1-4300-8673-ad67b48deed4

 

О тренере

Евгений Кривошеев консультирует компании TOP-50 из российского IT в направлении улучшения эффективности и гибкости ИТ-подразделений. Сторонник внедрения гибких процессов «снизу», посредством распространения инженерных практик и осознанного подхода к проектированию.

В прошлом — архитектор в крупных коммерческих проектах. Имеет более чем семилетний опыт преподавания технологий на платформах J2SE, J2EE, BEA Systems, IBM и параллельной разработки. Отличительная черта — объединение широкого кругозора и практических приемов, полученных в реальных проектах. Способен донести сложные технологические знания самому широкому кругу слушателей. Тренер компании ScrumTrek, в настоящее время активно развивает проект SkillTrek.

 

Контактное лицо: Андрей Дмитриев, +7(911)2805326

Регистрация