====== Программная инженерия, концепция курса ====== * Регистрация открыта до пятницы 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]] по результатам митинга с командами руководителю курса * Предоставление результатов работы за итерацию руководителю курса * Проверка проектов и оценивание участников проектов Каждый куратор также является лидером команды. Руководитель курса (Берленко Т.А.): * Обсуждение задач с кураторами * Проведение митингов с кураторами (подведение итогов за этап) * Проверка работы кураторов * Выборочная проверка команд