Tag Archives: Gebhard Greiter

Software-Qualität – eine oft böse Überraschung


Wer für Software-Entwicklung bezahlt, hält es für selbstverständlich, qualitätsvolle Software zu bekommen. Welch ein Irrtum das sein kann!

Selbst weltweit anerkannte IT-Dienstleister (s.u. Beispiele) liefern hin und wieder absolut unbrauch­bare Software und bescheren so ihren Kunden Verluste in Millionen-Höhe.

Warum nur fühlen sich Software-Entwickler so wenig für die Qualität ihrer Erzeugnisse verantwortlich?

Warum nur sehen sie Qualität so gar nicht als eines ihrer wichtigsten Ziele?

Liegt es daran, dass ihre Auftraggeber Qualität nur allzu pauschal fordern (und denken, sie nicht extra bezahlen zu müssen)?

Traurige Tatsachen sind:

  • Wartbarkeitsaspekte — für Eigentümer und Betreiber der Software extrem wichtig — adressiert kaum jemand: Wie sich die Total Cost of Ownership niedrig halten lässt, diskutieren Entwickler nicht wirklich (sie müsste vom Auftraggeber schon explizit gefordert sein, …).
     
  • Benutzerfreundlichkeit scheint Entwicklern völlig egal (so ergab eine Studie aus 2012).

 

Eine 2001 im Auftrag des deutschen Forschungsministeriums erstellte Studie kam zum Ergebnis: Für Software-Dienstleister ist Qualität ein Fremdwort, und so ist es heute noch:

  • Im Früjahr 2013 bestätigt ein SAP-Team diese Einschätzung ganz unfreiwillig im wirklich übelsten Sinne des Wortes: durch Auslieferung einer absolut unbrauchbaren Neuimplementierung des Payroll Systems der kalifornischen Behörden auf der SAP Plattform (siehe [1], kürzer [CW]).
     
  • Ähnliches war einige Monate früher IBM passiert (siehe [2]). Diesem Team misslang die Neuimplementierung eines Order Management Systems. Man streitet sich jetzt vor Gericht um einen zweistelligen Millionenbetrag.
     
  • Vorher schon hatte IBM in Australien Software abgeliefert, die unbrauchbar war: "The system, which was delivered 20 months after deadline and 300 per cent over budget, led to 70,000 staff in Queensland’s health system being underpaid, overpaid or not paid for months."
     
  • Ein ganz ähnliches Beispiel aus Deutschland (2015).
     
  • Leider sind das keineswegs die einzigen Beispiele für in den letzten Jahren komplett schiefgelaufene, wirklich große Software-Entwicklungsprojekte. Siehe auch Zahlen dazu, z.B. von 2010.
     
    Man muss sich ernsthaft fragen, ob gängige Software-Entwicklungsmethodik (insbesondere die neue, sog. agile) nicht ganz grundsätzlich nur für Projekte kleiner oder mittlerer Größenordnung funktioniert.

    Wie sonst nämlich wäre es erklärbar, dass man mit den heute zur Verfügung stehenden wunderbaren, kaum noch verbesserungsfähigen Entwick­lungs­werkzeugen an der Neuimplementierung von Anwendungen scheitert, die man vor 30-40 Jahren schon einmal – und damals doch durchaus erfolgreich – geschaffen hatte (!).

    Oder sind vielleicht die Einkäufer schuld, die davon ausgehen, dass der jeweils billigste Anbieter das Projekt schon stemmen werde? Wollen sie Qualität zum Nulltarif?

 

In 2010 schrieben Wissenschaftler der Carnegie Mellon University, die Software-Entwicklungsprozesse untersucht hatten: The software industry is the only modern high-tech industry that ignores quality until test.

Inzwischen aber zeigt sich noch Schlimmeres:

Selbst wirkungsvoller Test gelingt Software-Entwicklern nicht wirklich (siehe etwa [3], [4] und [5] sowie The Healthcare Go Live Debacle).

