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