Содержание


Управление проектами с помощью Taskjuggler

Часть 1. Установка и начало работы

Comments

Серия контента:

Этот контент является частью # из серии # статей: Управление проектами с помощью Taskjuggler

Следите за выходом новых статей этой серии.

Этот контент является частью серии:Управление проектами с помощью Taskjuggler

Следите за выходом новых статей этой серии.

О программе

ТaskJuggler — программа для управления проектами, распространяемая на условиях лицензии GPL. В настоящий момент последняя версия имеет номер 3.3.0 и написана на языке Ruby. Работает под управлением операционных систем, для которых имеется реализация данного языка, в частности Linux, Unix, Windows. TaskJuggler может работать с большими проектами: содержащими более 10000 задач, более 1000 ресурсов и сложные условия. Есть много примеров успешного применения taskjuggeler, наиболее известный — для разработки и контроля выполнения Fedora Project. Узнать подробности об авторах программы, скачать последнюю версию и документацию можно на сайте.

Установка в GNU/Linux

Рассмотрим установку на примере системы Linux Ubuntu 12.04. Taskjuggler не входит в состав репозитория, видимо, из-за простой установки средствами gem.

Сначала необходимо установить ruby командой:

$ sudo apt-get install ruby1.9.1

Затем установить саму программу, уже используя средство управления пакетами gem:

$ sudo gem install taskjuggler

Будет установлена последняя версия TaskJuggler с необходимыми зависимостями. Обычно после ввода этой команды компьютер может несколько минут не выдавать ничего в терминал, в это время выполняется соединение с интернет хранилищем, и необходимо просто подождать. При установке в Windows порядок аналогичен: необходимо скачать сам Ruby и воспользоваться командой

gem install taskjuggler

в Ruby терминале.

Иногда бывает, что gem не может скачать необходимые пакеты, это обычно связано с настройками брандмауэра (firewall) в ОС Windows.

Структура и имена файлов

TaskJuggler не имеет графического интерфейса, все настройки и информация о проекте хранятся в специальных текстовых файлах. И это скорее преимущество, т. к. вам не придется изучать особенности работы с графическим интерфейсом, а можно использовать для редактирования уже освоенные текстовые редакторы.

Различают несколько типов файлов, в зависимости от их расширения:

  • tjp – главный файл проекта taskjuggeler, в нем обязательно должно содержатся определение проекта, начинающееся с команды project;
  • tji – файлы проекта, в которых может содержаться разная информация: задачи, ресурсы, программы построения отчетов. Они включаются в состав проекта командой include.

Также частью проекта являются отчеты (reports), они формируются в процессе выполнения TaskJuggler и могут иметь разные расширения, в зависимости от типа: html, cvs, txt, ical и другие.

Использование текстовых редакторов для создания проектных файлов

Для создания файлов проектов, задач и ресурсов можно применять любой текстовый редактор с поддержкой кодировки UTF-8, например, gedit или notepad. Но разработчики предлагают использовать vim и написали конфигурационные файлы для подсветки синтаксиса и упрощения работы. Далее привожу способ настроить vim для работы с файлами TaskJuggler.

Vim, как правило, установлен в любой Linux, но у Ubuntu 12.04 стоит упрощенная версия, поэтому необходимо установить полную:

$ sudo apt-get install vim

Если вы никогда не настраивали vim, надо создать подкаталог в домашнем каталоге:

$ cd ${HOME}
$ mkdir .vim
$ mkdir .vim/syntax

Далее надо скопировать в него файл с настройками - tjp.vim. Если вы устанавливали TaskJuggler с использованием gem, это можно сделать командой:

$ cp `gem contents taskjuggler | fgrep tjp.vim` .vim/syntax

Теперь нужно научить vim открывать необходимые файлы с использованием настроек, для этого редактируем файл .vim/filetype.vim, добавляя туда секцию:

augroup filetypedetect
au BufNewFile,BufRead *.tjp,*.tji               setf tjp
augroup END