Wie wenig effektiv Tester bisher sind, spiegelt sich auch wider in Gartners Erkennt­nis: 40% of problems are found by end users.

Wie lange noch — so frage ich — werden Auftraggeber sich das gefallen lassen?

Und insbesondere: Wann endlich werden Software-Entwickler die Konstruktion von Qualität ebenso ernst nehmen, wie das Konstruieren der Software selbst?

Bisher ist das Streben nach Qualität auf Seiten der Entwickler selten mehr als ein Lippenbekenntnis.

Tatsache ist: Wo Termin und Budget eng werden, wird weniger getestet — mit oft schlimmen Folgen (immer für den Auftraggeber, nicht selten auch für den Auftrag­nehmer). Beide Vertragspartner sollten sich dessen bewusst sein und nicht ver­säumen, dem ganz entschieden zu begegnen: Auf jeden Fall weit effektiver als bisher zu beobachten.

Den oft jungen Entwicklern sei gesagt:

Zu glauben, dass sogenanntes agiles Vorgehen die früher übliche, peinlich genaue Dokumentation aller zu entwickelnden Funktionalität überflüssig macht, ist ein ganz gewaltiger Irrtum: Der Wille, praktisch alles, was man produziert, in jedem noch so unfertigen Zustand gerne dem Anwender zu zeigen (damit der sage, wo er was anders haben möchte), mag ja gut gemeint sein, ist aber einfach nur naiv, denn solches Vorgehen überfordert den Anwender – man schiebt ja so nur eigene Verantwortung auf ihn ab.

Kluge Kunden durchschauen das und akzeptieren es nicht.

Vorzugehen, wie im Agilen Manifest gefordert, kann nur gut sein für prototypische Entwicklung in sehr kleinen Teams. Viele der heutigen Entwickler wollen das nicht einsehen. Methodiker, die ihnen Einhalt gebieten, gibt es nicht mehr wirklich. Es fehlt wohl die Einsicht, dass sie zu bezahlen sehr gut angelegtes Geld wäre …

SCRUM-Verfechter, eine spezifische Subklasse der Agilisten, übersehen, dass sich mit täglichen Stand-up-Meetings nur Mikroprozesse steuern lassen — auf keinen Fall aber Großprojekte.

Die Achillesferse aller Software-Entwickler


Wissenschaftliche Untersuchungen (z.B. eine der Carnegie Mellon University aus 2003) belegen, dass moderne Software, wenn sie in Betrieb genommen wird, i.A. immer noch bis zu fünf Fehler pro 1000 Lines of Code enthält; sprich: etwa 1 Fehler auf je 3 DIN A4 Seiten manuell erstellten Source Codes.

Selbst im besten untersuchten Programm – bestehend aus 10.000.000 Lines of Code – fand sich immer noch 1 Fehler in je 7500 Zeilen. Wirklich vorhanden waren wohl mehr, denn in großen Systemen entdeckt man niemals alle.

Wären mathematische Publikationen auch nur annähernd so fehlerhaft, wäre die Mathematik als Wissenschaft längst in sich zusam­men gebrochen (es baut dort ja Neues stets auf Älterem auf).

Wir sehen: Die Informatik — wenigstens aber ihre Technik zur Qualitätssicherung — steckt heute wohl noch in Kinderschuhen, die vergleichbar sind mit denen, die die Mathematik noch vor Christi Geburt trug.

Auf jeden Fall ist Software heute noch weit davon ent­fernt, so fehlerfrei zu sein, wie die Ergebnisse der Mathematiker das sein möchten (und i.A. auch wirklich sind).

Siehe auch:

 
Dass es wirklich höchste Zeit wird, zeigt eine ganz unglaubliche Sicherheitslücke, die 2015 in gleich mehreren Tausend auf Mongo-DB basierender Anwendungen entdeckt wurde (aber nicht dem Datenbankhersteller anzulasten ist):

