Für wie viel Code sollte ich verantwortlich sein?


12

Durch Kollegen und Exit-Interviews habe ich gehört, dass ich in meinem kleinen Unternehmen für 3-10 Mal mehr Code "verantwortlich" bin als bei einem anderen Job. Ich versuche nach einer Art Fuzzy-Metrik zu suchen, mit der ich meine Arbeitslast mit anderen in meinem Bereich vergleichen kann.

Mit "Code-Verantwortung" meine ich nicht "Ich bin der einzige, der Bereich X der Codebasis kennt" (obwohl dies in einer Startumgebung leider häufig der Fall ist), sondern ich beziehe mich auf eine Zahl wie "code_base_size" / Anzahl_der_Entwickler ".

Gibt es Ressourcen, mit denen ich meine Arbeitslast genauer messen kann, als nur Codezeilen zu zählen?


8
Codezeilen sind nicht unbedingt ein genaues Maß für Komplexität oder Arbeitsbelastung.

3
Daher mein letzter Satz :)
Michael

2
@ ThorbjørnRavnAndersen: "Genau"? Ich denke, Sie könnten etwas anderes bedeuten. Es ist ungefähr das einzige Maß, das wirklich genau (und präzise) ist. Barry Boehm (Software Engineering Economics) hat gezeigt, dass es sich um die einzig sinnvolle Maßnahme handelt. Das macht es unbrauchbar für die Projektschätzung. Aber als retrospektive Maßnahme, die Aufwand und Dauer vorhersagt, war sie viel besser als jede andere.
S.Lott

Antworten:


12

Die einzige konkrete Maßnahme für einen angestellten Entwickler ist die Anzahl der Stunden, die für das Programmieren und Beheben von Fehlern aufgewendet werden, sowie das Geld, das Sie dafür erhalten. Wenn Sie an 6 Tagen in der Woche für 50.000 US-Dollar pro Jahr spät abends bleiben, haben Sie ein Problem. Unabhängig davon, für wie viele Codezeilen Ihr Chef die Verantwortung übernehmen möchte, werden Sie unter Berücksichtigung einer bestimmten Codequalität natürlich nicht mehr verarbeiten als Sie können. Die Entwicklung von Code mit schlechter Qualität ohne Komponententests ist eine gute Möglichkeit, mit viel mehr Code umzugehen, aber das Unternehmen muss den Preis für eine große technische Verschuldung bezahlen .

In kleinen Unternehmen sind Entwickler in der Regel für viel mehr Code verantwortlich als in großen Unternehmen . Der Faktor 3 bis 10, auf den Sie sich beziehen, erscheint mir realistisch.


6

Ich kenne ein dreiköpfiges Team, das eine Codebasis von 1,5 Millionen Zeilen verwaltet und darin nicht ertrinkt. Das wichtige Maß ist nicht, für wie viel Code Sie verantwortlich sind, sondern wie viel Code Sie in einem bestimmten Zeitintervall ändern müssen.

Es gibt auch den Risikobewertungswinkel. Wenn Sie die einzige Person sind, die einen Code kennt, wie hoch sind dann die Opportunitätskosten, die beim Gehen unter einem Bus verloren gehen würden? Kleine Unternehmen führen in der Regel keine solche Risikobewertung durch, dies bedeutet jedoch, dass der weitere Erfolg des Unternehmens dem Zufall überlassen bleibt.


3

Die Codebasisgröße / Anzahl der Entwickler hängt nicht von der Arbeitslast ab. Wenn Sie eine riesige stabile Codebasis haben, ist diese Metrik hoch. Wenn sich noch eine kleine Codebasis in der Entwicklung befindet, ist diese Metrik niedrig. Zeilenänderungen pro Zeiteinheit pro Entwickler hängen mehr von der Arbeitsbelastung ab. Aber selbst dann habe ich Tage damit verbracht, subtile Fehler aufzuspüren, deren Behebung eine Zeile war ...


2

Der Code sollte in der Verantwortung der Gruppe und nicht eines Entwicklers liegen. Support sollte jede Woche fair delegiert werden, es scheint dumm, ihn auf andere Weise zuzuteilen. Wenn dies nicht der Fall ist, sollten Sie mit Ihrem Management sprechen.

In der Situation, in der Sie einen Entwickler beschreiben, kann es schwierig sein, die Fristen einzuhalten, da in einem Bereich, in dem andere Entwickler unter Vertrag sind, sehr viel Unterstützung geleistet wird. Es ist eine sehr ineffiziente Managementstruktur.

Außerdem schlage ich vor, dass Sie sich von der Messung der Arbeitslast in Codezeilen entfernen. Mannstunden sind die einzig vernünftige Metrik, die mir einfällt

Das Messen des Programmierfortschritts durch Codezeilen gleicht dem Messen des Flugzeugbaufortschritts nach Gewicht - Bill Gates

NB. Ich sage nicht gleich ich sage fair. Es ist auch erwähnenswert, dass es in Ordnung ist, sich auf bestimmte Aspekte der Codebasis zu spezialisieren, was natürlich vorkommt. Es ist nur ein Problem, wenn sonst niemand an diesem Code arbeitet.


Ich hätte klarer sein sollen - ich habe versucht, eine Möglichkeit zu finden, meine Arbeitslast zu messen, indem ich VERMEIDEN wollte, dass "dieser Code in meiner Verantwortung liegt - und ich allein halte ihn aufrecht". Wenn Facebook beispielsweise zwei Programmierer hätte, wären diese offensichtlich überarbeitet - aber WIE würden Sie zu dieser Schlussfolgerung gelangen? Das ist die Art der Frage, für die ich mich entschieden habe.
Michael

2

Wenn Facebook beispielsweise zwei Programmierer hätte, wären diese offensichtlich überarbeitet - aber WIE würden Sie zu dieser Schlussfolgerung gelangen? Das ist die Art der Frage, für die ich mich entschieden habe.

Dies ist keine Programmierfrage, sondern eine Managementfrage.
Es gibt ein paar einfache Fragen, die zu beantworten sind und nichts mit Software zu tun haben.

  1. Wie viele Stunden arbeiten Sie?
  2. Wie viele Stunden sollten Sie arbeiten?
  3. Werden die Fristen eingehalten?

Folgen Sie dann dieser Logik:

  • Wenn 1> 2, brauchen Sie mehr Leute oder weniger aggressive Fristen.
  • Wenn 1 <2, brauchen Sie weniger Leute oder mehr Initiativen.
  • Wenn die Fristen nicht eingehalten werden und 1> = 2, brauchen Sie mehr Leute.
  • Wenn die Fristen nicht eingehalten werden und 1 <2, sollten Sie jemanden entlassen.

Dies ist eine übermäßige Vereinfachung, die zwei offensichtliche Mängel aufweist.

  • Menschen sind nicht gleich geschaffen.
  • Es gibt Möglichkeiten, die Produktivität der Mitarbeiter zu steigern (Upgrade des Computers oder ähnliches).

Aber du kommst auf die Idee.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.