Explosionen, Klaviere und wie man Aufrufzahlen schätzt

Es gibt schönere Orte. Und doch standen sie alle in dieser staubigen Wüste und warteten. Dicke Regenwolken versperrten den Blick auf die Sterne. Blitze zuckten am Himmel. Eigentlich hätten sie noch ein paar Tage warten wollen. Dann war besseres Wetter gemeldet. Aber wie immer waren die Termine, die die Politik festgesetzt hatte, wichtiger als technische Überlegungen. Also war der Test für den 16. Juli angesetzt — zum frühestmöglichen Zeitpunkt — und damit rechtzeitig vor dieser wichtigen Konferenz in Potsdam.

Alle waren sie früh aufgestanden. Eigentlich hätte es bereits um vier Uhr losgehen sollen. Aber bei Gewitter… nein, ganz so verrückt war man dann doch nicht. Nun war es fast halb sechs. In einer guten halben Stunde würde die Sonne aufgehen. Langsam lies der Regen nach. Lange konnte es nicht mehr dauern.

Enrico Fermi

Enrico Fermi starrte gebannt durch das Brett mit dem Schweißerglas, das man ihm gegeben hatte und ein leichtes Schmunzeln huschte über seine Lippen. Die Idee mit der Wette fand er immer noch gut. Würde die Explosion die Atmosphäre in Brand setzen und wenn ja würde es nur der Bundesstaat oder den gesamte Planeten zerstören? Na, wer wettet mit? Die anwesenden Physiker wussten natürlich, dass das extrem unwahrscheinlich war. Sie alle kannten das 20-seitige wissenschaftliche Paper, das sich mit dieser Frage beschäftigte. Bainbridge, der Versuchsleiter, fand das alles weniger lustig. Aber das Gesicht das der GI gemacht hatte! Das war es wert!

Plötzlich wurde es taghell und Fermi spürte die Hitze an den Gliedmaßen, die nicht durch das Brett verdeckt waren. Zehn Meilen entfernt war die Bombe explodiert und der erste Atompilz erhob sich in den Himmel. Ein Glück! Das hatte also geklappt.

Aber wie stark war die Explosion denn nun? Bisher gab es nur mathematische Vorausberechnungen. Sensordaten (zumindest von den Sensoren, die die Explosion überlebten) würden noch eine Weile auf sich warten lassen. Immerhin musste man sie erst finden, einsammeln und dann auslesen.

Gut 40 Sekunden nach der Detonation erreichte Fermi die Druckwelle. Darauf hatte er gewartet. Er nahm ein paar Papierschnipsel, die er zu diesem Zweck zurechtgelegt hatte, lies sie fallen und die Druckwelle wehte die Papierschnipsel zweieinhalb Meter weit. Nach kurzer Überlegung kam er zum Schluss, dass die Sprengkraft wohl bei etwa 10 kt TNT lag, was den späteren Messergebnissen erstaunlich nahe kam.

Was man auch immer von seiner nicht unwesentlichen Beteiligung am Manhattan-Projekt halten mag, eins konnte Enrico Fermi sehr gut: Schätzen. Und dass so gut, dass eine ganz bestimmte Schätzmethode bzw. die passende Aufgabenstellung nach ihm benannt ist: Fermi-Problem.

Bei einem Fermi-Problem macht man eine Abschätzung über etwas, zu dem man kaum belastbare Daten hat. Man erzählt sich, dass Fermi seinen Studenten gerne die Aufgabe gestellt hat, zu schätzen, wie viele Klavierstimmer es in Chicago gibt. Typischerweise erntete er von Seiten seiner Zuhörerschaft irgend etwas zwischen Ratlosigkeit und blankem Entsetzen.

