
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.
Leave a Reply