Затем редактируем файл .vim/syntax.vim, указывая в нем место нахождения tjp.vim. Надо найти в нем строку:

au! Syntax tjp

и заменить ее на:

~/.vim/syntax/tjp.vim

Если у вас нет такого файла или он пустой, просто создайте его и добавьте в него эту строку.

Если все было выполнено верно, то при следующем запуске вы увидите:

  • подсветку синтаксиса;
  • функцию «сворачивания» — блок аргументов в фигурных скобках может быть свернут для упрощения отображения. Такие блоки выделяются цветом (на рис.1 белым) и начинаются со знаков +---, далее указано кол-во строк в нем.

Подробности можно узнать в документации.

Рисунок 1. Пример использования vim для редактирования файлов проектов TaskJuggler.
Рисунок 1. Пример использования vim для редактирования файлов проектов TaskJuggler.
Рисунок 1. Пример использования vim для редактирования файлов проектов TaskJuggler.

Описание общей информации о проекте

Рассмотрим работу с TaskJuggler на примере конкретного проекта.

Наименование проекта: внедрение программного обеспечения для расчета единовременных выплат (далее ЕДВ), предусмотренных местным и федеральным законодательством в органах социальной защиты населения (далее ОСЗН).

Задачи проекта: приобретение ПО, его адаптация под нормативную базу региона, установка на местах, обучение пользователей и выполнение расчета ЕДВ.

Ниже привожу пример файла проекта, и далее его разбираем:

Листинг 1. Файл asp.proj.tjp
1	project  EDV "Внедрение программного модуля по расчету 
выплаты ЕДВ" "1.0" 2012-04-01 + 6m  { 
2	 timingresolution 60min 
3	  timezone "Europe/Moscow" 
4	  dailyworkinghours 8 
5	  yearlyworkingdays 260.714 
6	  timeformat "%d-%m-%Y %H:%M" 
7	  shorttimeformat "%H:%M" 
8	  currencyformat "(" ")" "," "." 0 
9	  # -----настройка рабочего времени ------- 
10	  weekstartsmonday # начало недели - понедельник 
11	  workinghours mon - fri 8:00 - 12:00, 13:00 - 17:00 # рабочее время 
12	  workinghours sat, sun off 
13	  #------ конец настроек рабочего времени ------- 
14	  currency "RUB" # валюта 
15	  scenario plan "Plan" {scenario Fact "Fact"} 
16	  # добавить дополнительное свойство для ресурсов - Phone - телефон 
17	  extend resource {  text Phone "тел." } 
18	} 
19	# добавить праздничные дни 
20	vacation "1 мая" 2012-05-01+2d 
21	vacation "9 мая" 2012-05-08+3d 
22	# ------- создание счетов ---------- 
23	account opl "Уплачено" { # показывает сколько получил подрядчик 
24	  aggregate tasks } 
25	#счет для оплаты работ подрядчика 
26	account bud "Бюджет" { 
27	credits 2012-04-10 "Получено из бюджета области" 700000} 
28	balance bud opl 
29	#---------- подключение внешних файлов --------------------- 
30	include "asp.res.tji" 
31	include "asp.task_simple.tji" 
32	include "asp.reports_simple.tji"

Сразу оговорим:

  • пример разбираем со стороны руководителя проекта заказчика;
  • пример, приведенный здесь и ниже, взят из реальной жизни, но несколько упрощен для облегчения изложения;
  • в листинге слева стоят номера строк, на самом деле в файле их нет, они введены для упрощения изложения.

Описание проекта начинается с команды project, далее указываются идентификатор проекта, его наименование, версия, срок выполнения; после в фигурных скобках указываются аргументы команды.

  • Идентификатор — допустимы английские буквы и цифры, в примере: EDV;
  • наименование — любые символы;
  • версия — число;
  • срок выполнения удобно задать как дата начала + длительность.

Формат дат и времени в Taskjuggler:

  • дата события задается в формате — YYYY.MM.DD, например 2012.05.01 — первое мая 2012 года;
  • длительность интервала времени задается в формате XY, где X — десятичное число, Y — символ(ы):
    • min - минуты;
    • h - часы;
    • d - дни:
    • m - месяцы;
    • y - годы.

