Systemudvikling og systemer

Sådan bliver Google bedre til at programmere

Det gælder om at holde kildekodetræet grønt. Sådan lyder filosofien, der sætter Google-udviklernes produktivitet i vejret. Det fortæller Patrick Copeland, chef for Googles produktivitetsgruppe.

Et af midlerne til at holde sig i feltet blandt verdens største it-selskaber er at samle al kode et sted. Det betyder blandt andet, at alle Googles udviklere kan låne hinandens kode. Men man kan ikke bare smaske koden ind – der skal være styr på sagerne. Det er én af opgaverne for den afdeling hos Google, der har ansvaret for at gøre udviklerne mere produktive, på tværs af hold og programmeringssprog.

Chefen for afdelingen hedder Patrick Copeland og var i foråret i København som taler på Goto-konferencen, den tidligere JAOO-konference, som nu har fået en afstikker i hovedstaden. Overskriften på Patrick Copelands tale berørte kæphøjt, at han, eller i hvert fald hans afdeling, har sparet Googles udviklere 700 mandeår. Så hvordan gør man lige det, spurgte Prosabladet.

– Et element er at bygge værktøjer, så udviklerne kan integrere koden i ét stort kildekodetræ. Vi har nok et af de største kildetræer i industrien. Hvis folk ikke havde værktøjer, ville det være kaotisk. Så vi har bygget et system, hvor udviklere kan indtjekke koden og få feedback med det samme, siger Patrick Copeland.

Google benytter ideen om kontinuerlig integration, hvor koden testes og kompileres til færdige produkter hele tiden, så fejl og mangler opdages så tidligt som muligt. Fejl betyder rødt lys i udviklingsprocessen.

– Træet holder sig grønt, og der er et socialt pres for at sørge for, at det er i orden. Der er en portion stolthed i det. Der er også en virksomhedskultur, som handler om at gøre tingene ordentligt.

Udviklerhold styrer selv

Google har dog ikke nogen tanker om at omskabe de interne værktøjer til kommercielle produkter, som konkurrenten Microsoft, Patrick Copelands forrige arbejdsgiver, gør sig i med stor succes. Under alle omstændigheder er Googles værktøjer kun interessante for meget store firmaer. Men små virksomheder kan sagtens bruge samme metoder som Google, uden at der er behov for værktøjer til at assistere processen, mener Patrick Copeland.

Google har ikke nogen overordnet politik om udviklingsmetode. Det styrer de enkelte hold selv. Men de fleste benytter en eller anden form for adræt metodik, lige fra det hjemmestrikkede til mere ortodokse udgaver af Scrum. På sprogsiden dominerer C++, der især anvendes til Googles infrastruktur, mens Python, Javascript og Java kommer ind på en andenplads. Lidt Perl er der også i blandingen, der især benyttes til driftsmæssige opgaver.

Men derudover benyttes alle mulige frameworks og sprog, i det mindste eksperimentalt. Google har også sit eget sprog, med navnet Go, gør Patrick Copeland opmærksom på. I det hele taget er der meget frihed for de enkelte udviklerhold til at gøre, som de har lyst til, bedyrer han:

– Det handler om, hvad der virker. Holdene har frihed til at gøre, hvad der føles rigtigt, og det giver dem en fornemmelse af ejerskab, har vi fundet ud af, i modsætning til at fortælle folk, hvad de skal gøre. Hele ledelsesfilosofien handler om at holde folk informeret og nusse tingene i den rigtige retning i stedet for at diktere det hele ovenfra. Det ville blive afvist, og folk ville ikke tage det til sig.
Nogle hold er sammen i evigheder. Det gælder blandt andet dem, der står bag søgesystemerne og reklamesystemerne. Her er der tale om mennesker, der har arbejdet sammen i årtier.

Andre hold er mere flygtige, hvor folk kommer og går. Det handler mere om, hvilken type projekt det drejer sig om. I nogle projekter er man nødt til at dykke ned i månedsvis, før man er produktiv.

Kreativitet og passion er et must

Google har lige nu et af sine største rekrutteringsår, og de fleste ansøgere har en bachelor i datalogi og opefter, men der hyres også inden for andre faggrupper, som for eksempel matematik. Ifølge Patrick Copeland skal man have nogle nødvendige egenskaber for at kunne blive en del af familien:

– Kreativitet, passion og en teknisk fundering er et must. Men derudover handler det om at være passioneret omkring software og kunder, og så er der stædighed. Ikke at give op, at skubbe på og ikke lade status quo komme i vejen. Mange teams kommer nemlig ind og omskriver eksisterende projekter radikalt. Egenskaberne er teamwork og ydmyghed.

Kæmpestore softwarefirmaer løber en risiko for at drukne i administration, medgiver Patrick Copeland:

– Større virksomheder har større risiko for entropi end små virksomheder. Derfor prøver vi at sørge for, at udviklerholdene er små, også for at give lokalt medejerskab. Den slags ting kan være modgift for trægheden. Det kan blive så kaotisk, at man ikke får gjort noget, eller der er så meget planlægning, at man ender i "analyse-lammelse". I store virksomheder er der større risiko for, at det ender sådan, så vi må arbejde hårdere for at undgå det. Lige nu er vi ikke bekymrede for det.