Die experimentelle Forschung in der Softwaretechnik leidet an einer Reihe von Problemen, die nicht auf die Unfähigkeit der Forscher und Forscherinnen oder auf eine falsche Ausrichtung der Forschungslandschaft zurückzuführen, sondern grundsätzlicher Natur sind. Alle diese Probleme lassen sich auf zwei Grundprobleme zurückführen, nämlich hohen Aufwand für Experimente und eine große Zahl relevanter Variablen:
Hoher Aufwand: Ein gutes und wissenschaftlich aussagekräftiges Experiment in der Softwaretechnik ist in den meisten Fällen enorm teuer. Das hat mehrere Gründe.
Viele Variablen: Im Vergleich zu Experimenten in anderen Wissenschaften oder anderen Gebieten der Informatik müssen in der Softwaretechnik erheblich mehr zu kontrollierende Variablen beachtet werden, um ein echtes kontrolliertes Experiment zu erhalten. Diese Variablen liegen in folgenden Sektoren:
Diese beiden Grundprobleme zusammengenommen führen dazu, daß schon ein einzelner wissenschaftlicher ,,Datenpunkt`` teuer ist, aber viele davon zum Aufbau einer sinnvollen Theorie über einen Teilbereich benötigt werden. Jedes Experiment liefert nur einen solchen Datenpunkt, also eine Beobachtung über das Verhalten eines Softwaretechnik-Systems. Für jede der relevanten Variablen brauchen wir jedoch mehrere Beobachtungen, um ihren Einfluß abschätzen zu können. Da wir auch die Wechselwirkungen zwischen den Variablen nicht kennen, aber davon ausgehen müssen, daß sie relevant sind, gibt es eine kombinatorische Explosion in der Zahl der benötigten Experimente zum Abtasten eines Raums von mehreren Variablen.
Machen wir mal eine kurze Überschlagsrechnung anhand der obigen Auflistung relevanter Variablen: Nehmen wir an, wir bräuchten für eine bestimmte Fragestellung (sagen wir mal, den Vergleich zweier Entwurfsmethoden) zum ausreichenden Abtasten des Einflusses aller versuchspersonenbezogenen Variablen nur 3 Klassen von Versuchspersonen (mäßig kompetent, kompentent, sehr kompetent). Nehmen wir ferner an wir brauchen 3 Schwierigkeitsgrade der Aufgabenstellung (einfach, mittel, schwierig) und 8 Anwendungsgebiete, 2 Stufen von Qualitätsanforderungen (normal oder hoch), 2 Arten von Terminplänen (normal oder schnell) und 8 Kombinationen sonstiger Methoden; schließlich nur 3 verschiedene Arbeitsumfelder. Dann kommen wir durch Bildung des Kreuzproduktes aller dieser Variablenräume auf Versuche nur zur kompletten Klärung der Frage, unter welchen Umständen eine Entwurfsmethode A besser ist als eine andere Entwurfsmethode B!
Der einzige Ausweg aus diesem Problem ist das Beschneiden dieses Suchraums während der Suche aufgrund der Zwischenergebnisse, denn da wir ingenieurmäßige Anwendungen unseres Wissens im Sinn haben, interessiert uns ja nicht der gesamte Raum, sondern nur seine effizienten Teilbereiche. Wenn wir also im Beispiel nach einer kleinen Zahl von Experimenten in weit auseinanderliegenden Teilbereichen des Variablenraumes erkennen, daß Methode A wohl nur für sehr simple Probleme besser ist als B, dann können wir die ganze restliche Versuchsreiche einsparen. Für ein solches Vorgehen dürfen dann nicht nur die nackten Experimentergebnisse herangezogen werden, sondern wir müssen auch die detaillierteren (teilweise subjektiven) Beobachtungen bei der Experimentdurchführung berücksichtigen. Auch in diesem Punkt läuft alles mal wieder darauf hinaus, daß die Anwendung des gesunden Menschenverstandes durch nichts zu ersetzen ist.