Stichworte:
Wie schreibe ich Quellcode so, dass die zur Verfügung stehenden Resourcen möglichst schonend genutzt werden?
- Software nachnutzen (Lizenz vergeben)
- Mehrfachberechnungen vermeiden (z.B. AlphaFold)
- Energy-aware run-times, z.B. LRZ
- MDC: Sichtbar von Energieeffizienz für VMs
- Energieeffizienz der CI/CD Pipelines
- https://de-rse.org/blog/2023/12/06/Performanceevaluation-fuer-Forschungssoftwareentwickler-de.html
- Korrespondenz der deRSE-Mailingliste zum Thema Nachhaltigkeit (“blauer Engel” für Software) aus Juli-September 2023: https://pad.gwdg.de/RepNcQBZT9e5-di9wd6kdg# (nur für eingeloggte Nutzende lesbar)
Unter welchen Umständen sollte Forschungssoftware nicht öffentlich zugänglich gemacht werden?
- Exportkontroll-Regimes (Technology readiness Levels beachten)
- Dual Use (Militärische Nutzbarkeit)
- wenn Rechte Dritter entgegenstehen (prioritäre Software-Elemente, Geschäftsgeheimnisse, Software die zur Verhaltensanalyse und zum Profiling geeignet ist …)
- evtl. (!) über Ethical Source Licenses in den Griff zu bekommen (vgl. WIRED article) ?
- Wenn Software kommerzialisiert werden soll (siehe XXX)
- wenn sie den nötigen Reifegrad noch nicht erreicht hat
- im Zweifel am Reifegrade z.B. als Beta-Version deklarieren, damit Nachnutzenden im klaren sind über den Reifegrad
- Verweise auf DLR Application classes
- wenn sie Geheimnisse (z.B. Passwörter) enthält
Was ist bei der Entwicklung und der Offenlegung von Software in sicherheitsrelevanten Bereichen zu beachten?
Beispiele (Security):
- Forscher entwickelt Algorithmus und Software um starke Verschlüsselung zu brechen
- Forscherin entdeckt Sicherheitslücke in einem Programm (Responsible Disclosure)
Beispiele (Safety):
- Team entwickelt Software zur Regelung/Steuerung eines Versuchsreaktors
- Team trainiert Modelle zur Regelung/Steuerung von Drohnen
Welche Umstände begründen hinsichtlich der Entwicklung von Forschungssoftware einen Interessenkonflikt?
- Interessenskonflikt zwischen wissenschaftlicher und wirtschaftlicher Nutzung
- mehrere Arbeitgeber von Entwickler (–> aufgeteiles Besitzverhältnis der Software)
- Beteiligung an Ausgründung, Beteiligung an lizenznehmender Firma (EIgene oder deren Angehörige i.S.v. § 15 AO)
- überall dort vorhanden, wo mehrere Anstellungsverhältnisse neben MPG in einer Person (oder auch nahe Verwandte) bestehen
- Beispiel: Entwicklungstätigkeit kommt Firma zu Gute, wird aber mit MPG-Mitteln finanziert
- Person mit mehreren Rollen im Kontext von Qualitätssicherung und Projektmanagement, sodass Deadlines vor Qualität geht
Beispiele:
- Eine Gruppe entwickelt eine Software und gründet ein Startup um diese zu vermarkten. Mitnahmerechte, Lizensierung, Urheberrecht, Wertschöpfung?
- Ein Forscher entwickelt innerhalb eines von der DFG finanzierten Drittmittelprojekts zusammen mit Kollegen von anderen universitären Forschungseinrichtungen ein Softwareprojekt. Wem “gehört” der Quellcode (während/nach) der Projektförderung?
Was ist beim Vorliegen eines Interessenkonflikt bei der Entwicklung und Offenlegung von Forschungssoftware zu beachten?
- Transparenz muss vorhanden sein (z.B. Offenlegung gegenüber Vorgesetzen; Dokumentation, wann für wen gearbeitet)
- Vereinbarung bei Kooperationen vorab treffen (z.B. im Kooperationsvertrag schreiben, Projekt-Policy); siehe auf MPG-GWP Kap. 3.3
Kann die Software auch für militärische Zwecke genutzt werden (“Dual Use”)?
- “Verbotene oder genehmigungspflichtige außenwirtschaftsrechtliche Transaktionen können z.B. die Ausfuhr und Verbringung von gelisteten Gütern (Lieferung oder Mitnahme von z.B. Testproben, Prototypen oder Geräten sowie Software) [..] sein.” 1
- Wenn eine militärische Nutzung von Software möglich ist, muss wie bei Textpublikationen auch, eine Dual-Use-Prüfung vor der Veröffentlichung, Weitergabe etc. vorgenommen werden
- GV VII.2.01 Außenwirtschaftsrecht – Aufbau einer MPG-weiten Exportkontrolle
- Bei Fragen oder Unterstützungsbedarf wenden Sie sich bitte an das Referat VII b für Exportkontrolle und Außenwirtschaftsrecht.
- Kontaktaufnahme: aussenwirtschaft@mpg.de
- Außenwirtschaftsgesetz
- Außenwirtschaftsverordnung
- …
Wie erkenne ich, ob die von mir entwickelte Software manipuliert wurde?
- GitHub und Versionskontrolle
- Checksummen veröffentlichen und vergleichen
- wissenschaftliches Fehlverhalten laut MPG-GWP beachten z.B. Sabotage von Code, geschönte Ergebnisse, verteilen von Bibiotheken mit Manipulationen
Welche Entwicklungsressourcen und -plattformen fördern eine kommunikative, gemeinsame Softwareentwicklung, die Platz für respektvolle gegenseitige Kritik bereithält?
- GitHub.com mit Code of Conduct bei Community-Entwicklung
- Code of Conduct
- MPG (https://www.mpg.de/11961177/code-of-conduct-en.pdf)
- MPI
- speziell Software-Entwicklung
- Community Manager für Feedback-Schleife
- öffentlicher Bug-Tracker, wie in GitHub.com enthalten, um Feedback von überall zu erhalten
- The Turing Way: https://the-turing-way.netlify.app/community-handbook/coc