Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Vor einiger Zeit fand zwischen mir und einem guten Freund ein Gespräch statt, in dem folgende Sätze zu hören waren:

— Die Zahl der Programmierer wird ständig wachsen – denn die Menge an Code wächst und immer mehr Entwickler müssen ihn unterstützen.
— Aber der Code ist in die Jahre gekommen, einiges davon wird nicht mehr unterstützt. Es ist sogar möglich, dass es ein gewisses Gleichgewicht gibt.

Als ich mich ein paar Tage später daran erinnerte, fragte ich mich, ob die Pflege des Codes, die mit der Zeit immer mehr Ressourcen erfordert, letztendlich die Entwicklung neuer Funktionen lahmlegen könnte, oder ob dafür eine unbegrenzte Erhöhung der Zahl der Programmierer erforderlich wäre? Mathematische Analysen und Differentialgleichungen halfen dabei, die Abhängigkeit der Förderhöhe von der Entwicklung qualitativ einzuschätzen und Antworten auf Fragen zu finden.

Frage eins. Kann der Support alle Entwicklungsressourcen „auffressen“?

Stellen Sie sich ein Team von Programmierern vor, in dem die Anzahl der Teilnehmer konstant ist. Anteil ihrer Arbeitszeit Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? (Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?) wird für die Entwicklung neuen Codes aufgewendet, der verbleibende Teil der Zeit Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? geht zur Unterstützung. Im Rahmen der Annahmen des Modells gehen wir davon aus, dass die erste Art von Aktivität darauf abzielt, das Codevolumen zu erhöhen, und die zweite auf dessen Änderung (Fehlerkorrektur) abzielt und keinen wesentlichen Einfluss auf das Codevolumen hat.

Bezeichnen wir Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? die gesamte bis zu diesem Zeitpunkt geschriebene Codemenge Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?. Angenommen, die Geschwindigkeit beim Schreiben von Code ist proportional Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?wir bekommen:

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Es liegt nahe, anzunehmen, dass die Arbeitskosten für die Pflege des Codes proportional zu seinem Volumen sind:

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

oder

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Woher

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Wir erhalten eine Differentialgleichung, die leicht integriert werden kann. Wenn zum ersten Zeitpunkt die Codemenge Null ist, dann

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

bei Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? Funktion Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?Und Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?. Und das bedeutet, dass die Entwicklung neuer Funktionen im Laufe der Zeit schrittweise auf Null reduziert und alle Ressourcen an den Support übertragen werden.

Wenn jedoch während der Zeit Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? Wenn der Code veraltet ist und nicht mehr unterstützt wird, dann die Menge an Code, die gleichzeitig unterstützt werden muss Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? ist schon gleich Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? Dann

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

а Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? ist eine Lösung einer Differentialgleichung mit retardiertem Argument [1]:

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Die Lösung einer solchen Gleichung wird durch die Angabe der Werte eindeutig bestimmt Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? „vor Anbeginn der Zeit“ Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?. Da der Code in unserem Fall vor dem ersten Zeitpunkt noch nicht geschrieben war Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? при Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?.

Schauen wir uns ein paar Beispiele an. Wir messen die Zeit in Jahren und die Codemenge in Tausenden von Zeilen. Dann für Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? Werte in der Größenordnung von Zehnern sind akzeptabel, wir nehmen 50 und 100. Das heißt, in einem Jahr wird das Entwicklungsteam fünfzig bzw. einhunderttausend Codezeilen schreiben. Für Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? akzeptable Werte können sein: Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?, Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?, Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?. Dies bedeutet, dass ein Entwicklungsteam die Menge an Code, die es in einem Jahr schreibt, unterstützen kann, unabhängig davon, ob es sich um eine Viertel-, Halb- oder Vollzeitbeschäftigung handelt. Als durchschnittliche Lebensdauer des Codes legen wir folgende Werte fest: 1, 2 und 4 Jahre. Wenn wir die Gleichung numerisch lösen, erhalten wir Beispiele für das Verhalten der Funktion Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? für einige Parameterkombinationen Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?.
Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?
Verhalten der Funktion Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? Mit zunehmendem Alter des Codes hat er sich geändert. Die Funktion ist nicht mehr monoton, aber die Schwankungen „beruhigen“ sich mit der Zeit, und es besteht die Tendenz dazu Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? auf einen konstanten Wert. Die Grafiken zeigen: Je mehr Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?, Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? и Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?Das heißt, je langsamer der Code altert, je schneller neuer Code entwickelt wird und je geringer die Qualität des Codes ist, desto weniger Ressourcen bleiben für die Entwicklung neuer Funktionen übrig. Es bestand der Wunsch, zumindest ein Beispiel dafür zu geben Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? „gekuschelt“ nahe Null. Dies erforderte jedoch die Auswahl sehr schlechter Entwicklungsqualitätsindikatoren und eines Codes, der nicht lange altert. Selbst in der unteren linken Grafik verbleibt eine beträchtliche Menge an Ressourcen für die neue Funktionalität. Daher lautet die richtige Antwort auf die erste Frage eher: theoretisch – ja, es ist möglich; praktisch - kaum.

Fragen, die nicht beantwortet werden konnten:

  1. Ist es wahr dass Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? neigt dazu, eine gewisse Grenze zu erreichen Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? für alle Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?? Wenn nicht für alle, für welche dann?
  2. Wenn ein Grenzwert existiert, wie hängt sein Wert davon ab? Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen??

Frage zwei. Könnte die Codepflege zu einem unbegrenzten Wachstum der Zahl der Programmierer führen?

Bezeichnen wir Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? die Anzahl der Programmierer, die an der Entwicklung neuen Codes beteiligt sind. Wie oben, Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? – die Menge an Code, die bis zu einem bestimmten Zeitpunkt geschrieben wurde Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?. dann

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Halten Sie den Code-Support auf Trab Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen? Programmierer. Unter Berücksichtigung des Alterungscodes,

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Woher

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

wenn Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?dann

Wie viele Programmierer sind nötig, um zuvor geschriebenen Code zu pflegen?

Daher ist die Antwort auf die zweite Frage negativ: Wenn die Anzahl der Entwickler neuen Codes begrenzt ist, kann die Unterstützung unter Bedingungen alternden Codes nicht zu einer unbegrenzten Erhöhung der Anzahl der Programmierer führen.

Abschluss

Bei den betrachteten Modellen handelt es sich um „weiche“ mathematische Modelle [2]. Sie sind sehr einfach. Dennoch entspricht die Abhängigkeit der Simulationsergebnisse von den Parameterwerten den Erwartungen für reale Systeme, was für die Angemessenheit der Modelle und eine ausreichende Genauigkeit spricht, um qualitativ hochwertige Schätzungen zu erhalten.

Referenzen

1. Elsgolts L.E., Norkin S.B. Einführung in die Theorie der Differentialgleichungen mit abweichender Argumentation. Moskau. Verlag „Wissenschaft“. 1971.
2. Arnold V.I. „Harte“ und „weiche“ mathematische Modelle. Moskau. Verlag MCNMO. 2004.

Source: habr.com

Kommentar hinzufügen