Snow patrol - En dansk app med polsk aftryk

Fra ProData Consults Nearshoring Center i Warszawa har to ProData konsulenter i samarbejde med LE34 udviklet en intelligent app, der kan live tracke snerydning for danske kommuner i vintersæsonen. I dette interview fortæller udviklerne, hvordan valget af database og programmeringssprog blev afgørende for at skabe en succesfuld app.  

Interview med ProData-konsulenterne Michal Stawarz og Przemysław Pańczyk, App-udviklere hos LE34.


iOS-udvikler Michal Stawarz og Android-udvikler Przemysław Pańczyk har i samarbejde med deres kunde LE34 udviklet en helt ny app kaldet Snow Patrol. Appen er målrettet danske kommuner og deres medarbejdere, som i forbindelse med rydning af sne i vintersæsonen kan anvende appen til at live tracke sneplovenes arbejde. Med den nye Snow Patrol app kan kommunerne få live data fra sneplovenes arbejde, hvilket gør den administrative koordinering mere overskuelig og effektiv. Samtidig får medarbejderne et hurtigt og enkelt overblik over deres rute og bliver samtidig i stand til at dokumentere deres arbejde overfor kommunen. Hele fundamentet for appen er derfor baseret på live data.

Fra ProData Consults Nearshoring Center i Warszawa blev de to polske udviklere i midten af 2016 gjort ansvarlig for at køre app-projektet i mål – fra ide til færdigt produkt. Og selvom der allerede ved indgangen til projektet forelå en eksisterende Snow Patrol app, blev det hurtigt klart for udviklerne, at det var mest hensigtsmæssigt at starte forfra.

"Den eksisterende app blev udviklet for få år tilbage, hvilket betød at teknologien allerede var forældet. For at forstå produktet bedre lavede vi en analyse af den eksisterende kode, der afslørede, at det ville være en stor fordel at omstrukturere koden. Men den proces ville være meget krævende og ville ikke garantere stabiliteten eller sikkerheden, vi gerne ville opnå,” forklarer Stawarz.

Men selvom det var mest hensigtsmæssigt for kvaliteten af projektet at starte forfra, var iOS- og Android-udvikleren også enige om, at det var det mest effektive valg. 

”At foretage de fornødne forbedringer på den eksisterende app ville tage meget mere tid, end hvis vi byggede en helt ny app fra bunden. Så vi anbefalede at starte det nye projekt helt fra scratch,” fortæller Przemysław Paczyk.

Og den anbefaling fik opbakning fra LE34, hvilket betød at app-udviklerne kunne sætte gang i projektet. Og fra det indledende arbejde startede til at LE34 kunne præsentere en færdig og fuldendt app, gik der mindre end 3,5 måned, hvilket var tids nok til, at appen kunne tages i brug i vintersæsonen 16/17.

I brugerens sted

Til at få et godt afsæt i projektet indledte app-udviklerne med et grundigt forarbejde. Netop den indledende fase er ifølge de to udviklere afgørende for et succesfuldt projekt. De brugte især tid og energi på at sætte sig i brugerens og forretningens sted, da det var afgørende at forstå kundens krav og forventninger till appen, men også de brugsscenarier som appen skulle anvendes i. 

”Vi blev nødt til at forstå, hvilke situationer appen blev anvendt i, og hvordan vi skulle tage højde for det i udviklingen,” fortæller Michal Stawarz.

Og netop i arbejdet med at forstå brugeren og forretning nåede de polske udviklere frem til to vigtige konklusioner, der var afgørende for de tekniske krav til appen. Mest betydningsfuldt var det, at sneplovende ofte befandt sig i omgivelser med lav eller ingen forbindelse til internettet. For at appen kunne blive en succes, var det derfor et ufravigeligt krav, at den skulle være i stand til at rapportere live data i situationer, hvor der var dårlig eller ingen forbindelse til nettet – ellers ville den være nyttesløs.

Herudover afslørede det indledende arbejde, at appen blev betjent mens medarbejderen befandt sig i sneploven. Det betød at den skulle være let tilgængelig, hurtig anvendelig og super simpel – det satte krav til UX og UI. Przemysław Pańczyk siger:

”Brugeren måtte ikke bruge for meget tid på at betjene appen. Den skulle være simpel og hurtig at betjene. Jo mindre tid brugeren har med appen, jo mere fokus kan han eller hun have på sit arbejde”.

Valget af database var nøglen

For at appen kunne fungere optimalt var det derfor afgørende, at den kunne lagre data på trods af en mangelfuld forbindelse til nettet. Udviklerne måtte derfor finde en løsning, der kunne tage højde for den dårlige forbindelse. Valget faldt på en Realm databaseløsning, der i modsætning til almindelige server-side databaser kan benyttes direkte indeni iOS eller Android appen. Det gav mulighed for at lagre data og forespørgsler(query) lokalt på enheden.

”Med Realm kunne vi løse den største udfordring ved appen og sikre data blev lagret sikkert og konsekvent, selv hvis der ikke var nogen forbindelse,” forklarer Przemysław og fortsætter:

”Det eneste du behøver er GPS’en. Appen vil løbende samle data herfra og lagre, indtil der kan synkroniseres. Realm databasen vil holde på data indtil internetforbindelsen tillader appen at synkronisere med backenden.”

