Планирование задач
Представьте ситуацию, когда до конца года осталось совсем немного, буквально пару месяцев и впереди целое лето, насыщенное новыми знакомствами, яркими и приятными событиями и полноценным отдыхом.
Но расслабляться рано, ведь вам еще нужно сдать итоговый проект, допустим, по информатике! Это не просто реферат или презентация – это полноценное приложение, веб-сайт или телеграм-бот, который должен работать, выглядеть достойно и решать какую-то практическую задачу.
Например, вы решили создать интерактивный планировщик для школьников, который поможет отслеживать домашние задания и подготовку к контрольным.
Настало время заняться подготовкой к разработке этого проекта. Вы садитесь за планирование и быстро понимаете, что задача не такая простая, как казалось. Нужно продумать дизайн интерфейса, написать код для работы с данными, создать базу данных, протестировать всё это, исправить ошибки, написать документацию… Голова идёт кругом!
Список готов, вы чувствуете себя организованным. Но уже на следующий день возникают вопросы. С чего начать? Можно ли делать макеты экранов до того, как придуман общий дизайн? Сколько времени займёт каждая задача? Успеете ли вы всё сделать за два месяца? Что делать, если на тестирование уйдёт больше времени, чем планировалось?
Вы пытаетесь решить эти вопросы и добавляете к каждой задаче примерные сроки:
- Придумать дизайн (3 дня)
- Нарисовать макеты экранов (5 дней)
- Написать код главной страницы (7 дней)
- …и так далее
Но даже с датами список выглядит плоско и непонятно. Вы не видите временную картину целиком. Вы смотрите на этот список и не можете понять, сколько задач можно выполнять параллельно, есть ли у вас свободные «окна» между задачами или, наоборот, периоды, где требуется выполнять сразу несколько задач одновременно. Может оказаться, что вы запланировали три сложные задачи на одну неделю, когда у вас ещё и контрольные.
Также в обычном списке трудно увидеть зависимости между задачами. Очевидно, что нельзя писать код главной страницы до того, как нарисованы макеты. Нельзя тестировать то, что ещё не написано. Но в обычном списке эти связи никак не отражены. Приходится держать всё в голове и постоянно сверяться: «А можно ли мне уже начать эту задачу или нужно подождать?».
Некоторые задачи можно делать параллельно – например, пока один человек пишет код, другой может готовить документацию. А есть задачи, которые обязательно должны идти друг за другом, и задержка любой из них сдвинет весь проект. Какие именно задачи нельзя задерживать ни в коем случае? Из списка это не понять.
И так проходит неделя, вы уже выполнили несколько задач, но насколько близко завершение проекта? Укладываетесь ли в сроки? Нужно ли ускориться или можно работать в том же темпе? Простой список не даёт визуального ощущения прогресса.
Вы начинаете рисовать стрелочки между задачами, подписывать даты, зачёркивать выполненное. Список превращается в паутину из строк, стрелок и заметок. Через пару дней вы сами не можете разобраться в собственном плане.
Именно для решения таких задач и была придумана диаграмма Ганта – инструмент визуального планирования проектов, который используют программисты, менеджеры, строители и представители множества других профессий.
Эта диаграмма превращает список задач в наглядную временную шкалу, где видно:
- Когда начинается и заканчивается каждая задача
- Как долго она выполняется
- Какие задачи идут параллельно, а какие последовательно
- Что от чего зависит – какие задачи нельзя начать, пока не завершены другие
- Где вы находитесь сейчас – сколько уже сделано и сколько осталось
Диаграмма Ганта – это не волшебная палочка, которая сама выполнит проект за вас. Но она превращает хаотичное планирование в структурированный процесс. Вместо того чтобы паниковать перед дедлайном, вы видите чёткую картину: какие задачи критичны, где можно немного расслабиться, а где нужно поднапрячься.
Диаграмма Ганта
Давайте для начала познакомимся с автором этой диаграммы. В начале XX века, когда автомобили только начинали вытеснять конные экипажи, а о компьютерах никто и не мечтал, американский инженер-механик Генри Лоуренс Гант столкнулся с проблемой, которая мучает менеджеров и по сей день: как эффективно управлять сложными производственными процессами?
Гант работал консультантом на крупных промышленных предприятиях. В те времена строительство кораблей, возведение заводов или организация производства новой продукции превращались в настоящий кошмар для управленцев. Сотни рабочих, десятки этапов работ, зависимости между задачами – всё это приходилось держать в голове или записывать в виде бесконечных таблиц и текстовых описаний.
В 1910-х годах Гант предложил революционное решение: представить проект не как список задач, а как визуальную временную шкалу. Он начал рисовать горизонтальные полосы, где длина каждой полосы соответствовала продолжительности задачи, а положение на временной оси показывало, когда эта задача должна выполняться.
Идея оказалась настолько удачной, что диаграммы Ганта быстро распространились по всему миру. Их использовали при строительстве дамбы Гувера – одного из крупнейших инженерных проектов своего времени. Позже этот метод планирования применяли при реализации Манхэттенского проекта по созданию атомной бомбы и при строительстве системы межштатных автомагистралей в США.
Сегодня, более ста лет спустя, диаграммы Ганта остаются стандартом управления проектами. Просто теперь их рисуют не на бумаге, а в специальных программах и веб-сервисах.
Компоненты диаграммы
Давайте разберёмся, из каких элементов состоит диаграмма Ганта и как она работает. По сути, это таблица особого формата, которая превращает абстрактные задачи в наглядную картину.
Список задач располагается в левой части диаграммы. Это вертикальный перечень всех работ, которые нужно выполнить в рамках проекта. Задачи обычно разбиты на логические группы или этапы. Например, для нашего итогового проекта это могут быть группы «Проектирование», «Разработка», «Тестирование», «Документация» и «Защита».
Временная шкала (таймлайн) занимает верхнюю часть диаграммы. Это горизонтальная ось, размеченная на отрезки времени: дни, недели или месяцы – в зависимости от масштаба проекта. Для двухмесячного школьного проекта удобно использовать недели, для годового – месяцы.
Задачи-полосы – это сердце диаграммы. Каждая задача из списка превращается в горизонтальную полосу (обычно прямоугольник), которая начинается в момент начала работы и заканчивается в момент её завершения. Длина полосы визуально показывает длительность задачи. Глядя на диаграмму, вы сразу видите: эта задача займёт три дня, а вон та – целых две недели.
Зависимости между задачами отображаются стрелками, которые соединяют связанные работы. Если задачу Б нельзя начать, пока не завершена задача А, от конца полосы А к началу полосы Б рисуется стрелка. Эти связи показывают логику проекта: что за чем должно идти и почему нельзя поменять порядок.
Вехи (milestone) – это особые точки на диаграмме, обозначающие важные события или контрольные точки проекта. Обычно их изображают ромбиками или звёздочками. Например, «Макеты утверждены», «Первая версия готова», «Проект сдан». Вехи помогают разбить большой проект на понятные этапы.
Индикатор текущей даты – вертикальная линия, показывающая сегодняшний день. Всё, что левее этой линии, уже должно быть выполнено. Всё, что правее – предстоит сделать. Некоторые диаграммы также показывают процент выполнения каждой задачи – например, закрашивая часть полосы.
Давайте вернёмся к нашему итоговому проекту и на его примере вручную построим диаграмму Ганта.
Начнём с задач, перепишем составленный ранее список в левую часть диаграммы.
Теперь сверху на временной шкале расставим временные интервалы. Пока что ограничимся только неделями с первой по восьмую.
И самое ответственное – нужно распланировать все задачи. Под каждую задачу будем рисовать горизонтальную полосу на пересечении строки этой задачи и столбца той недели, на которой планируем выполнять эту задачу.
Но, прежде чем расставлять эти полосы на диаграмме, нужно понять, какая задача от какой зависит. Ведь как уже говорили ранее, мы банально не можем начать тестировать код, который даже не написан.
Предположим, у нас такие зависимости:
- Задачи с первую по третью выполняются друг за другом (каждая последующая может начинаться только после окончания предыдущей)
- Создавать базы данных и писать код добавления задач мы можем параллельно
- Тестировать и исправлять баги тоже можем в одно время, но лучше, чтобы исправление багов начиналось позже тестирования, а заканчивались они в одно время. Как раз в этот же период можем и заняться документацией – ведь код уже готов, мы только исправляем некоторые недочёты.
- После того, как все предыдущие процессы завершены, можно приступать к созданию презентации
Сразу скажем про зависимости – их отражать на диаграмме мы не будем, чтобы не ухудшить читаемость.
Пока предположим такой график:
- На первой неделе продумываем дизайн
- Вторую неделю посвятим отрисовке макетов
- Всю третью неделю пишем код главной страницы
- На четвёртой неделе начинаем сразу две задачи: создаём базу данных (на неё хватит одной недели) и пишем код для добавления задач (тут уже меньше двух недель не закладываем)
- После того, как закончим писать код, в начале шестой недели можем приступить к тестам
- Спустя неделю тестов начнём исправлять баги и писать документацию
- И оставшуюся восьмую неделю посвятим созданию презентации
На диаграмме это будет выглядеть следующим образом.
Ну и последним штрихом добавим индикатор текущей даты. Предположим, что мы находимся в середине второй недели.
И вот магия: вместо плоского списка перед нами наглядная картина. Видно, что первые три недели – самые простые, где сильной загрузки по задачам нет. Зато к седьмой неделе надо серьезно подготовиться, ведь предстоит работать сразу над тремя задачами параллельно.
Самое главное в таком подходе – используя зависимости, можно легко передвигать сроки каждой задачи, не переживая, что все последующие наложатся друг на друга.
В нашем примере мы построили диаграмму в графическом редакторе, нарисовав таблицу и прямоугольники. Можно делать это и на бумаге – взять лист в клетку, расчертить временную шкалу и рисовать задачи цветными карандашами или маркерами. Для небольших проектов на пару недель это вполне рабочий вариант.
Однако у ручного рисования есть серьёзные недостатки. Что делать, если задача затянулась и нужно сдвинуть все последующие работы? Перерисовывать всю диаграмму? А если добавилась новая задача или изменились зависимости? Бумажная диаграмма быстро превращается в месиво из исправлений и стрелок.
Поэтому для серьёзных проектов используют специальные программы и сервисы. Существует множество решений – как платных, так и бесплатных. Среди популярных профессиональных инструментов – Microsoft Project, Asana, Jira. Есть и бесплатные альтернативы: GanttProject, TeamGantt, онлайн-сервис Trello с расширениями. Все они позволяют создавать красивые интерактивные диаграммы, автоматически пересчитывать сроки при изменениях, работать в команде.
Но есть способ проще и доступнее, который не требует регистрации в сервисах, изучения сложных программ или траты денег. Диаграммы Ганта прекрасно строятся в обычных редакторах электронных таблиц – таких как Microsoft Excel, Google Sheets или бесплатный LibreOffice Calc. У вас уже есть всё необходимое: таблица для списка задач и дат, ячейки для визуализации временной шкалы, возможность раскрашивать их в нужные цвета.
Давайте научимся строить диаграммы Ганта в LibreOffice Calc – свободном офисном пакете, который можно бесплатно установить на любой компьютер. Этот навык пригодится вам не только для школьных проектов, но и в дальнейшей учёбе и работе.
Построение диаграммы в LibreOffice Calc
Планирование разработки игры
Представьте, что вы с друзьями решили создать небольшую 2D-игру в жанре платформер для школьного конкурса или просто для портфолио. Команда у вас уже сформирована: есть программисты, художники и звукорежиссёр. Энтузиазма – хоть отбавляй, идей – море, но совершенно непонятно, как организовать работу, чтобы через два месяца получить готовую игру, а не набор несовместимых друг с другом файлов.
Вы берёте на себя роль проджект-менеджера – человека, который координирует работу команды и следит за сроками. Первым делом нужно понять, какие задачи предстоит выполнить и как они связаны между собой. Вы собираете встречу с «лидами» всех направлений: главным программистом Алексеем, арт-директором Марией и звукорежиссёром Дмитрием.
Сбор информации о задачах
На встрече вы записываете задачи и обсуждаете каждую из них. Алексей, главный программист, говорит:
– Нам нужно создать игровой движок с физикой и управлением персонажем. Это основа всей игры: прыжки, столкновения с платформами, гравитация. Без этого ничего не заработает. На разработку движка уйдёт примерно 2 недели. Эту задачу можно начинать прямо сейчас, она ни от чего не зависит.
Мария, арт-директор, добавляет:
– Мне нужно нарисовать все спрайты персонажа: анимации ходьбы, прыжков, простоя. Это займёт 2 недели. Я могу начинать параллельно с программистами, нам не нужно ждать друг друга на этом этапе.
Дмитрий, звукорежиссёр, уточняет:
– Я создам звуковые эффекты и фоновую музыку – звуки прыжков, сбора предметов, музыкальную тему для игры. На это понадобится 2 недели. И мне тоже не нужно ничего ждать, могу работать параллельно со всеми.
Алексей продолжает:
– Когда движок будет готов, а спрайты нарисованы, нужно будет интегрировать графику в игру – связать анимации персонажа с движениями, настроить всё визуально. Это зависит и от движка, и от готовых спрайтов, поэтому начать можно будет только после завершения обеих задач. Интеграция займёт 1 неделю.
Мария добавляет:
– После интеграции графики я нарисую уровни и окружение – платформы, фоны, препятствия. Для этого мне нужно видеть, как всё выглядит в игре, чтобы подобрать правильный стиль и масштаб. На создание уровней уйдёт 3 недели.
Наконец, Алексей резюмирует:
– Когда уровни будут готовы, а звуки созданы, останется финальная сборка игры: добавить звуковые эффекты, музыку, настроить все уровни, протестировать и исправить баги. Эта задача зависит от готовых уровней и звуков. На финальную сборку заложим 2 недели.
Вы записываете все задачи и получаете такую картину:
- Разработка игрового движка – 2 недели, не зависит ни от чего
- Создание спрайтов персонажа – 2 недели, не зависит ни от чего
- Создание звуков и музыки – 2 недели, не зависит ни от чего
- Интеграция графики – 1 неделя, зависит от движка и спрайтов
- Разработка уровней – 3 недели, зависит от интеграции графики
- Финальная сборка – 2 недели, зависит от уровней и звуков
Информация собрана, зависимости понятны. Теперь нужно превратить эти данные в наглядную диаграмму Ганта, которая покажет, когда какая задача выполняется, где возможна параллельная работа, а где команде придётся ждать завершения предыдущих этапов. Открываем LibreOffice Calc и начинаем строить диаграмму.
Подготовка таблицы
Для начала давайте структурируем все потребности нашей команды разработчиков в виде одной таблицы. В первом столбце вынесем все задачи, во втором – их длительность, а в третьем зависимости процессов: графика зависит от движков и спрайтов, уровни – от графики, а сборка всего продукта – от звуков и уровней.
Для большей наглядности раскрасим каждый столбец.
Сразу отметим, что работать со столбцом, в котором перечислено сразу несколько зависимостей, будет трудно. Давайте разделим его на несколько так, чтобы каждая зависимость была в отдельном столбце. Для этого будем использовать инструмент «Текст по столбцам».
Выделим столбец с зависимостями («С»), далее в меню сверху выбираем вкладку «Данные», а в выпадающем меню «Текст по столбцам».
Calc автоматически подберёт нужный разделитель (здесь – «; »), вам останется лишь нажать на кнопку «Ок». В итоге вместо одного столбца получим два, а все пустые ячейки заполним нулями.
Данные мы подготовили, теперь можем перейти к следующему этапу, на котором будем добавлять вспомогательные столбцы для корректной работы нашей диаграммы.
Вспомогательные столбцы
Давайте определим, какие еще столбцы понадобятся. У нас есть длительность каждой задачи, но для того, чтобы «нарисовать» полосу выполнения задачи, нам нужно знать её время начала и окончания.
Также нам нужно узнать длительность каждой задачи, от которой зависят другие. Например, для графики нужно добавить «отступ», чтобы эта задача не могла начинаться до того, как закончатся задачи «Движок» и «Спрайты». У нас максимум две зависимости у задач, следовательно, добавлять будем два столбца – по одну на длительность каждой зависимости.
Ну и последнее, добавим еще один столбец «Сдвиг», чтобы иметь возможность двигать каждую задачу по необходимости. Этим мы воспользуемся в самом конце.
Получим такую таблицу.
Теперь начнём её заполнять. В столбцах «E» и «F» у нас находится время, на которое нужно сдвинуть текущую задачу. Например, графику нам нужно сдвинуть на 2 единицы времени (2 недели). То есть мы не можем начать эту задачу раньше, чем закончатся те, от которых она зависит.
Давайте думать, как «подтянуть» эти длительности. Логично предположить, что нужно «посмотреть» на имя задачи из столбца «C» или «D» и перенести время окончания этой задачи.
Сделать это можно с помощью функции ВПР(). Для этого, в ячейке «E2» впишем формулу: «=ВПР(C2;$A:$I;8;0)».
Что делает эта формула? Она ищет название задачи из ячейки «C2» (например, «Движок») в столбце «A» нашей таблицы. Когда находит эту задачу, берёт значение из 8-го столбца этой же строки – а там как раз лежит время окончания задачи. Проще говоря: «Найди задачу-зависимость и скажи мне, когда она закончится».
Звучит сложно, но суть простая: нам нужно узнать, когда завершатся задачи, от которых зависит текущая. Это нужно, чтобы зависимые задачи автоматически выстраивались только после тех, от которых они зависят.
Но тут вырисовывается одна проблема. Для независимых задач у нас будет красоваться неприятное «#Н/Д».
Это вполне очевидно, ведь задачи с именем «0», которое находится в «C2», у нас нет. Чтобы избавиться от такого нехорошего поведения функции ВПР() можно применить один из двух подходов:
- Добавить «нулевую» задачу с длительностью в 0
- Использовать дополнительную функцию «ЕСЛИОШИБКА()»
Мы пойдём вторым путем. Поправим формулу в нашей ячейке:
«=ЕСЛИОШИБКА(ВПР(C2;$A:$I;8;0);0)»
Это позволит расставить нули в тех ячейках, в которых было бы «#Н/Д».
Теперь исправленную формулу растягиваем вниз до конца таблицы. Аналогично поступаем и со столбцом «F», в него будем подтягивать время окончания второй зависимости (если она есть). В формуле поменяется только первый аргумент: «=ЕСЛИОШИБКА(ВПР(D2;$A:$I;8;0);0)».
В итоге имеем два столбца с длительностью каждой зависимости.
Заметьте, там, где нет нулей в столбцах «E» и «F» потом должны будут появиться числа!
Теперь перейдём к «жёлтым» ячейкам. Начнём с определения времени завершения каждой задачи. Чтобы это вычислить, мы сделаем следующее: к длительности самой задачи из столбца «B» добавим максимальную из длительностей задач, от которых она зависит, если такие имеются, а также добавим значение сдвига из столбца «I».
В виде формулы это выглядит так: «=B2 + МАКС(E2:F2) + I2».
То есть правило у нас такое: «время окончания = длительность задачи + длительность самой долгой из зависимостей + ручной сдвиг (I)».
Растягиваем формулу вниз и получаем такую таблицу.
Давайте проанализируем полученные значения. Рассмотрим, к примеру, задачу «Сборка», хоть они и длится всего 2 недели, но зависит-то она от двух задач, которые длятся по 2 и по 6 недель. Значит, раньше 6 недель мы никак не сможем начать выполнять сборку проекта.
Тогда время окончания задачи «Сборка» будет такой: максимальная из длительностей зависимостей (6) + длительность самой задачи (2) = 8 недель.
Также обратите внимание, что пустые ячейки в столбцах «E» и «F» заполнились данными.
Теперь вычислим время начала каждой задачи. Время начала задачи – это разница между временем её окончания и длительностью. Но нужно добавить единицу, чтобы получить правильное время начала.
Например, если задача заканчивается на 4-й неделе и длится 2 недели, то она начинается на неделе: 4 - 2 + 1 = 3. Без этой единицы получилось бы, что задача начинается на 2-й неделе, что неверно.
В итоге получаем такую заполненную таблицу.
Теперь можно перейти к построению временной шкалы (таймлайна) и её заполнению.
Построение временной шкалы
В первой строке справа от таблицы нам необходимо поместить последовательность чисел 1, 2, 3 и так далее.
Естественно, не стоит вписывать все числа вручную: в ячейке «J1» напишите «1», а в «K1» – формулу «=J1+1», то есть «Значение предыдущей ячейки + 1».
Далее можно либо растянуть эту формулу вправо, либо воспользоваться таким алгоритмом, который пропишет нужные значения вплоть до конца листа:
- Копируем значение ячейки «K1» сочетанием клавиш «Ctrl + C»
- Нажимаем сочетание клавиш: «Ctrl + Shift + Стрелка вправо», перемещаемся в крайний правый столбец листа, при этом выделяя все ячейки, начиная со второй.
- В выбранный диапазон вставляем значение со второй ячейки нажатием сочетания клавиш «Ctrl + V»
Получим вот такую временную шкалу.
Осталось заполнить её «полосами» под каждую задачу. Наша цель – сделать так, чтобы в строках каждой задачи появлялись единицы (1) в те моменты времени, когда задача выполняется, и пусто, если оно в этот момент не выполняется.
Логика у нас будет следующая: для каждой ячейки в этой «сетке» нам нужно проверить, попадает ли текущий момент времени (число сверху в первой строке) в диапазон между началом и концом задачи. Если да – ставим 1, если нет – оставляем ячейку пустой.
Для этого воспользуемся формулой:
«=ЕСЛИ(И($G2<=J$1;J$1<=$H2);1;"")»
Разберём её по частям:
«$G2» – это начало задачи (из столбца «G»). Знак «$» фиксирует столбец «G», чтобы при растягивании вправо он не менялся.
«J$1» – это номер текущего момента времени (из первой строки). Знак «$» здесь фиксирует строку 1, чтобы при растягивании вниз она не менялась.
Выражение «$G2<=J$1» проверяет, наступил ли уже момент начала задачи. Соответственно, выражение «J$1<=$H2», наоборот, проверяет, не закончилась ли задача.
Операция конъюнкции («И») нужна для проверки обоих условий, то есть требует, чтобы текущее время «J$1» было одновременно больше или равно началу задачи и меньше или равно времени окончания задачи.
Сама же функция ЕСЛИ() проверяет истинность всего условия, если оно выполняется, то в текущей ячейке ставится единица, если нет – ячейка остаётся пустой.
Таким образом, формула проверяет «находится ли текущая неделя в промежутке выполнения задачи». Если да – ставит 1, если нет – оставляет пустоту.
Допустим, у нас:
- Начало процесса G2 = 4
- Конец процесса H2 = 6
- В строке 1 стоят числа времени: 1, 2, 3, 4, 5, 6, 7…
Посмотрим, как будет работать формула в разных столбцах:
- Время 1: Выражение 4 <= 1 <= 6 ложно, ячейка пустая
- Время 2: Выражение 4 <= 2 <= 6 ложно, ячейка пустая
- Время 3: Выражение 4 <= 3 <= 6 ложно, ячейка пустая
- Время 4: Выражение 4 <= 4 <= 6 истинно, ячейка заполняется единицей
- Время 5: Выражение 4 <= 5 <= 6 истинно, ячейка заполняется единицей
- Время 6: Выражение 4 <= 6 <= 6 истинно, ячейка заполняется единицей
- Время 7: Выражение 4 <= 7 <= 6 ложно, ячейка пустая
В итоге для этой задачи в строке появится три единицы подряд – над числами 4, 5, 6. Это и будет «полоса» на диаграмме Ганта.
После того как формула введена в «J2» – растягиваем её вправо до конца временной шкалы. Затем всю строку растягиваем вниз для всех имеющихся задач.
В итоге имеем такую диаграмму Ганта.
Работа с диаграммой Ганта
Диаграмма построена и можно приступать к работе с ней. Но для начала, давайте «подсветим» ячейки на диаграмме для большей наглядности. Это можно сделать с помощью условного форматирования.
Выбираем все ячейки из диаграммы (у нас это диапазон от «J2» до «S7»), переходим в меню «Условное форматирование», далее «Условие…» и выбираем пункт «Равно…»
В открывшемся диалоговом окне вписываем значение 1 в поле для ввода слева, а в выпадающем меню выбираем стиль ячеек. В нашем случае – это стиль «Хорошо», при котором соответствующие условию ячейки выделятся светло-зелёным цветом.
В результате у нас получается вот такая диаграмма.
Теперь представим такую ситуацию: у нас маленькая команда инди-разработчиков и одновременно могут работать только 2 группы: либо дизайнеры и программисты, либо команда саунд-эффектов и дизайнеры, либо же программисты вместе с командой саунд-эффектов.
Наша цель, как проджект-менеджера, грамотно разнести задачи во времени так, чтобы одновременно выполнялось не более двух задач. Давайте приступим к реализации этой цели.
Для начала, чтобы глазами не бегать по диаграмме, выведем снизу статистику – сколько задач выполняется в текущий момент времени. Выбираем ячейку «J8» и пишем формулу: «=СУММ(J2:J7)». Она просто просуммирует все единицы «над собой». Эту формулу растягиваем вправо до конца таблицы.
И вот мы увидели, что в первые две недели одновременно выполняются три задачи – такое нас не устраивает. Именно для этого мы и добавили столбец «Сдвиг»! С помощью него мы можем немного «отодвинуть» начало какой-либо задачи.
Но стоит помнить, что есть задачи, от которых зависят некоторые остальные. Например, предложим нашему арт-директору начать работу над спрайтами на две недели позже.
Вот незадача, от спрайтов персонажа зависят все оставшиеся задачи: графика, уровни и сборки. И, перенос времени начала второй задачи, повлиял на время окончания всего проекта: теперь вместо запланированных 8 недель мы должны потратить целых 10.
Необходимо выбрать другую задачу для переноса. Немного поразмыслив, мы поймём, что, как и от спрайтов, так и от движка зависит следующая за ними задача – графика. А от графики уже зависят и уровни, и сборка.
Но есть еще «звуки», результат работы которых понадобится только на самом последнем этапе – на этапе сборки. Тогда можем смело передвинуть время начала работы этой задачи на две недели.
В итоге мы добились того, чтобы в каждый момент времени выполнялись не более двух задач и при этом общий срок не растянулся далее 8 недель.
Итоги
Теперь вы знаете, что такое диаграмма Ганта, как она помогает визуализировать проект и управлять зависимостями между задачами.
Мы научились строить такую диаграмму в LibreOffice Calc: создавать временную шкалу, использовать формулы для автоматического расчёта сроков, работать с зависимостями и оптимизировать загрузку команды. Этот навык пригодится не только для школьных проектов и разработки программ, но и для любого планирования – от подготовки к экзаменам до организации личных проектов.
В следующей статье мы применим полученные знания для решения заданий 22 ЕГЭ по информатике. Вы увидите, как умение работать с электронными таблицами и понимание логики зависимостей помогает быстро и правильно решать экзаменационные задания.
<<< Последняя статья Следующая статья >>>