Repository navigation
Development
Выбрана итеративная модель из семейства Agile с адаптированными практиками Scrum и визуализацией потока задач через Kanban в GitHub Projects.
Обоснование выбора:
- Размер команды: проект ведёт один разработчик, поэтому необходим лёгкий процесс без лишних согласований.
- Требования: базовая идея определена, но удобство интерфейса, обработка ошибок и отдельные возможности могут уточняться в процессе.
- Срок: по концепции проекта планируется четыре недели; короткие недельные итерации позволяют регулярно оценивать результат.
- Риски: функциональность генерации паролей нужно проверять по мере реализации, не откладывая тестирование на конец.
- Обратная связь: изменения можно показывать и корректировать после каждой итерации.
Каскадная модель была бы менее гибкой при уточнении требований, а спиральная и V-образная — избыточно формальными для небольшого учебного веб-приложения. Применяется адаптация Scrum, а не утверждается, что проект соответствует всем правилам Scrum Guide для полноценной команды.
Все роли выполняет один человек — владелец репозитория JUSUKE-MOMENT:
- Product Owner: цель продукта, приоритеты, критерии приёмки.
- Scrum Master: организация ритма, доска, устранение препятствий, ретроспектива.
- Developer: реализация, тестирование, документация и поставка работающего результата.
Распределение обязанностей подробно приведено на странице Team.
| Период | Практика | Результат |
|---|---|---|
| Ежедневно (5–10 минут) | Личная проверка задач: что сделано, что будет сделано, что мешает | Актуальные статусы и список препятствий |
| В начале недели (20–30 минут) | Планирование спринта | Цель спринта и выбранные задачи Sprint Backlog |
| В течение недели | Разработка в отдельных ветках, самопроверка, тестирование | Готовые изменения и Pull Request |
| В конце недели (15–20 минут) | Sprint Review: демонстрация результата и проверка критериев | Принятые или возвращённые задачи |
| В конце недели (10–15 минут) | Ретроспектива | 1–2 улучшения процесса на следующую неделю |
| По окончании четырёх недель | Итоговая проверка результата и документации | Учебный инкремент проекта |
Это личные аналоги Scrum-событий: групповые встречи не проводятся, результаты кратко фиксируются в задачах или заметках проекта.
- Product Backlog: все требования, улучшения и ошибки в GitHub Issues/Projects, упорядоченные по приоритету.
- Sprint Backlog: задачи, выбранные на текущую неделю, с понятными критериями завершения.
- Increment: проверенная работоспособная версия приложения после итерации.
- Definition of Done: общие критерии готовности, приведённые ниже.
- Постановка: оформить GitHub Issue с описанием, целью и проверяемыми критериями приёмки.
-
Планирование: определить приоритет и добавить задачу в GitHub Project со статусом
To Do. -
Разработка: перенести в
In Progress, создать тематическую Git-ветку (feature/...илиfix/...), выполнить изменения и коммиты. -
Самопроверка: открыть Pull Request, связать с Issue, перенести в
Review, посмотреть diff и проверить соответствие критериям. Поскольку участник один, внешнее ревью не предполагается. -
Тестирование: перенести в
Testing, запустить доступные проверки проекта и вручную проверить основные и граничные сценарии. При дефекте вернуть вIn Progress. -
Завершение: после принятия результата объединить Pull Request с
main, обновить документацию при необходимости, закрыть Issue и перевести вDone.
Небольшие задачи без изменения кода могут завершаться без PR, если это явно указано в Issue.
Задача считается завершённой, когда:
- Реализованы все её критерии приёмки.
- Изменения не нарушают существующие функции генератора.
- Выполнены доступные проверки проекта (например, lint и сборка, если такие команды предусмотрены в
package.json), ошибки устранены. - Для изменений поведения выполнена ручная проверка, включая невалидные и граничные значения; для интерфейса — проверка адаптивности.
- Код самостоятельно проверен по diff; нет случайных файлов, секретов и отладочного мусора.
- Для задач с кодом изменения слиты в
mainчерез Pull Request. - При необходимости обновлены README/Wiki.
- Issue закрыта, карточка на доске имеет статус
Done.
Для проекта создаётся отдельный GitHub Project с представлением Board и полем Status:
| Статус | Смысл | Правило перехода |
|---|---|---|
To Do |
Задача сформулирована и ожидает выполнения | Есть понятные критерии приёмки |
In Progress |
Идёт реализация | Работа начата, есть рабочая ветка при изменениях кода |
Review |
Самопроверка кода и требований | Открыт PR либо подготовлен результат без кода |
Testing |
Проверка функциональности и граничных случаев | Ошибки отправляются назад в In Progress
|
Done |
Задача завершена | Выполнен DoD, Issue закрыта |
Рекомендуемое ограничение одновременно выполняемых задач: не более 1–2 в In Progress. Доска обновляется при изменении фактического состояния, а не только по итогам недели.
- При добавлении новой задачи в проект устанавливать
Status = To Do(настройка значения по умолчанию для новых элементов, а при необходимости — отдельный workflow при добавлении). - Когда связанная Issue закрывается, устанавливать
Status = Doneс помощью встроенного workflow Item closed.
Планируемые правила, которые нужно создать и проверить в интерфейсе Workflows:
- При переходе карточки в
Doneзаполнять поле даты завершенияCompleted, если такой триггер и действие доступны в текущем GitHub Projects. - При добавлении Issue в проект назначать её владельцу репозитория, если поддерживается действие назначения исполнителя.
Если интерфейс GitHub Projects не поддерживает соответствующую комбинацию триггера и действия, нужно выбрать доступные кастомные правила и обновить данный раздел по реально работающей настройке. Нельзя считать правила настроенными только из-за их описания в Wiki.
- GitHub Issues — формулировка задач и критериев приёмки.
- GitHub Projects — Kanban и статусы задач.
- Git / GitHub Pull Requests — история изменений и самопроверка.
- React + TypeScript + Vite — реализация веб-приложения.
- README и GitHub Wiki — документация проекта и процесса.
В лабораторных 1–2 были сформированы концепция, документация и базовая структура репозитория. В лабораторной 3 вводится порядок разработки и контроля задач. Новые продуктовые задачи и их реализация будут оформляться в лабораторной 4. Наличие описанного процесса само по себе не означает, что все планируемые функции реализованы.