Журнал LinuxFormat - перейти на главную

LXF155: Планировщики проекта

Материал из Linuxformat
Версия от 14:06, 26 июня 2018; Olkol (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск


Содержание

Сравнение:= Пла­ни­ров­щи­ки про­ек­тов

Каждый месяц мы сравниваем тысячи программ – а вы можете отдыхать!

Мар­ко Фио­рет­ти ищет, чем Linux по­мо­жет менед­же­рам про­ек­тов.

LXF155.round.illo opt.jpeg


П о­следний раз мы рас­смат­ри­ва­ли со­вмес­ти­мые с Linux про­грам­мы управ­ления про­ек­та­ми три го­да на­зад – и от­ме­ти­ли три мо­мен­та. Во-пер­вых, именно такие про­грам­мы удержива­ли неболь­шой, но важ­ный клас­с поль­зо­ва­те­лей от пе­рехода на сво­бод­ные ОС. За­тем мы вы­яснили, что вы­бор здесь мень­ше, чем в дру­гих клас­сах при­ло­жений для них. И по­следнее... ну, об этом мы по­го­во­рим в кон­це на­ше­го Сравнения.


Пер­вые два из выводов 2009 го­да в основ­ном по-прежнему вер­ны. По­пу­ляр­ность об­лач­ных вы­чис­лений, ве­ро­ят­но, снизи­ла важ­ность на­столь­ных про­грамм по сравнению с про­шлым, хо­тя, по нашему мнению, они ого как да­ле­ки от ги­бе­ли. Та­к что пер­вый пункт, пожалуй, се­го­дня менее ва­жен для менед­же­ров про­ек­тов, чем рань­ше – хотя бы для неко­то­рых ор­ганиза­ций.

Вто­рой вывод, ко­то­рый, похоже, касает­ся и об­лач­ных вы­чис­лений, оче­виден. В 2009 го­ду мы пред­ста­ви­ли пять на­столь­ных про­грамм. На сей раз у нас их че­ты­ре, и не по­то­му, что нам лень по­ка­зать вам боль­ше. Про­сто ока­за­лось труд­но най­ти боль­ше менед­же­ров про­ек­тов, про­стых в уста­нов­ке (по этой при­чине здесь нет Calligra Plan), функ­цио­наль­ных на­столь­ко, что­бы быть по­лез­ны­ми, доступ­ных по ли­цен­зии сво­бод­но­го ПО/от­кры­то­го ко­да, ак­тив­но под­дер­жи­вае­мых и ис­поль­зуе­мых, и (ес­ли мы рас­смат­ри­ва­ли их в 2009 го­ду) доста­точ­но ушед­ших впе­ред за три го­да, что­бы стать достой­ны­ми но­во­го об­зо­ра.

Это стран­но, ведь управ­ление про­ек­том бы­ло и оста­ет­ся – да­же ес­ли мно­гие из нас хоть раз, да же­ла­ли менед­же­ру про­ек­тов лоп­нуть – важ­ной и от­вет­ст­вен­ной дея­тель­но­стью, тре­бую­щей хо­ро­шей спе­циа­ли­зи­ро­ван­ной про­грам­мы, при­чем доста­точ­но эф­фек­тив­ной. Кро­ме то­го, как вы про­чте­те че­рез па­ру се­кунд, хо­тя вы­бор планировщиков про­ек­тов «Сво­бод­ных, как Сво­бо­да» не так уж ве­лик, эти при­ло­жения – отнюдь не бес­по­лез­ны­е иг­руш­ки. Мо­жет, нам боль­ше и не на­до? Раз­беремся.

dotProject

От­лич­ный менед­жер про­ек­тов LAMP для команд, рас­се­ян­ных в Ин­тернете.

(thumbnail)
Все на­чи­на­ет­ся в ок­не соз­да­ния про­ек­та dotProject. Ес­те­ст­вен­но, ко­гда вы соз­да­ди­те хо­тя бы од­ну ком­па­нию.

В от­ли­чие от дру­гих про­грамм Сравнения, dotProject – се­те­вое при­ло­жение, по­стро­ен­ное на стан­дарт­ном ком­плек­те LAMP (Linux, Apache, MySQL, PHP). Ус­та­нов­ка тре­бу­ет боль­ше уси­лий, чем для на­столь­ной про­грам­мы, и не слиш­ком хо­ро­шо до­ку­мен­ти­ро­ва­на, но не так уж и слож­на.

Файл README пред­ла­га­ет ли­бо сле­до­вать ин­ст­рук­ци­ям на web-странице, ко­то­рой (в де­каб­ре 2011 го­да) не су­ще­ст­ву­ет, ли­бо на­пра­вить ваш брау­зер в ди­рек­то­рию сер­ве­ра, где рас­па­ко­вы­ва­лись про­грам­мы. Тогда у вас возникнет со­об­ще­ние об ошиб­ке, по­то­му что от­сут­ст­ву­ет дей­ст­вую­щий файл на­строй­ки, а че­рез па­ру се­кунд поя­вит­ся PHP-страница уста­нов­щи­ка dotProject. Пре­ж­де чем жать на кноп­ку Start Installation, внима­тель­но изу­чи­те со­об­щение под ней. Там на­пи­са­но, что на­до сде­лать пе­ред тем, как про­дол­жить. Обыч­но, ес­ли у вас уже есть и ра­бо­та­ет LAMP, нуж­но толь­ко соз­дать учет­ную запись MySQL и несколь­ко ди­рек­то­рий, а за­тем сле­до­вать дру­гим ин­ст­рук­ци­ям на этой странице.

Сна­ча­ла ис­поль­зо­вание dotProject несколь­ко оза­да­чи­ва­ет тех, кто при­вык к дру­гим при­ло­жениям для управ­ления про­ек­та­ми: кое-что мо­жет по­ка­зать­ся им ненуж­ным. Са­мый важ­ный объ­ект, ко­то­рый тре­бу­ет­ся соз­дать – то, что в до­ку­мен­та­ции име­ну­ет­ся Company [Пред­при­ятие]. Это мо­жет быть ва­шим на­стоя­щим пред­при­яти­ем – или не быть: про­грам­ме все рав­но, лишь бы вы ее соз­да­ли и да­ли ей вла­дель­ца. В dotProject, Company – это про­сто ок­но, со­дер­жа­щее и со­еди­няю­щее при­ме­ры дру­гих за­пи­сей dotProject, та­ких, как Projects [Про­ек­ты], Tasks [За­да­чи], Users [Поль­зо­ва­те­ли] и Contacts [Кон­так­ты].

Объ­ек­ты dotProject, та­кие, как Projects и Users, долж­ны всегда при­над­ле­жать од­ной, и толь­ко од­ной, су­ще­ст­вую­щей Company. По­это­му и на­до всегда на­чи­нать с ком­паний: в dotProject нет ино­го спо­со­ба ска­зать о свя­зи ме­ж­ду Project и User. Од­на­ко вы мо­же­те при­пи­сы­вать объ­ек­ты од­ной Company к дру­гой, что­бы ими­ти­ро­вать ре­ор­ганиза­цию или про­сто пе­ре­бро­сить че­ло­ве­ка из од­ной ко­ман­ды в дру­гую.

А вот объ­ек­ты вро­де Contacts не долж­ны при­над­ле­жать ка­кой-ли­бо Company. На са­мом де­ле, Contacts в dotProject – это про­сто Users, не имею­щие воз­мож­но­сти вой­ти в сис­те­му. Объ­ек­ты Task – это дей­ст­вия, соз­даю­щие про­ект. Их жур­нал со­дер­жит все необ­хо­ди­мое для про­вер­ки, идет ли ваш про­ект по гра­фи­ку, сколь­ко че­ло­ве­ко-ча­сов на него за­тра­че­но, и т. п.

Ес­ли вы хо­ти­те соз­дать Company, то есть по­лу­чить воз­мож­ность сде­лать что-то в dotProject, вы долж­ны быть ли­бо ад­минист­ра­то­ром уста­нов­лен­ной у вас dotProject, или иметь ло­гин Project Manager с пра­ва­ми ад­минист­ра­то­ра. Да­же ес­ли вы – един­ст­вен­ный поль­зо­ва­тель dotProject, со­ве­ту­ем соз­дать от­дель­ный ло­гин Project Manager и для по­все­днев­ной ра­бо­ты ис­поль­зо­вать толь­ко его, вме­сто ло­ги­на Administrator: ес­ли вы и на­пу­тае­те в сво­ем про­ек­те, рис­ка по­вре­дить всю уста­нов­ку не бу­дет. DotProject соз­дан на мо­ду­лях PHP и ра­бо­та­ет че­рез них. Как всегда, для ря­да ди­ст­ри­бу­ти­вов Linux име­ют­ся основ­ные мо­ду­ли, вклю­чен­ные в сжа­тый ар­хив на сай­те, ко­то­рые обес­пе­чи­ва­ют ба­зо­вые функ­ции, и мо­ду­ли рас­ши­рения от внеш­них раз­ра­бот­чи­ков.

(thumbnail)
Диа­грам­мы Ган­тта в dotProject про­сты, но про­яс­ня­ют, что на­до сде­лать.

По­ми­мо спо­соб­но­сти управ­лять объ­ек­та­ми и соз­да­вать диа­грам­мы Ган­тта [Gantt], мо­ду­ли яд­ра обес­пе­чи­ва­ют та­кие функ­ции, как соз­дание ка­лен­да­ря, основ­ные дис­кусси­он­ные фо­ру­мы и фай­ло­вый менед­жер, до­полнен­ный про­сты­ми функ­ция­ми управ­ления вер­сия­ми. Раз­но­об­раз­ные диа­грам­мы Ган­тта, пусть да­же это ста­тич­ные и до­воль­но при­ми­тив­ные изо­бра­жения, по­мо­гут вам охва­тить бы­ст­рым взгля­дом все ва­ши за­да­чи и их за­ви­си­мо­сти.

Мож­но так­же соз­да­вать ре­зерв­ные ко­пии в фор­ма­те XML. Од­на­ко уч­ти­те, по­жа­луй­ста, что эта функ­ция по­лез­на для ана­ли­за и об­ра­бот­ки дан­ных с по­мо­щью дру­гих при­ло­жений, но не яв­ля­ет­ся са­мым бы­ст­рым спо­со­бом восста­но­вить dotProject, ес­ли что-то пой­дет не так. На­мно­го луч­ше на­стро­ить за­дание cron, соз­даю­щее тек­сто­вый дамп всей ба­зы дан­ных MySQL по крайней ме­ре раз в день.

Ог­раничения JavaScript и PHP, конеч­но, де­ла­ют dotProject менее при­вле­ка­тель­ным ви­зу­аль­но, чем его со­перники, ве­ду­щие на­ча­ло из ра­бо­че­го сто­ла. Но пусть это не от­пу­ги­ва­ет вас от дан­но­го ин­ст­ру­мен­та. Ес­ли ва­ши по­треб­но­сти по управ­лению про­ек­том не очень слож­ны, dotProject мо­жет стать от­лич­ным вы­бо­ром. Осо­бен­но ес­ли вы хо­ти­те ра­бо­тать в так на­зы­вае­мом об­ла­ке, то есть ес­ли ва­ша ра­бо­та долж­на быть доступ­на он­лайн из лю­бо­го мес­та – как для вас, так и для чле­нов ва­шей ко­ман­ды. В этом слу­чае сер­вер­ное при­ло­жение, по­доб­ное dotProject, мо­жет обеспечить на­мно­го большую эф­фек­тивность.

KPlato

Управ­ление про­ек­та­ми внут­ри KDE и KOffice.

(thumbnail)
Впол­не ожи­дае­мо, KPlato вы­гля­дит ак­ку­рат­ным и дру­же­люб­ным, как и Kalendar и мно­гие дру­гие при­ло­же­ния KDE.

KPlato – это ком­понент KOffice для управ­ления про­ек­та­ми. Или сле­довало употребить про­шед­шее вре­мя? На вре­мя на­пи­сания ста­тьи сайт koffice.org не упо­ми­на­ет KPlato как час­ть па­ке­та. Но KPlato по-прежнему входит в па­ке­ты KOffice всех по­пу­ляр­ных ди­ст­ри­бу­ти­вов Linux. Опи­сан­ная здесь вер­сия – из ре­лиза KOffice 2.3.3 для Fedora 16.

Его пер­вая (и для мно­гих – глав­ная) от­ли­чи­тель­ная чер­та – чет­кий и ин­туи­тив­ный вид, как у KOffice, а также ви­зу­аль­ная и функ­цио­наль­ная ин­те­гра­ция с KDE.

На­чаль­ная на­строй­ка на­мно­го ров­нее, чем в dotProject, но не за­будь­те сменить Task Defaults [На­строй­ки по умол­чанию] в Settings > Configure KPlato [Па­ра­мет­ры > На­строй­ка KPlato], ина­че придется ра­бо­тать с бес­по­лез­ны­ми дан­ны­ми по умол­чанию (1 ян­ва­ря 2000 го­да) в ка­че­­ст­ве конеч­но­го и на­чаль­но­го вре­мени. Tools > Define Estimate Conversion [Ин­ст­ру­мен­ты > Оп­ре­де­лить] от­кро­ет всплы­ваю­щее ок­но для на­стройки ко­ли­че­­ст­ва ра­бо­чих ча­сов в год, в ме­сяц, в неде­лю и в день.

По­ми­мо основ­ной ра­бо­чей об­лас­ти, в KPlato есть два «до­ке­ра», т. е. две панели: View Selector [Вы­бор ви­да] и Scripts [Скрип­ты]. Пе­ре­тас­ки­вать и пе­ре­ком­поновы­вать до­ке­ры в основ­ном окне можно раз­ны­ми спо­со­ба­ми. По умол­чанию ото­бра­жа­ет­ся толь­ко пер­вый. Щел­чок по ма­лень­ко­му знач­ку-ром­би­ку в верхнем пра­вом уг­лу от­де­лит до­кер от ок­на или вернет об­рат­но.

Функции KPlato рас­ши­ряе­мы с по­мо­щью JavaScript, ECMAScript или скрип­тов Python. Спи­ски до­ке­ра скрип­тов уже до­ступ­ны. Кноп­ка с га­еч­ным клю­чом в том же до­ке­ре от­кро­ет менед­жер скрип­тов, где мож­но до­бавить но­вые скрип­ты с по­мо­щью гра­фи­че­­ско­­го мас­те­ра. А до­кер View Selector – сво­его ро­да до­бавоч­ное ме­ню, об­лег­чаю­щее пе­реход с од­ной панели, или, точнее, функ­ции KPlato, на дру­гую.

Он раз­де­лен на три час­ти: Editors [Ре­дак­то­ры], Views [Ви­ды] и Reports [От­че­ты]. За­пи­си в пер­вом бло­ке от­кры­ва­ют несколь­ко ре­дак­то­ров дан­ных KPlato – по од­но­му на ка­ж­дый из объ­ек­тов, с ко­то­ры­ми обыч­но ра­бо­та­ют в управ­лении про­ек­та­ми: Work and Vacation Calendars [Гра­фи­ки Ра­бо­ты и От­пусков], Cost Breakdown Structure [Струк­ту­ра Раз­бив­ки Рас­хо­дов], Resources [Ре­сур­сы], Tasks [За­да­чи] (в гра­фи­че­­ском ре­жи­ме или в ви­де спи­ска], Dependencies [Взаи­мо­свя­зи] и Schedules [Сро­ки ра­бот].

При на­жа­тии на один из этих ре­дак­то­ров основ­ную часть ок­на Kplato за­пол­ня­ет его ин­тер­фейс, и со­от­вет­ст­вую­щим об­ра­зом из­ме­ня­ет­ся ме­ню на­вер­ху. В Work and Vacation вы мо­же­те на­страи­вать и объ­е­ди­нять несколь­ко ка­лен­да­рей, ли­бо с ну­ля, ли­бо ре­дак­ти­руя ба­зо­вый (40-ча­со­вая ра­бо­чая неде­ля с понедельника по пятницу). Ре­дак­тор Tasks по­зво­ля­ет вам вве­сти Task Name [На­звание За­да­чи], Responsible [От­вет­ст­вен­но­го], Allocation [Рас­пре­де­ление], Calendar [Ка­лен­дарь], Risk Assessment [Оцен­ку Рис­ков], Constraints [Ог­раничения] и несколь­ко рас­хо­дов по ка­ж­дой за­да­че.

В том же окне вы мо­же­те рас­по­ло­жить все имею­щие­ся за­да­чи в ие­рар­хи­че­­ском по­ряд­ке. Раз­дел Schedules по­зво­ля­ет вам со­став­лять... естественно, гра­фи­ки ра­бот, да еще и ана­ли­зи­ро­вать кри­ти­че­­ские пу­ти и жур­на­лы со­став­ления гра­фи­ков.

(thumbnail)
KPlato уме­ет ото­бра­жать взаи­мо­свя­зи и за­да­чи в фор­ма­те гра­фи­че­ско­го дре­ва.

Панель Resources в KPlato – это то ме­сто, где пе­ре­чис­ля­ют­ся или ре­дак­ти­ру­ют­ся все че­ло­ве­че­­ские и ма­те­ри­аль­ные ре­сур­сы те­ку­ще­го про­ек­та. Два­ж­ды щелк­нув по со­от­вет­ст­вую­щей ячей­ке, для ка­ж­до­го из них мож­но на­стро­ить кон­такт­ную ин­фор­ма­цию и нор­маль­ные и сверх­уроч­ные став­ки. Вдо­ба­вок к этой основ­ной ин­фор­ма­ции мож­но ука­зать, ка­кой ка­лен­дарь ис­поль­зу­ет­ся для ка­ж­до­го ре­сур­са (что от­лич­но под­хо­дит для управ­ления ра­ботника­ми по несколь­ким кон­трак­там с час­тич­ной за­ня­то­стью), а так­же пе­ри­од его дей­ст­вия и ко­ли­че­­ст­во вре­мени в этот пе­ри­од. [Спи­сок], вы­брав необ­хо­ди­мое во View Selector. Когда вы на­хо­ди­тесь там, щел­чок по тек­сту или знач­ку, свя­зан­но­му с ка­ж­дой за­да­чей, по­втор­но от­кро­ет ок­но на­строй­ки.

Оп­ре­де­лив все за­да­чи, со­став­ляю­щие ваш про­ект, мо­же­те про­ве­рить их взаи­мо­связь в ре­жи­ме Graphic [Гра­фи­че­­ском] или List

Ре­жи­мы про­смот­ра KPlato – это спо­соб про­ана­ли­зи­ро­вать ста­тус и ход про­ек­та, когда вы рас­ста­ви­те все тре­буе­мые сро­ки. От­дель­ный ре­жим от­ве­ден на мас­шта­би­руе­мые диа­грам­мы Ган­тта с ав­то­за­полнением про­цен­тов для ка­ж­дой за­да­чи. Дру­гие доступ­ные ре­жи­мы вклю­ча­ют гра­фи­ки и таб­ли­цы для ото­бра­жения ста­ту­са и хо­да все­го Про­ек­та или лю­бой из его за­дач, а так­же про­смотр вы­полнения и Work Package. Щел­чок по­сре­ди них ак­ти­ви­ру­ет всплы­ваю­щее ок­но, где мож­но на­стро­ить, что бу­дет ото­бра­жать­ся в гра­фи­ках. KPlato мо­жет так­же генери­ро­вать диа­грам­мы рас­пре­де­ления ра­бот.

Об­ласть Report [От­чет] во View Selector по­зво­ля­ет уви­деть или вы­вес­ти на пе­чать все от­че­ты, ранее соз­дан­ные с по­мо­щью пол­но­функ­цио­наль­но­го, но слож­но­го ре­дак­то­ра от­че­тов [Tools > Reports > Create Report]: от­че­ты KPlato мо­гут со­дер­жать текст, пе­ре­мен­ные за­дач, яр­лы­ки, кли­парт, раз­но­об­раз­ные гра­фи­ки и схе­мы, штрих-ко­ды. В об­щем и це­лом, KPlato кон­ца 2011 го­да вы­гля­дит весь­ма непло­хим ре­шением для менед­же­ров про­ек­тов, ко­то­рым ну­жен про­стой, сим­па­тич­ный и пер­спек­тив­ный ин­тер­фейс. При оди­на­ко­вой про­сто­те уста­нов­ки, его ро­дич, Calligra Plan, мо­жет стать его аль­тер­на­ти­вой, ис­поль­зую­щей те же фай­лы про­ек­та.


GanttPV

GanttPV вме­ща­ет мно­же­ст­во функ­ций в об­ман­чи­во про­стой ин­тер­фейс.

(thumbnail)
Управ­ле­ние про­ек­том не мо­жет вы­гля­деть, или, по край­ней ме­ре, на­чи­нать­ся, про­ще, чем в ис­ход­ном ок­не GanttPV.

GanttPV – гра­фи­че­­ский планировщик про­ек­тов на Python, а значит, муль­ти­плат­фор­мен­ный. В Linux мо­жно ска­чать ар­хив ис­ходника, рас­па­ко­вать и за­пустить, про­сто вве­дя (не за­будь­те за­менить $PATH в ко­ман­де ниже на путь в пап­ке, где вы рас­па­ко­ва­ли ар­хив!)

python $PATH/ganttpv/GanttPV.py

В за­ви­си­мо­сти от ва­шей сис­те­мы, тут не ис­ключены рас­те­рян­но­сть или раз­оча­ро­вание, по­сколь­ку эта вер­сия GanttPV тре­бу­ет биб­лио­тек wxPython GUI. Ес­ли имен­но так и вы­шло, не вол­нуй­тесь. Ско­ман­дуйте менед­же­ру про­грамм ва­ше­го ди­ст­ри­бу­ти­ва уста­но­вить wxPython со все­ми за­ви­си­мо­стя­ми и по­про­буй­те за­но­во.

Ин­тер­фейс у GanttPV минима­ли­ст­ский – по крайней ме­ре, на пер­вый взгляд. Ис­ход­ное ок­но доволь­но го­лое, и соз­да­ет­ся впе­чат­ление, что GanttPV ма­ло что мо­жет. Но вы ско­ре­хонь­ко уз­нае­те, что это не так. Стоит на­жа­ть на Scripts, и от­кро­ет­ся ме­ню дли­ной в два или три эк­ра­на, и часть пунк­тов в нем от­кры­ва­ют дру­гие ме­ню. Это и бла­го­сло­вение, и про­кля­тье поль­зо­ва­те­лей GanttPV.

По­че­му ме­ню столь ве­ли­ко? По­то­му что, как вы уже, вероятно, до­га­да­лись, большин­ст­во, ес­ли не все, функ­ций GanttPV обес­пе­чи­ва­ют­ся неза­ви­си­мы­ми скрип­та­ми Python. Имен­но скрип­ты ото­бра­жа­ют фор­мы для ре­дак­ти­ро­вания вы­бран­ных за­дач, генери­ру­ют диа­грам­мы ре­ля­ци­он­ных таб­лиц и занима­ют­ся мо­де­ли­ро­ванием ро­лей объ­ек­тов или соз­да­ют ба­зы дан­ных SQL для ва­ших про­ек­тов. Они же вво­дят или уда­ля­ют рас­пре­де­ления и взаи­мо­свя­зи. Есть скрип­ты для ре­дак­ти­ро­вания групп ре­сур­сов, пе­ча­ти от­че­тов и от­сле­жи­вания за­ра­бо­тан­ных сумм, рас­хо­дов или ча­сов, по­тра­чен­ных ка­ж­дым ре­сур­сом про­ек­та. Да­же цве­та и внешний вид диа­грамм Ган­тта управ­ля­ют­ся ими. Ес­ли это­го ма­ло – мо­же­те со­хранить на­бор дей­ст­вий в ка­че­­ст­ве скрип­та, Save As Script. Мо­же­те ре­дак­ти­ро­вать скрип­ты с по­мо­щью ин­тег­ри­ро­ван­но­го... скрип­та Open Python Editor! Встро­ен­ная обо­лоч­ка Python по­зво­ля­ет за­пускать ко­ман­ды Python внут­ри GanttPV; ре­ко­мен­ду­ем восполь­зо­вать­ся этим, что­бы изу­чить ру­ко­во­дство по ис­поль­зо­ванию скрип­тов на сай­те.

Обо­рот­ная сто­ро­на всей этой гиб­ко­сти скрип­тов, по крайней ме­ре, в дан­ной вер­сии GanttPV – ин­тер­фейс поль­зо­ва­те­ля пе­ре­гру­жен бо­лее, чем сле­до­ва­ло бы. Так как прак­ти­че­­ски все яв­ля­ет­ся скрип­том, все дей­ст­вия пе­ре­чис­ле­ны не в ло­ги­че­­ском, а в ал­фа­вит­ном по­ряд­ке, в том же са­мом длин­ном ме­ню. По­лу­чив­шая­ся в ре­зуль­та­те струк­ту­ра GUI за­мед­ля­ет ис­поль­зо­вание GanttPV, хотя са­ма по се­бе про­грам­ма ра­бо­та­ет бы­ст­ро. И кста­ти об обо­рот­ной сто­роне: в од­ном и том же фай­ле GanttPV мож­но со­хра­нять сколь­ко угод­но про­ек­тов – здо­ро­во при­ду­ма­но, с уче­том то­го фак­та, что GanttPV ра­бо­та­ет толь­ко с одним фай­лом за раз. Ну не неле­пость ли?

Ес­ли вы это одо­лее­те, то GanttPV весь­ма неплох. Вы мо­же­те до­бав­лять от­дель­ные кон­троль­ные спи­ски к ка­ж­дой за­да­че и от­сле­жи­вать вы­полнение со­от­вет­ст­вую­щих ра­бо­т. Так­же воз­мож­но, да­бы из­бе­жать пе­ре­рас­хо­да ре­сур­сов, при­пи­сы­вать по од­ной за­да­че на ка­ж­дый из них. Ввод за­дач прост. На­жми­те на кноп­ку Insert Row, что­бы соз­дать пустые стро­ки, за­тем щелк­ните по пер­вой пустой ячей­ке в стро­ке, что­бы при­сво­ить ей на­звание за­да­чи, за­полните дру­гие по­ля стро­ки и на­жми­те на Enter. Что­бы уста­но­вить взаи­мо­связь за­дач, вы­де­ли­те их, на­жми­те на кноп­ку Assign Prerequisites [На­зна­чить пред­по­сыл­ки] и сле­дуй­те ин­ст­рук­ци­ям.

А ес­ли вы соз­дае­те мно­го за­дач в по­ряд­ке их ис­полнения, вы­де­ли­те их и щелк­ните один раз по Assign Prerequisites: GanttPV со­единит их друг с дру­гом в пра­виль­ном по­ряд­ке. Дли­тель­ность за­да­чи – это ко­ли­че­­ст­во вре­мени (вы­ра­жен­ное в ра­бо­чих ча­сах), ко­то­рое бу­дет за­тра­че­но с на­ча­ла и до окон­чания за­да­чи. А эф­фек­тив­ность – это ко­ли­че­­ст­во вре­мени, за­тра­чен­ное в этот пе­ри­од на вы­полнение этой за­да­чи. По умол­чанию эти пе­ре­мен­ные вы­ра­жа­ют­ся в ча­сах; что­бы вве­сти вре­мя в неде­лях или днях, ис­поль­зуй­те скрипт Time Units.

(thumbnail)
Гра­фи­ки GanttPV про­сты, но вы­гля­дят луч­ше, чем в dotProject

Од­на из функ­ций, с ко­то­рой сто­ит немно­го по­иг­рать до то­го, как вы в пол­ной ме­ре ов­ла­дее­те пре­лес­тя­ми GanttPV, это Follow Up Items [Сле­дить за пунк­та­ми]. Сю­да вхо­дят все ви­ды дея­тель­но­сти, о ко­то­рых нель­зя за­бы­вать менед­же­ру про­ек­та, по всем про­ек­там, ко­то­ры­ми он или она ру­ко­во­дит в дан­ный пе­ри­од вре­мени. Эти дей­ст­вия име­ют та­кие по­ля, как Priorities [При­ори­те­ты], Categories [Ка­те­го­рии], Reference [Ссыл­ки] и Who [Кто], ко­то­рые по­мо­гут вам при­сво­ить ка­ж­до­му дей­ст­вию нуж­ную важ­ность и при­ори­тет и дер­жать все под кон­тро­лем. На­при­мер, по­ле Who долж­но на­зы­вать от­вет­ст­вен­но­го за вы­полнение дан­но­го дей­ст­вия. А Reference мо­жет быть ссыл­кой на файл или web-страницу, со­дер­жа­щую бо­лее под­роб­ную ин­фор­ма­цию.

GanttPV об­ла­да­ет еще од­ной ин­те­рес­ной функ­ци­ей, спо­соб­ной об­лег­чить ра­бо­ту в ко­ман­де или об­щение внут­ри нее: ра­бо­та в ре­жи­ме Server, по­зво­ляю­щая боль­ше­му ко­ли­че­­ст­ву менед­же­ров про­ек­тов де­лить­ся ба­за­ми дан­ных GanttPV или соз­да­вать их локаль­ные ко­пии. Пре­достав­ление досту­па к из­менениям не сложнее, чем... яс­ное де­ло, за­пустить скрипт. Кро­ме то­го, ра­бо­тая в ре­жи­ме Server, GanttPV мо­жет ото­бра­жать лю­бой от­чет в фор­ма­те HTML, и да­ет поль­зо­ва­те­лям воз­мож­ность вво­дить да­ты и дру­гие дан­ные из их web-брау­зе­ров.

TaskJuggler

Дру­гой, мо­жет быть, стран­ный, но силь­ный под­ход к управ­ле­нию про­ек­та­ми.

(thumbnail)
Гра­фи­ки очень про­сты, но от­че­ты HTML, ко­то­рые ге­не­ри­ру­ет ком­пи­ля­тор TaskJuggler, край­не ин­фор­ма­тив­ны, прав­да?

Сло­ган на до­машней странице TaskJuggler гла­сит: «Управ­ление про­ек­та­ми за пре­де­ла­ми соз­дания диа­грамм Ган­тта». TaskJuggler 3, вы­шед­ший в кон­це 2011 го­да, яв­ля­ет со­бой пол­но­стью пе­ре­пи­сан­ную про­грам­му, ко­то­рая ра­бо­та­ет на всех Unix-по­доб­ных сис­те­мах, Windows и Mac OS. Когда мы от­прав­ля­ли но­мер в пе­чать, дво­ич­ных па­ке­тов TaskJuggler 3 для ди­ст­ри­бу­ти­вов Linux все еще не бы­ло, но его уста­нов­ка очень про­ста.

TaskJuggler – это Ruby gem, и все, что вам нуж­но – это най­ти па­кет Rubygems со стан­дарт­ны­ми про­грам­ма­ми для сво­его ди­ст­ри­бу­ти­ва, а за­тем от имени су­пер­поль­зо­ва­те­ля-root вве­сти в стро­ке при­гла­шения

gem install taskjuggler

Спи­сок функ­ций TaskJuggler впе­чат­ля­ет. Са­мые мощ­ные – ав­то­ма­ти­че­­ское раз­ре­шение кон­флик­тов за­дач и урав­но­ве­ши­вание на­груз­ки для всех ре­сур­сов, с неог­раничен­ным ко­ли­че­­ст­вом сце­на­ри­ев (кон­троль­ных пла­нов) од­но­го и то­го же про­ек­та для ана­ли­за воз­мож­ных ва­ри­ан­тов.

Ка­ж­дый про­ект мо­жет иметь мно­же­ст­во менед­же­ров и часовых поя­сов. Дви­жок без про­блем об­ра­ба­ты­ва­ет ре­сур­сы со сме­на­ми или гиб­ким гра­фи­ком ра­бо­ты, а так­же с пе­рио­да­ми от­пусков. Уже су­ще­ст­вую­щие про­ек­ты мо­гут объ­е­ди­нять­ся для об­ра­зо­вания бо­лее круп­ных про­ек­тов.

Ес­ли вы оши­бе­тесь, сис­те­ма управ­ления об­нов­лен­ны­ми вер­сия­ми вернет вас к пре­ды­ду­щей вер­сии про­ек­та. Как и GanttPV, TaskJuggler 3 вклю­ча­ет web-сер­вер, ко­то­рый генери­ру­ет от­че­ты в фор­ма­те HTML с пол­ны­ми дан­ны­ми: на­при­мер, щелк­нув по линиям Gantt Chart (см. эк­ран­ные сним­ки на этой странице), вы по­лу­чи­те всплы­ваю­щее ок­но со все­ми под­роб­но­стя­ми по этой за­да­че.

Фай­лы про­ек­та TaskJuggler, рас­по­зна­вае­мые по суф­фик­сам .tjp или .tji, за­ста­вят лю­бо­го ха­ке­ра ста­рой шко­лы Unix виз­жать от ра­до­сти, слов­но по­ро­сен­ка, за­ви­дев­ше­го лу­жу. Они яв­ля­ют со­бой не что иное, как нефор­ма­ти­ро­ван­ный текст, по­доб­но фай­лам на­строй­ки мно­гих про­грамм с от­кры­тым ко­дом, ко­то­рый мож­но чи­тать и пи­сать в лю­бом тек­сто­вом ре­дак­то­ре или генери­ро­вать с по­мо­щью скрип­та. Вот па­ра оп­ре­де­лений за­дач, в ка­че­­ст­ве при­ме­ра:

task write_specs “sample task 1” {

length 82d

}

task write_tests “sample task 2” {

depends ! write_specs

}

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

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

Еще од­на важ­ная вещь – по­ря­док опи­сания за­дач, ре­сур­сов и т. д. Нель­зя со­об­щить TaskJuggler, что за на­пи­сание спе­ци­фи­ка­ций про­ек­та от­ве­ча­ет Джон, ес­ли вы не объ­яснили сна­ча­ла, кто та­кой Джон, ка­кой у него ра­бо­чий гра­фик, став­ка, и т. д.

При всем при том, наи­луч­ший и на­ис­ко­рей­ший спо­соб стать про­дви­ну­тым поль­зо­ва­те­лем TaskJuggler – вве­сти в ад­рес­ную стро­ку ва­ше­го брау­зе­ра ад­рес он­лайн-учебника (www.taskjuggler.org/tj3/manual), где под­роб­но объ­яс­ня­ет­ся ка­ж­дое клю­че­вое сло­во, и на­чать ра­бо­ту с внесения из­менений в фай­лы об­раз­ца, ко­то­рые мож­но за­гру­зить с сай­та.

Не пе­ре­жи­вай­те! Мы понима­ем, что вся эта про­це­ду­ра мо­жет по­ка­зать­ся слож­ной, по­то­му что об­хо­дит­ся без мы­ши, но на са­мом де­ле все на­мно­го про­ще и, глав­ное, бы­ст­рее, чем ка­жет­ся.Един­ст­вен­ная про­бле­ма с TaskJuggler 3, по крайней ме­ре, в бли­жай­шем бу­ду­щем, ве­ро­ят­но, за­клю­ча­ет­ся в том, что это – про­грам­ма чис­то команд­ной стро­ки. Се­рия 2.x TaskJuggler, доступ­ная в ви­де дво­ич­ных па­ке­тов для боль­шин­ст­ва ди­ст­ри­бу­ти­вов Linux, име­ет GUI, ко­то­рый по­мо­га­ет менее опыт­ным поль­зо­ва­те­лям ра­бо­тать с ком­пи­ля­то­ром, де­ла­ет ди­аг­но­сти­ку, ес­ли про­ис­хо­дят сбои, и т. д.

(thumbnail)
Гра­фик рас­пре­де­ле­ния ре­сур­сов по­ка­зы­ва­ет, кто и чем дол­жен за­ни­мать­ся.

Од­на­ко, по при­чи­нам, о ко­то­рых го­во­ри­лось в на­ча­ле этой страницы, этот GUI по­ка не пор­ти­ро­ван в сле­дую­щий ре­лиз. Ес­ли ко вре­мени чтения ва­ми дан­но­го Сравнения си­туа­ция не из­менит­ся, не от­чаи­вай­тесь. Пусть это не осо­бо удоб­но, но мож­но вве­сти дан­ные в гра­фи­че­скую обо­лоч­ку TaskJuggler 2.x и ис­поль­зо­вать но­вый дви­жок по­следней вер­сии, что­бы сгенери­ро­вать все хит­ро­ум­ные от­че­ты HTML, на ко­то­рые он мас­тер. Ци­ти­руя он­лайн-ру­ко­во­дство, «это воз­мож­но, по­то­му что TaskJuggler 3.x уме­ет счи­ты­вать фай­лы экс­пор­та TaskJuggler 2.x». Под­роб­ная ин­ст­рук­ция, как сгенери­ро­вать эти фай­лы из GUI 2.x, дос­туп­на на http://www.taskjuggler.org/tj3/manual/TaskJuggler_2x_Migration.html.

Вер­дикт

(thumbnail)
Фраг­мент дре­во­вид­но­го ото­бра­же­ния и ин­тер­фей­са на­строй­ки за­дач KPlato.

Пе­ред объ­яв­лением по­бе­ди­те­ля, по­зволь­те нам уде­лить несколь­ко строк об­щим ком­мен­та­ри­ям. Помните, в предисловии мы упо­мя­ну­ли третье на­блю­дение 2009 го­да? Тогда мы со­жа­ле­ли, что неко­то­рые менед­же­ры про­ек­тов FOSS про­де­мон­ст­ри­ро­ва­ли очень незна­чи­тель­ную – или во­об­ще ника­кую – спо­соб­ность к взаи­мо­об­ме­ну фай­ла­ми про­ек­та.

Сей­час, три го­да спустя, си­туа­ция, ка­жет­ся, толь­ко ухуд­ши­лась. Во-пер­вых, за­будь­те о взаи­мо­дей­ст­вии или хо­тя бы об од­но­сто­ронней ми­гра­ции поль­зо­ва­те­лей фай­лов Microsoft Project. Да­же при на­ли­чии хоть ка­кой-то под­держ­ки, она на­мно­го ниже то­го уров­ня, к ко­то­ро­му мы, поль­зо­ва­те­ли FOSS, уже при­вык­ли.

И опять же – есть хо­ро­шие, ес­ли не ска­зать от­лич­ные, фильт­ры MS Office для LibreOffice и Apache OpenOffice, но не в этой об­лас­ти; не в том ли ис­тин­ная при­чи­на их от­сут­ст­вия, что на них про­сто нет спро­са у поль­зо­ва­те­лей Linux? Как вы ду­мае­те?

Говоря о взаи­модей­ст­вии, боль­шую тре­во­гу вы­зы­ва­ет тот факт, что со­труд­ниче­­ст­во невоз­мож­но да­же сре­ди пред­став­лен­ных про­дук­тов сво­бод­но­го ПО. Кон­вер­ти­ро­вание фай­лов про­ек­та из од­ной про­грам­мы в дру­гую про­ще, чем в про­прие­тар­ных про­грам­мах, по­то­му что все фор­ма­ты тек­сто­вые или (в слу­чае dotProject) лег­ко кон­вер­ти­ру­ют­ся в текст. По­доб­ное кон­вер­ти­ро­вание – са­мо­стоя­тель­ная ра­бо­та, тре­бую­щая оп­ре­де­лен­ных спо­соб­но­стей в про­грам­ми­ро­вании. Иначе все, что вы де­лае­те в лю­бом из менед­же­ров про­ек­тов, оста­ет­ся внут­ри них.

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

DotProject об­ла­да­ет мо­щью всех сер­вер­ных при­ло­жений, или, как они име­ну­ют­ся в на­ши дни, об­лач­ных вы­чис­лений. Ус­та­но­ви­те его, и все чле­ны ва­шей ко­ман­ды смо­гут поль­зо­вать­ся им из лю­бо­го мес­та и с лю­бо­го ком­пь­ю­те­ра. То, что он осно­ван на PHP и MySQL, име­ет еще од­но пре­иму­ще­ст­во: очень лег­ко най­ти про­грам­ми­ста, спо­соб­но­го на­стро­ить и ин­тер­фейс, и дви­жок dotProject для ва­шей ком­пании, ес­ли вам это по­тре­бу­ет­ся. Од­на­ко на­бор функ­ций, при­сут­ст­вую­щий на дан­ный мо­мент в dotProject, мень­ше, чем у его со­перников, и его уста­нов­ка про­ста... ес­ли у вас есть доступ к ра­бо­че­му сер­ве­ру LAMP.

И еще у нас есть TaskJuggler. Будь в вер­сии 3, опи­сан­ной здесь, гра­фи­че­­ский ин­тер­фейс, как в се­рии 2.х, мы бы, ско­рее все­го, на­зва­ли его по­бе­ди­те­лем, как это бы­ло в 2009 го­ду. Да, мы зна­ем, что осво­ить эту про­грам­му нелег­ко – или, по крайней ме­ре, соз­да­ет­ся та­кое впе­чат­ление, по­то­му что она при­ме­ня­ет прин­ци­пи­аль­но иной под­ход. Но ее гиб­кость, про­из­во­ди­тель­ность и на­бор функ­ций пре­восход­ны. Од­на­ко мы долж­ны при­знать, что ра­бо­та ис­клю­чи­тель­но в команд­ной стро­ке мо­жет стать чрез­мер­ным ис­пы­танием для мно­гих поль­зо­ва­те­лей. И по­это­му вновь при­хо­дит­ся вер­нуть­ся к уже вы­ска­зан­но­му мнению о TaskJuggler: не пе­ре­ехать ли ему в об­ла­ка – то есть ис­поль­зо­вать се­те­вой ин­тер­фейс, как в dotProject? От­лич­но было бы; при­чем для TaskJuggler это про­ще, чем для дру­гих про­грамм, по­то­му что дви­жок – от­дель­ная про­грам­ма команд­ной стро­ки, ко­то­рую мож­но пе­ре­дать от­дель­ной груп­пе раз­ра­бот­чи­ков. Авось кто-нибудь за это возь­мет­ся. В си­лу всех этих при­чин, а так­же по­то­му, что это дей­ст­ви­тель­но хо­ро­шая про­грам­ма са­ма по се­бе, мы объ­яв­ля­ем по­бе­ди­те­лем KPlato. Конеч­но, что­бы из­влечь из KPlato мак­си­мум поль­зы, при­дет­ся по­тра­тить нема­ло вре­мени и сил на зна­ком­ст­во с его генератором отчетов. Под­роб­ная до­ку­мен­та­ция и он­лайн-га­ле­рея от­че­тов со мно­же­ст­вом ра­бо­чих при­ме­ров зна­чи­тель­но об­лег­ча­ют эту за­да­чу. Прав­да так­же за­клю­ча­ет­ся в том, что на дан­ный мо­мент KPlato – менед­жер про­ек­тов не в пол­ной ме­ре Сво­бод­ный, как Сво­бо­да, и да­же не яв­ля­ет­ся муль­ти­п­лат­фор­мен­ным, как его со­перники. Но мы по­ла­га­ем, что на дан­ный мо­мент KPlato – хо­ро­ший ра­бо­чий ком­про­мисс ме­ж­ду функ­цио­наль­но­стью и про­сто­той ис­поль­зо­вания и уста­нов­ки. На­ли­чие на го­ри­зон­те Calligra Plan – еще од­на при­чи­на, по ко­то­рой мы вы­бра­ли KPlato. Кон­ку­рен­ция – де­ло хо­ро­шее, но для про­грамм она воз­мож­на, толь­ко ес­ли поль­зо­ва­те­ли мо­гут по­втор­но ис­поль­зо­вать те же са­мые фай­лы, и это ка­жет­ся мно­го ве­ро­ятнее в слу­чае KPlato и Calligra Plan, чем при лю­бом дру­гом со­че­тании при­ло­жений.

Срав­не­ние функ­ций
На­зва­ние Вер­сия Ра­бо­чий стол Язык Род­ной фор­мат фай­лов Им­порт MS Project
dotProject 2.1.5 Нет дан­ных PHP MySql Есть
GanttPV 2.0.8 Нет дан­ных Python .ganttpv (ASCII) Нет
Kplato 1.6.3 KDE C++ .kplato (XML based) Нет
TaskJuggler 3 Нет дан­ных Ruby .tjp (ASCII) Нет
Персональные инструменты
купить
подписаться
Яндекс.Метрика