Lineare Leistungskurve

Contest
Keine Kommentare

Bei den „Catalysts Coding Contests“ hat sich gezeigt, dass nur die besten Software-Entwickler eine “lineare Leistungskurve” haben.
Aber was bedeutet das und warum wäre das interessant?

Ein Beispiel: Man sitzt im Auto und gibt Gas. Je mehr Gas man gibt, desto mehr Leistung soll der Motor liefern. Die Motorleistung geht gerade (= linear) nach oben. Das ist auch gut so, damit man sicher überholen kann. Es wäre ja gefährlich, wenn die Leistungskurve einknicken würde, d.h. gerade beim Überholen wäre dann nicht mehr genug Leistung verfügbar, um auch nach vorne zu kommen.
Volllast-Kennlinie eines Viertakt-Benzinmotors
Quelle: http://home.foni.net/~michaelbosch/auto/economic/calconsu.htm

In der Informatik gibt es dazu eine Analogie:

  1. wenn man sich mit einem Problem beschäftigt, schaut es anfangs vielleicht gar nicht so schlimm aus. den ersten Teilaspekt (Level 1 = wenig Gas) schafft man vielleicht noch recht schnell
  2. wenn man dann weiterdenkt, wird es schwieriger, umfangreicher, komplexer; d.h. man braucht mitunter dann immer länger, um zu verstehen, wie das eigentlich alles funktionieren soll
  3. viele Leute geben bei kniffligen Problemen dann einfach auf (“wer hat denn selbst geschafft, den Zauberwürfel zu lösen?”)
  4. die allerwenigsten brauchen auch bei steigender Komplexität (= höherem Level = viel Gas) nicht länger, um das Problem zu lösen, “sie brauchen für den nächsten Level auch nicht länger” bedeutet “sie haben eine lineare Leistungskurve”

In der folgenden Abbildung sieht man, wie lange die besten 15 bei einem Programmierwettbewerb im Jahr 2008 gebraucht haben. Das Problem war dabei in 7 Levels unterteilt (nach rechts aufgetragen), die Zeit, die die Teilnehmer für die Lösung des x.ten Levels gebraucht haben, ist nach oben summiert aufgetragen. Je flacher und je gerader eine Kurve verläuft, desto besser ist es.

  • Anfänglich war das Feld dicht beieinander, die besten 12 haben für den ersten Level zwischen 25 und 50 Minuten gebraucht.
  • Auch der zweite Level war schnell bewältigt – in ein paar weiteren Minuten.
  • Beim dritten Level hatten manche schon mehr Mühen – auf einmal dauerte es länger
  • Beim vierten Level brauchten schon mehrere länger
  • Den fünften Level schafften nur mehr 10 Teilnehmer.
  • Beim sechsten Level brauchten 8 schon über 2:50, nur mehr 2 Teilnehmer lagen unter 2 Stunden

Schlussendlich hatten in diesem Fall nur mehr die ersten beiden eine annähernd lineare Leistungskurve. Sie haben die immer schwieriger werdenden Levels dennoch ähnlich schnell lösen können wie die leichteren Levels.

Zeit pro Level akkumuliert
Quelle: Catalysts

Nur die besten zwei Leute können sehr gut mit Komplexität umgehen, verstehen auch unter Stress sehr schnell, worum es geht und finden rasch eine adäquate Lösung.

Es ist eine Freude, mit solchen Leuten zusammenzuarbeiten, da Ergebnisse auch unter Stress und hoher Belastung rechtzeitig geliefert werden. Und das freut dann nicht nur Kollegen, sondern auch die Kunden.

Wie – außer bei Programmierwettbewerben – würde diese Eigenschaft eines Software-Entwicklers sichtbar werden?

Vorheriger Beitrag
Alles klar für den Contest!
Nächster Beitrag
Bisherige Programmierwettbewerbe – Catalysts Coding Contests

Related Posts

No results found

Schreibe einen Kommentar

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

Bitte füllen Sie dieses Feld aus
Bitte füllen Sie dieses Feld aus
Bitte gib eine gültige E-Mail-Adresse ein.
Sie müssen den Bedingungen zustimmen, um fortzufahren

Menü