Uzay programı denince akla roket ve uydu gövdesi gelir; ama programın asıl süresini ve maliyetini belirleyen, çoğunlukla yazılım. Uydunun görevi yazılımla tanımlanır, yörünge manevrası yazılımla planlanır, arıza yazılımla üstesinden gelinir. Yerli uydu ve uzay projelerinin büyüdüğü bu dönemde asıl yetenek sorusu, donanımdan çok yazılım tarafında soruluyor.

Yazılım, uzayda neden başka bir disiplin?

Dünya üzerinde yazılım hatalıysa yama çıkarırsınız. Yörüngede yama çıkmaz: bağlantı pencereleri sınırlıdır, cihaz fiziksel olarak erişilemezdir ve tek hata görevin tamamını bitirebilir. Bu yüzden uzay yazılımı, ölü kodu reddeden, her byte'ı hesaplı bir süreçle geliştirilir; kod inceleme katmanı, test kapsamı ve doğrulama raporları, havacılık standartlarının zorunluluğu olarak yürür.

İkinci fark donanım bütçesi: uzayda kullanılan işlemciler, masaüstü işlemcilerinin birkaç nesil gerisinde kalır ve bellek kısıtlıdır. Sınırlı kaynakta çalışmak, yazılımcının her fonksiyon için bellek ve güç hesabı yapmasını gerektirir. Ayrıca radyasyon, bellek bitlerini tersine çevirebilir; yazılımın bu hataları yakalayıp düzeltecek bir yedekleme ve durum denetimi mantığı olması zorunludur.

Gömülü yazılımın uzay versiyonu, masaüstü geliştirme alışkanlıklarıyla yapılan en büyük darbe: burada bellek sızıntısı ya da kilitlenme, sahnede bir hata mesajı değil, milyonlarca dolarlık bir kayıp demek. Bu yüzden ekip içi disiplin, kod kalitesinden önce kodun ne kadarının test edilebilir olduğuna bakıyor; donanım benzetici (HIL) kurguları, yazılımı gerçek donanımda taklit eden test tezgâhları, lansman öncesi en çok zaman yiyen ama en çok işe yarayan altyapı. Uçuşta karşılaşılabilecek senaryoların büyük kısmı, yerdeki bu tezgâhlarda önceden canlandırılıyor.

Yerliden derin uzaya üç eşik

Yerli ekiplerin ilk eşiği, uçuş yazılımı kültürüydü: belgeleme, bağımsız test ekibi ve tasarım ile doğrulamanın ayrılması. İkinci eşik, yer istasyonu ve uçuş yazılımının birlikte tasarlanmasıydı; uyduyu yörüngede gören ekip ile kodu yazan ekip aynı masaya oturmadan görev tanımı tamamlanmıyordu. Üçüncü eşik, derin uzaya geçişte kendini gösteriyor: sinyalin gidiş dönüşü dakikalar sürdüğünde komuta yazılımı yerini otonomiye bırakıyor ve araç kendi kararlarını verebilmek zorunda kalıyor.

Ekosistemin öğrendiği şey

Yerli ekiplerin en hızlı öğrendiği ders, yazılımda kopyalanabilirlik: bir uydunun görev yazılımı, ikinci uyduda büyük oranda yeniden kullanılabiliyor, uçuş doğrulama altyapısı ve yer istasyonu yazılımı ortak çatı altında toplanabiliyor. Üniversite takımlarının küp uydularda edindiği saha tecrübesi, endüstrideki kritik kadroları besliyor; bu döngü, yazılım yeteneğinin en sürdürülebilir taşıyıcısı.

Uzay programında yazılım, son on yılın gerçek konusu otonomi ve güvenilirlik. Yerliden derin uzaya uzanan yol, tek bir başarılı lansmanla değil, tekrar üretilebilen ve sertifikalanabilen yazılım kültürüyle döşeniyor. Uydunun gökyüzünde yaptığı işin kalitesi, masada yazılan kodun disiplinine bağlı; ve bu disiplin, uzayın kendisinden önce dünyada inşa ediliyor. Bu disiplin yalnızca uzay endüstrisinin değil, yerdeki kritik sistemlerin de temeli: enerji santralleri, tıbbi cihazlar ve demiryolu otomasyonu da aynı katılık arıyor. Uzay yazılımında kazanılan tecrübe, dünyada satılabilir bir yeteneğe dönüşüyor. Belki de programın en kalıcı ürünü yörüngedeki araç değil, bu disiplini benimsemiş mühendisler ve yerleşik yazılım kültürü olacak.