Bet365: Ett företag som satsar på egna tekniska innovationer

Ett öppet källkods funktionellt programmeringsspråk och mellanprogram – ursprungligen designat av Ericsson för att stödja distribuerad, feletolerant, realtidsprogramvara i telekommunikationsväxlar – ligger bakom Bet365s sportbetting-app.

Alan Reed, chef för systemutveckling och support på Bet365 (bilden ovan), driver ett team på 65 personer som utvecklar användargränssnittet och stöder mellanvaran för företagets kärnprodukter. Reed är ansvarig för den löpande utvecklingen av sportspelprodukter över Bet365-webbplatser, på stationära, mobila och surfplattor.

Han säger: “Vi använder funktionell programmering snarare än procedurell programmering, eftersom problemen vi möter liknar de problem som telcoindustrin historiskt sett står inför.”

Som ett resultat beslutade företaget 2012 att ersätta Java med ett programmeringsspråk som heter Erlang.

Erlang utvecklades på 1990-talet av Ericsson för telefonväxlar. För Bet365 var problemen som telefonbyteleverantörer hade att hantera under 1990-talet mycket lik den typ av problem med att driva en webbplats för sportspel, med frågor om tillförlitlighet, skalbarhet och enkelhet.

Erlang gjorde det möjligt för Bet365 att bygga sin Cash-Out-produkt, som lanserades 2014. Den här funktionen gör det möjligt för användare att avsluta en satsning tidigt innan en händelse är klar, vilket kräver omfattande beräkning av odds i realtid. Det har också använts vid databasmigrering till NoSQL.

Baksidan av Bet365-webbplatsen har konstruerats för att hantera stora volymer transaktioner, skrivna som generisk kod, medan frontend handlar om konsistens. “Vi brukar ha en mycket lätt produkt och hålla fronten väldigt liten och vår kod så bärbar som möjligt.” Men för att stödja olika enheter krävs en balans mellan att skapa ett enhetligt användargränssnitt och samtidigt stödja enhetens inbyggda funktioner.

HTML 5 har gjort det möjligt för Bet365 att skapa en gemensam produkt med en liten mängd anpassning av enheter. “HTML 5 har gjort det möjligt för oss att skriva gemensam kod”, säger Reed.

“Vi kanske inte har 100% synlighet på alla enheter runt om i världen, men vi kan göra vår kod så bärbar som möjligt. Appen har möjliggjort en viss differentiering.” Till exempel säger han: “Om du använder en iPhone försöker vi stödja vissa gester.” Medan knappar på olika smarttelefonenheter kommer att se annorlunda ut, säger han Bet365 försöker ge en infödd känsla samtidigt som den behåller sitt varumärke.

Reed tillägger: “Vi försöker skilja där tekniken dikterar.” Som ett exempel används Objective C för att bygga iPhone-appen, som stödde inbäddad video. På samma sätt används inbyggd Android-kod där funktioner inte stöds i HTML 5.

Liksom många webbplatser använder Bet365 JavaScript, men i stället för att ge utvecklare frihet att skriva sina egna skript, säger Reed att företaget använder TypeScript, skriptspråket för öppen källkod från Microsoft, för att generera JavaScript. Han säger: “Det låter oss skapa ganska ren kod med ett större team som producerar Java i ett föreskrivet format, vilket innebär att du har färre problem.”

Att skapa standardkod är extremt viktigt för webbplatsen, enligt Reed. “En av utmaningarna vi står inför är att eftersom koden är live länge blir underhåll en större del av det vi gör. Med fler standarder kan du minska underhållet”, förklarar han.

Bet365-sättet
När det gäller agil mjukvaruutveckling säger Reed: “Vi brukar använda patentskyddad metodik, vilket har fungerat bra för oss.” Strikt taget använder Bet365 det som Reed beskriver som “de bästa delarna av de olika metoderna”.

Han tillägger: “Vi är ganska öppna för våra utvecklingsmetoder och tar de lämpligaste för oss.”

Reed säger att många av de utmaningar företaget står inför i mjukvaruutvecklingsperspektivet är unika; nya rekryter lärs Bet365-sättet.

Men företagets kodutveckling lånar från agil. “Vi släpper koden ganska mycket varje dag och uppdaterar kontinuerligt, men du kan inte slå en teknisk specifikation och ett formellt kravdokument”, säger Reed.

Så företaget måste balansera behovet i det mobila rummet för ständig förbättring – där en vattenfallsmetod historiskt inte var lämplig – med arbete som bättre passar formella metoder. “Våra krav passar inte riktigt 100% smidigt eller vattenfall”, säger Reed.

Tekniska odds
Det är förvånande att Bet365s infrastruktur ligger i sina egna datacenter snarare än i molnet.

Reed säger: “Vi föredrar att göra saker internt, för det är en strategi som har fungerat för oss.”

På många sätt återspeglas detta i de val som företaget har gjort inom mjukvaruutveckling. Dess egen utvecklingsmetodik, baserad på Erlang över Java; och standardisera JavaScript-arbete med TypeScript, som Microsoft introducerade i Visual Studio 2013; tjäna som exempel på hur Bet365 använder sin egen teknik snarare än att följa publiken.