Og selvom Realm ikke er det mest almindelige valg, da det ikke er baseret på SQL, gav det udviklerne en fælles platform. Realm er nemlig både kompatibel med iOS og Android. 

"Når du udvikler en app, vil du gerne bruge værktøjer, der er kompatibel med både iOS og Android. Det er Realm. Når vi implementerede noget på den ene platform, kunne vi hurtigt og enkelt overføre dette til den anden platform. Det gjorde udviklingen mere effektiv,” uddyber Michal Stawarz.

Baseret på state-of-the-art teknologi

Til at udvikle appen ønskede app-udviklerne at basere koden på nye state-of-the art programmeringssprog – både for at højne kvaliteten, men også for at fremtidssikre appen. Med det udgangspunkt valgte de Apples programmeringssprog Swift til iOS, og programmeringssproget Kotlin til Android.

For Przemysław, der er ansvarlig for Android-udviklingen, var Kotlin et åbenlyst valg. Og det er på trods af, at det stadig er et relativt nyt programmeringssprog:

”Kotlin er et state-of-the art programmeringssprog, der er baseret på og er 100% interoperable med Java. Hvis du udelukkende anvender Java ved programmering til Android, får du kun features, der er tilgængelig for Java 1.7. Kotlin derimod åbner for Java 1.8 og meget mere.”

Kotlin gav dermed flere muligheder for udviklerne. Det nye programmeringssprog er desuden udviklet med Android i tankerne og var derfor oplagt at tage udgangspunk i. Så selvom det var 1.0 versionen af sproget, der medførte at Android-udvikleren måtte lave nogle ”work arounds” i løbet af processen, opvejede fordelene ved det nye sprog bestemt begrænsningerne. 
Og ifølge iOS-udvikleren var det mange af de samme overvejelser, der dannede grundlaget for valget af Swift, der er Apples egenudviklede programmeringssprog:

”Med Swift får du adgang til nye features, der ikke har været tilgængelig i forgængeren – Objective-C. Sproget lægger vægt på ’strong typing’, der gør koden mere sikker og hjælper med at afsløre fejl i koden”.

Samtidig er Swift et sprog i rivende udvikling, hvilket giver god fremtidsperspektiver. Men netop den konstante udvikling i Swift var også en af udfordringerne. Det betød nemlig, at Stawarz i nogle tilfælde måtte tilbage og ændre i koden, fordi en ny opdatering havde ændret på noget af funktionaliteten. Og det skal man huske, når man vælger Swift:

"Ved store opdateringer skal du bruge noget tid på at omstrukturere koden, så den passer ind i den gældende syntaks. Intervallet mellem de store opdateringer bliver dog mindre, som sproget modnes.”

Og selvom begge sprog er relativt nye og erfaringen med disse er relativt spinkel, så har begge udviklere set så store fordele i sprogene, at de ville tage samme valg igen:

“Udviklingen af Snow Patrol viser, at nye teknologier ikke skal ses som en trussel for stabilitet eller kvaliteten af produktet. Den teknologi stack vi anvendte i dette projekt hjalp os til at levere en sikker og holdbar app, der skaber værdi for både LE34 og deres kunder,” afslutter Stawarz.


SWIFT

  • Swift er et programmeringssprog, der er udviklet af Apple til at lave apps til iOS, Apple TV og Apple Watch samt Mac-programmer
  • Swift blev introduceret i 2014
  • Seneste version lanceret er Swift 3.1.1

Kotlin

  • Kotlin 1.0 blev introduceret d. 15 februar 2016
  • Det er firmaet Jetbrains, der står bag Kotlin
  • Kotlin er 100% interoperable med Java
  • Seneste version lanceret af Kotlin er version 1.1.2

Konsulenternes perspektiv på samarbejde på tværs af grænser

Både Michal Stawarz og Przemysław Pańczyk har igennem et stykke tid arbejdet for og i samarbejde med LE34 som konsulenter gennem ProData Consult. I perioden har de høstet en del erfaring i, hvordan man som udvikler får et optimalt samarbejde i stand med en kunde/arbejdsgiver, der er lokaliseret i et andet land. Vi har samlet deres bedste råd her:

  1. Begyndelsen – Starten på et nyt projekt er afgørende for succes. Tag tiden til at tale formålet med projektet igennem og brainstorm sammen på ideer og mulige løsninger på projektets udfordringer.

  2. Forstå forretningen – Det er vigtigt for udviklerne at forstå forretningen, og måden den opererer på. En grundig introduktion til forretningen giver bedre mulighed for at give de rigtige input og tage de rigtige valg i udviklingen.  

  3. Kommunikation – Sørg for at der mulighed for at kommunikere på daglig basis. Anvend nogle af de systemer, der er tilgængelig såsom Slack eller Hangout. Inddel samtalerne efter emne, sådan hver part ved, hvilken information der er relevant for dem. 

  4. Dokumentation – Det er en god ide at nedskrive krav og forventninger til udviklerne, sådan de har noget konkret at forholde sig til. Yderligere er det fornuftigt at sørge for god dokumentation til dem, der senere skal overtage arbejdet.

  5. Lav ikke antagelser – Sørg for at forventningsafstemme og lav ikke antagelser på hinandens vegne.