Пройдите 4 мира, победите боссов промежуточных аттестаций, выполните миссии стажировки и вытяните билет финального демоэкзамена. На выходе — ИТ-квалификация «Менеджер цифровых проектов и данных».
Учимся говорить на языке проектов: методологии, моделирование бизнес-процессов в BPMN, метрики эффективности и техническое задание на модернизацию ИС.
Проект — временная деятельность для создания уникального продукта, услуги или результата. У проекта есть начало и конец, цель и ограничения. Классическая модель ограничений — «железный треугольник»: содержание, сроки, бюджет. Меняя одну сторону, вы неизбежно затрагиваете остальные (а вместе с ними — качество).
Проектное управление — применение знаний, навыков и инструментов, чтобы проект достиг цели в рамках ограничений. Жизненный цикл: инициация → планирование → исполнение → мониторинг и контроль → завершение.
| Подход | Суть | Когда подходит |
|---|---|---|
| Waterfall (каскад) | Последовательные фазы; следующая начинается после завершения предыдущей. Подробный план заранее. | Требования ясны и стабильны: строительство, госзакупки, внедрение типовой системы. |
| Agile | Философия гибкости: короткие итерации, обратная связь, ценность для клиента важнее следования плану. | Требования меняются, нужен быстрый результат. |
| Scrum | Фреймворк Agile: спринты 1–4 недели, роли (Product Owner, Scrum Master, команда), события (планирование, daily, обзор, ретроспектива), артефакты (бэклог продукта и спринта, инкремент). | Разработка цифрового продукта небольшой командой. |
| Kanban | Визуализация потока работ на доске (К выполнению → В работе → Готово) и WIP-лимиты — ограничение числа задач в работе. | Поток однотипных задач: поддержка, согласования, бэк-офис. |
Это не просто «перенести Excel в Jira». Меняется сама логика работы:
Выберите организацию отрасли «Экономика, финансы и управление» (банк, налоговая служба, администрация, страховая компания). Найдите или опишите кейс цифровизации проектного управления в ней.
Результат — 5–7 слайдов или одна страница для обсуждения на семинаре.
Бизнес-процесс — последовательность действий, которая превращает входы в результат, ценный для клиента. Пока процесс «живёт в головах», его нельзя ни улучшить, ни автоматизировать. Модель делает его видимым.
Реинжиниринг — переосмысление процесса ради резкого улучшения показателей: сроков, стоимости, качества. Работа идёт в два шага:
| Элемент | Как выглядит | Что означает |
|---|---|---|
| Событие | Круг (тонкий — начало, жирный — конец) | Что-то происходит: «Получена заявка», «Проект запущен». |
| Задача | Прямоугольник со скруглёнными углами | Действие: «Проверить бюджет». Бывает пользовательской, сервисной (автоматической), ручной. |
| Шлюз XOR | Ромб с «×» | Выбор одного пути: «Бюджет согласован? Да / Нет». |
| Шлюз AND | Ромб с «+» | Параллельное выполнение веток и их последующее слияние. |
| Пул и дорожки | Большой прямоугольник с полосами | Пул — участник (организация), дорожки — роли внутри него. |
| Поток управления | Сплошная стрелка | Порядок выполнения задач. |
Процесс As-Is: инициатор пишет служебную записку о проекте → начальник отдела визирует → записка уходит в финансовый отдел → финансист проверяет бюджет → записка возвращается начальнику отдела на повторную визу → директор утверждает → секретарь вручную пишет команде письмо о запуске.
| Метрика | Формула | Как читать |
|---|---|---|
| KPI | Измеримый показатель цели: «срок согласования ≤ 1 дня», «доля проектов в срок ≥ 85%». | Должен быть конкретным, измеримым и привязанным ко времени. |
| ROI | ROI = (Выгода − Затраты) / Затраты × 100% | > 0 — вложение окупилось. ROI 150% означает, что каждый рубль вернул 1,5 рубля прибыли сверх себя. |
| NPV | NPV = Σ CFt / (1 + r)t − I0 | Учитывает стоимость денег во времени. NPV > 0 — проект стоит делать. |
Отдел из 10 менеджеров тратит на согласование одного проекта 5 рабочих дней по 1 часу в день. В год проходит 120 проектов. Внедрение Jira с автомаршрутами сокращает согласование до 1 дня.
Техническое задание (ориентир — ГОСТ 34.602) отвечает на вопросы «что», «зачем» и «как проверить»:
Он питается лишними визами и бесконечными согласованиями. Победить его можно только чистой моделью To-Be.
Самый большой мир курса. Пишем скрипты, которые снимают с проектного менеджера рутину: считают риски, чистят реестры, рассчитывают EVM и собирают отчёты.
Установите Anaconda — в неё уже входят Python, Jupyter Notebook и Pandas. Для скриптов-файлов используйте VS Code с расширением Python. Jupyter удобен для экспериментов, файл .py — для готового инструмента.
| Тип | Пример | Применение в проекте |
|---|---|---|
| int / float | budget = 1_200_000 | Бюджет, часы, вероятность риска |
| str | status = "Активен" | Статусы, названия задач |
| bool | is_late = True | Флаги: просрочено, согласовано |
| list | team = ["Иванов", "Петрова"] | Список участников или задач |
| dict | {"id": 1, "p": 4} | Одна запись реестра: поле → значение |
if / elif / else выбирает действие по условию, for перебирает элементы списка, while повторяет, пока условие истинно. Отступ в 4 пробела — часть синтаксиса.
# Фильтрация реестра рисков по приоритету risks = [ {"id": 1, "name": "Срыв поставки оборудования", "p": 4, "i": 5, "status": "Активен"}, {"id": 2, "name": "Уход ключевого специалиста", "p": 2, "i": 4, "status": "Активен"}, {"id": 3, "name": "Рост курса валют", "p": 5, "i": 3, "status": "Закрыт"}, ] for r in risks: score = r["p"] * r["i"] # рейтинг = вероятность × влияние if r["status"] == "Активен" and score >= 15: print(f"Высокий риск #{r['id']}: {r['name']} (рейтинг {score})") elif r["status"] == "Активен": print(f"Под наблюдением #{r['id']} (рейтинг {score})")
# Длительность задачи в рабочих днях from datetime import date, timedelta def workdays(start, end): days, d = 0, start while d <= end: if d.weekday() < 5: # 0–4: пн–пт days += 1 d += timedelta(days=1) return days print(workdays(date(2026, 11, 2), date(2026, 11, 20))) # 15
def) — многоразовый блок кода. Если вы копируете один и тот же фрагмент второй раз, пора оформить его в функцию.print("Привет, проект!").print(4 * 5 >= 15 and "Активен" == "Закрыт")?DataFrame — таблица в памяти: строки и именованные столбцы, как лист Excel, только управляемый кодом. Основные операции:
| Задача | Код |
|---|---|
| Загрузить CSV / Excel / JSON | pd.read_csv(), pd.read_excel(), pd.read_json() |
| Посмотреть данные | df.head(), df.info(), df.describe() |
| Удалить дубликаты | df.drop_duplicates() |
| Отфильтровать строки | df[df["Статус"] == "В работе"] |
| Сгруппировать | df.groupby("Ответственный")["Часы"].sum() |
| Сводная таблица | df.pivot_table(index=..., columns=..., values=..., aggfunc="sum") |
| Сохранить | df.to_excel("out.xlsx", index=False) |
Метод освоенного объёма сравнивает три величины на дату отчёта:
| Показатель | Формула | Сигнал |
|---|---|---|
| SV — отклонение по срокам | EV − PV | < 0 — отставание |
| CV — отклонение по стоимости | EV − AC | < 0 — перерасход |
| SPI — индекс выполнения сроков | EV / PV | < 1 — медленнее плана |
| CPI — индекс выполнения стоимости | EV / AC | < 1 — дороже плана |
import pandas as pd df = pd.read_csv("projects.csv", sep=";") # Проект; Ответственный; PV; EV; AC; Часы df = df.drop_duplicates() df["SV"] = df["EV"] - df["PV"] df["CV"] = df["EV"] - df["AC"] df["SPI"] = (df["EV"] / df["PV"]).round(2) df["CPI"] = (df["EV"] / df["AC"]).round(2) problem = df[(df["SPI"] < 1) | (df["CPI"] < 1)] # отстают или перерасходуют load = df.pivot_table(index="Ответственный", values="Часы", aggfunc="sum") with pd.ExcelWriter("evm_report.xlsx") as w: df.to_excel(w, sheet_name="Все проекты", index=False) problem.to_excel(w, sheet_name="Проблемные", index=False) load.to_excel(w, sheet_name="Загрузка")
openpyxl (в Anaconda она уже есть). Русские CSV часто разделены точкой с запятой — указывайте sep=";".info() и найдите дубликаты.Regex — язык шаблонов для поиска в тексте: номеров договоров, дат, сумм, e-mail в служебных записках и выгрузках.
| Шаблон | Значение | Пример |
|---|---|---|
\d | цифра | \d{4} → 2026 |
\s | пробельный символ | №\s*\d+ → «№ 45» |
+ * ? | 1 и более / 0 и более / 0 или 1 | \d+ → любое число |
( ) | группа для извлечения | №\s*(\d+) → «45» |
import re text = "Договор № 45/2026 от 12.03.2026 на сумму 1 200 000 руб., срок до 30.06.2026" number = re.search(r"№\s*([\d/]+)", text).group(1) # '45/2026' dates = re.findall(r"\d{2}\.\d{2}\.\d{4}", text) # ['12.03.2026', '30.06.2026'] amount = int(re.search(r"сумму\s*([\d\s]+)руб", text).group(1).replace(" ", ""))
API — договорённость, по которой одна программа запрашивает данные у другой. Jira, Битрикс24 и CRM отдают данные по HTTP-запросу в формате JSON. Логика: адрес (endpoint) + метод (GET — получить, POST — создать) + авторизация (токен) → ответ JSON.
import os, requests url = "https://ваша-компания.atlassian.net/rest/api/3/search" resp = requests.get(url, params={"jql": "project = PRJ AND status != Done"}, auth=(os.environ["JIRA_USER"], os.environ["JIRA_TOKEN"])) # токен не пишем в коде! issues = resp.json()["issues"]
import pandas as pd raw = pd.read_excel("status_raw.xlsx") rep = (raw.rename(columns={"task": "Задача", "owner": "Ответственный", "st": "Статус"}) .sort_values("Статус")) summary = rep["Статус"].value_counts() rep.to_csv("crm_import.csv", sep=";", index=False, encoding="utf-8-sig") # для импорта в CRM/ERP rep.to_html("status.html", index=False) # далее HTML → PDF, например библиотекой weasyprint
encoding="utf-8-sig" нужен, чтобы Excel и 1С правильно открыли кириллицу из CSV.Напишите скрипт, который берёт сырой отчёт из Excel, приводит его к корпоративному шаблону (названия столбцов, порядок, сортировка), добавляет сводку по статусам и сохраняет:
Бонус: извлеките regex-ом номера договоров из столбца «Комментарий».
\.У неё пятьдесят голов-рисков, и каждый день отрастают новые. Отрубить нужно только самые опасные — с рейтингом 15 и выше.
project_risks.csv (ID, Описание, Вероятность 1–5, Влияние 1–5, Статус). Напишите скрипт, который: 1) загружает данные; 2) считает рейтинг риска = Вероятность × Влияние; 3) отбирает риски со статусом «Активен» и рейтингом ≥ 15; 4) сохраняет результат в high_priority_risks.xlsx.# Каркас-подсказка: допишите недостающее import pandas as pd try: df = pd.read_csv("project_risks.csv", sep=";") except FileNotFoundError: print("Файл не найден"); raise SystemExit # 1. рассчитайте столбец «Рейтинг» # 2. отфильтруйте: Статус == "Активен" и Рейтинг >= 15 # 3. отсортируйте по убыванию рейтинга и сохраните в Excel
Учимся видеть проект в данных: чистим источники, строим дашборды и прогнозируем сроки и бюджет. Углублённый трек; по итогам входной оценки модуль может проходиться в сокращённом объёме.
Сбор (Jira, Excel, ERP, 1С, опросы) → хранение → очистка и подготовка → анализ → визуализация → решение → архивирование. До 80% времени аналитика уходит на подготовку: без неё любой дашборд врёт.
| Проблема | Пример | Лечение в Pandas |
|---|---|---|
| Дубликаты | Задача выгружена дважды | drop_duplicates() |
| Пропуски | Не указан ответственный | isna().sum(), fillna("Не назначен") |
| Разные форматы | «12.03.26» и «2026-03-12» | pd.to_datetime(..., dayfirst=True, errors="coerce") |
| Опечатки и пробелы | «Активен », «активен» | str.strip().str.capitalize() |
| Выбросы | Бюджет задачи 10 млрд ₽ | фильтр по разумному диапазону |
| Числа как текст | «1 200 000 ₽» | str.replace(...) + astype(float) |
import pandas as pd df = pd.read_csv("project_metrics.csv", sep=";") print(df.isna().sum()) # сколько пропусков в каждом столбце df = df.drop_duplicates(subset="ID") df["Статус"] = df["Статус"].str.strip().str.capitalize() df["Ответственный"] = df["Ответственный"].fillna("Не назначен") for c in ["План_окончание", "Факт_окончание"]: df[c] = pd.to_datetime(df[c], dayfirst=True, errors="coerce") df["Бюджет"] = (df["Бюджет"].astype(str).str.replace(r"[^\d,]", "", regex=True) .str.replace(",", ".").astype(float))
errors="coerce" в pd.to_datetime?Среднее (чувствительно к выбросам), медиана (середина ряда, устойчива к выбросам), минимум и максимум, стандартное отклонение (разброс). В Pandas всё это даёт df.describe(). Пример: средняя просрочка задач — 6 дней, медиана — 1 день. Значит, большинство задач почти в срок, а среднее портят несколько сильно просроченных.
| Вопрос | Диаграмма |
|---|---|
| Как меняется показатель во времени? | Линейный график |
| Сравнение категорий (отделы, проекты) | Столбчатая или горизонтальная бар-диаграмма |
| План и график работ | Диаграмма Ганта |
| Доля частей в целом (не больше 5 частей) | Кольцевая диаграмма |
| Риски: вероятность × влияние | Тепловая карта или матрица рисков |
| Одно ключевое число | KPI-карточка со стрелкой тренда |
import matplotlib.pyplot as plt df["Отклонение_дн"] = (df["Факт_окончание"] - df["План_окончание"]).dt.days top = df.nlargest(10, "Отклонение_дн") colors = ["#e0533d" if d > 0 else "#1fb894" for d in top["Отклонение_дн"]] plt.figure(figsize=(9, 5)) plt.barh(top["Задача"], top["Отклонение_дн"], color=colors) plt.axvline(0, color="gray", linewidth=1) plt.title("Топ-10 задач по отклонению от срока") plt.xlabel("Дней (больше 0 — просрочка)") plt.tight_layout(); plt.savefig("deviation.png", dpi=150)
Постройте интерактивный дашборд статуса проекта в Power BI или на Python (Matplotlib или Seaborn): сроки, бюджет и загрузка команды. Покажите его соседу и спросите: «Что с проектом?» Если ответ занимает дольше 5 секунд, упрощайте.
Описательная аналитика отвечает «что произошло», диагностическая — «почему», прогнозная — «что будет», предписывающая — «что делать». Менеджеру проекта чаще всего нужен прогноз сроков и стоимости завершения.
| Показатель | Формула | Смысл |
|---|---|---|
| BAC | — | Бюджет проекта по плану |
| EAC | BAC / CPI | Прогноз полной стоимости при сохранении текущей эффективности |
| ETC | EAC − AC | Сколько ещё потратим |
| VAC | BAC − EAC | Ожидаемое отклонение бюджета (< 0 — перерасход) |
| Прогноз длительности | План. длительность / SPI | Ожидаемый срок при текущем темпе |
Пример: BAC = 10 млн ₽, CPI = 0,8, AC = 6 млн ₽, плановая длительность 10 месяцев, SPI = 0,9. Тогда EAC = 12,5 млн ₽, ETC = 6,5 млн ₽, VAC = −2,5 млн ₽, срок ≈ 11,1 месяца.
import numpy as np # Освоенный объём по месяцам (млн ₽): прогноз месяца завершения линейным трендом months = np.array([1, 2, 3, 4, 5, 6]) ev = np.array([0.9, 1.7, 2.6, 3.4, 4.1, 5.0]) k, b = np.polyfit(months, ev, 1) # ev ≈ k·месяц + b BAC = 10 print(f"Темп: {k:.2f} млн/мес, завершение ≈ на {(BAC - b) / k:.1f} месяце")
По историческим данным учебного проекта спрогнозируйте EAC, VAC и срок завершения. Подготовьте аналитический отчёт на одну страницу по структуре «вывод → доказательства → причины → рекомендации».
Он прячет состояние проекта за сотнями строк таблиц. Развеять туман может только понятный дашборд.
project_metrics.csv (50 задач: статус, плановые и фактические сроки, бюджет, ответственный) постройте интерактивный дашборд: 1) диаграмма Ганта или бар-чарт отклонений по срокам; 2) KPI исполнения бюджета; 3) фильтр по ответственным.Строим цифровой дом проекта: рабочее пространство в Jira и Confluence, автоматизация маршрутов, интеграция с CRM и ERP, безопасность и ролевой доступ.
| Система | Сильная сторона | Типичное применение |
|---|---|---|
| Jira | Задачи, workflow, Scrum- и Kanban-доски, JQL-поиск, автоматизация | ИТ-проекты, проектный офис |
| Confluence | База знаний и документации, шаблоны, связь со страницами Jira | ТЗ, протоколы, регламенты |
| MS Project | Календарное планирование, диаграмма Ганта, критический путь, ресурсы | Waterfall-проекты, строительство |
| Битрикс24 | Задачи, CRM, документы и коммуникации в одном месте; российский продукт | Малый и средний бизнес, госсектор |
| Триггер | Условие | Действие |
|---|---|---|
| Статус изменён на «На согласовании» | Бюджет > 500 000 ₽ | Назначить финансового директора и отправить уведомление |
| Срок задачи через 2 дня | Статус ≠ «Готово» | Напомнить исполнителю в мессенджере |
| Все подзадачи закрыты | — | Перевести родительскую задачу в «На проверке» |
| По расписанию: пятница 16:00 | Проект = PRJ | Отправить сводку стейкхолдерам |
Безопасность — не надстройка «потом», а требование с первого дня проекта. Требования к ИБ попадают в ТЗ наравне с функциональными: кто и к чему имеет доступ, как хранятся данные, как ведётся журнал действий, что делать при инциденте. Если в системе обрабатываются персональные данные — действует 152-ФЗ «О персональных данных».
RBAC (Role-Based Access Control) — права выдаются не людям, а ролям; человек получает роль. Принцип наименьших привилегий: у роли ровно те права, без которых она не может работать, и ни одного лишнего.
| Роль | Чтение | Создание | Редактир. | Удаление | Закрытие |
|---|---|---|---|---|---|
| Инициатор | ✔ свои | ✔ | ✔ черновик | — | — |
| Руководитель проекта | ✔ | ✔ | ✔ | — | ✔ |
| Исполнитель | ✔ проект | ✔ подзадачи | ✔ свои | — | — |
| PMO-аналитик | ✔ все | — | — | — | — |
| Администратор | ✔ | ✔ | ✔ | ✔ | ✔ |
Он раздаёт всем все права, и задачи бесследно исчезают. Победить его может только стройный workflow и строгая ролевая модель.
Применяем всё изученное в реальной организации: ООО «Аватек», органы муниципальной администрации г. Якутска, финансовые организации. Наставник от организации — 60 ч сопровождения, консультации от вуза — Васильев А.Н., 6 ч.
Напишите и протестируйте скрипт для реальной задачи организации. Примеры тем: автоматический расчёт отклонений по бюджету (EVM) из сырого Excel-отчёта; парсер статусов задач из Jira со сводным PDF-отчётом для стейкхолдеров.
Проведите аудит маршрута согласования проектной документации в организации: документооборот, маршруты, учёт рисков. Найдите узкие места, постройте модель To-Be в BPMN и настройте базовый workflow в тестовой среде.
Подготовьте проект ТЗ на внедрение BI-дашборда для мониторинга портфеля проектов организации. Включите раздел требований к информационной безопасности и ролевой модели доступа, метрики и экономическое обоснование.
«Незачёт»: задания выполнены не полностью, скрипт или дашборд не работает, критические ошибки BPMN, в ТЗ нет метрик и экономического обоснования, нет отчётности.
Вы вытягиваете случайный билет — одно из пяти профессиональных заданий. 6 часов на выполнение, 2 часа на презентацию и защиту перед комиссией (не менее 50% — индустриальные партнёры). Результаты сдаются в файлах .py, .bpmn, .docx, .xlsx.
Потренируйтесь: вытяните билет и проверьте, готовы ли вы. На настоящем экзамене билет тоже выпадает случайно.
Дан «сырой» CSV project_risks.csv (ID, описание, вероятность 1–5, влияние 1–5, статус, ответственный). Напишите Python-скрипт на Pandas: 1) очистка от дубликатов и пропусков; 2) рейтинг = вероятность × влияние; 3) отбор рисков со статусом «Активен» и рейтингом ≥ 15; 4) сохранение в high_priority_risks.xlsx с сортировкой по убыванию рейтинга.
Оценивается: синтаксис Python и использование Pandas, обработка исключений, точность расчёта и фильтрации, читаемость и комментарии.
🔁 Повторить: миры 2.1, 2.2 и босс мира 2.
Дано текстовое описание маршрута As-Is с тремя узкими местами. 1) Постройте To-Be в BPMN 2.0 (Camunda или Visio): уберите не менее двух избыточных операций, добавьте автоматическую маршрутизацию. 2) Настройте workflow в тестовой Jira: не меньше четырёх статусов и условия переходов.
Оценивается: синтаксис BPMN 2.0, обоснованность изменений, наличие автоматизации, корректность статусов и переходов.
🔁 Повторить: миры 1.2, 4.1, 4.2.
Разработайте фрагмент ТЗ на дашборд (Power BI или Python): 1) функциональные требования; 2) входные и выходные данные; 3) целевые метрики (SPI, CPI, % отклонения по срокам); 4) обоснование экономического и управленческого эффекта.
Оценивается: чёткость требований, обоснованность метрик, аргументация эффекта, структура по ГОСТ 34.
🔁 Повторить: миры 1.3, 3.2, 3.3.
Роли: «Инициатор», «Руководитель проекта», «Исполнитель», «PMO-аналитик», «Администратор». 1) Матрица «роли × права» (чтение, создание, редактирование, удаление, закрытие). 2) Обоснование по принципу наименьших привилегий. 3) Порядок отзыва прав при завершении проекта.
Оценивается: соответствие ролей бизнес-логике, отсутствие избыточных прав, оформление матрицы, процедура отзыва.
🔁 Повторить: мир 4.3 и босс мира 4.
Руководство сомневается в покупке Jira и Confluence и обучении команды. Подготовьте отчёт на одну страницу: прогнозная экономия трудозатрат в часах и рублях в год (20 менеджеров, согласование сокращается с 5 дней до 1) и нематериальные эффекты — прозрачность, снижение рисков, скорость коммуникации.
Оценивается: реалистичность расчёта экономии, аргументация нематериальных эффектов, убедительность для руководства не из ИТ.
🔁 Повторить: мир 1.3 (пример расчёта ROI).
| Оценка | Что это значит |
|---|---|
| Отлично | Всё выполнено в полном объёме и в срок, без ошибок; решения уверенно аргументированы, видна связь кода, модели процесса и экономического эффекта. |
| Хорошо | Выполнено полностью, с незначительными недочётами; небольшие затруднения с уточняющими вопросами. |
| Удовлетворительно | Выполнено в целом, с существенными недочётами: ошибки в коде, нарушения BPMN, приблизительный ROI. |
| Неудовлетворительно | Не выполнено или выполнено меньше чем на треть; критические ошибки. |