Det er ikke raketvidenskab men…

DSC_0078
At skrive software er ikke just raketvidenskab men måske burde det være bare lidt mere som det. Tillad mig at forklare.

I 2004 Fik jeg et job der sende mig til Bremen for at arbejde for på ESAs bidrag til den internationale rumstation (ISS), Automated Transfer Vehicle (ATV).

Var naturligvis som næsten grøn datalog ikke kommet til Bremen for at være chef arkitekt – det var lidt mindre eksotiske opgaver jeg skulle løse, men alligevel vildt spændende at være del af så stort og så eksotisk et projekt.

Der sad jeg så i mit kontor på en Airbus flyfabrik med tysk tastatur, engelsk dokumentation og kode der nogen gange havde kommentarer på fransk, og prøvede at forstå arkitekturen på det mest avanceret fartøj ESA har været involveret i. Hvergang jeg sad fast tog jeg mig selv i at tænke: “Ahh kom nu det er jo ikke raketvidenskab det her, hov vent det er det jo. Doooh!”.

Men min opfattelse af hvad det vil sige at noget er raketvidenskab, har ændret sig siden. Før jeg blev involveret i brancen havde jeg en opfattelse af at det var noget der krævede man var super-hjerne, og lavede ting almindelige menesker ikke helt forstod.

I virkeligheden handler det langt mere om at være ekstra grundig og have ekstra sikkerhed for at det man laver faktisk virker, også under ekstreme betingelser. Når en satellit bogstavelig talt er blevet kastet ud i rummet, kan man ikke lige genstarte eller skifte batteri.

Konsekvensen af dette er, at integration og test er en naturlig del af udviklingsprocessen. Ting bliver designet til at kunne testes så vidt muligt som det skal bruges i det endelige system. Dette kan blandt andet opnåes ved at have meget veldokumenteret interfaces og så vidt muligt så simple som muligt, så input og output kan simuleres, og monitoreres. Fordi fx. en satellit er opbygget af mange instrumenter og enheder, og for at kunne foretage integrationen i trin, bruges der en del resurser på at udvikle, teste og lave integration med simulatorer. I forbindelse med udviklingen af det man i satellit-termer kalder en “power conditioning and distribution unit” (PCDU) – der som navnet antyder står for distribution af strøm fra hhv. batterier og solvinger til de enheder der har brug for strøm har man fx. gerne såkaldt “ground equipment” der ved hjælp af både hardware og software simulerer solvinger og batterier mv.

I senere faser af bygning og testing af en satellit, anvendes der faciliteter til at så vidt muligt at sikre at udstyret også virker under de ekstreme vilkår; bl.a. bruger man et såkaldt “Thermal Vacuum Chamber”. Ja jeg kunne blive ved. Listen af ting man gør og omveje man går for at kunne teste tingene undervejs er lang. Det korte af det lange er, at når en satellit endelig sendes afsted og det faktisk går godt er det langt fra en tilfældighed.

Selvom det jeg laver ikke skal ud i rummet, men blot teste ting, der skal, og vores kunder godt kan lave en reboot eller få en softwareupdate prøver jeg så vidt muligt at lade mig inspirere og have en klar ide om hvordan det software jeg skriver skal testes. Er ikke nogen hardcore Test Driven Developer, men mener software skal designes, så det kan testes. Dele ting op i så små som muligt komponenter der kommunikere så enkelt som muligt, allerhelst via “immutable” data. Udvikling og brug af simulatorer er en naturlig del af udviklingen af et kompliceret system. Prøver desuden at gøre hvad jeg kan for at afprøve det jeg laver i et så tæt på “produktion” miljø som muligt. Mens jeg sidder her og skriver lyder det oplagt og banalt, men synes der er for mange eksempler der ude på softwaresystemer der er en del af vores alles hverdag, der går ned, fordi der skulle lave en opdatering, eller hvad ved jeg, hvor man tænker det burde de da have kunnet teste inden. Det er ihvertfald min erfaring, at det kan man ofte.

Det er altså med særlig høje forventninger jeg ser frem til Anita Senguptas keynote på dette års GotoCPH15 Det er jo altid spændende at høre om hvad NASA laver af projekter, og forventer da også et par “behind the scenes” historier. Men håber også at få inspiration med hjem til hvordan vi kan gøre ting bedre. Inspiration man kan bruge uanset hvilken branche man er i.

1 comment for “Det er ikke raketvidenskab men…

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *