Fra tekniske 'laug' til open source, hvordan Bloombergs udviklere driver innovation

  • Sep 05, 2023

ZDNet taler med Adam Wolf, leder af softwareinfrastruktur hos Bloomberg Engineering, om forretningen med at bygge og implementere systemer for at imødekomme behovene i den hastigt udviklende finansielle sektor.

digital-banking-fintech-concept-finance.jpg

Bloomberg har 10 guilds i sin ingeniørafdeling, der spænder over programmering, maskinlæring, naturlig sprogbehandling og udvikling af webfrontend.

Billede: Bloomberg

Adam Wolf leder softwareinfrastrukturgruppen i Bloombergs Engineering-afdeling. Hans team er ansvarligt for at udvikle grundlaget, hvorpå mere end 6.500 udviklere bygger deres applikationer og udruller ny kode, der integreres øjeblikkeligt i kundernes arbejdsgange.

Han fortæller ZDNet, hvordan finans- og datagiganten bruger en række softwareudviklingsteknikker – lige fra at dele viden til at skabe 'laug' og på at omfavne open source - for at imødekomme kundernes behov i den globale finansielle markeder.

ZDNET anbefaler

De bedste programmeringssprog

Her er en liste over de mest populære programmeringssprog, og hvor man kan lære dem

Læs nu

Bloombergs arbejdsgange spænder over hele spektret af muligheder for finansielle tjenester, fra markedsdata og analyser i realtid til indkomst, aktier, valuta og råvarer. "At prøve at gøre alt dette kræver, at vi er effektive, men det kræver også, at vi er slanke," siger Wolf.

SE: Projektledelse: Fem måder at sikre, at dit team føler sig engageret

Wolf har tilbragt mere end 17 år hos Bloomberg, efter at han tidligere har ledet organisationens kommunikations- og mobile teams samt forskellige tekniske og lederroller inden for sine nyheder ingeniørenhed.

Han har også ledet Fundamental Applications – de centrale applikationer og platforme på tværs af aktivklasser på Bloomberg Terminal, der spænder over e-mail- og instant messaging-tjenester, søgning og finansielle big data platforme.

Bloomberg Terminal er et alt-i-et computersystem, der giver fagfolk inden for finansielle tjenesteydelser adgang til Bloombergs finansielle data, analytikerestimater, meddelelser og handelstjenester. Det er kernen i Bloombergs produktportefølje og betjener mere end 325.000 abonnenter over hele verden.

For 20 år siden var Bloomberg Terminal bogstaveligt talt en computerterminal. Det blev derefter en Windows-desktop-app, hvorimod Bloomberg-terminalen i dag, som Wolf forklarer, fungerer som en browser, men det er en brugerdefineret browser, og den har en hel masse vindueskomponenter og gruppering og docking."

Bloomberg Terminal er et markedsdatasystem designet til professionelle inden for finansielle tjenesteydelser.

Billede: Bloomberg

Wolfs ingeniørenhed, som omfatter omkring 1.700 udviklere, fungerer i det væsentlige som platformsteamet for hele Bloomberg-organisationen og tjener alt fra softwareudvikling livscyklus (SDLC) værktøj og brugergrænsefladerammer, til administrerede tjenester til multi-tenant miljøer, analyse og datavidenskab.

"Måden jeg ser på det er, at mit teams job er at støtte ingeniører. Mange af disse ingeniører arbejder her, og mange af dem arbejder hos vores kunder," siger Wolf.

"Du skal oprette forbindelse til hundredvis af centraler, og du skal normalisere alle mulige former for data. Det er sådan set det, vi er i branchen for at gøre."

At dele viden og bedste praksis udgør en central del af Bloombergs udviklermiljø. For at fremme dette, organisationen har etableret 'laug' med speciale i specifikke teknologier og tekniske koncepter.

Disse laug, ligesom det middelalderlige koncept, de er baseret på, samles for at løse problemer og udveksle tricks.

SE: Udviklere: Når det kommer til tech jobs, boomer banksektoren

I dag har Bloomberg 10 guilds i sin ingeniørafdeling, der spænder over programmeringssprog som C++, JavaScript og Python samt maskinlæring, naturlig sprogbehandling og webfrontend udvikling.

"Målet med det er virkelig at samle mennesker, der har dyb ekspertise i forskellige dele af organisationen, at drive investeringer i platformen i nogle tilfælde og at udvikle fælles standarder og fælles tilgange," siger Ulv.