Wie die Computerwoche schrieb, handelte es sich um Konfigurationsfehler die zur Folge hatten, dass — im Prinzip wenigstens — jeder Internet-Nutzer mehrere Millionen Kundendaten nach Name, Adresse, E-Mail und Kreditkartennummer im Internet nicht nur abrufen, sondern auch manipulieren konnte.

Von den zahlreichen Entwicklern dieser vielen Anwendungen war ganz offen­sichtlich kein oder viel zu wenig ernsthafter Sicherheitstest durchgeführt worden.

Will da noch jemand behaupten, sie hätten professionell genug gearbeitet?

 

PS: Im Artikel Dogma-driven Development schreibt ein gewisser David Green recht treffend:
 
The trouble is, in this farcical echo chamber of an industry, where the lessons of 40 years ago still haven’t been learnt properly. Where we keep repeating the mistakes of 20 years ago. Of 10 years ago. Of 5 years ago. Of 2 years ago. Of last week. For Christ’s sake people, can we not just learn a little of what’s gone before?

Man ist versucht zu fragen: Warum gestatten Auftraggeber den Software-Entwicklern derart unprofessionell zu arbeiten? Zählt denn wirklich nur, dass sie einen Festpreis einhalten? Warum interessiert die Auftraggeber kaum die abgelieferte Qualität? Fühlt man sich unfähig, sie zu beurteilen?

 

Notwendiges Wissen kompetenter Software-Entwickler


Kompetente Software-Entwickler wissen und beherzigen:
 


 

Gequantelte Zeit — das genauere Modell der Zeit?


Meine Theorie der Zeit — siehe [Idee] und [Diskussion] — sagt, dass in unserem Universum die Zeit nur in Elementar­ereignissen entsteht. Die aber kann man als die Knoten eines gerichteten Graphen sehen, dessen Kanten den Weg je eines Elemen­tarteilchens von seinem Geburtsort (Elementarereignis 1) hin zu seinem Todesort (Elementarereignis 2) darstellen.

Mindestens dann, wenn so ein Quant mit Lichtgeschwindigkeit reist — wie Photonen das tun (und fast alle Bosonen) —, vergeht für dieses Teilchen ja keinerlei Zeit (so sagen uns Einsteins Spezielle und Allgemeine Relativitätstheorie: SRT und ART). Dies spricht für meine Theorie. Gegen sie scheint zu sprechen:

Für Quanten, die Ruhemasse haben, vergeht auf der Reise nun seltsamer Weise aber  d o c h  Zeit.

Anders gesagt: Sie nehmen einen Weg, der nicht nur durch den Raum, sondern auch durch die Zeit (der ART) führt. Nebenbei: Ich frage mich daher manchmal, ob ihnen statt der vermuteten “Reibung” am Higgsfeld nicht vielleicht eher das Aus­scheren aus der räumlichen Dimension der Raumzeit Masse verleiht.

Die sich netzartig verzweigende Zeit im Sinne meiner Theorie – und der Quantenphysik – scheint also nicht wirklich die Zeit der ART zu sein.

Da die ART aber noch nicht berücksichtigt, dass alles in der Natur gequantelt ist – sogar die Wirkung von Kräften und so vielleicht auch der Fluss der Zeit –, könnte es gut sein, dass sich irgendwann in der Zukunft mein Zeitbegriff als der richtigere und genauere herausstellt. Man wird sehen …
 

Tunneleffekt wohl doch verträglich mit Spezieller Relativitätstheorie!


 
In Tunneling Confronts Special Relativity schreibt Günter Nimtz:

Experiments with evanescent modes and tunneling particles have shown that (i) their signal velocity may be faster than light, (ii) they are described by virtual particles, (iii) they are nonlocal and act at a distance, (iv) experimental tunneling data of phonons, photons, and electrons display a universal scattering time at the tunneling barrier front, and (v) the properties of evanescent, i.e. tunneling modes are not compatible with the special theory of relativity.