Срок проекта необходим для построения отчетов; по умолчанию это диапазон, для которого происходит расчет отчета (даже если проект завершился раньше или начался позже), вполне допустимо указать его ориентировочно. В случае, если вы ошибетесь и какая-то задача не сможет быть выполнена в заданные сроки, при компиляции проекта получите ошибку вида:

Error in scenario plan: Some tasks did not fit into the project time frame.

У команды project может быть множество аргументов, например:

  • timingresolution — минимальный интервал времени, который учитывается в расписании, в минутах;
  • timezone — часовой пояс;
  • dailyworkinghours — часов в рабочем дне;
  • yearlyworkingdays — рабочих дней в году;
  • weekstartsmonday — указывает, что рабочая неделя начинается с понедельника;
  • workinghours — указывает рабочие и нерабочие часы, дни недели. Можно провести более детальную настройку рабочего дня, указав рабочее время, как в стоке 11, и нерабочие дни недели — 12.
  • В строках 6-7 приведены настройки отображения дат и времени для отчетов; так, в отчетах (и только в них) дата будет показана в привычном нам формате — дд.мм.гггг.
  • В строке 14 указана текущая валюта — RUB (отображается при построении некоторых отчетов).
  • В стоке 15 - scenario plan "Plan" {scenario Fact "Fact"} - определены два типа сценария. Plan — в терминах проектного управления это базовый план-график, относительно него рассчитываются задержки или опережения выполнения. В качестве аргумента команде можно задать другие сценарии, у нас определен только один Fact. Но можно задать много других — например, оптимистичный, с учетом рисков и т.п. Если предполагается отслеживание выполнения плана, то необходимо задавать не менее 2 сценариев, если отслеживать не предполагается (например, мы готовим укрупненный план для презентации), то команду можно пропустить целиком.
  • В строке 17 добавлено дополнительное свойство для ресурсов — телефон, но об том ниже.

На этом аргументы project заканчиваются.

Далее можно указать дополнительные опции, влияющие на планирование проекта. Например, существует специальная команда, чтобы определить нерабочие дни — vacation. В строках 20 и 21 указаны праздничные дни, в которые проект не будет выполнятся.

Важной частью проектного управления является управление финансами. Для этого служат счета — строки 22-27. Счетов можно создать сколь угодно много, здесь создано 2, но часто хватает и одного. Сразу при создании счета можно положить на него средства командой credits. Для анализа счетов служит команда balance, с ее помощью вычисляется разница между прибылью и убытками.

В строках 30-32 происходит подключение внешних файлов в программу, они должны лежать в том же каталоге, что и файл tjp, либо путь к ним должен быть прописан полностью. Подключение внешних файлов является «хорошим тоном», т. к. позволяет использовать шаблоны. Например, вы сможете создать файл ресурсов с сотрудниками компании, ее техникой и т. п. и использовать во всех своих проектах; файл с задачами также должен быть подключен, т. к. его можно создать разными путями — например экспортом из программы freemind, как рассказано в этой статье. Файлы для построения отчетов — тем более: мы, как правило, привыкаем к отчетам определенной формы и, раз оформив их в виде отдельных файлов, будем использовать постоянно.

Заключение

В данной статье мы рассмотрели установку программы по управлению проектами TaskJuggler и ввод информации о проекте. Если создание текстовых файлов вам показалось несколько громоздким, то это только первое впечатление, т. к. мы все создаем с нуля. Следующие проекты вы сможете писать на основе имеющихся шаблонов, что намного упростит и ускорит задачу.


Ресурсы для скачивания


Похожие темы


Комментарии

Войдите или зарегистрируйтесь для того чтобы оставлять комментарии или подписаться на них.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux, Open source
ArticleID=856609
ArticleTitle=Управление проектами с помощью Taskjuggler: Часть 1. Установка и начало работы
publish-date=01292013