Und dann erklärte er, wie man auf einfache Art und Weise eine solche Abschätzung machen kann. Ich versuch das auch mal: Chicago hat, laut Wikipedia, ca. 2,7 Mio Einwohner, ach sagen wir 3. Mein Heimatdorf (das kenn ich besser) hat ca. 1400 Einwohner, ach sagen wir 1000. Sicher gibt es auch dort einige Klaviere, aber solche die regelmäßig gestimmt werden? Einstellig. Sagen wir 10. Hochgerechnet auf Chicago wären das 30000 Klaviere, die regelmäßig gestimmt werden. Von Klavieren hab ich keine Ahnung, aber regelmäßig stimmen bedeutet bestimmt einmal im Jahr. Also sicher nicht einmal im Monat und die, die nur einmal alle 10 Jahre stimmen lassen, zählen vermutlich nicht zur Hauptkundschaft des Klavierstimmers. Ein Klavier zu stimmen, ist vermutlich eine Aufgabe von ein paar Stunden (inkl. Anreise, etc.). Zumindest ist es nicht in einer Minute gemacht und mehrere Tage kann ich mir auch nicht vorstellen. Unser prototypischer Klavierstimmer stimmt also eine handvoll Klaviere am Tag und macht das an 200-300 Tagen im Jahr, d.h. wir kommen auf — hm… was lässt sich leicht rechnen — 200*5 = 1000 Klaviere pro Klavierstimmer und Jahr. Bei 30000 Klavieren müsste es also etwa 30 Klavierstimmer geben.

Wie genau ist das nun? Wolfram Alpha behauptet, es gibt in der Metropolregion Chicago 290 „musical instrument repairers and tuners“. Die Metropolregion Chicago ist dreimal so groß wie Chicago selbst. Damit wären wir bei etwa 100 für die Stadt Chicago. Allerdings sind das ja nicht nur Klavierstimmer, sondern auch Leute, die Geigen reparieren, etc. Es sollten also deutlich weniger als 100 sein. Wie viele es nun tatsächlich gibt? Keine Ahnung, aber ich denke, wir sind irgendwie in der richtigen Größenordnung.

Das klingt nach einer ziemlichen Milchmädchenrechnung und jede einzelne der obigen Annahmen ist wahrscheinlich ziemlich falsch. Dennoch ist der Ansatz valide: Manchmal werden wir deutlich zu niedrig und manchmal deutlich zu hoch geschätzt haben. Das gleicht sich dann wieder aus, weshalb wir bei einer halbwegs sinnvollen Zahl landen. Natürlich hätten wir auch bei 3 oder 300 landen können, aber durch unsere Überlegung können wir guten Gewissens sagen, dass es wohl keine 3000 sind und man von dem Job leben kann.

Das selbe Verfahren kann man verwenden, wenn es darum geht, Aufrufzahlen ab zu schätzen. Angenommen wir entwickeln ein neues Feature, das zu zusätzlichen Calls auf einen Backend-Service führen wird. Jetzt stellt sich die Frage, wie viele Calls das sein werden und ob die aktuelle Infrastruktur das aushält. Wir müssen entscheiden, ob ein einfacher Ansatz trägt oder ob wir irgendwelche Maßnahmen ergreifen müssen. Beispielsweise könnten wir Caching einbauen, mehr Hardware kaufen oder einen graduellen Rampup fahren. Wir haben durchaus Möglichkeiten, aber diese wollen wir nur nutzen, wenn wir das auch tun müssen, denn sie kosten Zeit, Geld und Komplexität.

Natürlich hab ich keine Ahnung, wie die Kunden das neue Feature verwenden werden. Aber durch die bestehenden Features kann man das gut abschätzen. Angenommen das Feature ist auf einer gewissen Unterseite zu finden, dann ist zu erwarten, dass nur die Kunden das Feature nutzen werden, die diese Unterseite besuchen. Wir gucken uns also die Aufrufzahlen der Unterseite an. Typischerweise werden wir feststellen, dass die Calls nicht gleichmäßig verteilt sind, sondern einem gewissen Tag-Nacht-Rhythmus unterliegen. Wir suchen uns also eine Stunde aus, die einem täglichen Peak entspricht. Angenommen das sind 10000 Calls die Stunde. Nun werden nicht alle Kunden, die die Unterseite ansurfen, das neue Feature nutzen. Sind das 100%, 10%, 1% oder 0,1%? Sagen wir 10% werden das Feature nutzen. Damit kommen wir auf 1000 Calls pro Stunde im täglichen Peak.