Was Nimtz da sagt, ergab sich als seine Deutung der Ergebnisse von Experimenten, die er zusammen mit Alfons Stahlhofen durchgeführt hatte.

Die beiden Physiker deuten ihre Beobachtungen so, dass die SRT nicht im Tunnel gilt, der einen » Raum ohne Zeit « darstelle. Die gemessene Tunnelzeit entsteht an der Barrierenfront, während in der Barriere, im » Tunnel « also, keine Zeit verloren geht — Raum ohne Zeit, bestätigt durch [1]. Einer Vermutung von Richard Feynman folgend lasse der Tunneleffekt sich mit virtuellen Photonen erklären, die sich am Ende der Tunnelbarriere wieder in reelle Photonen zurückverwandeln.

Wie mir auffällt, ist diese Deutung aber keineswegs zwingend.

Die Ergebnisse der Experimente von Nimtz und Stahlhofen ebenso wie die noch genaueren einer anderen Forschergruppe können auch so gedeutet werden, dass die Wahrscheinlichkeit, das Quant im Tunnel — sprich: in der Barriere — anzu­treffen Null ist. Dies steht zwar im Widerspruch zu dem, was die Wellenfunktion des Quants zu sagen scheint, aber sie genau zu errechnen — als Wellenfunktion eines Quantensystems, welches Quant und Barriere umfasst, und am besten auch gleich in relativistischer Fassung — ist bisher wohl ohnehin noch niemand gelungen (!).

Diese neue, ganz andere Deutung dessen, was die Experimente zeigen, scheint mir weit sinnvoller als die von Nimtz, da man dann nicht gezwungen ist anzunehmen, dass innerhalb der Barriere die Spezielle Relativitätstheorie ihre Gültigkeit verliert.

Welcher Physiker möchte mir da widersprechen?

 

Aaron Swartz – für Informationsfreiheit gab er sein Leben!


 
Das WWW trauert um Aaron Swartz, der wegen seines Kampfes für ungehinderten Zugang zu wissenschaft­licher Information für alle durch die US-Gerichtsbarkeit in den Tod getrieben wurde: und das, obgleich er sich mit den beiden Organisationen, die sich durch ihn zunächst geschädigt sahen – JSTOR und das MIT – längst außergerichtlich geeinigt hatte.

Traurige Ironie: JSTOR öffnete kurz vor Swartz’ Tod den Zugang zu einem großen Teil des Archivs.

Auch wir sollten Swartz ein ehrendes Andenken bewahren und die gesell­schaft­liche Fehlentwicklung, die er schon 2008 in seinem » Guerilla Manifesto « anprangerte, wirklich ernst nehmen.

Mögen die Zahl aller für Informationsfreiheit Kämpfenden jetzt sprunghaft steigen und möge uns allen bewusst werden, in welchem Ausmaß Verlage, wie etwa der Wissenschaftsverlag Elsevier, durch ihre nun langsam alle Grenzen übersteigende Profitgier der Gemeinschaft aller Wissen Suchenden schaden — und damit indirekt auch der Gesellschaft insgesamt.
 
 
Mehr zum Problem:

 

Mit weniger Aufwand erfolgreicher lernen


Während meiner Schulzeit fiel mir immer wieder auf, dass ich in Prüfungen besonders dann erfolgreich war, wenn ich mir

  • am Abend vor dem Prüfungstag nochmals ganz intensiv alles Wichtige angesehen hatte
  • am Prüfungstag selbst aber NICHT mehr versucht hatte, mir das Gelernte nochmals ins Gedächtnis zu rufen (oder gar nochmals irgendwelche Unter­lagen zu konsultieren).

Psychologen aus Sidney berichten jetzt Ähnliches. Sie beobachteten:

Lernen OHNE Pause ist WENIG effektiv.

