GithubHelp home page GithubHelp logo

demist / methodologies_hse Goto Github PK

View Code? Open in Web Editor NEW
19.0 4.0 38.0 23.23 MB

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

education hse methodologies

methodologies_hse's Introduction

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 марта включительно

Готовое эссе присылайте на почту [email protected], обязательно укажите тему письма "Отчетное эссе Методологии разработки", а в теле письма укажите свое ФИО и номер группы.

Устный опрос

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

Темы устного опроса - лекции №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 (пессимистично)

methodologies_hse's People

Contributors

103som avatar a-sine-nomine avatar aarta1 avatar andromeddda avatar axhse avatar demist avatar dmitry-alekseev01 avatar ekhossejn avatar frubyl avatar ggenjoyer95 avatar goblin0core avatar golomedov avatar ifde avatar ilyinad avatar j3olchara avatar jessiepinkmann avatar justulik avatar leonidlivshits avatar maximbushmakov avatar nessornot avatar ostap309 avatar pentatonix0 avatar pepsiplusmilk avatar rinay112 avatar robi2810 avatar rumblfn avatar skhsafarov avatar trofimpetyanov avatar zer0mana avatar ziopam avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.