Fix more broken links
[worg.git] / org-tutorials / org-taskjuggler-scr.org
1 #+OPTIONS:    H:3 num:nil toc:t \n:nil @:t ::t |:t ^:t -:t f:t *:t TeX:t LaTeX:t skip:nil d:(HIDE) tags:not-in-toc
2 #+STARTUP:    align fold nodlcheck oddeven lognotestate
3 #+SEQ_TODO:   TODO(t) INPROGRESS(i) WAITING(w@) | DONE(d) CANCELED(c@)
4 #+TAGS:       Write(w) Update(u) Fix(f) Check(c) 
5 #+TITLE:      Кreiranje Gantt grafikona izvozom do TaskJuggler
6 #+AUTHOR:     Jovana Milutinovich
7 #+EMAIL:      jovanam AT webhostinggeeks DOT com
8 #+LANGUAGE:   scr
9 #+PRIORITIES: A C B
10 #+CATEGORY:   worg
11
12 [[file:index.org][{{Nazad do Workq”s indeksa index}}]]
13
14 /Thanks to Jovana Milutinovich (=jovanam AT webhostinggeeks DOT com=) for the translation./
15
16 * Uvod
17
18 [[http://orgmode.org/][Org mod]] је odličan dodatak za projektno planiranje , kao što je Peter Jones
19 pokazao u svom članku o [[http://www.contextualdevelopment.com/articles/2008/project-planning][projektnom planiranju]]. On prvo podeli projekat na
20 karakteristike i zadatke, zatim procenjuje efekt i trud i iz toga
21 prezentuje projektni plan. U ovom vodiču ćemo ići još jedan korak napred,
22 dodelićemo resurse zadacima, zatim napraviti raspored zadataka i kreirati
23 odgovarajući gantt grafikon za ovaj projekat.
24
25 Koristićemo [[http://www.taskjuggler.org/][TaskJuggler]] da bi rukovodili sa rasporedom zadataka,
26 nivelisanjem izvora i kreiranjem bezbroj grafikona (kao [[http://en.wikipedia.org/wiki/Gantt_chart][Gantt grafikoni]]) za
27 vašu mušteriju na vašem [[http://en.wikipedia.org/wiki/Pointy-haired_Boss][Pointy-haired Boss]].
28
29 * Planirajte svoj projekat
30
31 Startujete kao i obično tako što se projekat podeli na zadatke. Hajde da
32 uzmemo sledeći primer gde imamo da kreiramo projetak u vezi sa
33 računovodstvom (softver):
34
35 #+BEGIN_SRC org
36   ,* Accounting Software
37   ,
38   ,** Specification
39   ,
40   ,** Software Development
41   ,*** Database coupling
42   ,*** Back-End Functions
43   ,*** Graphical User Interface
44   ,
45   ,** Software testing
46   ,*** Alpha Test
47   ,*** Beta Test
48   ,
49   ,** Manual
50   ,
51   ,** Milestones
52   ,*** Project start
53   ,*** Technology Preview
54   ,*** Beta version
55   ,*** Ship Product to Customer
56 #+END_SRC
57
58 * Proceniti napor
59
60 Sada kada ste odgonetnuli zadatke, vreme je da procenimo napor za svaki
61 pojedinačni zadatak. Koristeći kolonu pregleda ovo može da se završi vrlo
62 efikasno i brzo. Takođe , pomaže da se definišu =COLUMNS= i standardne
63 vrednosti za “Effort property” kao što je pokazano na sledećoj slici:
64
65 #+CAPTION: Procenjujemo napor pomoću kolone pregleda
66 #+ATTR_HTML: alt="Procenjujemo napor pomoću kolone pregleda"
67 [[file:../images/taskjuggler/effort-estimation.png]]
68
69 Rezultat vašeg projekta Org moda će izgledati nešto slično kao sledeće:
70
71 #+BEGIN_SRC org
72   ,#+PROPERTY: Effort_ALL 2d 5d 10d 20d 30d 35d 50d 
73   ,#+COLUMNS: %70ITEM(Task) %Effort
74   ,
75   ,* Accounting Software
76   ,
77   ,** Specification
78   ,   :PROPERTIES:
79   ,   :Effort:   20d
80   ,   :END:
81   ,
82   ,** Software Development
83   ,
84   ,*** Database coupling
85   ,    :PROPERTIES:
86   ,    :Effort:   20d
87   ,    :END:
88   ,
89   ,*** Back-End Functions
90   ,    :PROPERTIES:
91   ,    :Effort:   30d
92   ,    :END:
93   ,
94   ,*** Graphical User Interface
95   ,    :PROPERTIES:
96   ,    :Effort:   35d
97   ,    :END:
98   ,
99   ,** Software testing
100   ,*** Alpha Test
101   ,    :PROPERTIES:
102   ,    :Effort:   5d
103   ,    :END:
104   ,
105   ,*** Beta Test
106   ,    :PROPERTIES:
107   ,    :Effort:   20d
108   ,    :END:
109   ,
110   ,** Manual
111   ,   :PROPERTIES:
112   ,   :Effort:   50d
113   ,   :END:
114   ,
115   ,** Milestones
116   ,*** Project start
117   ,*** Technology Preview
118   ,*** Beta version
119   ,*** Ship Product to Customer
120 #+END_SRC
121
122 * Generisati Gantt grafikone
123
124 Sada, pre nego što eksportujete projekat do TaskJuggler-a, treba da kažete
125 izvozniku na kom drvetu može pronaći zadatke. Ovo radite tako što dodajete
126 tag do ~taskjuggler_project~ do člana “Accounting Softvare"[fn:1]. Uradite ovo
127 pomeranjem do “Accounting Softvare” naslova i kucajte sledeće:
128
129 : C-c C-c taskjuggler_project RET
130
131 Оvo vam dozvoljava da imate i druge članove za ovaj projekat kao što su
132 uvod i opšte napomene.
133
134 Za izvoz projekta do TaskJuggler-a jednostavno ukucajte sledeće:
135
136 : M-x org-export-as-taskjuggler-and-open
137
138 Оvo će vam otvoriti projekat u TaskJuggler-u kao što je i prikazano ispod.
139
140 #+CAPTION: Gantt grafikoni u TaskJuggler-UI
141 #+ATTR_HTML: alt="Gantt grafikoni u TaskJuggler-UI"
142 [[file:../images/taskjuggler/TaskJugglerUI1.png]]
143
144 Kako nismo dodelili nijedan resurs za rad na ovom projektu, izvoznik
145 pretpostavlja da ćete vi biti ti koji rade na projektu i dodeliće sve
146 zadatke vama. Zadatak je serijalizovan, tj. izlazi u serijama tako da
147 nećete imati da radite mnogo posla u isto vreme i resursi će biti
148 nivelisani.
149
150 * Dodeljivanje resursa
151
152 Sledeći korak je da napravite listu svih resursa koji rade na projektu i
153 dodeliti im zadatke. Kreirajte član za svaki resurs. Možete grupisati
154 resurse kreiranjem hijerarhije. Označite drvo resursa sa oznakom
155 ~taskjuggler_resource~ tako da izvoznik zna gde da gleda za resurs
156 definicije[fn:2].
157
158 #+BEGIN_SRC org
159   ,* Resources                                         :taskjuggler_resource:
160   ,** Developers
161   ,   :PROPERTIES:
162   ,   :resource_id: dev
163   ,   :END:
164   ,*** Paul Smith
165   ,    :PROPERTIES:
166   ,    :resource_id: paul
167   ,    :END:
168   ,*** Sébastien Bono
169   ,    :PROPERTIES:
170   ,    :resource_id: seb
171   ,    :END:
172   ,*** Klaus Müller
173   ,
174   ,** Others
175   ,*** Peter Murphy
176   ,    :PROPERTIES:
177   ,    :resource_id: doc
178   ,    :END:
179   ,*** Dim Sung
180   ,    :PROPERTIES:
181   ,    :resource_id: test
182   ,    :END:
183 #+END_SRC
184
185 Kao što ćete i primetiti, takođe sam dodao ~resource_id~ properties za neke
186 resurse (grupe resursa). Koristiću te identifikatore za dodelu resursa
187 zadacima. Izvoznik će kreirati jedinstveni ids za resurse automatski[fn:3],
188 ali ako želite da koristite kratke forme bolje je da definišete
189 ~resource_id~ properties za vaše resurse. Ovo će vam takođe omogućiti da
190 definišete standardne vrednosti za dodelu kao što sledi:
191
192 : #+PROPERTY: allocate_ALL dev doc test
193
194 Najlakši način za dodeljivanje resursa, je ponovo kolumna pregleda. Nema
195 potrebe za dodeljivanjem resursa za svaki zadatak, jer je dodeljivanje
196 nasledno u TaskJuggler[fn:4]. Primetićete na ekranu ispod da neki zadaci
197 imaju više nego jedan resurs dodeljen. TaskJuggler će izračunati trajanje
198 svakog zadatka, baziranom na naporu i resursu koji rade na ovom zadatku.
199
200 #+CAPTION: Dodeljivanje resursa
201 #+ATTR_HTML: alt="Dodeljivanje resursa"
202 [[file:../images/taskjuggler/assign-resources.png]]
203
204 Ako sada izvezemo projekat videćemo da je TaskJuggler organizovao neke
205 zadatke paralelno (jer postoji nekoliko resursa koji mogu raditi
206 paralelno).  Pogledajte sliku ispod:
207
208 #+CAPTION: Gantt grafikoni sa višestrukim resursima
209 #+ATTR_HTML: alt="Gantt grafikoni sa višestrukim resursima"
210 [[file:../images/taskjuggler/TaskJugglerUI2.png]]
211
212 Očigledno moramo da definišemo zavisnosti između zadataka.
213
214 * Odrediti zavisnosti
215
216 Ima nekoliko načina za definisanje zavisnosti između zadataka. Kada dolaze
217 iz Org mod pozadine, vi ćete verovatno želeti da ih definišete koristeći
218 postrojenja obezbeđena od strane Org moda, koji su ili:
219
220 - The =ORDERED= imovina koja vam dozvoljava i navodi vas da dečiji zadaci
221   moraju biti kompletirani po tome kako se pojavljuju
222
223 -  The =BLOCKER= imovina, koja vam dozvoljava i navodi vas da zadatak
224    zavisi od
225
226     - od prethodnog siblinga (prethodni-sibling)
227     - od bilo kog drugog zadatka, startujući ~task_id~ property od
228       prethodnika
229
230 Ponovo, ovo je verovatno najlakši način za definisanje zavisnosti koristeći
231 kolumnu pregleda kao što je prikazano na ekranu ispod:
232
233 #+CAPTION: Definisanje zavisnosti korišćenjem kolumne pregleda
234 #+ATTR_HTML: alt="Definisanje zavisnosti korišćenjem kolumne pregleda"
235 [[file:../images/taskjuggler/define-dependencies.png]]
236
237 Na kraju, takođe postoji i zavisnost imovine koja je u korespodenciji sa
238 TaskJuggler terminologijom.  Može se koristiti na isti način kao =BLOCKER=
239 imovina. Ovo je ilustrovano ispod gde je uzet primer “Softvare Development”
240 koji je blokiran od strane zadatka “Specification”, gde mora da čeka dok se
241 specifikacija ne završi.  Zadatak “Softvare Development” je definisan kao
242 =ORDERED=, i svi podzadaci moraju biti kompletirani u sekvencama. Drugi
243 primer je prekretnica “Ship Product to Customer” koji čeka dok se ne završe
244 Beta i Ručni test.
245
246 #+BEGIN_SRC org
247   ,#+PROPERTY: Effort_ALL 2d 5d 10d 20d 30d 35d 50d 
248   ,#+PROPERTY: allocate_ALL dev doc test
249   ,#+COLUMNS: %30ITEM(Task) %Effort %allocate %BLOCKER %ORDERED
250   ,
251   ,* Accounting Software                                        :taskjuggler_project:
252   ,
253   ,** Specification
254   ,   :PROPERTIES:
255   ,   :Effort:   20d
256   ,   :BLOCKER:  start
257   ,   :allocate: dev
258   ,   :END:
259   ,
260   ,** Software Development
261   ,   :PROPERTIES:
262   ,   :ORDERED:  t
263   ,   :BLOCKER:  previous-sibling
264   ,   :priority: 1000
265   ,   :allocate: dev
266   ,   :END:
267   ,
268   ,*** Database coupling
269   ,    :PROPERTIES:
270   ,    :Effort:   20d
271   ,    :END:
272   ,
273   ,*** Back-End Functions
274   ,    :PROPERTIES:
275   ,    :Effort:   30d
276   ,    :task_id:  back_end
277   ,    :END:
278   ,
279   ,*** Graphical User Interface
280   ,    :PROPERTIES:
281   ,    :Effort:   35d
282   ,    :allocate: paul, seb
283   ,    :END:
284   ,
285   ,** Software testing
286   ,   :PROPERTIES:
287   ,   :ORDERED:  t
288   ,   :BLOCKER:  previous-sibling
289   ,   :allocate: test
290   ,   :END:
291   ,*** Alpha Test
292   ,    :PROPERTIES:
293   ,    :Effort:   5d
294   ,    :task_id:  alpha
295   ,    :END:
296   ,
297   ,*** Beta Test
298   ,    :PROPERTIES:
299   ,    :Effort:   20d
300   ,    :task_id:  beta
301   ,    :allocate: test, paul
302   ,    :END:
303   ,
304   ,** Manual
305   ,   :PROPERTIES:
306   ,   :Effort:   50d
307   ,   :task_id:  manual
308   ,   :BLOCKER:  start
309   ,   :allocate: doc
310   ,   :END:
311   ,
312   ,** Milestones
313   ,*** Project start
314   ,    :PROPERTIES:
315   ,    :task_id:  start
316   ,    :END:
317   ,
318   ,*** Technology Preview
319   ,    :PROPERTIES:
320   ,    :BLOCKER:  back_end
321   ,    :END:
322   ,
323   ,*** Beta version
324   ,    :PROPERTIES:
325   ,    :BLOCKER:  alpha
326   ,    :END:
327   ,
328   ,*** Ship Product to Customer
329   ,    :PROPERTIES:
330   ,    :BLOCKER:  beta manual
331   ,    :END:
332   ,
333   ,
334   ,* Resources                                         :taskjuggler_resource:
335   ,** Developers
336   ,   :PROPERTIES:
337   ,   :resource_id: dev
338   ,   :END:
339   ,*** Paul Smith
340   ,    :PROPERTIES:
341   ,    :resource_id: paul
342   ,    :END:
343   ,*** Sébastien Bono
344   ,    :PROPERTIES:
345   ,    :resource_id: seb
346   ,    :END:
347   ,*** Klaus Müller
348   ,
349   ,** Others
350   ,*** Peter Murphy
351   ,    :PROPERTIES:
352   ,    :resource_id: doc
353   ,    :limits:   { dailymax 6.4h }
354   ,    :END:
355   ,*** Dim Sung
356   ,    :PROPERTIES:
357   ,    :resource_id: test
358   ,    :END:
359 #+END_SRC
360
361 Ако izvozite primer iznad, TaskJuggler će napraviti raspored zadataka kao
362 što je pokazano na ekranu ispod.
363
364 #+CAPTION: Gantt grafikoni za zavisnostima
365 #+ATTR_HTML: alt="Gantt grafikoni za zavisnostima"
366 [[file:../images/taskjuggler/TaskJugglerUI3.png]]
367
368 Takođe TaskJuggler će vam dati pregled koliko će uposleni biti resursi i na
369 čemu rade. Pogledajte ispod sliku:
370
371 #+CAPTION: Grafikon upotrebe resursa
372 #+ATTR_HTML: alt="Grafikon upotrebe resursa"
373 [[file:../images/taskjuggler/resource-graph.png]]
374
375 Na posletku, možete generisati [[file:../images/taskjuggler/project-plan.pdf][good-lookin project plans]] u PDF fajlove
376 štampanjem iz TaskJuggler-a.Ovo će usrećiti svakog [[http://en.wikipedia.org/wiki/Pointy-haired_Boss][pointy-haired Boss]].
377
378 * Export of other properties
379
380
381 Obično, izvoznik upisuje imovinu člana koja je već poznata TaskJuggler-u
382 (kao smene, bukiranja, efikasnost, start, knjiženje,odgovornost, reference,
383 raspored, trajanje, prekretnica, beleške, kraj, itd... za zadatke) kao i
384 TaskJuggler fajlu.
385
386 Оstala svojstva kao kompletnost ili prioritet su izvedene iz obuhvatnih
387 informacija iz Org mod fajla. TODO izjava je pravi primer kompletnosti.
388 Prioritet zadatka će biti determinisan kroz prioritet cookie.
389
390 * Footnotes
391 [fn:1] Možete kustomizirati tagove.
392
393 [fn:2] Оpet, naravno, ovaj tag može biti kustomiziran.
394
395 [fn:3] Preko downcasing naslova, zamene ne-ascii znakova sa “ i biranjem
396 prve reči kao da je jedinstvena.
397
398 [fn:4] U TaskJuggler-u dodeljivanja su kumulativna, izvoznik međutim,
399 dodaje neke kodove tako da su nasleđena dodeljivanja ignorisana kada se
400 eksplicitno dodeljuju resursu.
401