Ursache hierfür ist offenbar, dass unser Gehirn erst während hinreichend langer Pausen den Inhalt unseres Kurzzeitgedächtnisses ins Langzeitgedächtnis trans­feriert (und dort sozusagen einbrennt):

31 Studenten aufgeteilt in 3 Gruppen hatten 2 Lerneinheiten zu bewältigen:

  • Gruppe 1 ohne Pause,
  • Gruppe 2 mit einer einstündigen Pause,
  • Gruppe 3 absolvierte nur eine Lerneinheit.

Am Tag darauf gab die Gruppe ohne Pause viel weniger richtige Antworten als Studenten aus Gruppe 2 oder 3.

Dieser Unterschied war nicht auf Ermüdung zurückzuführen (die Re­aktions­zeit der Studenten hatte sich während des Versuches nicht verschlech­tert).

Quelle: SZ vom 16.8.2012

 

Verschieden schnell durch die Zeit reisen


Einstein sagt: Zeit ist, was man von der Uhr abliest — aber kaum zwei Uhren gehen gleich:

Sind A und B zwei Objekte, die sich treffen (Treffen 1), danach einige Zeit getrennte Wege gehen, sich aber schließlich doch wieder begegnen (Treffen 2), so werden sie fast immer in der Zwischenzeit unterschiedlich stark gealtert sein.

Das zeigt sich auf jeden Fall an mitgeführten Atomuhren gleicher Bauart: Wurden sie im Zuge von Treffen 1 synchronisiert, so werden sie bei Treffen 2 dennoch mehr oder weniger unterchiedliche Zeit anzeigen.

Ein erstes Beispiel hierfür wurde schon in Beitrag Warum die Zeit nicht wirklich existiert diskutiert.

Hier nun zwei weitere Beispiele (gefunden in Allgemeine Relativitätstheorie macht Science Fiction wahr):

  • Nach Einsteins Allgemeiner Relativitätstheorie wird der Fluss der Zeit auch durch die Gravitation verlangsamt. Jeder Bergmann, der in einen Schacht einfährt und nach beendeter Schicht wieder an die Oberfläche kommt, wird nach seiner Rückkehr etwas weniger schnell gealtert sein als ein oben zurückgebliebener Kollege: Da nämlich der Boden des Schachtes dem Erdmittelpunkt näher ist als der Einstieg, wirkt dort höhere Schwerkraft, und so werden die Uhren dort langsamer gehen, als an der Erdoberfläche. Natürlich wird in diesem Beispiel der Unterschied so klein sein, dass er nicht wirklich messbar ist.
     
  • Für einen Astronauten, der den Merkur besucht, wäre der Effekt schon größer. Nimmt man an, er würde erst nach 30 Jahren auf die Erde zurück­kehren, wäre er nach seiner Rückkehr zur Erde um etwa 22 Sekunden weniger gealtert als dort verbliebene Menschen. Der Grund hierfür: Merkur ist der Sonne näher als die Erde, so dass die Anziehungskraft der Sonne dort viel stärker wirkt. Hinzu kommt die im Vergleich zur Erde höhere Umlaufge­schwindigkeit des Merkur um die Sonne, die ebenfalls die Bewegung durch die Zeit verlangsamt.
     
  • Noch größere Effekte ließen sich erzielen, wenn man ein Schwarzes Loch besuchen würde: Angenommen der Astronaut würde sich mit seinem Raum­schiff bis etwa 3 cm vor den Ereignishorizont eines Schwarzen Loches mit einer Masse von etwa 1000 Sonnenmassen heranpirschen und dort 1 Jahr parken, so würde er nach seiner Rückkehr zur Erde feststellen, dass auf dort zurückgebliebenen Uhren etwa 10000 mal so viel Zeit vergangen ist wie auf seiner eigenen.