Noget af dette arbejde er internt vendt, forklarer Wolf – for eksempel ved at se på, hvordan nye programmeringssprogstandarder kan udnyttes til at opgradere Bloombergs kodebase.

Andre gange vil laug forsøge at tackle teknologiens rejseretning mere bredt. Et eksempel på dette er det arbejde Bloomberg har udført i løbet af de seneste fem år i JavaScript-økosystemet, hvor organisationen har haft held med at fremme isolationsfunktioner, der ikke tidligere var en standard del af programmeringen Sprog.

Adam Wolf, leder af softwareinfrastruktur hos Bloomberg Engineering.

Billede: Bloomberg

"Vi kører en massiv JavaScript-kodebase på serversiden, og JavaScript understøttede ikke rigtig indkapsling på en fantastisk måde," siger Wolf. "Vi byggede noget, der på en måde forsøgte at skabe det, men det var ikke en officiel del af sproget."

Efter at have arbejdet med TC39, JavaScript-standardorganet, hjalp Bloomberg med at få private klassemedlemmer tilføjet som en standard og funktionsintegreret back-end. "Det er noget, der [nu] er en del af sproget, der er vigtigt for os, men vi tænker også vigtigt for alle, der er at køre en stor kodebase i JavaScript – hvilket bliver mere og mere almindeligt, efterhånden som det bliver mere et sprog på serversiden." siger Ulv.

At engagere sig i det tekniske samfund er også vigtigt for open source-projekter som Python: ikke kun for fordelene ved Bloombergs eget udviklingsøkosystem, men også for den bredere udvikling fællesskab.

SE: Programmeringssprog: Hvordan Python bygger et udviklerfællesskab på millioner

Når det kommer til open source, skal man "være villig til at komme under motorhjelmen" og forbedre tingene for alle, siger Wolf: "Vi er nødt til at forstå, hvad der foregår. Vi er nødt til at forstå, hvordan vi kan gøre det bedre, og så jeg tror, ​​at det nærmest er en forretningsmæssig nødvendighed. Du kan ikke bare bruge open source og på en måde behandle det som en sort boks."

Fordeling af kodebasen for at tilføje en ny funktion, for eksempel, er nytteløst, hvis denne funktion så ikke vil blive bidraget tilbage til fællesskabet, og det skaber simpelthen mere hovedpine for udviklingsteams. "Du står tilbage med en del af den kodebase, og efterhånden som kodebasen går videre, efterhånden som den får forbedringer og rettelser, sidder du fast med en gaffel," forklarer Wolf.

"Medmindre dette er en kerneegenskab ved din virksomhed, hvilket det sjældent er for os, ønsker vi så ikke at bidrage med det tilbage og lade andre bygge ovenpå det? For nu er dine omkostninger ved integration lavere, du er i stand til at flytte tingene fremad, du kan drage fordel af, at andre bidrager oven i det og gør det bedre."

Selvfølgelig er en advarsel med open source det ofte langsomme tempo, hvormed nye funktioner tilføjes vedligeholdelsesefterslæb, kodebase-gafler og forskellige prioriteter blandt bidragydere, der ofte bremser udvikling.

Når det kommer til at balancere vedligeholdelsen af ​​open source-kode med at frigive nye funktioner, siger Wolf, at forestillingen om, at man kan blive prioriteret frem for, præsenterer "et falsk valg".

"Hvis du er på kanten af ​​ydeevne eller kapaciteter... den eneste måde, du vil være i stand til at udgive nye forretningsfunktioner er, hvis du holder trit med vedligeholdelsen, og du bliver ved med at opgradere, efterhånden som de nyeste versioner kommer ud," han siger.

"Jeg tror ikke, det er et enten/eller. Jeg tror, ​​vedligeholdelse og opgradering og reintegration og upstreaming-patches er en omkostning for virksomheden. Det er ikke et valg."

Udvikler

Det er enden på programmering, som vi kender det - igen
Udviklere føler sig trygge i deres job, men de overvejer stadig at stoppe
Fremtiden for nettet vil have brug for en anden slags softwareudvikler
De bedste Linux-bærbare computere til forbrugere og udviklere
  • Det er enden på programmering, som vi kender det - igen
  • Udviklere føler sig trygge i deres job, men de overvejer stadig at stoppe
  • Fremtiden for nettet vil have brug for en anden slags softwareudvikler
  • De bedste Linux-bærbare computere til forbrugere og udviklere