demist / methodologies_hse

НИС "Методологии разработки ПО", ФКН ВШЭ, Старичков Н.Ю.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

year status progress

НИС "Методологии разработки ПО"

ФКН ВШЭ, 2023/2024

План занятий

✅ Введение

  • Общая идея курса
  • Информация о курсе

✅ Лекция 1

Общие понятия о методологиях разработки ПО

  • Что такое методология разработки ПО
    • Общее понятие
    • Основные элементы
  • Факторы, влияющие на выбор методологии
    • Внешние факторы
    • Внутренние факторы

✅ Лекция 2

Жизненный цикл проектирования, разработки и внедрения ПО

  • Этапы жизненного цикла проектирования, реализации и внедрения ПО
    • Формирование требований
    • Разработка концепции
    • Техническое задание
    • Эскизный проект
      • Понятие о MVP и примеры MVP
    • Технический проект
    • Рабочая документация
    • Поставка / ввод в действие
      • Варианты поставки и развертывания
    • Сопровождение

✅ Лекция 3

Базовые методологии разработки ПО (ч.1)

  • Каскадная модель
    • Общее описание
    • Хорошие примеры
    • Плохие примеры
  • V-модель
    • Общее описание
    • Хорошие примеры
    • Плохие примеры

✅ Лекция 4

Базовые методологии разработки ПО (ч.1 / продолжение)

  • Инкрементная модель
    • Общее описание
  • Итерационная модель
    • Общее описание
    • "Тонкие" примеры
    • Плохие примеры
    • Хорошие примеры

✅ Лекция 5

Базовые методологии разработки ПО (ч. 2)

  • Спиральная модель
    • Общее описание
    • Плохие примеры
    • Хорошие примеры
  • RAD-модель
    • Общее описание

✅ Лекция 6

Семейство гибких методологий

  • Общее понятие о семействе гибких методологий
  • Agile-манифест
    • Что означает и как использовать
    • Роль agile-манифеста в не-agile методологиях
  • SCRUM
    • Общая схема методологии
    • Плохой пример
    • Общие соображения, когда работает плохо
    • Хороший пример
    • Общие соображение, когда работает хорошо
  • KANBAN
    • Общая схема методологии
    • Плохой пример
    • Общие соображения, когда работает плохо
    • Хороший пример
    • Общие соображения, когда работает хорошо

✅ Лекция 7

CI/CD

  • Понятие о CI/CD/CD
  • Зачем это вообще нужно?
  • Как это устроено?
  • Роль CI/CD/CD в процессе разработки ПО
  • Пример "как это работает у нас"

✅ Лекция 8 (опциональна замена на другую тему)

Принципы проектирования ПО, ч.1

  • Что такое архитектура ПО?
  • Что такое проектирование ПО?
  • По каким критериям можно оценить архитектуру?
    • Критерии хорошей архитектуры
      • Эффективность
      • Гибкость
      • Расширяемость
      • Масштабируемость, тестируемость, возможность повторного использования, сопровождаемость
    • Критерии неудачной архитектуры
      • Жесткость
      • Хрупкость
      • Неподвижность
  • Принцип High Cohesion / Low Coupling

✅ Лекция 9 (опциональна замена на другую тему)

Принципы проектирования ПО, ч.2

  • Принципы SOLID
  • Закон Деметры
  • YAGNI
  • DRY / DIE
  • KISS

Лекция 10 (опциональна замена на другую тему)

Инструменты моделирования и проектирования - UML

  • Что такое UML?
  • Базовое понятие о нотации UML
  • Диаграмма вариантов использования
  • Диаграмма классов
  • Диаграмма размещения
  • Диаграмма последовательности
  • Диаграмма деятельности
  • Диаграмма состояний

Лекция 11 (дополнительная)

Антипаттерны

  • Понятие о паттернах и антипаттернах
  • Разные группы антипаттернов
    • Антипаттерны в ООП
    • Антипаттерны в кодировании
    • Методологические антипаттерны
    • Антипаттерны управления конфигурацией
    • Другие

Правила оценивания

Отчетные мероприятия

Научный доклад

30-минутный доклад на семинарской части курса, подготовленный студентом самостоятельно.

Основные требования к докладу:

  • Требуется подготовить презентацию
    • В презентации обязательны ссылки на источники
  • Доклад может содержать информацию по одному или нескольким пунктам (лучше всего) из списка ниже:
    • Обзор научной статьи / доклада на научной конференции на тему "методологии разработки ПО"
      • Нужно не просто пересказать статью / доклад, а провести его анализ: выделить сильные и слабые стороны, сомнительные тезисы и т.д.
    • Обзор публикации / доклада / выступления на конференции средней / крупной IT-компании с рассказом о том, как у них в компании устроены процессы разработки
      • Опять же, не просто пересказ, нужно провести анализ
      • В идеале рассматривать материалы из серии "как было" - "что сделали" - "как стало", и провести анализ, что и почему стало лучше
    • Обзор инструментов автоматизации процессов разработки / управления проектами
      • Опять же, важно провести анализ
      • Приоритет малоизвестным или сложным для освоения решениям (не нужно рассказывать про trello или рассказывать, как настроить простейший CI/CD в github actions)
        • Например, можно подготовить подробный доклад про возможности и настройку Jenkins
    • Обзор статей / докладов на тему IaaC и других современных трендов в организации процессов управления инфраструктурой
  • Презентацию + краткое описание доклада + ссылки на все источники нужно залить в этот файл README.md через pull-request

Понедельный план-график

