ФКН ВШЭ, 2023/2024
- Общая идея курса
- Информация о курсе
Общие понятия о методологиях разработки ПО
- Что такое методология разработки ПО
- Общее понятие
- Основные элементы
- Факторы, влияющие на выбор методологии
- Внешние факторы
- Внутренние факторы
Жизненный цикл проектирования, разработки и внедрения ПО
- Этапы жизненного цикла проектирования, реализации и внедрения ПО
- Формирование требований
- Разработка концепции
- Техническое задание
- Эскизный проект
- Понятие о MVP и примеры MVP
- Технический проект
- Рабочая документация
- Поставка / ввод в действие
- Варианты поставки и развертывания
- Сопровождение
Базовые методологии разработки ПО (ч.1)
- Каскадная модель
- Общее описание
- Хорошие примеры
- Плохие примеры
- V-модель
- Общее описание
- Хорошие примеры
- Плохие примеры
Базовые методологии разработки ПО (ч.1 / продолжение)
- Инкрементная модель
- Общее описание
- Итерационная модель
- Общее описание
- "Тонкие" примеры
- Плохие примеры
- Хорошие примеры
Базовые методологии разработки ПО (ч. 2)
- Спиральная модель
- Общее описание
- Плохие примеры
- Хорошие примеры
- RAD-модель
- Общее описание
Семейство гибких методологий
- Общее понятие о семействе гибких методологий
- Agile-манифест
- Что означает и как использовать
- Роль agile-манифеста в не-agile методологиях
- SCRUM
- Общая схема методологии
- Плохой пример
- Общие соображения, когда работает плохо
- Хороший пример
- Общие соображение, когда работает хорошо
- KANBAN
- Общая схема методологии
- Плохой пример
- Общие соображения, когда работает плохо
- Хороший пример
- Общие соображения, когда работает хорошо
CI/CD
- Понятие о CI/CD/CD
- Зачем это вообще нужно?
- Как это устроено?
- Роль CI/CD/CD в процессе разработки ПО
- Пример "как это работает у нас"
Принципы проектирования ПО, ч.1
- Что такое архитектура ПО?
- Что такое проектирование ПО?
- По каким критериям можно оценить архитектуру?
- Критерии хорошей архитектуры
- Эффективность
- Гибкость
- Расширяемость
- Масштабируемость, тестируемость, возможность повторного использования, сопровождаемость
- Критерии неудачной архитектуры
- Жесткость
- Хрупкость
- Неподвижность
- Критерии хорошей архитектуры
- Принцип High Cohesion / Low Coupling
Принципы проектирования ПО, ч.2
- Принципы SOLID
- Закон Деметры
- YAGNI
- DRY / DIE
- KISS
Инструменты моделирования и проектирования - UML
- Что такое UML?
- Базовое понятие о нотации UML
- Диаграмма вариантов использования
- Диаграмма классов
- Диаграмма размещения
- Диаграмма последовательности
- Диаграмма деятельности
- Диаграмма состояний
Антипаттерны
- Понятие о паттернах и антипаттернах
- Разные группы антипаттернов
- Антипаттерны в ООП
- Антипаттерны в кодировании
- Методологические антипаттерны
- Антипаттерны управления конфигурацией
- Другие
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)
В формате ФИО - Тема - Ссылка на материалы
Приладышев Юрий Владимирович - 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 страничное эссе с обзором докладов, обсуждавшихся на семинарской части
Готовое эссе присылайте на почту 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 (пессимистично)