На курсе речь пойдёт о создании и поддержке веб-сервисов, о роли технического отдела, о командной работе и управлении разработчиками. Курс предназначен для: программистов и тестировщиков - для лучшего понимания процесса создания продукта; для тим-лидеров и руководителей разработки - для лучшего понимания коллег и бизнеса выстраивания процесса разработки; для менеджеров - для лучшего понимания процессов в техотделе и его потребностей.
Продолжительность (12 видео): 18 ч 35 мин
Занятие №1 "Введение. Процесс разработки веб-сервиса: этапы, участники, коммуникации."
Требования по отчетности Этапы создания продукта и участники процесса (заказчик, менеджеры, техперсонал) Внутренние и внешние заказчики Коммуникации в процессе разработки (о переговорах, совещаниях и переписке)
Занятие №2 "Методологии разработки"
Обзор основных методологий разработки и практика работы по этим методологиям. - Каскадная разработка - От каскадной разработки к итерационным моделям RUP и RAD - Гибкие методологии разработки (XP, Scrum, Kanban) Инструменты для управления процессом разработки
Занятие №3 "Техническое задание"
Принципы создания. Сбор требований, необходимость и достаточность. Согласование задания и его изменений. Дрейф требований. Декомпозиция технического задания согласно принятой методологии разработки Оценка сроков выполнения задач, принципы оценки (статистика, анализ, игры в agile) Оперативное и длительное планирование
Занятие №4 "Построение команды и командная разработка"
Подбор сотрудников и собеседования. Вовлечение в работу новых сотрудников, повышение знаний о проекте у старых Рабочий процесс, тайм-менеджмент – о переключении контекста Делегирование полномочий и координация разработки. Нацеленность на результат и последствия нацеленности на процесс Контроль выполнения. Дедлайн и срыв сроков.
Занятие №5 "Этапы построения архитектуры веб-сервиса"
Роль проектирования в построении систем Сложность и борьба с ней Проектирование: от системы к компонентам Программирование: от компонентов к коду модулей Эксплуатация: выбор инструментария
Занятие №6 "Компоненты веб-систем"
Сетевое взаимодействие. Основные компоненты веб-систем. Примеры построения веб-систем
Занятие №7 "Программирование или борьба со сложностью"
Выбор инструментария. Борьба со сложностью. Как делать нужно (паттерны). Как делать не нужно (антипаттерны).
Занятие №8 "Инструментарий. Экспорт и импорт решений"
Принципы выбора инструментария разработки - Назначение фреймворков, границы применимости. - Что такое «ORM», и в каких случаях допустимо его использование. - Где брать код? Обзор основных фреймворков, библиотек готового кода. - Opensource-решения. Проектирование собственных фреймворков Разработка своего API, поддержка чужого
Занятие №9 "Внедрение и эксплуатация продукта"
Этапы запуска продукта Тестирование, виды тестирования, инструменты автоматизации тестирования Сопровождение кода: документация, базы знаний, регламенты работы Взаимодействие с отделом эксплуатации, суппортом, внешними партнерами Мониторинг продукта и последствий изменений в нем - мониторинг окружения (для админов), обзор решений - мониторинг программной логики (для разработчиков)
Занятие №10 "Веб-сервис как изменяющийся продукт"
Снова о жизненном цикле продукта. Как распределять ресурсы. - Развитие основного продукта - Оперативная работа и поддержка. - Внутренний заказ (автоматизация поддержки и мониторинга сервисов, нужды разработчиков) Исправление ошибок и технический долг - Цели рефакторинга (почему код нужно переписывать, а сервисы перестраивать) - Этапы рефакторинга (как правильно делать рефакторинг работающего продукта) - Целостность рефакторинга (об обратной совместимости и поддержке версионности)
Занятие №11 "Устойчивость архитектурного решения"
Поиск и анализ узких мест в веб-сервисе Масштабирование - Горизонтальное и вертикальное масштабирование сервисов - Балансировка нагрузки - Масштабирование хранилищ данных (партиционирование, репликация, кластеры) - Кэширование данных - Иные методики масштабирования сервисов
Занятие №12 "Построение эффективной команды"
Оценка эффективности сотрудника и команды Обмен опытом, внутреннее обучение, наставничество Мотивация персонала. Чем мотивировать технический персонал? «Темная сторона» управления (микроменеджмент, демотивация, увольнения)