Agil udvikling: Vi følger ikke Scrum til punkt og prikke

Der er næsten frit valg på alle hylder med programmeringssprog, og selvom udviklingsmetoden er Scrum, så bruger udviklerne hos Falcon Social kun de dele, de finder mest brugbare.

Agil udvikling handler om at komme hurtigt frem til noget kode, der kan prøves af og rettes til, ved at dele opgaverne op i små, overskuelige bidder. En af de mest strukturerede agile metoder hedder Scrum, og formelt er det dén, der bliver brugt hos Falcon Social, men metoden bliver ikke fulgt ord for ord.

»Vi er ikke strikse med at følge Scrum. Vi arbejder agilt efter en let udgave af Scrum. Der er mange elementer i Scrum, som vi ikke bruger, og så er der for eksempel standups, som vi bruger meget,« fortæller teknisk produktansvarlig Laszlo Fogas fra Falcon Social til Version2 i forbindelse med redaktionens sommertour. Falcon Social laver værktøjer til håndtering af sociale medier.

Selve den agile arbejdsproces bliver således nærmest selv behandlet agilt med hyppige justeringer.

»Det er ikke, fordi vi har en struktureret proces for at evaluere processerne, men hvis der er en metode, som vi kunne bruge, så vil vi afprøve den. Så jeg vil ikke sige, vi har fundet det perfekte endnu,« siger Laszlo Fogas.

Den agile fleksibilitet betyder også, at der er næsten frit spil, når der skal vælges programmeringssprog. Det grundlæggende princip er, at udviklerne kan vælge det sprog, der er bedst til at løse den konkrete opgave. Også selvom det i første omgang kan føre til lidt af et kludetæppe af kode i forskellige sprog.

»Vi bruger Java til vores kernefunktioner, men vi har også ting, der er lavet i Scala og noget i Python. Og vi har også lidt Node.js. Med Scala er det mest en test for at se, om det er noget, der er effektivt for os, og med Python var der for eksempel nogle interne API'er, hvor det gav mening for os at sætte kode sammen med Python,« forklarer Laszlo Fogas.

Han peger på, at Python er forholdsvis enkelt at gå til, selvom om man er vant til Java. Og det er hele tiden muligt, at eksisterende kode kan blive skrevet om i et nyt sprog i en senere iteration. Det kunne eksempelvis være tilfældet for Node.js-komponenterne, som kun bruges til to mindre tjenester.

Valget af nye sprog er i høj grad op til den enkelte udvikler, som ifølge Laszlo Fogas selv bruger tid på at sætte sig ind i og afprøve nye sprog.

Hele Falcon Socials platform er i øvrigt baseret på cloud computing, hvor Amazon Web Services leverer infrastrukturen til de virtuelle servere. Det gælder både driftsplatformen og platformen til test.

Det betyder blandt andet, at det ikke er nødvendigt at have serverkapacitet stående klar til test af kommende releases. Det bliver i stedet klaret med virtuelle maskiner, hvor hver udvikler kan oprette sandkasser til test. Dermed skal der kun betales pr. time for den serverkapacitet, Falcon Social bruger hos Amazon.

Selve udrulningen af koden foregår ved hjælp af værktøjet Jenkins, og hver udvikler holder styr på sin kode ved hjælp af Git og Github.

Falcon Social henter data fra flere millioner datakilder. De primære datakilder er dog de sociale netværk som Facebook, Twitter og Google+, og det betyder også, at udviklerne jævnligt skal håndtere bugs, som ikke er opstået i firmaets egen kode.

»Vi henter data udefra, og der kan for eksempel være nogle udokumenterede dele af API'et, der bliver ændret. Andre gange skal vi udarbejde en workaround for en del af API'er, der kører lidt trægt eller ustabilt,« fortæller Laszlo Fogas.

Når man på den måde er afhængig af andres kode og tjenester, så bliver det også sværere at skelne mellem ren vedligeholdelse og udvikling af nye funktioner.

»Hvis Facebook laver noget om, så kan det nogen gange være vedligeholdelse for os, men andre gange er det mere som en ny funktion, vi kan implementere,« forklarer Laszlo Fogas.

Tips og korrekturforslag til denne historie sendes til tip@version2.dk
Kommentarer (2)
Morten Elvang

Det med at følge SCRUM til punkt og prikke er jo bestemt ikke et mål i sig selv. Mange oplever netop at tilpasninger er nødvendige for at opnå de bedste resultater. Her er det især vigtigt at have nogen gode metrikker, som kan hjælpe med at give feedback på om de ønskede resultater opnås, samt løbende at implementere forbedringer alt efter hvad der læres og hvilke muligheder der opstår. Efterhånden kan man komme ganske lang væk fra det oprindelige udgangspunkt. Dette er mere og mere reglen end undtagelsen.

Therese Hansen

Hvis man kigger på første punkt i det agile manifest, ser man jo netop at en agil kultur er en der sætter mennesker over metoder. Det har jeg for nyligt skrevet et helt blogindlæg om :).

Det handler om at finde en god måde at evaluere sine resultater, omstændigheder og mål og så korrigere strategien. En struktureret evalueringsmetode som f.eks. retrospectives er et særligt godt værktøj til konstant at minde en om hvilke punkter der skal arbejdes på.

Log ind eller Opret konto for at kommentere
Pressemeddelelser

Welcome to the Cloud Integration Enablement Day (Bring your own laptop)

On this track, we will give you the chance to become a "Cloud First" data integration specialist.
15. nov 2017

Silicom i Søborg har fået stærk vind i sejlene…

Silicom Denmark arbejder med cutting-edge teknologier og er helt fremme hvad angår FPGA teknologien, som har eksisteret i over 20 år.
22. sep 2017

Conference: How AI and Machine Learning can accelerate your business growth

Can Artificial Intelligence (AI) and Machine Learning bring actual value to your business? Will it supercharge growth? How do other businesses leverage AI and Machine Learning?
13. sep 2017