Nach­hal­tig­keit in der Softwareentwicklung

Der Anteil der Infor­ma­ti­ons- und Kom­mu­ni­ka­ti­ons­tech­no­lo­gie am welt­wei­ten Strom­ver­brauch wird nach Exper­ten­schät­zun­gen in den nächs­ten Jah­ren um ein Viel­fa­ches anstei­gen. Gleich­zei­tig bie­tet kaum eine Bran­che so gro­ßes Poten­zi­al, um ver­schie­dens­te Pro­zes­se effek­ti­ver und nach­hal­ti­ger zu gestal­ten. Auch für SYST­HE­MIS ist das The­ma des­halb kein unbe­kann­tes. Ein Gespräch mit Soft­ware­ent­wick­ler Dani­el Michel.

Branche im Wandel

Im Kli­ma­schutz­ge­setz von 2021 setzt sich die Bun­des­re­gie­rung ehr­gei­zi­ge Zie­le: Bis 2045 will die Bun­des­re­pu­blik treib­haus­gas­neu­tral sein, also genau­so viel Treib­haus­gas abbau­en wie emit­tiert wird. Dass dies in den nächs­ten Jahr­zehn­ten zu gra­vie­ren­den Ver­än­de­run­gen in Wirt­schaft und Indus­trie füh­ren wird, ist offen­sicht­lich.  Aber was kann ein Soft­ware­haus da schon groß machen? Unse­re Arbeit ver­ur­sacht kei­ne Abfäl­le, wir betrei­ben kei­ne Fabrik, und es qual­men auch kei­ne Schorn­stei­ne auf dem Dach der Mer­gen­thei­mer Stra­ße 76. Und doch gibt es viel­ver­spre­chen­de Ideen, wie auch und gera­de unse­re Bran­che zum Wan­del bei­tra­gen kann.

Grüne Logik

Green Coding ist ein sehr jun­ger Ansatz, der sich damit befasst, die Ent­wick­lung und den Betrieb von Soft­ware nach­hal­tig zu gestal­ten. Er zielt nicht zuletzt auf den Code selbst ab, wo der Teu­fel häu­fig im Detail steckt: schon kleins­te Ein­spa­run­gen in der Pro­gram­mie­rung kön­nen ­– auf vie­le Nut­zer hoch­ge­rech­net – zu gewal­ti­gen Ener­gie­ein­spa­run­gen füh­ren. Anwen­dun­gen von SYST­HE­MIS wer­den im Gesund­heits­sek­tor deutsch­land­weit ein­ge­setzt und täg­lich von tau­sen­den Men­schen genutzt. Wie wäre es also, wenn unse­re Soft­ware selbst spar­sam sein könnte?

Soft­ware­ent­wick­ler und ‑Archi­tekt Dani­el Michel sieht hier­zu eini­ge Ansätze:

Wir ach­ten bei­spiels­wei­se dar­auf, das Daten­vo­lu­men, das wir inner­halb von Anwen­dun­gen ver­schi­cken, zu mini­mie­ren. Wir ver­wen­den in REST APIs JSON, kei­ne SOAP-Web­ser­vices, die auf XML-Datei­en auf­bau­en. Die­se Redu­zie­rung ist allei­ne schon aus Sicher­heits- und Per­for­mance­grün­den wich­tig und redu­ziert natür­lich auch den Res­sour­cen­ver­brauch. Um ser­ver­sei­tig die CPU-Last gering zu hal­ten, ver­wen­den wir in unse­ren Daten­ban­ken Indi­zes, was gera­de bei Such­an­fra­gen mit vie­len Ergeb­nis­sen dazu führt, dass sie per­for­man­ter lau­fen und nicht so viel Last brau­chen. Im Angu­lar-Bereich wie­der­um benut­zen wir Web­pack. Es unter­stützt uns dabei, Biblio­the­ken, die nicht ver­wen­det wer­den, beim pake­tie­ren aus­zu­sor­tie­ren, so dass das erzeug­te Paket deut­lich klei­ner wird.“

