LXF125:TaskJuggler
(викификация, оформление, иллюстрация) |
(→Создаем свое) |
||
Строка 24: | Строка 24: | ||
===Создаем свое=== | ===Создаем свое=== | ||
− | {{Врезка| Содержание= [[Изображение: | + | {{Врезка| Содержание= [[Изображение:LXF125_38_1.jpg|400px]] Отчет «Диаграмма Гантта» — стандартный способ cлежения за ходом выполнения проекта.|Ширина= 400px}} |
Приступим к планированию: назовем наш проект, укажем формат даты, создадим суммарную задачу проекта. Заменим код, приведенный выше, на | Приступим к планированию: назовем наш проект, укажем формат даты, создадим суммарную задачу проекта. Заменим код, приведенный выше, на |
Текущая версия на 16:10, 3 декабря 2010
|
|
|
Содержание |
[править] TaskJuggler: План через код
- Есть ли у вас план проекта? Алексей Джежора подскажет, как создать его и отслеживать ход выполнения.
Современное понимание ремесла управления проектами, будь то создание космического корабля, модернизация станка или строительство конуры для любимой собаки, немыслимо без применения специализированного программного обеспечения. И существующее свободное проектное ПО достигло такого уровня функциональности, что способно полностью вытеснить собой проприетарные продукты. Среди множества свободных программ (обзор и сравнение см. LXF116, а на самом деле их еще больше) по управлению проектами, своим нестандартным подходом выделяется TaskJuggler. На официальной странице (http://www.taskjuggler.org) можно найти исходный код для загрузки, много полезной информации, а также 200-страничное руководство пользователя в формате PDF на английском языке. Последняя стабильная версия 2.4.3 собрана в двоичные пакеты под многие дистрибутивы (Deb и RPM точно есть).
TaskJuggler ломает стереотип, сложившийся для программ по управлению проектами, и прежде всего потому, что план проекта со всеми зависимости буквально пишется во встроенном текстовом редакторе. При этом визуализирующие отчеты, получаемые посредством TaskJugglerUI, могут формироваться из нескольких файлов, создавать которые могут разные специалисты. Все это, на самом деле, очень удобно: экономится куча времени, нет необходимости щелкать мышью в бесконечном количестве диалогов, а отчеты хорошо оформлены и их, так сказать, не стыдно и подчиненным, и начальству, и заказчикам показать.
[править] Первые шаги
Сегодня мы составим упрощенный план проекта создания автоматизированной информационно-измерительной системы технического учета электрической энергии (АИИС ТУЭ) приемо-сдаточного пункта. АИИС – это совокупность программно-аппаратных средств, которые измеряют какие-либо величины, результаты этих измерений обрабатывают, хранят и оправляют по назначению.
Интерфейс TaskJuggler интуитивно понятен и состоит из меню, панели инструментов, вкладки текстового редактора Editor и вкладки отчетов Reports. Для создания плана нового проекта нажмите Ctrl+N (или выберите пункт File > New, или просто щелкните по кнопке в форме листа бумаги на панели инструментов).
В возникшем окне укажите папку, где сохранится ваш файл, и имя файла. Проследите, чтобы в полном пути папки (включая каталоги вышестоящих уровней) и самом названии файла были только латинские символы, иначе TaskJuggler откажется работать. Файл нашего проекта назовем Avtomatizatsiya, расширение у него будет .tjp. Вам предложат три исходных шаблона для проекта: очень простой, посложнее и очень сложный. Воспользуемся простым, именуемым Blank Project. В текстовом редакторе появится:
project myProjectId “My Project” “1.0” 2009-10-13 - 2010-12-11 task start “Project Start” { start 2009-10-13 }
Интервал дат начала и конца, разумеется, будет зависеть от даты непосредственного создания плана проекта в TaskJuggler.
[править] Создаем свое
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Приступим к планированию: назовем наш проект, укажем формат даты, создадим суммарную задачу проекта. Заменим код, приведенный выше, на
project myProject “Создание АИИС ТУЭ ПСП” “1.0” 2009-12-01+4m { timeformat “%Y-%m-%d” } task sum “Создание АИИС ТУЭ ПСП” { start 2009-12-01 }
Так как в процессе планирования удобно периодически смотреть, что получается, то сразу создадим соответствующий отчет: таблицу с колонками «индекс иерархии», «наименование», «начало», «окончание», «длительность» и ассоциированную с этой таблицей диаграмму Гантта:
taskreport “GanttCart” {
headline “Создание АИИС ТУЭ ПСП” columns hierarchindex, name, start, end, duration, chart timeformat “%a %d-%m-%Y” loadunit days }
Нажмем F9 (или, если еще есть ностальгия по работе мышью, выберем пункт меню Tools > Generate All Reports, или кнопку на панели инструментов в форме часиков): откроется вкладка отчетов с таблицей из одной строки и пустой диаграммой Гантта. Обратите внимание на формат даты: в TaskJuggler он имеет вид Год-Месяц-Число-Час:Минута:Секунда-ЧасовойПояс. Обязательными к заданию являются год, месяц и число, а все остальное указывается при необходимости. В отчетах такой порядок отображения дат можно менять, а также добавлять «подробности», например, ДеньНедели Число-Месяц-Год. А вообще, TaskJuggler поддерживает более сорока типов календарных и временных характеристик, включая даже номер века.
[править] Планируем
Теперь приступим к составлению плана. Для начала опишем сотрудников, которые будут исполнителями работ по проекту. В нашем случае это инженер Петр Петрович Иванов, специалист по снабжению Сидор Сидорович Петров и электромонтажник 5-го разряда Иван Иванович Сидоров. Описание поместим перед суммарной задачей проекта:
resource people “Люди” { resource ppl_PPI “П.П. Иванов” resource ppl_SSP “С.С. Петров” resource ppl_IIS “И.И. Сидоров” }
Затем «внутри» суммарной задачи (в промежутке между строкой со start и строкой с символом ‘}’) пропишем последовательность работ, с зависимостями, назначениями и отслеживанием через процент выполнения. Начнем с получения аванса и поставки материалов:
task avans “Перечисление аванса” { start 2009-12-16 milestone } task postavka “Поставка материалов” { responsible ppl_SSP task po_skaff “Поставка оборудования шкафов” { depends !!avans duration 8w complete 40 } task po_electro “Поставка электроустановочных изделий и кабелей” { depends sum.avans {gaplength 2d} duration 3w } }
Задача avans обозначена как веха – milestone: в предшествующей зависимости от нее находятся задачи по поставке материалов. Эта зависимость задается оператором depends. Ссылки на определяющую задачу могут обозначаться различными способами: символом ‘!’, если эта задача находится в пределах одного уровня подзадач, символами ‘!!’, если в пределах вышестоящего уровня подзадач, или может быть прописана глобальная ссылка, как в задаче po_electro. Через gaplength задается запаздывание начала задачи. Оператором complete определяется процент выполнения; если его не указывать, то TaskJuggler самостоятельно определит его как отношение между длительностью интервала времени от даты начала задачи к текущей дате и длительностью задачи в целом.
[править] О назначениях ресурсов
За поставку материалов оператором responsible назначен ответственный, а оператором duration задана длительность выполнения задач. Если же представить себе, что С.С. Петрову придется самому ехать туда, где делают оборудование шкафов, и с этим оборудованием возвращаться обратно, а потом отправиться за кабелями и электроустановочными изделиями, то вместо длительности логично будет задать трудоемкость – effort, и оператором allocate назначить исполнителя (это тоже будет Сидор Сидорович). Длительность выполнения задач будет рассчитана, исходя из трудоемкости и загруженности назначенного(-ных) исполнителя(-лей). TaskJuggler распределит график выполнения так, чтобы не возникало конфликта назначенных ресурсов. Если назначать ресурсы некорректно, например, указать фиксированные пересекающиеся даты начала и конца выполнения задач (операторы start и end) с одними и теми же исполнителями, то в отчетах можно будет видеть визуализацию их перегрузки. Это также касается и материальных ресурсов. При этом TaskJuggler может работать с общекорпоративным списком ресурсов, что теоретически делает это приложение системой многопроектного планирования уровня среднего предприятия.
Завершим планирование нашего проекта, определив следующие задачи:
task sb_skaff “Сборка шкафов” { depends !postavka.po_skaff effort 2w allocate ppl_PPI, ppl_IIS } task otpr_mtr “Оправка оборудования на ПСП” { depends !postavka.po_electro, sum.sb_skaff duration 4d responsible ppl_SSP } task cmr_pnr “Строительно-монтажные и пуско-наладочные работы” { depends !otpr_mtr effort 3w allocate ppl_PPI, ppl_IIS }
Все использованные конструкции уже должны быть вам знакомы.
[править] Чтобы было красиво
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Теперь, помимо уже созданного отчета с диаграммой Гантта, сформируем HTML-отчет – таблицу «График производства работ», с дополнительными колонками «ответственный» и «ресурсы»:
htmltaskreport “Cart.html” { headline “График производства работ” columns hierarchindex, name, start, end, duration, responsible, resources loadunit days }
Нажмем F9 – и... вуаля! Остается только распечатать и нести на утверждение.
[править] Вести с полей
При помощи TaskJuggler планировался и в настоящее время воплощается проект создания автоматических информационно-измерительных систем коммерческого и технического учета электрической энергии с элементами управления энергохозяйством (АИИС КУЭ, АИИС ТУЭ) на приемо-сдаточном пункте нефтепровода «Сковородино – граница КНР». Работы ведет ООО НПК «Спецэлектромаш» (г. Красноярск). Дело в том, что у руководителя этого проекта и, по случаю, автора этой статьи, на рабочем компьютере «навернулась» файловая система одной из проприетарных ОС. Было решено пойти на смелый эксперимент: установить Linux. Выбор пал на Runtu 3.0. Практически сразу встал вопрос о ПО для управления проектами. Первоначально были попытки применять схожие по функциональности с одной известной проприетарной программой средства, но все они обладали существенными недостатками: Planner и KPlato подпадали под неразрешимые зависимости, OpenProj ел вычислительные ресурсы компьютера как пончики и безнадежно «тормозил». TaskJuggler, во-первых, не обладал подобными недостатками, а во-вторых, оказался очень удобным. Итоговый план проекта рассчитан на период более года и содержит более пятидесяти задач с назначениями ответственных за их исполнение.