Forprosjektrapport KPI dashboard for produktavdelingen i esmart Systems BO19-G02 Kanyar Mahmoud, Odd Martin Hansen og Stian Gustavsson 18. januar 2019
Prosjektgruppen Stian Gustavsson, 24 år, fra Moss Begynte studiene med et år på elektro, etterfulgt av et år med elenergi. Endte videregående studier med allmenn påbygg, ettersom han ønsket videre utdanning. Det ble deretter et år med førstegangstjeneste i luftforsvaret på Ørland Hovedflystasjon. Etter endt førstegangstjeneste ble det et år med jobbing som personlig assistent, før han begynte dataingeniørstudiet i Halden. Gikk tress-veien, slik at det først ble en sommer i Fredrikstad for å oppnå de nødvendige kunnskaper i matematikk og fysikk. På fritiden er Stian interessert i det meste innen teknologi, han liker å holde seg oppdatert på flere forskjellige felt innen teknologien. Han er også glad i styrketrening og i å spille biljard. Kanyar Mahmoud, 21 år, fra Sarpsborg Kanyar er en hyggelig person som liker realfag som matte, fysikk og kjemi. Er også interessert i utfordringer og mener at dette er en veldig god måte å utvikle seg på både som person men også med tanke på tekniske ferdigheter. Valgte derfor å gå rett fra studiespesialiserende på st.olav VGS over til Dataingeniør på HIØ. Dette er et vanskelig og intenst studie som lærer deg å jobbe selvstendig og finne ut av løsninger på egenhånd uten mye hjelp. Ved siden av studiet er han interessert i fotball, spill og ny teknologi. Følger stadig med på ny teknologi som utvikler seg innenfor pc hardware men også andre ting. Ellers henger han med venner på fritid og spiller biljard eller ser på fotball. Odd Martin Hansen, 26 år, fra Bergen Studieløpet startet på Laksevåg VGS i Bergen med to-årig elektriker utdanning. Videre ble læretiden gjennomført i Otera Delta AS. Etter læretiden gjennomførte han påbygg til generell studiekompetanse ved Laksevåg VGS for å kunne gå videre til høyere utdanning. Valget falt på dataingeniør studiumet, som kombinerte interessene for data og teknologi med kjærligheten for realfag, da spesielt matematikk. Han endte opp i Halden som følge av anbefalinger av dataingeniør løpet til HiØ fra en god kamerat fra ungdomstiden. På fritiden er Odd klubb- og styreleder i Halden Frisbeeklubb, en klubb som driver med disksport, i hovedsak frisbeegolf. I tillegg til dette er han glad i spille dataspill og gå tur i skog og mark.
Oppdragsgiver esmart systems er en SaaS (Software as a Service) bedrift. Dette innebærer at de utvikler programvare som leies ut til kunder. De har over 20 år med internasjonal erfaring og er godt etablert på markedet. De har rundt 80 ansatte i kontorer som befinner seg i Norge, Danmark, Storbritannia og USA. esmart leverer produkter til kraftsektoren, helsesektoren og by etater. Deres kjerneverdier er: Integrity: We act with honesty and honor. Innovation : We pursue new ideas that have the potential to change the world. Excellence : We take pride in our work, we aspire to constantly renew ourselves, and to exceed expectations. Teamwork : We *are* committed to developing each other. Oppdraget 4.1 Formål Prosjektet har som formål å utvikle et dashboard (heretter panel) som viser indikatorer for hvordan esmarts programvare presterer. Indikatorene er basert på innhentet data fra produktene deres og kan brukes til å evaluere hvordan programvaren deres brukes, samt hvordan programvaren kan utbedres og videreutvikles. Eksempler på data som kan visualiseres: Innlogginger pr. dag/uke/måned Moduler som blir brukt Hvor i landet det flyves drone Hvor mange bilder som er analysert av systemet Hovedmål 1: Kartlegging og undersøkelse av KPI panel og React Delmål 1.1: Undersøke fordeler og ulemper med React og Redux Delmål 1.2: Undersøke retningslinjer for KPI panel Delmål 1.3: Kartlegge krav og begrensninger i henhold til GDPR Delmål 1.4: Finne designmetoder og prinsipper for KPI panel Delmål 1.5: Lage utkast til brukergrensesnitt Hovedmål 2: Bygge applikasjon Delmål 2.1: Legge grunnsteinene Delmål 2.2: Implementere bruk av API fra esmart Delmål 2.3: Modularisere og generalisere komponenter
4.2 Leveranser Prosjektets leveranser er programvare samt medfølgende dokumentasjon. Produktet som leveres er et KPI panel som visualiserer statistikk over bruken av softwaren til esmart. Det er ønskelig at produktet skal være modulært og generisk, med mulighet for videreutvikling. 4.3 Metode Innledningsvis undersøkes dagens bruk av KPI panel i markedet. Neste steg er utvikling av KPI panelet med React og Redux. Testdata brukes i startfasen til å teste oppbygging, mot slutten implementeres bruk av faktisk data fra esmart s API. Det arbeides kontinuerlig med hoveddokumentet under hele prosjektperioden. Prosjektplan Aktivitet 1: Undersøke KPI panel Start: 11.01.19 Slutt: 12.02.19 Beskrivelse: Gjøre forskning for å finne lignende produkter som har blitt laget. undersøke retningslinjer, designmetoder, designprinsipper, brukergrensesnitt, spesielt med tanke på hvordan dette er implementert i fungerende løsninger. Eventuelt kontakte noen som har et fungerende system og høre om de har funnet noen mulige forbedringer. Aktivitet 2: Lage utkast til oppsett Start: 18.01.19 Slutt: 01.02.19 Beskrivelse: Designe et antall utkast til design av panelet Aktivitet 3: Undersøke utviklingsverktøy Start: 15.01.19 Slutt: 01.02.19 Beskrivelse: Undersøke hvordan esmart skriver React kode, muligens også andre kodesnutter for å finne effektiv bruk av kode. Finne fordeler og ulemper med React og Redux, samt andre alternativer.
Aktivitet 4: Spørreundersøkelse for å finne relevant data Start: 17.01.19 Slutt: 25.01.19 Beskrivelse: Undersøke hvilke data de ansatte i esmart ønsker at skal vises. Vil bli utført ved hjelp av en enkel spørreundersøkelse av flere ansatte. Aktivitet 5: Bygge grunnsteinene i panelet Start: 01.02.19 Slutt: 15.02.19 Leveranse: Kode for grunnstein i appen Beskrivelse: Utvikle skjelettet til panelet, nødvendige komponenter samt et utgangspunkt for stilsett. Aktivitet 6: Bygge moduler Start: 12.02.19 Slutt: 01.05.19 Leveranse: Kode med API kall implementert Beskrivelse: Bygge ulike moduler til panelet, eksempelvis grafer, søylediagrammer, o.l Aktivitet 7: Implementere API kall Start: 05.03.19 Slutt: 20.03.19 Leveranse: Kode med API kall implementert Beskrivelse: Implementere henting av data fra API utlevert av esmart. Aktivitet 8: Konvertere rapport til LaTeX Start: 17.04.19 Slutt: 01.05.19 Beskrivelse: Konvertere rapporten som er skrevet i google docs til LaTeX. Aktivitet 9: Teste prototype Start: 22.01.19 Slutt: 01.05.19 Leveranse: Ferdig kode for prototype av app som er fungerende Beskrivelse: Kontinuerlig testing av prototype av appen for å finne eventuelle bugs og forbedring av produktet
Det som skal være med i prosjektet er grunnsteinene i panelet. Det skal kunne presenteres en liten mengde predefinert data. Dokumentasjon i forhold til dette skal være på plass. Det vi bør ha med er generalisering av koden, slik at esmart ved senere anledning kan legge til nye typer data i panelet. Det skal kunne velges hvordan dataene skal vises, for eksempel i søylediagram eller vise en økning/nedgang i prosent. Det eneste vi trenger fra esmart er tilgang til et API hvor vi kan trekke ut de nødvendige dataene. Prosjektet er avhengig av at de får dette på plass før vi kan teste applikasjonen skikkelig.
Gjennomføring 6.1 Gjennomføring og versjonskontroll Prosjektet deles inn i tre faser; research-, utvikling- og sluttstillingsfase. I researchfasen undersøkes bruk av KPI i markedet i dag, samt retningslinjer for oppbygging og bruk av slike paneler. Flere utkast til design av moduler og panelet utarbeides i fellesskap. Klargjøring av fordeler og ulemper med React og Redux utføres her, samt sammenligning med lignende rammeverk. Det skal gjennomføres en demo av programvaren til esmart som panelet skal utvikles i henhold til. Videre er det ønskelig å avholde en spørreundersøkelse hos esmart for å kartlegge hvilke indikatorer som er av interesse å visualisere. Utviklingsfasen innebærer utvikling av selve produktet. Som et utgangspunkt er det tre delfaser; Grunnarbeid Implementasjon av data Modularisering og generalisering Under sluttstillingsfasen ferdigstilles produktet, dokumentasjon og prosjekt-plakat. Gruppen samarbeider i alle fasene av prosjektet. Det kan være fornuftig at noen av gruppemedlemmene går videre til neste fase når en fase nærmer seg slutten. Dette for å opprettholde god flyt i arbeidet. Rollene i gruppen er ikke spikret da flere har lik rolle, men Odd Martin er valgt som prosjektleder grunnet erfaring. Ingen spesiell metodikk skal bli brukt til utvikling av kode. Underveis i prosjekttiden blir dokumentasjon utarbeidet ved hjelp av Google Docs. Mot slutten av prosjekttiden er målet å overføre rapporter til Latex. Gruppen har erfaring med Git som versjonskontroll og backup, følgelig blir dette brukt. 6.2 Sykdom og frafall Gruppen deler mye av den nødvendige kunnskapen for å gjennomføre prosjektet. Sykdom vil derfor ikke påvirke arbeidet i stor grad. Ved lengre frafall fra arbeidet fordeles arbeids ansvaret til frafalte på de andre gruppemedlemmene. Deloppgaver under prosjekttiden vil fordeles underveis i gjennomføringen, omorganisering av ansvar burde derfor være oppnåelig.
6.3 Veileder og arbeidsgiver Det er bestemt ukentlige behovsbaserte møter med veileder fra HiØ på fredager. Møtene skal ta for seg nåværende status på prosjektet og videre fremgang. Møte med arbeidsgiver avtales etter behov. Veileder tildelt av esmart er tilgjengelig for gruppen ved tekniske problemer og spørsmål underveis. Gruppen jobber med prosjektet på esmart sine lokaler, arbeidsgiver er derfor lett tilgjengelig. Kommunikasjon vil i hovedsak foregå over e-post, men kan foregå muntlig ved behov. Det er ønskelig å få konstruktive tilbakemeldinger på struktur i selve utviklingsprosjektet, uten at det blir for inngripende.