Ein wei­te­res Schlag­wort, das im Zusam­men­hang mit Green Coding häu­fig fällt, ist Zero-Was­te-Code. Damit ist zum einen gemeint, Red­un­dan­zen im Code zu ver­mei­den, aber auch wie­der­ver­wert­ba­ren Code zu programmieren.

Aktu­ell bau­en wir Blue­print-Vari­an­ten auf, um Code zu ver­mei­den, der nur ein­ma­lig genutzt wird. Wir erstel­len also Bei­spie­le für unse­re Tech­no­lo­gien wie Java, C# und Angu­lar, auf deren Basis wir dann per­spek­ti­visch alle Anwen­dun­gen, die wir ent­wi­ckeln, auf­bau­en. Sie geben uns ein Grund­ge­rüst, von dem wir vie­les wie­der­ver­wen­den kön­nen. Ange­fan­gen damit, wie eine API auf­ge­baut ist, wel­che Biblio­the­ken wir ver­wen­den, oder auch wie wir die Ent­wick­lungs­um­ge­bung containerisieren.“

Grüne Methodik

Rich­ten wir den Blick nun auf den grö­ße­ren Rah­men: denn auch bei den Metho­den der Soft­ware­ent­wick­lung gibt es Poten­ti­al. Im Sin­ne einer grü­nen Metho­dik ist häu­fig die Rede von Agi­ler Soft­ware­ent­wick­lung. Damit gemeint sind Vor­ge­hens­wei­sen, bei denen die Ent­wurfs­pha­se auf ein Min­dest­maß redu­ziert wird, um im Ent­wick­lungs­pro­zess so früh wie mög­lich zu aus­führ­ba­rer Soft­ware zu gelan­gen. Die SYST­HE­MIS bevor­zugt bei ihren Pro­jek­ten ein evolutionär‑, inkre­men­tel­les Vor­ge­hen, das auf lan­ge Sicht nicht nur Geld, son­dern auch Res­sour­cen spa­ren soll. 

Inkre­men­tel­les Vor­ge­hen heißt, dass wir in Zyklen von ein- bis zwei Wochen arbei­ten, in denen gewis­se Anfor­de­run­gen umge­setzt wer­den. Die gehen dann in die Test­pha­se, wir krie­gen rela­tiv schnell Kun­den­feed­back, kön­nen Anpas­sun­gen voll­zie­hen und somit fle­xi­bler arbei­ten. Das ist zumin­dest die Theo­rie. In der Pra­xis ist es schwie­ri­ger. Mit einem inkre­men­tel­len Vor­ge­hen nimmst du den Kun­den mehr in die Pflicht, weil du eine Bereit­schaft von ihm brauchst, fle­xi­bler Test­zeit auf­zu­wen­den. Wenn er das tut, spa­ren wir Zeit und Res­sour­cen, wenn er es nicht tut… eher im Gegenteil.“

Fazit

Nicht alles ist also grün was glänzt. Die Idee des Green Coding ist neben der Green-IT und der Green Ener­gy nur ein Ansatz, um als Soft­ware­haus an der Ener­gie­wen­de mit­zu­wir­ken. Und es wird nicht nur für die SYST­HE­MIS, son­dern auch für die Bran­che als Gan­zes noch ein lan­ger Weg, wenn man die Soft­ware­ent­wick­lung auf einen nach­hal­ti­ge­ren, zukunfts­ori­en­tier­ten Kurs brin­gen will.

Wenn man das Kon­zept des Green Coding in allen Aspek­ten zu Ende denkt, dann haben wir als SYST­HE­MIS höchs­tens den ers­ten von vie­len Schrit­ten gemacht. Die Rea­li­tät in der Pro­jekt­ar­beit holt einen zu oft ein, und die Gege­ben­hei­ten erschwe­ren es lei­der häu­fig, Abläu­fe und Metho­den von heu­te auf mor­gen umzustellen.“