Diese Beispiele zeigen klar:

  • Je zwei Punkte (Ereignisse) der Raumzeit können durch zeitlich ganz verschieden lange Wege miteinander verbunden sein.
     
  • Einen besonders kurzen Weg zu nehmen, kommt einer Reise in die Zukunft dessen gleich, der nach gleichzeitigem Reisebeginn einen der zeitlich längeren Weg gewählt hat.

 
Interessant ist auch: Da Personen massebehaftet sind (sich also niemals ebenso schnell wie das Licht bewegen können), gibt es für sie zwischen je zwei Ereignissen, an denen sie gemeinsam teilnehmen, keinen kürzesten Weg durch die Zeit.

Wie man Software Test effektiv macht


Wer daran interessiert ist, entstehende Software möglichst wirkungsvoll zu testen (oder zu kontrollieren, wie effektiv sie getestet wird bzw. wurde), dem empfehle ich die Lektüre meiner Seite Aus dem Erfahrungsschatz eines IT Managers.

Meinungen zum dort Gesagten, bitte hier als Kommentar hinterlassen. Danke.

 

RZQ: Die Raumzeit der Quanten — Teil 2


Ausgehend von in [VZ] gegebenen Definitionen lässt sich feststellen:

Wenn ich Anton Zeilingers Argumentation richtig verstehe, hat sein Experiment bewiesen (siehe seine Aussage zitiert als letzter Satz in [3] und auch [4]), dass der Durchschnitt G(E) von V(E) und Z(E) neben E durchaus noch weitere Ereignisse enthalten kann und die einander dann in völlig gleichberechtigter Weise beeinflus­sen und prägen können.

Aus meiner Sicht beweist das,

  • dass man alle Elemente von G(E) als gleichzeitig existierend anzusehen hat, obgleich es die einen nur gibt, weil ein Impuls anderer sie erzeugt hat,
     
  • und dass das Zeitquantum G(E) nicht kleiner sein kann, als die Zeit, die jener Impuls benötigt hat, seinen Weg zu durchlaufen.

Es scheint da also zu sein, wie anderswo in der Physik auch:

Ein Mensch etwa kann — ganz so wie jene Ereignisse — gleichzeitig mit einigen seiner Vorfahren und/oder Nachfahren existieren, und jeder in dieser Familie ist dann in der Lage, den jeweils anderen zu beeinflussen und weiter zu prägen (etwa dadurch, dass er ihm Fertigkeiten vermittelt oder eine Krankheit an ihn überträgt).

Diese Analogie aber hat Grenzen, denn man beachte:

Jedes Ereignis der Raumzeit wird der Menge G(E) entweder angehören oder nicht, kann sich hinsichtlich dieser Eigenschaft aber nicht ändern.

Mit anderen Worten: G(E) ist atomarer Teil der Raumzeit, kann aber dennoch räumlich weit verteilt sein — letzteres mindestens dann, wenn E nicht einziges Element von G(E) ist.

Da Quanten verschränkt sein können, diese Eigenschaft aber auch zu verlieren in der Lage sind, wird klar, dass sie nicht Teil von Ereignissen sein können. Meiner Meinung nach sollte man jedes Quantum als Erscheinungsform der Kante sehen, die es durchwandert.

Damit wären Quanten — Elementarteilchen also — tatsächlich schwingende Strings oder Branen, die jeweils genau zwei Ereignisse miteinander verbinden (und als solche dann sogar noch Teil der Raumzeit RZQ sind).

Diese Interpretation akzeptiert, besteht die Raumzeit nur aus Ereignissen und Elementarteilchen. Als ein aus jeweils genau einem Ereignis entstehender Impuls, der seinerseits zum Entstehen neuer Ereignisse beiträgt, kommt man zum Schluss, dass es da mindestens ein erstes Ereignis gegeben haben muss, von dem wir nicht wissen, wie es entstand (ein Ereignis vom Typ Urknall).

Wir sehen: Mein Modell RZQ passt sehr gut zu allem, was die Physiker schon wissen.