Womöglich wird das neue Feature zusätzlich noch irgendwo beworben. Vielleicht in einem Newsletter oder so. Angenommen dieser wird an 1Mio Kunden verschickt. Nicht jeder Kunde wird die Mail lesen. Nicht jeder, der die Mail liest, wird das Feature nutzen wollen. Sagen wir 1% der Kunden mit Newsletter wollen das Feature ausprobieren. Das wären 10000 zusätzliche Calls. Natürlich nicht pro Stunde, sondern verteilt über einen gewissen Zeitraum. Nicht jeder ruft seine Mails täglich ab. Und zwischen lesen und Feature nutzen wird auch nochmal eine gewisse Zeit vergehen. Sagen wir, diese 10000 Calls verteilen sich über 5 Tage. Ein Tag hat 10 Stunden (plus 14 Stunden „Nacht“). Demnach verteilen sich die 10000 zusätzlichen Calls auf 50 Stunden. Wir kommen also auf 200 Calls pro Stunde durch den Newsletter. Demnach müssen wir mit 1200 Calls im täglichen Peak rechnen.

Selbstverständlich wird die Schätzung besser, wenn wir weitere Zahlen und Expertenmeinungen mit einfließen lassen. Wahrscheinlich gibt es ja Kollegen, die Zahlen haben, wie häufig Kunden Newsletter lesen. Oder aber es gibt Leute, die sich fachlich tief mit dem Feature und dem Markt auseinandergesetzt haben und ein besseres Gespür für die Nutzung haben. So übliche Tricks, wie unterschiedliche Personen unabhängig voneinander die Abschätzung machen zu lassen, helfen natürlich ebenso.

Je nachdem, wie sicher wir uns sein wollen, sollten wir noch mehr oder weniger Puffer mit einrechnen. Das können wir auf zwei Arten tun: Entweder wir packen einen festen Prozentwert oben drauf. Beispielsweise nehmen wir immer das Doppelte an, um unsere Entscheidung zu treffen, ob wir weitere Maßnahmen brauchen.

Die Alternative ist eine Abschätzung nach oben und unten. Bei unserer Abschätzung haben wir jeweils irgendwelche Prozentwerte quasi-willkürlich gewählt — in der Hoffnung mal zu niedrig und mal zu hoch zu greifen. Wenn wir jetzt unsere Schätzung so verändern, dass wir immer den größeren Wert nehmen, kriegen wir als Ergebnis eine obere Grenze. Nehmen wir immer einen eher optimistischen Wert, kriegen wir eine untere Grenze. Der entstehende Korridor ist typischerweise sehr breit. Wenn aber selbst im Worst-Case nichts schlimmes passiert, können wir sehr zuversichtlich sein.

Eine leichte Abwandlung einer Fermi-Schätzung setze ich ein, wenn ich Lebensmittel einkaufe. Um zu überschlagen, wie viel der Einkauf kosten wird, gehe ich einfach die Einkäufe durch während ich sie aufs Band lege und veranschlage für jedes Produkt 1, 2 oder 3 €. Dazu kommen noch die zwei drei Dinge, die signifikant mehr kosten und ich hab eine Zahl, die relativ gut passt. So bemerke ich dann auch, wenn der Kassierer aus Versehen 12 statt 2 Glückwunsch-Karten tippt (mir schon passiert).

Oder wenn ich Präsentationen halte. Jede Folie kostet 0, 1, 2 oder 3 Minuten. Mehr ist eigentlich nie nötig. Drei Minuten ist schon sehr lang. Da kann man eine Menge erzählen. Ich brauche Präsentationen also nicht zu üben, um zu wissen, ob sie vielleicht zu kurz oder zu lang sind.

Ob unsere Atombombenbauer das auch gemacht haben, weiß ich nicht. Dennoch stelle ich mir gerade vor, wie Enrico Fermi seine Atombomben im Supermarkt aufs Band legt und dabei leise zählt: 10 Kilotonnen, 20 Kilotonnen, 40 Kilotonnen… Von den Dingern gibt es immer noch verdammt viele.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert