Download - INFORMACIJSKA PODPORA ZA SPREMLJANJE IN …
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
Marko Poštrak
INFORMACIJSKA PODPORA ZA SPREMLJANJE IN UPRAVLJANJE
PROJEKTOV NA MOBILNIH NAPRAVAH
Diplomsko delo
Maribor, april 2014
Fakulteta za elektrotehniko, računalništvo in informatiko
Smetanova ulica 17 2000 Maribor, Slovenija
INFORMACIJSKA PODPORA ZA SPREMLJANJE IN
UPRAVLJANJE PROJEKTOV NA MOBILNIH NAPRAVAH
Diplomsko delo
Študent: Marko Poštrak
Študijski program: Univerzitetni študijski program
Informatika in tehnologije komuniciranja
Smer: Informacijski sistemi
Mentor: doc. dr. Domen Verber
Somentor: red. prof. dr. Ivan Rozman
Lektor: Jernej Simič, prof.
I
II
INFORMACIJSKA PODPORA ZA SPREMLJANJE IN UPRAVLJANJE
PROJEKTOV NA MOBILNIH NAPRAVAH
Ključne besede: projekt, mobilna aplikacija, Android, upravljanje, vodenje
UDK: 621.39:004.5(043.2)
Povzetek
V diplomski nalogi se bomo osredotočili na spremljanje in upravljanje projektov s pomočjo
mobilnih naprav. Najprej bomo pregledali, kako zgleda vodenje projektov ter kako uspešni so
projekti v današnjem času. Nato bomo opisali in primerjali nekaj aplikacij za vodenje
projektov. Na koncu bomo implementirali lastno mobilno aplikacijo za spremljanje projektov.
III
INFORMATION SUPPORT FOR MONITORING AND MANAGING
PROJECTS ON MOBILE DEVICES
Key words: project, mobile application, Android, management, monitoring
UDK: 621.39:004.5(043.2)
Abstract
In this thesis, we will focus on monitoring and managing projects with mobile applications.
Firstly we will take a look how project management looks like and how succesfull are
nowdays projects. Later on we will describe and compare some applications for project
management. In the end we will implement our own mobile application for project
management.
IV
Kazalo 1 UVOD ........................................................................................................................... 1
2 PROJEKTNO VODENJE ............................................................................................. 2
2.1 Metodologije ........................................................................................................... 2
2.2 Sodelujoči ............................................................................................................... 3
2.3 Pomen uspešnega vodenja projektov ...................................................................... 3
2.4 Tveganja ................................................................................................................. 5
2.4.1 Identifikacija tveganj ....................................................................................... 6
2.4.2 Ocenitev tveganj .............................................................................................. 6
2.4.3 Zmanjševanje tveganj ...................................................................................... 6
2.4.4 Kontrola ter nadzor tveganj ............................................................................. 6
2.5 Komunikacija .......................................................................................................... 6
2.6 Opis vodenja projektov ........................................................................................... 7
2.6.1 Začetek projekta .............................................................................................. 7
2.6.2 Planiranje projekta ........................................................................................... 7
2.6.3 Začetek izvajanja projekta ............................................................................... 8
2.6.4 Kontrola projekta ............................................................................................. 8
2.6.5 Zaključek projekta ........................................................................................... 8
2.7 Pristopi k vodenju projektov v IT sektorju ............................................................ 8
2.7.1 Tradicionalni pristop ....................................................................................... 9
2.7.2 Agilni pristop ................................................................................................... 9
2.8 Primerjava posameznih pristopov za vodenje projektov v IT sektorju ................ 10
3 OPIS APLIKACIJ ZA POMOČ PRI VODENJU PROJEKTOV ............................... 11
3.1 JIRA ...................................................................................................................... 12
3.2 Microsoft Project 2010 ......................................................................................... 12
3.3 ZOHO Projects ..................................................................................................... 13
3.4 Collabtive .............................................................................................................. 13
V
3.5 EasyProjects .......................................................................................................... 13
3.6 ConceptDraw Project ............................................................................................ 14
3.7 Project planning pro .............................................................................................. 14
3.8 iScope ................................................................................................................... 14
4 PRIMERJAVA APLIKACIJ ZA VODENJE PROJEKTOV ..................................... 16
5 IMPLEMENTACIJA MOBILNE APLIKACIJE ....................................................... 18
5.1 Analiza .................................................................................................................. 18
5.2 Uporabljene tehnologije in storitve ...................................................................... 19
5.3 Načrtovanje ........................................................................................................... 20
5.4 Potek implementacije mobilne aplikacije ............................................................. 26
5.5 Izboljšave .............................................................................................................. 34
6 SKLEP ......................................................................................................................... 35
7 VIRI ............................................................................................................................. 36
VI
KAZALO SLIK
Slika 1: Prikaz razmerij med dejavniki, ki vplivajo na uspešnost projekta [2] ..................... 4
Slika 2: Prikaz projektov glede na tip zaključka [3] ............................................................. 5
Slika 3:Diagram primerov uporabe naše mobilne aplikacije .............................................. 19
Slika 4: Prijavna stran mobilne aplikacije ........................................................................... 20
Slika 5: Seznam projektov ................................................................................................... 21
Slika 6: Seznam nalog dodeljenih trenutnemu uporabniku ................................................. 22
Slika 7: Pregled naloge ........................................................................................................ 23
Slika 8: Dodajanje naloge ................................................................................................... 24
Slika 9: Potisno sporočilo .................................................................................................... 25
Slika 10: Model podatkovne baze ....................................................................................... 27
Slika 11: Gnezdenje elementov pri pregledu naloge ........................................................... 31
Slika 12: Prikaz delovanja potisnih sporočil s pomočjo diagrama zaporedja [18] ............. 33
KAZALO TABEL
Tabela 1: Primerjava aplikacij ............................................................................................. 17
VII
SEZNAM UPORABLJENIH KRATIC:
GCM – Google Cloud Messaging for Android
GUI – Graphical user interface
IDE – integrated development environment
JSON - JavaScript object notation
PMBOK - Project Management Body of Knowledge
PRINCE2 - Projects in Controlled Environments, version 2
PRiSM - Projects integrating sustainable methods)
REST – Representational state transfer
SDK - Software development kit
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
1
1 UVOD
Danes smo priča razvoju zelo dovršene programske opreme, za izdelavo katere je potrebno
veliko dela. Razvoj takšne programske opreme je projekt, ki mora biti zelo dobro načrtovan
ter nadzorovan. Tukaj ima pomembno vlogo projektno vodenje, saj brez tega ne bi bili
sposobni izdelati takšne programske opreme. Projektno vodenje je skupek metodologij in
dobrih praks, ki nam pomagajo, da je projekt voden karseda uspešno. Uspešno voden projekt
je vedno zaključen pravočasno in znotraj danega proračuna.
Cilj diplomske naloge je poudariti pomen vodenja projektov ter določiti vlogo mobilnih
aplikacije pri vodenju projektov. Prav tako bomo implementirali lastno mobilno aplikacijo.
Dokument je sestavljen iz štirih poglavij, kjer v prvem poglavju opišemo, kako poteka
vodenje projektov, kaj je za uspešen projekt potrebno ter kako uspešni so projekti v
današnjem času. Nato v drugem delu opišemo aplikacije za pomoč pri vodenju projektov in
jih v tretjem delu med seboj primerjamo. Zadnji del je namenjen implementaciji naše lastne
mobilne aplikacije za pomoč pri vodenju projektov.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
2
2 PROJEKTNO VODENJE
Najprej je potrebno vedeti, kaj je projekt. Projekt je začasno okolje, s pomočjo katera pridemo
do zastavljenega produkta ali storitve.
Vsak projekt ima tudi aktivnosti, ki so unikatne, saj se ne morejo ponavljati v več projektih na
enak način. Aktivnosti so med seboj povezane, kjer mora vsaka aktivnost imeti svoj vhod
(začetek) in izhod (konec). Prav tako ima vsak projekt zgolj en cilj, kot je na primer »Polet na
Luno«. Da uspešno pridemo do zastavljenega cilja, potrebujemo projektno vodenje.
Projektno vodenje je množica različnih dejavnosti, pri katerih ljudi spodbujamo,
nadzorujemo, organiziramo in vodimo. S temi dejavnostmi si pri tem pomagamo od začetka
do konca. Projektno vodenje potrebujemo zato, da je projekt pravočasno zaključen in se ne
preseže sredstev, ki so bila dodeljena projektu. Pri projektnem vodenju lahko sledimo
različnim metodologijam, ki se lahko med seboj zelo razlikujejo. Spodaj je zapisano, kaj misli
avtor Robert K. Wysocki:
»A project is a sequence of unique, complex, and connected activities that have one goal or
purpose and that must be completed by a specific time, within budged, and according to
specification.« [1]
2.1 Metodologije
Metodologije morajo vsebovati splošna navodila, ki jih je mogoče prilagoditi različnim
projektov. Prav tako morajo biti napisana čim bolj preprosto (za lažja razumevanje), vsebovati
pa morajo tudi navodila za specifične probleme.
Spodaj smo našteli nekaj najbolj pogostih ter priznanih metodologij:
PRINCE2 (Projects in controlled environments)
PMBOK (Project management body of knowledge)
KANBAN
PRiSM (Projects integrating sustainable methods)
SCRUM
Vsaka metodologija ima svoje specifične lastnosti, tako moramo pred začetkom projekta
izbrati nam najboljšo oz. najbolj primerno.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
3
2.2 Sodelujoči
V projektu sodelujejo različni ljudje, ki jih lahko ločimo na večje ali manjše skupine.
Običajno jih ločimo na stranke ter izvajalce.
Stranke ločimo na kliente in uporabnike, medtem ko izvajalce ločimo na vodstvo, uslužbence
ter vzdrževalce.
Vsak projekt ima prav tako vsaj eno osebo, ki je vodja projekta. Nekatere metodologije
dopuščajo tudi več vodij, kar je v več primerih lahko slabo, saj se odgovornost in delo deli na
dva človeka. Večina metodologij »zahteva«, da je vodja projekta zgolj ena oseba.
Nad projektnim vodjo je višje vodstvo, ki skrbi za financiranje ter podporo projektu.
Pri projektu je potrebno voditi ljudi, za katere moramo poskrbeti, da so motivirani. Motivacije
so lahko različne, najbolj pogoste pa so redna zaposlitev, plača, možnost napredovanja, dobri
delovni pogoji, itd.. Pomembno je tudi, da pri reševanju problemov omogočimo
strokovnjakom proste roke. [1]
2.3 Pomen uspešnega vodenja projektov
Uspešno vodenje projektov je zelo pomembno, saj lahko le s tem zagotovimo, da bo projekt
potekal v okvirju zastavljenih sredstev. Če želimo projekt uspešno voditi, moramo najprej
vedeti, kaj je cilj projekta. Ko imamo cilj, moramo vedeti, kako ga bomo dosegli, pri čemer si
pomagamo s planiranjem projekta. Pri planiranju se osredotočimo na to, kako bomo
nadzorovali in usmerjali projekt. Prav tako pri planiranju določimo, kakšno kakovost izdelka
oz. izdelkov želimo.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
4
Če želimo projekt uspešno izvesti, moramo upoštevati tri dejavnike. Ti so čas, stroški ter viri.
[2]
Pri času je potrebno upoštevati rok zaključka projekta. Prav tako moramo pri vodenju
projekta upoštevati stroške ter razpoložljivost virov, saj brez ljudi, materialov in opreme ne
moremo delati. Dejavniki so grafično prikazani na spodnji sliki, kjer lahko vidimo, da je
optimalno področje sredina trikotnika.
Slika 1: Prikaz razmerij med dejavniki, ki vplivajo na uspešnost projekta [2]
Žal pa se več kot 2/3 projektov končata neuspešno. To je pokazala raziskava skupine
CHAOS, katere podatki so prikazani na naslednjem grafu. Graf prikazuje tri tipe zaključenih
projektov. Prvi tip so uspešno zaključeni projekti, ki so zaključeni v določenem finančnem in
časovnem okviru ter imajo vse predvidene funkcionalnosti. Drugi tip so delno uspešno
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
5
zaključeni projekti, ki so prekoračili časovni in finančni okvir in/ali so imeli manj
funkcionalnosti, kot je bilo predvideno. Zadnji tip pa so neuspešno dokončani projekti, kateri
so bili prekinjeni ali opuščeni. [3]
Slika 2: Prikaz projektov glede na tip zaključka [3]
2.4 Tveganja
Pri vsakem projektu se pojavi tveganje, ki lahko podaljša projekt ali pa ga celo zaustavi.
Tveganja lahko delimo na zunanja in notranja. Na zunanja tveganja nimamo vpliva, saj gre
tukaj za tveganja ekonomske krize, vojaških spopadov, zloma valute ali drugega tveganja.
Vpliv pa imamo na notranja tveganja, ki jih tudi lahko obvladujemo. Delimo jih na tri
skupine, in sicer: [2]
tehnično tveganje – sprememba tehnologije med projektom, nerealistični performančni
cilji, neprimerna tehnologija za projekt;
tveganje projektnega vodenja – slabo razporejanje virov (viri se prekrivajo),
nenatančen projektni plan;
organizacijsko tveganje – prevelika cena, premalo časa, viri razporejeni med več
projektov.
Tveganja obvladujemo skozi celoten potek projekta. Pri obvladovanju tveganj si pomaga s
štirimi koraki, ki so opisani spodaj.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
6
2.4.1 Identifikacija tveganj
Identifikacija tveganj se običajno izvaja v fazi planiranja projekta. Takrat se zberejo vsi, ki na
projektu sodelujejo, ter identificirajo tveganja, ki bi se lahko pojavila pri projektu.
2.4.2 Ocenitev tveganj
Ko so tveganja že znana, jih poskušamo oceniti. S pomočjo ocene določimo, kako pogosto se
lahko to tveganje zgodi, ter kakšne so lahko posledic. Ocene podamo s pomočjo tabele, kjer
ocenimo verjetnost tveganja ter škodo, ki ga lahko to tveganje povzroči. Velika tveganja
obvladuje nadzorni svet projekta, medtem ko lahko manjša tveganja obvladuje vodja projekta
ali vodja skupine za obvladovanje tveganj (pri večjih projektih). [1]
2.4.3 Zmanjševanje tveganj
Tveganja lahko zmanjšujemo s pomočjo vpeljave novih kontrol ali kupimo opremo, ki jih
pomaga zmanjševati (npr. UPS proti izpadu toka ali strelovod za primer udarca strele). Prav
tako lahko tveganje prenesemo na zunanjega partner, kjer lahko na primer varovanje objekta
izvaja nekdo drug. [1]
2.4.4 Kontrola ter nadzor tveganj
Vsa tveganja, ki smo jih identificirali, moramo tudi nadzorovati. Vpisujemo jih v dnevnik
tveganj. Ta mora vsebovati ID tveganja, opis tveganja, odgovorno osebo za tveganje, kako
ukrepati, ko tveganje nastopi ter rezultat zmanjševanja tveganja. [1]
Pomembno je, da upravljamo s tveganji skozi celoten projekt. Tako bi se morali o tveganjih
pogovarjat skoraj na vsakem sestanku, saj bo ekipa vedela več o tveganjih ter jih bo znala
primerno reševati.
2.5 Komunikacija
Pomembno vlogo pri projektih ima tudi komunikacija, ki je eden glavnih vzrokov za
neuspešno zaključen projekt. Kadar je komunikacije premalo, pride do odstopanj ter manjšega
izmenjevanja znanja, kadar pa je komunikacije preveč, pa za njo porabimo preveč časa in nam
ga lahko zmanjka za druge stvari.
Upravljanje s komunikacijo je pomembno področje vodenja projektov. Da jo lahko uspešno
izvajamo, moramo vedeti, koliko različnih skupin imamo pri projektu ter ali je pomembno, da
te skupine med seboj komunicirajo. Prav tako moramo urediti komunikacijo tako, da se
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
7
prenašajo zgolj pomembne informacije. Različne skupine ljudi uporabljajo različne
komunikacijske kanale, pri čemer je naloga projektnega vodje, da to poskusi zagotoviti.
Komunikacija lahko poteka po elektronski pošti, klepetu, video konferenci, preko sestankov,
sistema za pomoč pri vodenju projektov ali preko dokumentov. Zraven kanala moramo
upoštevati še čas, ker lahko informacije, ki so prispele ob nepravem času, ogrozijo sam
projekt.
Če informacije prispejo prehitro, se lahko pozabijo ali pa se lahko vmes kaj spremeni in več
niso pravilne. Če pa informacije dobimo prepozno, bodo povzročile, da se bo projekt zavlekel
ali pa preprosto ne bodo več potrebne.
Prav tako mora projektni vodja vedeti, katera skupina ljudi na projektu potrebuje določene
informacije, saj programerju ne bodo pomagale informacije o izdatkih projekta.
Zelo pomembno vlogo ima komunikacija z zunanjimi partnerji ter strankami, ki se velikokrat
izkaže za slabo.
2.6 Opis vodenja projektov
Vse metodologije vodenja projektov imajo pet skupnih korakov, ki so opisani v nadaljevanju.
2.6.1 Začetek projekta
V začetni fazi moramo najprej vedeti, kaj želimo doseči. Tako moramo najprej vzpostaviti
poslovne zahteve ter definirati, kakšen naj bi bil uspešen zaključek projekta, tako da bomo
vedeli, kdaj smo prišli do cilja.
V tej fazi podrobno analiziramo ter zapišemo uporabnikove zahteve, izberemo in imenujemo
projektnega vodjo, napišemo kratek opis projekta in pridobimo dovoljenje višjega vodstva za
planiranje projekta.
2.6.2 Planiranje projekta
Samo ime faze nam pove, da bomo tukaj projekt planirali. Planirali bomo aktivnosti, kontrole,
pričakovano kvaliteto izdelkov ter razporejali vire med te aktivnosti. V tej fazi bomo lahko
določili, kako dolgo bo projekt trajal, kakšna bo cena, katere vire bomo potrebovali ter kakšna
tveganja lahko nastopijo.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
8
Prav tako bomo izdelali plan dela na projektu in plan tveganj. Na koncu faze bomo ponovno
potrebovali dovoljenje višjega vodstva, da lahko projekt pričnemo izvajati.
2.6.3 Začetek izvajanja projekta
Ko imamo vse načrtovano, lahko začnemo z izvajanjem projekta. Najprej je potrebno
pridobiti vire, ki jih rabimo za uspešno izvajanje projekta. Ko imamo vire, je potrebno
dopolniti vzpostavitveni dokument, ter zapisati pravila za delo na projektu. Prav tako je
potrebno vzpostaviti komunikacijo med posamezniki in definirati delovne pakete (izdelke).
Tukaj tudi dokončno zaključimo projektni plan.
2.6.4 Kontrola projekta
Po pričetku izvajanja projekta moramo izvajanje tudi nadzorovati. Ta faza je najdaljša faza,
saj poteka skozi celotno izvajanje projekta. Najprej moramo razviti sistem nadzorovanja in
javljanja napredka.
V tej fazi nadzorujemo izvajanje projekta ter tveganja. Pomembno je, da nadzorujemo predajo
delovnih paketov ter da odkrivamo in rešujemo probleme povezane z njimi. Prav tako je
potrebno poročati višjemu vodstvu o možnih problemih ter napredku projekta.
Tukaj se pokaže izkušenost vodje projekta, ki lahko vodi v uspešno ali neuspešno končanje
projekta.
2.6.5 Zaključek projekta
Ko smo končali z izvajanjem vseh aktivnosti, moramo projekt zaključiti. Pri zaključitvi
projekta se postavi vprašanje, kako dobro smo naredili projekt. Tukaj ocenimo uspešnost
projekta ter pridobimo potrdilo uporabnikov, da izdelek/storitev ustreza njihovim zahtevam.
V tej fazi planiramo namestitev izdelka ter samo namestitev tudi izvedemo. Na koncu
napišemo še končno projektno poročilo ter planiramo izvajanje po-projektnih aktivnosti
(vzdrževanje). [2]
2.7 Pristopi k vodenju projektov v IT sektorju
Kot smo že povedali, lahko pri vodenju projektov sledimo več pristopom, mi smo izbrali dva
najbolj pogosta. To sta tradicionalni in agilni pristop k vodenju projektov.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
9
2.7.1 Tradicionalni pristop
Tradicionalni pristop k vodenju projektov je pristop, pri katerem celoten projekt načrtujemo v
naprej. Tako na začetku naredimo analizo in napišemo vse funkcionalnosti ter jim določimo
roke za zaključek. Metoda je zelo nefleksibilna in ni primerna za projekte, kjer izdelujemo
stvari, katere temeljijo na novih tehnologijah. Obstaja več metodologij vodenja projektov po
tradicionalnem pristopu, med temi pa je najbolj znan slapovni (Waterfall) model. [4]
2.7.2 Agilni pristop
Agilni pristop je pristop, ki projekte vodi »sproti«. Tudi pri agilnem pristopu se naredi
analiza, vendar pa se kasneje komponente in funkcionalnosti lahko spreminjajo in
dopolnjujejo. Pri agilnem pristopu imamo tako imenovane »Sprinte«, kjer se določi, kaj bi se
naj izdelalo v določenem časovnem okviru (običajno v enem tednu). Sprinti se definirajo
sproti, tako da niso podrobno določeni v naprej, tako kot je projektni plan pri tradicionalnem
pristopu. [4]
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
10
2.8 Primerjava posameznih pristopov za vodenje projektov v IT sektorju
Pri vodenju projektov je zelo pomembno, za kakšen projekt gre, saj niso vsi pristopi in
metodologije primerne za vse projekte. Če imamo veliko število udeležencev in projekt, za
katerega vemo, kaj vse je potrebno narediti in imamo s tem že izkušnje, lahko uporabimo
tradicionalni pristop, saj tako zmanjšamo komunikacijo med izvajalci. Prav tako lahko
podrobno definiramo aktivnosti, saj smo se z njimi že srečali in znamo oceniti trajanje ter
možnosti za napake.
Pri projektih, ki uporabljajo nove tehnologije ali so raziskovalni, pa je uporaba
tradicionalnega pristopa zelo nepriporočljiva, saj imajo takšni projekti veliko nepričakovanih
stvari. Tukaj je priporočljivo uporabiti agilni pristop, saj se dela na kratke intervale in je
mogoče stvari (arhitekturo, tehnologijo itd.) lažje spremeniti. Pri agilnem vodenju so tudi
pogostejši sestanki, kjer lahko vsako nepričakovano stvar obravnavamo.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
11
3 OPIS APLIKACIJ ZA POMOČ PRI VODENJU
PROJEKTOV
Za pomoč pri vodenju projektov obstaja veliko aplikacij. Te aplikacije so lahko namizne,
spletne ali mobilne. Spodaj smo opisali nekaj aplikacij in jih nato poskusili med seboj
primerjati.
Primerjali smo jih na podlagi spodaj naštetih možnosti:
Vrsta aplikacije (mobilna, spletna ali namizna)
Možnost dodajanja več virov na nalogo
Možnost sledenja nalogam (pregled nad opravljenim delom)
Možnost razporejanja nalog v urniku (ali v Gaant chartu)
Možnost upravljanja z viri (več virov, dodeljevanje cene virom)
Možnost upravljanja z dokumentacijo
Možnost upravljanja z denarjem (pregled na zapravljenim denarjem in še ostalim
denarjem, lahko izračuna tudi dobiček na projektu)
Možnost sledenja porabljenemu času
Možnost sledenja napakam
Zahtevnost aplikacije za razumevanje (ocenjevali smo s številom od 1 do 4, kjer je 1
najlažje in 4 najtežje)
Ali aplikacija ponuja tudi mobilno različico (v primeru da je aplikacija spletna ali
namizna)
Možnost komentiranja nalog
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
12
3.1 JIRA
JIRA [5] je spletna aplikacija, ki temelji na agilnem pristopu in nam omogoča uporabo
metodologij Scrum in Kanban. Omogoča nam sledenje nalog, vendar pa ne omogoča
razporejanja nalog v urnik.
Vsako nalogo je mogoče komentirati, kar pripomore k reševanju nejasnosti pri nalogi.
Ker je JIRA usmerjena v agilno vodenje projektov, nudi izdelavo sprintov. Ustvari jih lahko
samo vodja projekta. Z njihovo pomočjo lahko hitreje razvijamo funkcionalnosti, ki so
trenutno potrebne. Sprinti so prav tako pokazatelj napredka projekta ter organiziranosti
projektne skupine. Spremljamo jih preko tako imenovanih »sprint boardov«, kjer so naloge
razvrščene med štiri kategorije (čakajoče naloge, naloge v delu, naloge za testiranje in
dokončane naloge).
JIRA ima prav tako možnost razširitve z dodatkom Confluence, ki nam pomaga pri zapisu
dokumentacije in beleženje sestankov.
Prav tako ima JIRA še razširitve za verzioniranje datotek, ki temeljijo na GIT-u ali SVN-ju.
Primer je Bitbucket, ki temelji na GIT-u.
Aplikacija ne omogoča popolno upravljanje z viri, saj jim ne moremo dodeliti vrednosti.
Zaradi tega je onemogočeno upravljanje z denarjem na projektu.
JIRO uporabljajo Cisco, eBay, Adobe, BMW, Twitter, NASA in LinkedIn. [5]
Aplikacija je obsežna, ampak ima razumljive video vodiče, tako da je ocena težavnosti 2.
3.2 Microsoft Project 2010
Microsoft Project 2010 [6] je namizna aplikacija za upravljanje projektov. Omogoča sledenje
nalogam ter razporejanje nalog v urnik, nima pa možnosti komentiranja nalog.
Prav tako omogoča upravljanje z viri, kjer lahko vsak vir dodamo, ter mu dodelimo vrednost.
S tem lahko kasneje tudi vodimo upravljanje z denarjem, saj točno vemo, koliko denarja smo
porabili do sedaj.
S pomočjo Microsoft Project 2010 lahko upravljamo tudi z dokumenti, vendar moramo imeti
povezavo s strežnikom.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
13
Za razumevanje programa pa je potrebnega kar nekaj časa, zato bi težavnost razumevanja na
lestvici od 1-4 označili s 3.
3.3 ZOHO Projects
ZOHO Projects [7] je spletna aplikacije podjetja ZOHO, ki omogoča upravljanje projektov.
Omogoča sledenje nalogam, razporejanje nalog v urnik ter komentiranje nalog.
Ima pa tudi dodatno možnost tako imenovane štoparice, kjer lahko uporabnik pri določeni
nalogi pritisne na sliko ure, ki nato prične beležiti čas. Ko uporabnik zaključi nalogo ali izbere
»done«, se čas avtomatsko zabeleži. Tako je omogočeno zelo enostavno dodajanje časa na
projekt. Prav tako lahko čas pišemo sami za več dni ali tednov nazaj, kar pa ni priporočljivo.
Nekatera podjetja sicer beležijo aktivnosti na projektih vsak teden, kjer zapišejo, kaj se je
naredilo čez teden.
Aplikacija pa žel ne omogoča upravljanja z viri ter upravljanja z denarjem, zato si moramo
stroške projekta na določeni točki preračunati ročno.
Program je lahko razumljiv, prav tako pa ima vsako poglavje video vodiča, zato je težavnost
razumevanja enaka 1.
3.4 Collabtive
Collabtive [8] je spletna aplikacije, ki jo je potrebno namestiti na lasten strežnik. Omogoča
sledenje, komentiranje ter dodajanje nalog na urnike.
Ima omogočeno upravljanje virov ter dokumentov.
Aplikaciji lahko dodamo razširitve, ki omogočajo avtomatsko beleženje dela s pomočjo
štoparice. Prav tako razširitve omogočajo lažji pregled nalog, različna poročila ter
komentiranje nalog.
Razumevanje aplikacije je oteženo, saj ni koristnih vodičev. Težavnost razumevanja smo
ocenili z 2, saj aplikacija ni preveč obsežna.
3.5 EasyProjects
EasyProjects [9] je spletna aplikacija, ki omogoča upravljanje projektov. Podpira možnost
razporejanja nalog na urnik, sledenja nalog, komentiranja nalog, upravljanja z viri, dokumenti
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
14
in denarjem ter sledenje porabljenemu času. Prav tako omogoča avtomatsko beleženje
porabljenega časa.
Po navedbah podjetja, EasyProjects uporabljajo tudi Toshiba, Goodyear, UPS in Harvard. [9]
Dostopa do aplikacije žal nismo imeli, njene funkcionalnosti pa so lepo razvidne iz vodičev,
ki so izmed vseh opisanih aplikacij najboljši.
3.6 ConceptDraw Project
ConceptDraw Project [10] je zelo podoben Microsoft Project-u 2010, saj sta skoraj identična.
ConceptDraw Project ima zraven vodenja projektov še tako imenovan »Mind map«, kjer
lahko uporabljamo nevihto možganov. Z »Mind mapa« lahko takoj prenesemo naloge na
urnik, kjer jih razporedimo in določimo čas.
Vse ostale funkcionalnosti so praktično enake kot pri Microsoft Project-u 2010, zato je tudi
ocena težavnosti enaka 3.
3.7 Project planning pro
Project planning pro [11] je mobilna aplikacija, ki omogoča sledenje nalog ter razvrščanje v
urnik. Prav tako omogoča upravljanje z viri ter upravljanje z denarjem. Aplikacija je zelo
podobna Microsoftovemu Project-u 2010, saj imata skoraj identične funkcionalnosti in izgled.
Na vsako nalogo je mogoče dodati več virov.
Upravljanja z dokumenti ter komentiranja nalog ne omogoča. Prav tako nima možnosti
sledenja napakam.
Ocena težavnosti je 2, saj je podoba Microsoft Project-u 2010, vendar ima manj
funkcionalnosti.
3.8 iScope
iScope [12] je mobilna aplikacija za upravljanje projektov, ki omogoča sledenje nalog, vendar
ne omogoča razporejanja nalog v urnik ali sledenja porabljenemu času. Prav tako ne omogoča
več virov na eni nalogi, sledenja napakam, komentiranja nalog, upravljanja z denarjem in
dokumenti ter upravljanja z viri.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
15
Je zelo okrnjena verzija aplikacije za pomoč pri vodenju projektov. Za naš primer je bila
skoraj neuporabna, tako da za težavnost prejme oceno 1, saj se pri njej nismo skoraj ničesar
naučili.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
16
4 PRIMERJAVA APLIKACIJ ZA VODENJE PROJEKTOV
V prejšnjem poglavju smo opisali aplikacije, katere bomo sedaj primerjali med seboj.
Primerjava je bila izvedena na podlagi parametrov, katere smo vključili v opise aplikacij.
Pri primerjavi smo ugotovili, da so najboljše spletne aplikacije, saj ponujajo vse
funkcionalnosti, ki so pri mobilnih in namiznih aplikacijah, ter možnost deljenja datotek in
komentiranja nalog. Prav tako smo opazili, da se večina aplikacij zateka bolj k
tradicionalnemu pristopu, saj jih večina nudi možnost razporejanja nalog na urnik (ali Gantt
chart).
Pri določenih aplikacijah smo pogrešali možnost upravljanja z viri, ki je zelo pomembno.
Upravljamo lahko tudi z denarjem v primeru, da imamo možnost upravljanja z viri.
Prav tako imajo spletne aplikacije po večini možnost uporabe mobilne aplikacije, ki omogoča
določene funkcionalnosti same spletne aplikacije. Te aplikacije lahko temeljijo na spletni
aplikaciji ali pa so prirejene za vsako mobilno platformo posebej. Iz tega sklepamo, da so
mobilne aplikacije pri vodenju projektov zelo pomembne.
V spodnji tabeli so prikazani rezultati.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
17
Tabela 1: Primerjava aplikacij
Ime
aplikacije JIRA
Microsoft
Project
ZOHO
Project Collabtive
Easy
Projects
Concept
Draw
Project
planning pro iScope
Vrsta
aplikacije Spletna Namizna Spletna Spletna Spletna Spletna Mobilna Mobilna
Več virov na
nalogi NE DA DA DA DA DA DA NE
Možnost
sledenja
nalogam
DA DA DA DA DA DA DA DA
Možnost
razporejanja
nalog v urnik
NE DA DA DA DA DA DA NE
Upravljanje z
viri NE DA DA DA DA DA DA NE
Upravljanje z
dokumenti
DA
(razširitev) DA DA
DA
(razširitev) DA DA NE
DA
(priloge,
beležke)
Upravljanje z
denarjem NE DA NE
DA
(razširitev) DA DA DA NE
Sledenje
porabljenemu
času
DA DA DA DA DA DA DA NE
Sledenje
napakam DA NE DA DA DA DA NE NE
Zahtevnost
razumevanja 2 3 1 2 / 3 2 2
Mobilna
aplikacija DA NE DA DA DA NE / /
Komentiranje
nalog DA NE DA DA DA DA NE NE
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
18
5 IMPLEMENTACIJA MOBILNE APLIKACIJE
Cilj diplomske naloge je bil tudi implementacija lastne mobilne aplikacije. Tega smo se
najprej lotili z analizo, v kateri smo določili funkcionalnosti in želje uporabnikov. Ko smo z
njo zaključili, smo začeli z načrtovanjem in kasneje z implementacijo.
5.1 Analiza
Najprej smo naredili analizo že obstoječih mobilnih aplikacij na trgu ter s tem določili izgled
in funkcionalnosti naše aplikacije. Tako smo se odločili, da mora aplikacija imeti prijavo, saj
lahko le tako avtenticiramo uporabnika.
Prav tako mora biti aplikacija čim bolj enostavna, saj ne želimo zapravljati prostora za
nepotrebne reči.
Ker je aplikacija namenjena projektnemu vodenju, mora prikazovati seznam projektov
prijavljenega uporabnika ter nalog, na katere je uporabnik dodeljen. Prav tako bomo
omogočili dodajanje nove naloge za vodje projektov.
Naročniki so želeli tudi urejanje stanja naloge, da lahko prikažejo in vidijo napredek. Izrazili
so tudi željo, da lahko naloge označijo kot pomembne oz. priljubljene, ter jih tako lažje vidijo.
Tako bodo naloge, ki jih izvajajo ali želijo spremljati, uvrstili na vrh seznama.
Aplikacija mora prav tako omogočati pregleda nalog brez internetne povezave.
Naša aplikacija temelji na agilnem pristopu, saj se lahko naloge med izvajanjem projekta
dodajajo ali spreminjajo. Agilni pristop je možen tudi zato, ker na projektih sodeluje okoli 5
do nekje 10 ljudi.
S pomočjo analize smo naredili diagram primerov uporabi, ki je prikazan na spodnji sliki.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
19
Slika 3:Diagram primerov uporabe naše mobilne aplikacije
5.2 Uporabljene tehnologije in storitve
Pri razvoju naše aplikacije smo uporabili spodaj naštete tehnologije:
Ogrodje Spring (Spring framework) - ogrodje, ki omogoča lažje delo z REST
storitvami v Javi. Ogrodje vsebuje velik nabor funkcij, ki olajšajo delo razvijalcem. Te
funkcije so različni mapperji, funkcije za pridobivanje podatkov preko HTTPja,
avtomatska pretvorba objektov v JSON format, itd. [13]
Android - operacijski sistem za mobilne naprave. Uporabljali smo Ice Cream
Sendwich (4.0.0) saj ima več funkcij kot Gingerbread (2.3.3) in je nameščen (ICS ali
novejše verzije) na večini mobilnih naprav. [14]
Google Cloud Messaging for Android (GCM) - ogrodje, ki omogoča pošiljanje
potisnih sporočil na vse naprave. Uporabljamo ga pri spremembah na projektih ter
tako omogočamo uporabniku, da ima vedno na razpolago aktualne spremembe. [15]
Glassfish - strežnik za namestitev naše aplikacije. [16]
MySQL - SQL baza za hranjenje podatkov. [17]
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
20
5.3 Načrtovanje
Pri načrtovanju smo najprej definirali, kakšne podatke bomo potrebovali ter nato definirali
entitetne razrede. Ko smo končali, smo začeli načrtovati spletno storitev. Za spletno storitev
smo izbrali strežnik Glassfish ter ogrodje Spring, saj nudi veliko funkcij in dobro podprto.
Pri načrtovanju mobilne aplikacije smo se najprej posvetili grafičnemu vmesniku (GUI).
Sprva smo si zastavili vprašanje, kaj bi si mi sami želeli od aplikacije. Odgovor je bil zelo
enostaven, saj si vsakdo želi preprosto aplikacijo, ki jo zna uporabljati, prav tako pa želi
»čist« uporabniški vmesnik ter tekoče delovanje. Tako smo naredili prijavno okno, kjer
uporabnik vpiše potrebne podatke in se nato izvede prijavni postopek. Če je uporabnik vnesel
podatke napačno, se izpiše opozorilo, drugače se pričnejo nalagati podatki. Če uporabnik
nima vključenega interneta, se izpiše opozorilo, s pomočjo katerega lahko uporabnik vklopi
internet ali nadaljuje v načinu brez interneta. Način brez interneta omogoča pregled projektov
ter nalog, ne omogoča pa spreminjanje stanja nalog ter dodajanja nalog in pridobivanja
aktualnih podatkov preko potisnih sporočil.
Slika 4: Prijavna stran mobilne aplikacije
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
21
Sprva smo želeli po prijavi narediti seznam projektov, na katerih uporabnik sodeluje, vendar
smo kasneje videli, da je bolje, če naredimo domačo stran, kjer so prikazane samo njegove
naloge. V meniju zavihkov (Tab) ima uporabnik možnost izbrati med zavihkom »Moje
naloge« in »Projekti«. Zavihek »Moje naloge« uporabniku prikaže seznam nalog, za katere je
on zadolžen, medtem ko zavihek »Projekti« prikaže projekte, na katerih sodeluje.
Slika 5: Seznam projektov
Če izbere projekt, se mu prikažejo naloge, ki so na tem projektu. Pri vsakem projektu
prikažemo vse naloge, saj se je naročnikom zdelo pomembno, da uporabnik vidi tudi naloge
drugih uporabnikov ter zaključene naloge, kar prepreči nepotrebno čakanje in podvajanje
nalog. Prav tako smo pri obliki uporabili Android-ove dobre prakse, kot so ikona za vrnitev na
seznam ter uporaba novega »vrnitvenega snopa« (back stack-a) pri preklopu med zavihkoma.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
22
Na spodnji sliki lahko vidite seznam nalog, kjer ikona pove stanje naloge, drugi podatki pa so
ime naloge, čas do roka za zaključek naloge ter ime uporabnika, ki je za posamezno nalogo
zadolžen. Na desni strani so zvezdice, kjer oranžne predstavljajo naloge, ki jih je uporabnik
označil kot priljubljene. Naloge so razvrščene na tri sklope, kjer so najvišje uvrščene nove
naloge (to so naloge, ki so bile dodane ali urejen), sledijo jim priljubljene naloge ter ostale
naloge. Znotraj vsakega sklopa so posamezne naloge razvrščene na podlagi stanja naloge, kjer
so najvišje uvrščene naloge v čakanju, sledijo jim naloge v delu in nato še končane naloge.
Slika 6: Seznam nalog dodeljenih trenutnemu uporabniku
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
23
Ko uporabnik izbere nalogo iz seznama, se mu izpišejo dodatni podatki o nalogi. Preko
mobilne aplikacije lahko uporabnik nalogi spremeni stanje ter nalogo označi kot priljubljeno.
Če je bila naloga prej označena kot »nova«, se pri pregledu ta oznaka odstrani.
Spodnja slika prikazuje pregled naloge, kjer lahko vidimo podatke o posamezni nalogi ter
spremenimo stanje le-te. Prav tako ima vsaka naloga na vrhu ime projekta, kar omogoča
uporabniku lažje sledenje. Sprva smo želeli za sledenje uporabiti »pot z drobtinicami«, vendar
se je izkazalo, da to ni najbolj praktično na mobilnih napravah, saj imajo premajhne zaslone.
Slika 7: Pregled naloge
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
24
Pri pregledu nalog na projektu se uporabniku prikaže možnost za dodajanje naloge, vendar
samo v primeru, da je uporabnik vodja tega projekta. Ko želimo dodati nalogo, se naložijo
podatki, kot so sodelavci na projektu ter možna stanja nalog in se preveri, ali je uporabnik
vodja projekta.
Slika 8: Dodajanje naloge
Dodajanje nove naloge ter spreminjanje stanja na nalogi lahko izvajamo samo v primeru, da
mamo povezavo z internetom.
Pri hranjenju podatkov smo se odločili, da bomo uporabili notranji pomnilnik, saj so podatki v
naši aplikaciji zelo majhni.
Pri varnostni smo uporabili RSA šifriranje gesla in e-pošte med prenašanjem, medtem ko smo
za potrebe shranjevanja nad geslom uporabili zgoščevalni algoritem BCrypt.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
25
Za potisna sporočila smo uporabili GCM. Uporabnik dobi sporočila, ko mu je dodeljena nova
naloga ali projekt, ter ko se uredi katerakoli naloge na projektu. Da uporabnik dobi sporočilo
ob spremembi stanja vseh nalog na projektu, smo se odločili zato, da je vsak uporabnik
seznanjen z napredkom projekta. Tukaj smo predvsem ciljali na naloge, ki se morajo med
seboj čakati, kot je na primer naloga »Oblikuj plakat za koncert« in naloga »Natisni plakate za
koncert«. Primer je podan čim bolj preprosto, v uporabi bodo takšne naloge lahko zelo
komplicirane.
Slika 9: Potisno sporočilo
Za poglede smo uporabili fragmente, saj so bolj odzivni ter so pripravljeni za nadaljnji razvoj
aplikacije, kjer bomo podprli tudi tablične računalnike.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
26
5.4 Potek implementacije mobilne aplikacije
Začeli smo s vzpostavitvijo strežnika ter ogrodja. Pridobili smo dostopne podatke do strežnika
ter vzpostavili razvijalno okolje (IDE). Za naš IDE smo izbrali Eclipse, saj smo ga uporabljali
tekom študija ter ga dovolj dobro poznamo. Ko smo namestili IDE, smo morali namestiti še
razširitev (plugin) za Spring. Najprej smo naredili načrt baze, ki je prikazan na spodnjem E-R
diagramu.
Načrt baze je bil narejen za spletno aplikacijo, kasneje pa se je priključila še mobilna
aplikacija. Mobilna aplikacija uporablja samo del baze, in sicer tabele:
Member – Osebni podatki uporabnika.
Memeber_roles – Vmesna tabela med member in member_role.
Member_role – Vloge uporabnikov v organizaciji (član upravnega odbora, aktivist,
član nadzornega sveta, itd.).
Membership – Članstvo uporabnika v določenem študentskem klubu za določeno
leto. Entiteta vsebuje tudi podatke o šoli ter programu, ki ga uporabnik obiskuje.
Organization – Podatki o študentskem klubu.
Participants – Vsi uporabniki, ki sodelujejo na določenem projektu.
Participant_role – Vloge uporabnikov na projektu (vodja projekta, oblikovalec,
gostinec, varnostnik, itd.).
Project – Podatki o projektu
Project_state – Možna stanja projektov (predlagan, v izvajanju, zaključen, itd.).
Task – Podatki o nalogah.
Task_state – Možna stanja nalog (v čakanju, v delu in zaključena)
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
27
Slika 10: Model podatkovne baze
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
28
Ko smo dokončali bazo, smo jo namestili na strežnik ter začeli z razvojem aplikacije. Najprej
smo morali narediti prijavo, saj brez prijave ni mogoče dostopati do podatkov. Geslo in e-
pošta sta šifrirana z RSA algoritmom zaradi varnosti med pošiljanjem, medtem ko je geslo
zgoščeno z zgoščevalno funkcijo BCrypt (za potrebe shranjevanja v podatkovni bazi). Javni
ključ se nahaja v sami aplikaciji v mapi »assets«, medtem ko privatni ključ hranimo na
strežniku. Spodnja izseka kode prikazujeta, kako se izvaja kodiranje.
//Encrypt password
AssetManager am = getAssets(); String encPw = Encryption.rsaEncrypt(password, am);
Programska koda 1: Klic metode za kodiranje
Zgornji izsek kode je klic iz razreda LoginActivity, kjer pridobimo razred AssetManager, ki je
potreben za dostop do datotek. V spodnjem izseku se izvaja dejansko šifriranje, kjer najprej iz
datoteke preberemo javni ključ, nato kreiramo instanco Chiper razreda, s pomočjo katerega
kasneje šifriramo geslo. Zaradi znakov, ki se pojavijo pri normalnem RSA šifriranju, moramo
podatke šifrirati še z Base64, preden jih pošljemo na strežnik.
ObjectInputStream oin = new ObjectInputStream (new BufferedInputStream
(am.open("public.key"))); BigInteger m = (BigInteger) oin.readObject();
BigInteger e = (BigInteger) oin.readObject();
RSAPublicKeySpec keySpec = new RSAPublicKeySpec(m, e); KeyFactory keyFactory = KeyFactory.getInstance("RSA"); pubKey = keyFactory.generatePublic(keySpec); //Naložimo javni ključ iz datoteke oin.close();
//Kreiramo instanco Chiper razreda s potrebnimi argumenti Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
//Šifriranje gesla
byte[] cipherData = cipher.doFinal(password.getBytes()); //Šifriranje gesla za potrebe pošiljanja byte[] codedBytes = Base64.encodeBase64(cipherData);
return new String(codedBytes);
Programska koda 2: Branje javnega ključa ter šifriranje
Enako naredimo z elektronskim naslovom, na kar pošljemo podatke na strežnik, kjer podatke
dešifriramo in primerjamo s shranjenimi. Če se podatki ujemajo, nam strežnik vrne osnovne
podatke o uporabniku, drugače počistimo vnosna polja in izpišemo opozorilo.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
29
Po prijavi smo se lotili implementacije uporabniškega vmesnika, kjer smo najprej razvili
meni, kjer lahko uporabnik preklopi med svojimi nalogami ter projekti. Meni je fragment, ki
je na samem vrhu aplikacije. Za fragment smo se odločili zaradi lažje kontrole akcij v sami
kodi, prav tako pa omogoča preklop med osrednjimi fragmenti v primeru, da se kateri izmed
njih preneha odzivati.
Osrednji fragmenti so vsi drugi fragmenti v naši aplikaciji. Preklapljanje med njimi smo
implementirali z v naprej pripravljenima animacijama pojavljanja (fade in) in pojemanja (fade
out), kar je poudarilo tekoče delovanje aplikacije.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
30
Pri določenih fragmentih omogočamo spreminjanje podatkov s pomočjo kretnje levo ali
desno. S pomočjo teh kretenj lahko preklapljamo med projekti in nalogami.
Sprememba je odvisna od smeri potega, kjer se prikaže naslednji ali prejšnji projekta oz.
naloga. Preklapljanje s pomočjo kretnje levo ali desno je krožno, saj nismo želeli omejevati
uporabnika. Kretnje razpoznamo s pomočjo vmesnika OnTouchListener in razreda
SimpleOnGestureListener. Pri slednjem uporabimo metodo onFling(), preko katere dobimo
podatke o premiku prsta. Ko imamo podatke, izračunamo, ali se je uporabnik premaknil levo
ali desno po osi X (os Y bi uporabili pri kretnjah gor ali dol). Primer zaznave kretenj je
prikazan v spodjem izseku kode, katero smo našli na forumu in priredili za potrebe naše
aplikacije.
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
//V primeru hitrih zaporednih kretenj se lahko zgodi, da sta e1 ali e2 enaka null, v tem
primeru ne naredimo ničesar
if(e1==null||e2==null) return false;
//Izračunamo razliko med koordinatami X in Y
float diffY = e2.getY() - e1.getY(); float diffX = e2.getX() - e1.getX();
//Preverimo ali je bila daljša kretnja po X osi, kar pomeni da je bila kretnja levo ali desno
if (Math.abs(diffX) > Math.abs(diffY)) {
//Na koncu še preverimo smer, hitrost in dolžino kretnje ter kličemo ustrezno metodo if (Math.abs(diffX) > 50 && Math.abs(velocityX) > 50) {
if (diffX > 0) { onSwipeRight(); } else {
onSwipeLeft(); }
}
return true; }else
return false;
}
Programska koda 3: Prepoznava kretenj
Po zaznavi kretnje vzamemo prejšnji ali naslednji element v polju ter ga prikažemo.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
31
Nato smo se lotili implementacije pregleda uporabnikovih lastnih nalog. Najprej smo podatke
pridobili s pomočjo REST klica na strežnik ter jih nato uredili in prikazali v aplikaciji. Na
enak način smo implementirali tudi pridobivanje projektov. Po pridobitvi vseh podatkov le te
shranimo v notranjo shrambo (internal storage).
Ko smo imeli podatke shranjene, smo implementirali prikaz. Za naloge ter projekte smo
uporabili ListView, pri katerem smo sami implementirali postavitev vrstic. Tako imajo naloge
na začetku ikono stanja, kateri sledi opis z možnostjo prikaza slike »nova naloga«, na koncu
pa je zvezdica, preko katere lahko uporabnik označi posamezno nalogo kot priljubljeno. Pri
projektih imamo samo ikono projekta ter ime projekta, saj so vsi drugi podatki dostopni preko
spletne aplikacije in niso potrebni na mobilni aplikaciji.
Po seznamu smo implementirali prikaz posamezne naloge, kjer prikazujemo vse potrebne
podatke o nalogi. Prikaz naloge je implementiran s kombinacijo ScrollView-a,
RelativeLayout-a ter LinearLayout-a. Na spodnji sliki lahko vidimo, kako so posamezni
gradniki gnezdeni.
Slika 11: Gnezdenje elementov pri pregledu naloge
Takšno gnezdenje smo potrebovali zato, da lahko z drsenjem navzdol vidimo tudi zelo dolge
opise nalog.
Pri prikazu naloge lahko uporabnik spremeni stanje ter oznako priljubljena.
Nadaljevali smo z implementacijo dodajanja nalog na projektu. Uporabnik lahko dodajanje
naloge izbere preko menija, če se nahaja na projektu, ali pa z daljšim pritiskom na vrstico pri
seznamu projektov, pri katerem se pokaže možnost dodajanja naloge.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
32
Pri dodajanju nove naloge najprej preverimo, ali imamo dostop do interneta, saj brez interneta
dodajanje nalog ni omogočeno. Nato preverimo, ali je uporabnik vodja projekta in prikažemo
vnosna polja. Če uporabnik ni vodja projekta, se prikaže pojavno okno z obvestilom, da nima
pravice dodati naloge, ter se vrne na seznam projektov ali na sam projekt (odvisno od prej
izbrane možnosti za dodajanje nove naloge).
Izbiranje datuma za zaključek naloge smo naredili po vzoru Googlovih koledarjev (Google
Calendar), kjer imajo preprosto tipko, ki prikaže dialog za izbiro datuma. Ko uporabnik datum
izbere, se ta prikaže kot besedilo na sami tipki. Prav tako je narejeno izbiranje časa, kjer je
začetni čas zmeraj 08:00.
Če dodajanja naloge ne zaključimo s pritiskom na gumb »Dodaj nalogo«, se podatki ohranijo
v vnosnih poljih, dokler uporabnik ne zapre aplikacije.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
33
Na koncu smo implementirali še GCM za sprejemanje potisnih sporočil ter prikazovanje
obvestil le teh. Aplikacija se ob prijavi uporabnika registrira na GCM ter na naš strežnik.
Strežnik hrani unikaten identifikacijski ključ (token) vsake naprave, ki se poveže z
uporabnikom. Preden se pošlje sporočilo, se določijo uporabniki, ki morajo sporočilo prejeti.
Nato se preko našega strežnika kliče GCM strežnik, kateremu posredujemo identifikatorje
naprav, na katere želimo dostaviti določeno sporočilo. Skupaj z identifikatorji pošljemo na
GCM strežnik tudi sporočilo in API ključ, katerega je potrebno predhodno pridobiti.
Spodnja slika prikazuje komunikacijo med aplikacijo, GCM-jem ter našim strežnikom s
pomočjo diagrama zaporedja.
Slika 12: Prikaz delovanja potisnih sporočil s pomočjo diagrama zaporedja [18]
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
34
Na sliki 12 sta prikazana registracija (register) ter pošiljanje sporočila. Pri registraciji
pošljemo zahtevo na GCM strežnik, kateri vrne unikaten identifikacijski ključ (token), ki ga
nato posredujemo našemu strežniku (na sliki poimenovan BusinessServer). Tam ključ
dodelimo uporabniku in ga shranimo.
Pri pošiljanju sporočila je potrebno najprej določiti uporabnike. Uporabnike določamo glede
na sodelovanje pri projektu, saj ne želimo, da bi vsi uporabniki sistema prejemali potisna
sporočila vseh projektov. Ko imamo seznam uporabnikov, pridobimo ključe naprav, ki tem
uporabnikom pripadajo. S temi podatki pošljemo zahtevek na GCM strežnik, ki nato razpošlje
sporočilo vsem napravam.
V primeru posodobitve ključa (case1) nam GCM vrne star in nov ključ, ki ga nato na našem
strežniku zamenjamo in shranimo.
V primeru, ko naprava ni registrirana (case2), nam GCM vrne stanje »NotRegistered«, kar
nam pove, da naprava ni več registrirana. To se lahko zgodi, ko naš strežnik ni na voljo, saj se
naprava lahko odjavi na GCMju, ne more pa se odjaviti na našem strežniku. Pri tem stanju
napravo s tem ključem odstranimo iz seznama.
Podatki se osvežujejo na podlagi potisnih sporočil ali aktivnostih uporabnika, prav tako pa je
v meniju dodana možnost ročnega osveževanja podatkov. Pridobivanje podatkov se izvaja v
ozadju z androidovimi servisi.
5.5 Izboljšave
Aplikacije sedaj pokriva osnovne funkcionalnosti, v prihodnje pa bomo dodali še možnost
vnosa ur dela na posameznih nalogah ter omogočili pregled aktivnosti na projektih. Kot
aktivnosti štejemo vse aktivnosti od dodane naloge do oddaje poročil in nalaganja prilog.
Kasneje bomo dodati še možnost pregledovanja prilog (podobno kot pri Dropbox-u) ter
možnost dodajanja slik, ki se bodo na naloge prenesle kot priloge.
Prav tako bomo dodali še podporo za tablične računalnike.
Če bodo uporabniki zadovoljni bomo razvili tudi aplikacijo za iOS in Windows Phone.
Želje za izboljšave bodo podali tudi uporabniki, ko bo aplikacija na voljo v Google Play.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
35
6 SKLEP
V diplomskem delu smo spoznali, kaj je vodenje projektov ter kako poteka. Predstavili smo
tudi, kakšen je pomen uspešnega vodenja projektov ter razmerja med uspešno in neuspešno
zaključenimi projekti. Prav tako smo predstavili pomembnost upravljanja tveganj ter
komunikacije.
Spoznali smo različne metodologij, ki smo jih med seboj tudi primerjali. Kot smo videli, je
zelo pomembno, da se projekt pravilno upravlja in spremlja, saj se lahko le tako uspešno
zaključi.
Opisali smo različne aplikacije za pomoč pri spremljanju ter upravljanju projektov. Te
aplikacije smo med seboj tudi primerjali in ugotovili, da so si zelo podobne. Pomembno vlogo
pri tem imajo tudi mobilne aplikacije, saj je spremljanje projektov z njimi veliko lažje. Tako
imamo vedno možnost dostopati do aktualnih podatkov ter spremljati razvoj projekta.
Pri mobilnih aplikacijah je zelo pomembno, da se prikažejo zgolj pomembni podatki, ter da so
ti podatki podani v čim bolj »čistem« uporabniškem vmesniku. Prav tako je zelo pomembno,
da aplikacije deluje tekoče.
Trenutno smo v času pametnih telefonov in tablic, z novimi tehnologijami pa bomo dobili
nove načine za spremljanje in upravljanje projektov.
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
36
7 VIRI
[1] R. K. Wysocki, Effective project management: Traditional, Agile, Extreme, Indianapolis:
Wiley Publishing, 2009.
[2] Institute, Project Management, PMBOK Guide, 2000 edition ured., Newtown Square:
Project Management Institute, lnc., 2001.
[3] K. T. Yeo, „Critical failure factors in information system projects,“ zv. 20, št. 2002, pp.
241-246, 2002.
[4] J. D. Fernandez in D. J. Fernandez, „Agile project management - agilism versus
traditional approaches,“ The Journal of Computer Information Systems, pp. 10-17,
2008/2009.
[5] „JIRA,“ Atlassian, [Elektronski]. Available: https://www.atlassian.com/software/jira.
[Poskus dostopa 05 11 2013].
[6] „Microsoft Project 2010,“ Microsoft, [Elektronski]. Available:
http://www.microsoft.com/project/en/au/default.aspx. [Poskus dostopa 05 11 2013].
[7] „ZOHO Projects,“ ZOHO Corporation, [Elektronski]. Available:
https://www.zoho.com/projects/. [Poskus dostopa 05 11 2013].
[8] „Collabtive,“ [Elektronski]. Available: http://collabtive.o-dyn.de/. [Poskus dostopa 05 11
2013].
[9] „Easy Projects,“ Logic Software, [Elektronski]. Available:
http://www.easyprojects.net/home/. [Poskus dostopa 05 11 2013].
[10] „ConceptDraw Project,“ CS Odessa corp., [Elektronski]. Available:
http://www.conceptdraw.com/products/project-management-software/. [Poskus dostopa
05 11 2013].
[11] „Project Planning Pro,“ i2e Consulting LLC, [Elektronski]. Available:
http://www.planningproapp.com/. [Poskus dostopa 05 11 2013].
Informacijska podpora za spremljanje in upravljanje projektov na mobilnih napravah
37
[12] „iScope,“ Maihue, [Elektronski]. Available: http://www.iscopeapp.com/. [Poskus
dostopa 05 11 2013].
[13] „Spring Framework,“ Pivotal, [Elektronski]. Available: http://projects.spring.io/spring-
framework/. [Poskus dostopa 05 11 2013].
[14] „Android,“ [Elektronski]. Available: http://www.android.com/. [Poskus dostopa 05 11
2013].
[15] „Google Cloud Messaging,“ [Elektronski]. Available:
https://developer.android.com/google/gcm/index.html. [Poskus dostopa 05 11 2013].
[16] „GlassFish Server,“ Oracle Corporation, [Elektronski]. Available:
https://glassfish.java.net/. [Poskus dostopa 05 11 2013].
[17] „MySQL,“ Oracle Corporation, [Elektronski]. Available: https://www.mysql.com/.
[Poskus dostopa 05 11 2013].
[18] J. V. D. Linden, „Octo Talks,“ 13 9 2012. [Elektronski]. Available:
http://blog.octo.com/push-du-nouveau-avec-gcm-et-notifications-stylees-sur-android-4-
1/. [Poskus dostopa 14 3 2014].
[19] University of Portsmouth; Central computer and telecommunications agency; Key
computer software (Europe) limited, Prince2 - Electronic on-line manual.