====== Программная инженерия, концепция курса ======
* Регистрация открыта до пятницы 18.09 13:30.
* Предпочтение отдается заявкам, поданным раньше.
* [[https://www.computer.org/web/swebok|SWEBOK]]
* [[https://prezi.com/wyges0bflzfr/overview-of-swebok/|Quick overview of SWEBOK]]
* {{ :start:ethics.pdf |Software Engineering Code of Ethics and Professional Practice (RUS)}}
===== Терминология =====
* **Команда** - группа, состоящая из бакалавров (2-3 человек) и магистров (1 человек). Иногда команда состоит только из бакалавров;
* **Итерация** - временной интервал с четко определенным результатом, который команда должна достичь - примерно 4 недели == месяц;
* **Лидер** - бакалавр или магистр, который является ответственным за реализацию проекта.
===== Организация =====
* Руководитель курса
* 4 куратора
* 14 команд (1 лидер + 2-3 бакалавра)
===== Критерии оценивания =====
=== Термины ===
**Product value** - наблюдаемая степень достижения цели проекта, которая эквивалентна объему пользы от продукта для пользователя. Польза выражается в количестве/качестве реализации сценариев использования продукта.
**Эскалирование (или эскалация) проблемы** - оперативная передача информации о возникшей проблеме на вышестоящий уровень иерархии. При этом эскалируются только проблемы, для решения которых команда не обладает ресурсами и/или инструментами.
=== Формирование оценки ===
Оценка за прохождение данного курса формируется по следующим критериям:
//Работа над проектом://
* Законченность приложения:
* Реализованы основные фичи приложения.
* Приложение протестировано разными способами и/или написаны юнит-тесты.
* Приложение внедрено и/или есть инструкция по внедрению.
* Пригодность приложения к использованию:
* Инструкция по сборке и развертыванию,
* Удобство использования.
* Индивидуальный вклад в разработку:
* Количество и качество сделанных фич.
* Своевременность и полнота выполнения требований итераций курса:
* Рост product value от итерации к итерации.
* Демонстрация промежуточных результатов.
//Презентация проекта://
* Оценки экспертов.
* Качество демонстрационного материала.
//Культура разработки://
* Индивидуальные метрики работы в репозитории:
* Работа с issues и pull requests.
* Количество и качество коммитов.
* Качество взаимодействия:
* Внутри команды.
* Эскалирование проблем.
* Пунктуальность:
* Выполнение задач на протяжении всей итерации.
===== Итерации =====
Первая итерация посвящена знакомству членов команды друг с другом, с проектом, который они будут реализовывать, и с технологиями, которые будут использоваться. В течение итерации студенты выявляют требования к проекту, разрабатывают макет UI (или CLI, в зависимости от проекта).
В конце первой интерации:
* Создан первоначальный макет UI, согласован с преподавателем.
* В репозитории проекта созданы issues на следующую итерацию.
* Приложение собирается у куратора и показывает нужный UI с заглушками/есть видео его работы.
* Студенты прошли необходимые онлайн-курсы.
Окончание 1го этапа 25 сентября.
В конце первого этапа бакалавры-разработчики оцениваются по следующим критериям:
* Пройдены онлайн-курсы (если было нужно). Обратите внимание, что курсы нужно проходить только в первую итерацию, после этого прохождение оценено не будет.
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
Лидеры команд оцениваются по следующим критериям:
* Пройдены онлайн-курсы (если было нужно).
* Корректно созданы issues (задачи) в репозитории. У каждой задачи есть теги, по которым можно понять, к какой итерации и фиче она относится. Каждая задача должна быть назначена на определенного студента. Каждая задача должна иметь понятный результат выполнения (исходный код/инструкция/схема/картинка/...), который указан в описании задачи.
Оценки ставят кураторы.
----
Остальные этапы посвещены разработке фич проекта, начинает наблюдаться рост Product Value.
В конце второй интерации:
* В репозитории проекта созданы issues на следующую итерацию.
* В репозитории проекта находится презентация команды. [[courses:mse:course_results|Тут]] можно ознакомиться с требованиями к презентации.
* Есть корректная инструкция по запуску приложения в репозитории.
* Есть тесты для разработанного набора фич.
* Приложение собирается у куратора (используется инструкция от команды) и показывает нужный UI со всеми требуемыми фичами или есть видео его работы.
Окончание 2го этапа 30 октября.
В конце первого этапа бакалавры-разработчики оцениваются по следующим критериям:
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
Лидеры команд оцениваются по следующим критериям:
* Задачи, которые были поставлены на итерацию, имеют корректное описание и учитывают, какая функциональность необходима для итерации.
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
* Корректно созданы issues (задачи) в репозитории. У каждой задачи есть теги, по которым можно понять, к какой итерации и фиче она относится. Каждая задача должна быть назначена на определенного студента. Каждая задача должна иметь понятный результат выполнения (исходный код/инструкция/схема/картинка/...), который указан в описании задачи.
* Создана и загружена презентация.
Оценки ставят кураторы.
----
В конце третьей интерации:
* В репозитории проекта созданы issues на следующую итерацию.
* В репозитории проекта находится презентация команды. [[courses:mse:course_results|Тут]] можно ознакомиться с требованиями к презентации.
* Есть корректная инструкция по запуску приложения в репозитории.
* Есть тесты для разработанного набора фич.
* Приложение собирается у куратора (используется инструкция от команды) и показывает нужный UI со всеми требуемыми фичами или есть видео его работы.
Окончание 3го этапа 27 ноября.
В конце первого этапа бакалавры-разработчики оцениваются по следующим критериям:
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
Лидеры команд оцениваются по следующим критериям:
* Задачи, которые были поставлены на итерацию, имеют корректное описание и учитывают, какая функциональность необходима для итерации.
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
* Корректно созданы issues (задачи) в репозитории. У каждой задачи есть теги, по которым можно понять, к какой итерации и фиче она относится. Каждая задача должна быть назначена на определенного студента. Каждая задача должна иметь понятный результат выполнения (исходный код/инструкция/схема/картинка/...), который указан в описании задачи.
* Создана и загружена презентация.
Оценки ставят кураторы.
----
В конце последней итерации:
* Продуктификация приложения, подготовление необходимой документации по приложению.
* Приложение работает стабильно и без ошибок.
* Подготовлены скринкасты демонстрации работы основных сценариев использования приложения.
Окончание 4го этапа 25 декабря.
В конце четвертого этапа бакалавры-разработчики оцениваются по следующим критериям:
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
Лидеры команд оцениваются по следующим критериям:
* Задачи, которые были поставлены на итерацию, имеют корректное описание и учитывают, какая функциональность необходима для итерации.
* Задачи, поставленные лидерами команды/кураторами, были выполнены в полном объеме и вовремя.
* Полученное приложение имеет максимально возможный объем разработанных фич, протестировано и готово к использованию.
* Есть все необходимые инструкции по установке, запуску, использованию приложения в репозитории.
* Создана и загружена презентация.
Оценки ставят кураторы.
===== Роли =====
Разработчики: программирование/тестирование приложение, выполнение поставленных задач.
Лидеры: выполнение поставленных задач + управление задачами и кодом в рамках команды.
Кураторы:
* Проведение митингов с командами 1 раз в неделю
* Согласование архитектуры проекта с командой и с руководителем курса
* Обсуждение задач с командой
* Отправка [[https://osll-team.atlassian.net/wiki/spaces/STUD/pages/182878209|meeting minutes]] по результатам митинга с командами руководителю курса
* Предоставление результатов работы за итерацию руководителю курса
* Проверка проектов и оценивание участников проектов
Каждый куратор также является лидером команды.
Руководитель курса (Берленко Т.А.):
* Обсуждение задач с кураторами
* Проведение митингов с кураторами (подведение итогов за этап)
* Проверка работы кураторов
* Выборочная проверка команд