Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Проектный практикум: планирование проекта - пре...

Anton
January 13, 2025

Проектный практикум: планирование проекта - предварительная документация и планы работ

Лекция курса "Проектный практикум"
Планирование проекта - предварительная документация и планы работ

- Зачем планировать
- Постановка задачи
- Архитектура проекта: глаз орла
- Технические роли
- Сценарии использования (юс-кейсы)
- Макет интерфейса
- Как правильно проектировать интерфейс
- Модель данных
- Диаграмма классов
- Этапы проекта и план работ

https://vk.com/video53223390_456239601
https://www.youtube.com/watch?v=cJ8nfKoNJJo

Anton

January 13, 2025
Tweet

More Decks by Anton

Other Decks in Education

Transcript

  1. Зачем планировать • Привести мысли в порядок • Реалистично оценить

    ресурсы и возможности • Распараллеливание задач, распределение ролей, общее видение внутри команды • Единственный способ договориться с заказчиком • Основа для сметы • Соблюдать баланс между детализацией и запасом гибкости
  2. Постановка задачи • Плеер видео • Контент онлайн — на

    видео-платформе • Плейлисты (списки роликов с внешними ссылками) оффлайн • Рекомендации — случайные элементы библиотеки, формируются оффлайн • Исходные плейлисты — на видео-платформе, выкачиваются через интернет и кэшируются в локальной оффлайн-базе
  3. Архитектура проекта: глаз орла • Ключевые модули и связи между

    ними • Несколько уровней • От простого к сложному • Верхний уровень: низкая детализация • Нижний уровень: высокая детализация • Элементы: квадратики, кружочки, стрелочки, подписи, клипарты, желательно цветные
  4. Технические роли • Разработчик интерфейса мобильного приложения • Архитектор базы

    данных • Модуль сетевого взаимодействия с внешними сервисами (API или парсер HTML) • Могут быть распараллелены по разным исполнителям или совмещены в одном лице • Список задач верхнего уровня видно из архитектуры
  5. Сценарии использования (юс-кейсы) • Цель ← путь достижения за несколько

    шагов • Формат — простой текст: заголовок + пункты на каждый сценарий • При необходимости — разбивка по ролям (заказчик/исполнитель, пользователь/админ)
  6. Например: «добавить плейлист» • Открыть главный экран • Выбрать меню

    «Настройки» • Выбрать раздел «Добавить плейлист» • Ввести адрес плейлиста в поле ввода • Нажать кнопку «Добавить» • Дождаться завершения операции • Результат: новый плейлист появился в списке
  7. Например: «просмотр видео из списка рекомендаций» • Открыть главный экран

    • Выбрать видео из списка рекомендаций • Результат: откроется экран проигрывания видео с выбранным видео
  8. Макет интерфейса • Наброски главных экранов с ключевыми возможностями •

    Реализация сценариев использования • Inkscape, OODraw, Dia, Corel Draw, Visio, … • Онлайн: balsamiq.com, draw.io, ... • ключевые слова: figma, mocup, sketch • НЕ используйте редактор форм в любимом IDE
  9. Как правильно проектировать интерфейс • Человеко-машинные интерфейсы (human- computer interaction:

    HCI) — это целая наука • (экономьте время пользователя) • См. курсы на ютюбе • Курс МФТИ+mail.ru «Дизайнер интерфейсов. Введение в специальность» на курсере
  10. Модель данных • То, что мы сохраняем между экранами и

    между запусками • Сохраняемые поля, фигурирующие в макете интерфейса, должны отражаться в модели • Реляционная (SQL) • Плоская (настройки ключ-значение) • Древовидная (NoSQL: mongo) • Семейство колонок (NoSQL: Cassandra) • Граф (NoSQL: Neo4j) • ...
  11. Диаграмма классов • UML (можно в свободной форме) • Шаблоны

    проектирования (design patterns) • ORM (модель данных → объектная модель) • Добавляйте только ключевые классы, всю вспомогательную мелочь вытаскивать не обязательно (кодогенерация из UML как технология не зашла)
  12. Этапы проекта и план работ • Этапы — небольшие и

    средние «пробежки» (спринты) на месяц-два-три (2-4 недели) • В конце каждой пробежки чек-лист по запланированным задачам • Корректировка планов на следующую пробежку • На каждом этапе детализированный план работ по 1- 2 задачи на неделю на человека • Распараллеливание по исполнителям
  13. План до запуска №1 • Предварительная проектная документация • Тестирование

    ключевых сторонних библиотек и технологий (hello world's) • Скелет проекта • Черновик 1/2 (что-то работает) • Альфа 1/2 (работает благоприятный сценарий) • Бета 1/2 (не падает на большинстве неблагоприятных сценариев) • Пре-релиз 1/2 (мелкие ошибки, полировка) • Релиз (мелкие ошибки, которые не доставят страдание пользователям)
  14. Начиная с сегодняшнего дня и к каждому занятию • «Спринт»

    на каждые 2 недели • План — 2-3 задачи на спринт на человека • Начало занятия — «летучка» («скрам-митинг»): • Какие запланированные задачи были выполнены • Какие задачи были не выполнены, в чем причина затруднения, план обхода проблемы • План задач на новый спринт