Неделя Даты Лекция Докладчик(и) Тема доклада Ссылка на материалы
Неделя №1 18/09/2023 (1 пара) Знакомство + Введение + Общие понятия о методологиях разработки ПО Нет докладов
Неделя №2 02/10/2023 (2 пары) Жизненный цикл проектирования, разработки и внедрения ПО Фролов И.Г. Spotify Model Презентация
Неделя №3 16/10/2023 (2 пары) Жизненный цикл проектирования, разработки и внедрения ПО (продолжение) + Базовые методологии разработки ПО (ч.1) Мельник Д.С. Переход Sony на SAFe Презентация
Неделя №4 30/10/2023 (2 пары) Базовые методологии разработки ПО (ч.1) + Базовые методологии разработки ПО (ч.1 / продолжение) Нет докладов
Неделя №5 20/11/2023 (2 пары) Базовые методологии разработки ПО (ч. 2) + Семейство гибких методологий Нет докладов
Неделя №6 04/12/2023 (2 пары) CI/CD Ильин А.Д. Перевернутая система Supercell Презентация
Неделя №7 15/01/2024 (2 пары) Нет лекции 1. Попов П.Д. 2. Хоссейн Е.Г. 3. Курылин И. 1. Lean vs. Agile: Основные различия и ключевые преимущества 2. Extreme programming / Trunk based development 3. IT-компания “Тензор” – производство и внедрение 1. Материалы 2. Материалы 3. Материалы
Неделя №8 29/01/2024 (1 пара) Нет лекции 1. Сазонов О. 2. Радионов Н.Д. 1. Методология разработки "Getting Real" от 37signals 2. Методология БЭМ 1. Материалы 2. Материалы
Неделя №9 12/02/2024 (2 пары) Принципы проектирования ПО, ч.1 1. Еськова У.Д. 2. Грузинцев Е.А. 3. Валиахметов Ш.Р. 1. Продвинутая автоматизация разработки с помощью Jenkins 2. Методологии анализа данных в разработке ПО: CRISP-DM и SEMMA 3. Kubernetes 1. Материалы 2. Материалы 3. Материалы
Неделя №10 26/02/2024 (3 пары) Принципы проектирования ПО, ч.2 1. Сафронова К.Ю. 2. Владимиров А.М. 3. Никонов А.А. 4. Петянов Т.А. 5. Бородулин А.А. 1. Jira Software 2. Методология Rational Unified Process(RUP) 3. LeSS в ДоДо 4. Agile в Apple 5. Процессы разработки в Google 1. Материалы 2. Материалы 3. Материалы 4. Материалы 5. Материалы
Неделя №11 11/03/2024 (2+ пары) Устный опрос
Итого 21 пара

Подготовленные, но не рассказанные доклады

Если вы не успели рассказать доклад, но при этом хотите заработать какие-то баллы за него - вы можете подготовить презентацию (подробную) для выбранной вами темы и выложить ее в список ниже.

Если доклад подготовлен, но не рассказан, то вы получите оценку за него со штрафом в 40% (т.е. оценка за доклад будет умножена на 0.6)

‼️ Дедлайн по загрузке материалов - 29 февраля включительно - доклады проверены, оценки выставлены

В формате ФИО - Тема - Ссылка на материалы

Приладышев Юрий Владимирович - Six sigma - https://disk.yandex.ru/d/IoNwTGnB-0atBA

Алексеев Дмитрий Денисович - Методология Разработки ПО ВТБ - Материалы

Лившиц Леонид Игоревич - Microsoft Solutions Framework - Материалы

Скорик Егор Михайлович - Микросервисная архитектура (опыт работы с микросервисами в Netflix) Материалы

Шикалов Андрей Артемович - Сравнение Github Actions, Gitlab CI и Travis CI - Материалы

Лебедев Андрей Андреевич - Методология Crystal - Материалы

Тупикин Дмитрий Евгеньевич - Методология компании Adobe - Материалы

Чеботарев Остап Русланович - Применение методологии Agile в компании Ticketland - Материалы

Пальцева Злата Игоревна - Driven Development: BDD, DDD, FDD, MDD, PDD и TDDx2 - Материалы

Санников Григорий Сергеевич - Методология БЭМ - Материалы

Вечеровский Роберт Николаевич - Site Reliability Engineering - Материалы

Отчетное эссе

3-4 страничное эссе с обзором докладов, обсуждавшихся на семинарской части

‼️ Эссе необходимо подготовить до 10 марта включительно

Готовое эссе присылайте на почту nikita.starichkov@gmail.com, обязательно укажите тему письма "Отчетное эссе Методологии разработки", а в теле письма укажите свое ФИО и номер группы.

Устный опрос

На знание базовых методологий разработки, их сильных и слабых сторон

Темы устного опроса - лекции №3, №4, №5, №6 (Базовые методологии разработки ПО (ч.1, ч.2) + Семейство гибких методологий)

Первый день сдачи устного опроса - 11.03 (в рамках занятия). Записаться можно в нашей ведомости на листе Устный опрос 11.03 - запись

Второй день сдачи устного опроса - 25.03. Начало в 12:00. Записаться можно в нашей ведомости на листе Устный опрос 25.03 - запись

Вы можете сдавать в любой день по вашему желанию, но рекомендую лучше сдавать 11.03 (пока есть слоты), чтобы в сессию нам не пришлось сидеть до ночи, пока все не сдадут.

Формула оценки

Итоговая оценка = Математическое округление (0.4 * Научный доклад + 0.3 * Отчетное эссе + 0.3 * Устный опрос)

Сроки выставления оценок:

  • Оценка за доклады - ориентировочно XX
  • Оценка за эссе - ориентировочно XX
  • Оценка за устный опрос - XX
  • Итоговая оценка за курс: XX (оптимистично), XX (пессимистично)

About

НИС "Методологии разработки ПО", ФКН ВШЭ, Старичков Н.Ю.