Programmierung vs. Planung [geschlossen]

15

In letzter Zeit wurde ich mit höheren Planungsaufgaben beauftragt, da der leitende Entwickler meines Teams abreist. Ich hasse langfristige Planung. Mein Gehirn scheint einfach nicht dafür verdrahtet zu sein, und ich bin nicht genug daran interessiert, um die Zeit damit zu verbringen, es zu lernen (es ist schwer genug, mit der Programmierseite des Bildes Schritt zu halten).

Kann man immer noch ein guter Programmierer sein, ohne auch ein hochrangiger Planer zu sein?

Wird von einem Senior-Programmierer erwartet, dass er das gesamte Produkt gut plant und ein Fertigstellungsdatum festlegt?

MattW
quelle
Wenn Sie Entwickler sind, warum sollten Sie dann planen? Vielleicht schätzen, aber nicht planen
superM
Ja, es ist möglich. In diesem Fall allerdings Ihre Produktivität hängt von stark wie gut ist Ihr Manager / Teamleiter
gnat
1
Das ist eine wirklich interessante Frage. Ich glaube nicht, dass Sie viele technische Spezifikationen durchführen müssen, um ein guter Senior-Entwickler zu sein - in der agilen Entwicklung sind viele der Merkmale eines neuen Systems oder Projekts neu. Siehe meine Antwort für weitere Informationen.
Robin Winslow
1
Wie ist das eine Zitat? "Codierungstage können Stunden der Planung einsparen" oder so ähnlich.
Drake Clarris

Antworten:

17

Detaillierte langfristige Projektpläne sind bekannt dafür, dass sie in der Regel äußerst ungenau sind. Die Funktionalität des Systems wird sich unweigerlich vor dem Start ändern, und die Leute arbeiten in der Regel lange an den Einzelheiten, die in der Spezifikation enthalten sind, damit die Beteiligten ihr bestenfalls einen flüchtigen Blick zuwerfen.

Sie sollten mehr über Agiles Planen lesen. Vielleicht passt es besser zu Ihrer Denkweise. Viele agile Methoden versuchen, Wege zu finden, um sich von einer detaillierten langfristigen Planung zu entfernen.

Agile Methoden versuchen, detaillierte technische Spezifikationen und Dokumentationen zugunsten von selbstdokumentierendem Code und isolierten, atomaren User Stories und letztendlich funktionierender Software zu minimieren . In einem effizienten Agile-Team muss nur ein Minimum an Zeit für die Planung aufgewendet werden.

Lesen Sie das Agile Manifest und werfen Sie einen Blick auf Scrum . Verwenden Sie die Entwicklungsmethoden Iterative Entwicklung und Dynamische Systeme , um das Projekt zu leiten.

Der Hauptnachteil von Agile-Ansätzen besteht darin, dass Sie offen zugeben müssen , dass Sie den genauen Umfang Ihres Projekts nicht kennen , und dass es äußerst schwierig sein kann, das Management für diese Idee zu gewinnen, und dies dauert normalerweise eine Weile. In dieser Frage und Antwort sowie in diesem Beitrag finden Sie einige Tipps dazu.

Es ist jedoch sicher richtig, dass Sie als erfahrener Programmierer wahrscheinlich weniger Programmieren müssen, aber ich denke, dass Sie in einem agilen Team nicht mehr technische Spezifikationen schreiben, sondern mehr Zeit für die Verwaltung und Anleitung aufwenden müssen die Mitglieder Ihres Teams und treffen architektonische Entscheidungen über Code.

Robin Winslow
quelle
4
"Detaillierte langfristige Projektpläne sind bekannt dafür, dass sie in der Regel äußerst ungenau sind." DING DING DING +1
Ryan Kinal
11

Ja, es ist möglich. Wenn Sie jedoch ein guter Software-Ingenieur oder Software-Architekt sein möchten, ist dies der Punkt, an dem Ihre hochrangige Planung ins Spiel kommt. Für mich war der Hauptunterschied zwischen einem Programmierer und einem Ingenieur die Fähigkeit, den Überblick zu behalten.

Blaise Swanwick
quelle
1
Es macht mir nichts aus, die Arbeit zu planen, die ich gerade mache / in den nächsten 2 Wochen. Das heißt, wenn es sich bei dem, was ich schreiben möchte, um mehrere Stücke handelt, macht es mir nichts aus, das auf hohem Niveau zu planen und dann zu tun (in der Tat - genau das würde ich tun). Es gelingt mir nicht, in den nächsten Monaten ein Date zu finden und dann herauszufinden, warum wir es nicht schaffen werden. Das ist der Punkt, an dem meine persönliche Frustration ihren Höhepunkt erreicht.
MattW
Ich versuche nicht, dass mich das persönlich frustriert. Ich versuche, den Projektmanagern so etwas aufzuzwingen;).
Blaise Swanwick
Zum Kommentar von Blaise hinzufügen. Schlechte Manager bestehen darauf, den Zeitplan einzuhalten und machen das Team für fehlende "Verpflichtungen" verantwortlich. In diesem Umfeld sind Zeitpläne sicherlich frustrierend. Gute Manager erkennen, dass der anfängliche Zeitplan nur eine Vermutung und keine Verpflichtung darstellt. Sie wissen, dass manche Aufgaben länger und manche kürzer dauern werden. Am meisten interessieren sie sich für langfristige Trends. ZB liegen wir derzeit 3 ​​Monate lang 20% ​​hinter dem Basiszeitplan zurück. Das bedeutet wahrscheinlich, dass wir die verbleibenden ähnlichen Aufgaben zu 20% erledigen. Sie verwenden dann diesen neuen Zeitplan für die Verwaltung des Projekts.
Dunk
9

Ist es möglich, ein guter Programmierer und kein hochrangiger Planer zu sein?

Für eine Weile ja. Ist es möglich, dies lange zu tun? Nein.

Heutzutage ist es bei vielen Arbeitgebern üblich, die Lebenshaltungskosten im Wettbewerb zu erhöhen. Wenn Sie sich nicht verbessern, versuchen Sie nicht, größere und schwierigere Probleme anzugehen. Diese branchenüblichen Erhöhungen werden Sie in fünf oder zehn Jahren vom Markt verdrängen. Machen Sie weiter so und Ihr Arbeitgeber wird irgendwann nach einem Grund suchen, Sie loszuwerden, und Ihre Beschäftigungsfähigkeit an anderer Stelle wird sich ebenfalls drastisch verschlechtern.

David Hammen
quelle
Ich bin verwirrt. Ein COL-Anstieg sollte theoretisch mit der Inflationsrate Schritt halten. Schlagen Sie vor, dass der reale Geldbetrag, der an Softwareentwickler gezahlt wird, mit der Zeit allmählich abnimmt? Oder dass COL-Erhöhungen im Allgemeinen mehr sind als der tatsächliche Anstieg der Lebenshaltungskosten? Ich würde sagen, eine größere Sorge ist, dass die Unfähigkeit, Wachstum zu demonstrieren, selbst allgemein als negativ angesehen wird. Es gibt jedoch auch andere Möglichkeiten, um Wachstum zu demonstrieren, z. B. eine größere Breite oder Tiefe des technischen Könnens.
Ethel Evans
1
Ich hätte sagen sollen, dass die Industrie wettbewerbsfähig ist und nicht die Lebenshaltungskosten. Ich habe meine Antwort bearbeitet, um genau das zu sagen. Diese branchenweit wettbewerbsfähigen Erhöhungen sind für junge Erwachsene ziemlich süß, in der Regel viel besser als die Inflation. Lebenshaltungskostenerhöhungen gelten für alte Nebel. Es gibt ein Problem, wenn jemand höher steigt als die Inflation, aber die Fähigkeiten dieser Person bleiben die eines Neulings.
David Hammen
Erwischt! Vielen Dank für die Klarstellung, das macht auf jeden Fall Sinn.
Ethel Evans
Leider würde ich argumentieren, dass die Programmierkenntnisse im Laufe der Zeit immer einfacher zu erlernen sind und sich die vorhandenen, nicht wachsenden Fähigkeiten eines Ingenieurs über COL hinaus verschlechtern.
New Alexandria
6

Sicher, Sie können aus Sicht eines Programmierers ein guter Programmierer sein. Aus Sicht des Managements ist eine ganz andere Frage. Meiner Erfahrung nach ist die Einbeziehung in den Planungsprozess der beste Weg, um 1) interessantere Programmieraufgaben zu erhalten und 2) sie nach Ihren Wünschen zu erledigen.

Mit anderen Worten, sobald es um kurzfristige Planung geht, sind viele Optionen vom Tisch. Wenn Ihre bevorzugte Lösung sechs Wochen dauern würde, aber sie nur zwei budgetiert, bleiben Sie bei dem, was sie beschlossen haben. Wenn Sie Bedenken zu etwas haben, das sie bereits in der langfristigen Planung besprochen haben, werden sie es nicht noch einmal aufwärmen wollen.

Wenn Sie mit dieser Situation zufrieden sind, haben Sie mehr Macht. Die meisten Menschen werden damit weniger zufrieden, je mehr Erfahrung sie sammeln.

Das schmutzige kleine Geheimnis ist, dass niemand in der langfristigen Planung und Schätzung sehr gut ist. Bessere Planer sind diejenigen, die sich ihrer Grenzen bewusst sind. Ob Sie es glauben oder nicht, Sie sind der Kurve voraus. Machen Sie sich mit der Berücksichtigung von Schätzunsicherheiten vertraut. Sehen Sie sich Techniken wie evidenzbasierte Planung oder Scrum an, die auf historischen Daten basieren, um zu zeigen, wie genau Ihre Schätzungen sind. Sie werden auf lange Sicht glücklicher sein, wenn Sie ein größeres Mitspracherecht in Ihrer Arbeit haben.

Karl Bielefeldt
quelle
"Das schmutzige kleine Geheimnis ist, dass niemand sehr gut darin ist, langfristig zu planen und zu schätzen." Ist das nicht die Wahrheit? +1 nur dafür. Selbst mit einer guten Geschichte gibt es viele Zahlen, die aus dem klaren blauen Himmel gerissen werden müssen, da das nächste Projekt niemals eine exakte Kopie eines vorherigen Projekts ist. Wenn dies der Fall wäre, könnten wir den gesamten Code so wie er ist wiederverwenden und ihn so schnell wie möglich bearbeiten. Es gibt immer etwas Neues, und die Leistung in der Vergangenheit ist nicht immer ein guter Indikator dafür, wie viel Aufwand für dieses neue Zeug erforderlich ist.
David Hammen
Ok - vielleicht sind die Frustrationen (und sogar das Ego ) eher das, was ich tun muss. Wenn ich mich nicht schlecht schlagen kann und mit der Zeit besser werde (anstatt zu sagen "Ich mache das nicht gerne"), werde ich auf lange Sicht besser sein. Ich kann mich selbst schwer tun, wenn ich es schlecht mache - aber es scheint, dass ich (basierend auf den Antworten hier) besser lernen sollte, es gut zu machen, wenn ich als Software-Ingenieur angestellt bleiben möchte. Ich schätze die Gedanken aller. Ich habe wirklich niemanden in meiner Firma, von dem ich das lernen kann - daher ist es eine große Hilfe, das von allen hier zu hören!
MattW
3

Ist es möglich, ein guter Programmierer und kein hochrangiger Planer zu sein?

Kurze Antwort: Ja, das ist möglich.

Je mehr Erfahrung Sie jedoch mit der Art der Projekte haben, an denen Sie beteiligt sind, desto bessere Planungsideen haben Sie. Idealerweise haben wir als Programmierer einen Ansatz, um das Problem zu lösen, oder wir suchen einen. Wenn wir also den Ansatz kennen, können wir über die Planung nachdenken :)

Ein anderer möglicher Weg ist, dass ein Programmierer, der ein guter Planer wird, schließlich auch in Richtung Projektmanagement geht. Wenn Sie Interesse an der Verwaltung von Projekten haben, können Sie zusätzliche Anstrengungen in diese Richtung unternehmen.

Yusubov
quelle
1

Ja und Nein sind Ihre Antworten.

Einerseits werden Sie in Richtung Projektmanagement getrieben. IMO, alle guten Programmierer haben ein gewisses Maß an Projektmanagementfähigkeiten, aber sie sind unterschiedliche Fähigkeiten. Die Fähigkeit, langfristig zu planen, verbessert Ihre Fähigkeit, mit dem eigentlichen Projektmanagement zu kommunizieren. "Nein", Sie können kein guter Programmierer sein, ohne die Fähigkeit, langfristig zu planen.

Trotzdem ist Projektmanagement eine andere Fähigkeit, die Aspekte anspricht, die zusammenhängen, sich aber von der Programmierung unterscheiden. Hier kommt also das "Ja" ins Spiel. Sie müssen kein Projektmanager sein, um ein großartiger Programmierer zu sein.

Versuchen Sie für Ihre spezifische Situation objektiver zu werden, was das Unternehmen braucht und was Sie gerne tun. In Ihrer Frage spiegelt sich ein bisschen zu viel Ego wider, was Ihre Fähigkeit beeinträchtigt, diese Situation zu betrachten. Wenn Sie Wege finden, mehr zu Ihrem Arbeitgeber beizutragen, während Sie die Dinge tun, die Ihnen Spaß machen, sollten Sie diese in Betracht ziehen und die Angelegenheit mit Ihrem Chef besprechen.


quelle
1

Planung und der Bungie-Boss

Dilbert hat viele Streifen über den Bungie-Boss. Unsere Herausforderungen und Erwartungen in Bezug auf die Planung können sowohl die Ursache als auch die Auswirkung der Abwanderung von Führungskräften sein. Meine Erfahrung bei einem Fortune 100-Unternehmen war, dass in einem Jahr jeder, der als Projektleiter in das Jahr gestartet war, ausstieg. Vielleicht lag das am Planungsproblem. Ich bin mir nicht sicher, ob Ihr früherer Lead aus diesem Grund abgereist ist, aber wenn Ihre Rolle es erfordert, dass Sie einen Plan mit einer Verpflichtung erstellen. Wenn dies nicht gelingt, ist häufig ein terminbezogener Ausstieg die Folge.

Organisatorischer Kontext der Planung

Wenn Sie mit der Planung nicht vertraut sind, kann es sein, dass Sie nicht für Verpflichtungen gegenüber dem Marketing oder anderen Interessengruppen verantwortlich sind, bevor die zu lösenden Probleme dokumentiert oder verstanden werden. Das ist ein guter Instinkt.

Planung ist ein wichtiges Instrument. Vernachlässige es nicht. Versteht es nicht falsch.

Planung ist ganzheitlich mit Verpflichtungen, Rechenschaftspflicht und Verhandlungsmacht verbunden. Agiles Planen hat viele Vorteile. Sie sollten seine Techniken sowie die Techniken der geplanten Methoden kennen. Ihre Organisation hat möglicherweise einen eigenen Ansatz, und die Einholung von Rat und die Zusammenarbeit mit jemandem, der die Leitung vieler Projekte überstanden hat, kann überraschend hilfreich sein.

Ein einfaches Planungsbeispiel - Es darf nicht um Software gehen ...

Wenn eine Dachdeckerfirma zu mir nach Hause kam, um Ersatz zu bieten, wenn sie zu niedrig bietet, verlieren sie möglicherweise Geld bei der Arbeit, aber wenn sie zu hoch bieten, bekommen sie die Arbeit überhaupt nicht. In jedem Fall sind sie arbeitslos. Wenn Sie in Ihrer neuen Rolle zu wenig arbeiten, führen Sie das Projekt aus, bis die Verantwortlichkeit einsetzt, dann haben Sie Probleme. Wenn Sie ein Projekt schätzen, bei dem genügend Padding vorhanden ist, um den Erfolg fristgerecht sicherzustellen, wählen viele nur jemanden aus, der die Leitung übernimmt. Der Kicker ist, dass Sie nicht wie der Dachdecker sind. Er kann sehen, wie groß das Dach ist, und hat historische Daten darüber, wie lange das Dach dauert.

Ein besserer Planer werden

Möglicherweise möchten Sie eine Art Training in Betracht ziehen. In agilen Methoden und den neuesten geplanten Methoden ist die Schätzung eine teamweite Aktivität. Aus diesem Grund sollten Sie auch in Betracht ziehen, Ihr Team zu schulen.

Aus Erfahrung kann ich Ihnen sagen, dass es frustrierend sein kann, Schätzungen von Teammitgliedern zu erhalten, die sie aufschieben, Ihnen Schätzungen zu geben, die sie in zwei Minuten auf der Grundlage des Aufgabennamens ohne Bezugnahme auf eine Anforderung oder eine Funktionsbeschreibung oder den vorhandenen Code erstellen die darauf bestehen, dass einige der von Ihnen aufgelisteten Aufgaben in einem Bruchteil eines Tages erledigt werden können, obwohl vergangene Projekte Wochen mit ähnlichen Themen verbracht haben.

Es gibt verschiedene Schulungen und Zertifizierungen für Projektmanager, aber ich würde mir eine anschauen, die unabhängig akkreditiert wurde. Bevor Sie sich für eine Zertifizierung mit Ansätzen entscheiden, die auf geplanten Methoden basieren, sollten Sie sich überlegen, ob Sie mit agilen Teams zusammenarbeiten möchten (oder umgekehrt).

SLIM ist eine Methode, die Putnam erfunden hat, nachdem er in den 1970er Jahren bei GE und anderen Unternehmen an DoD-Projekten gearbeitet hatte. SLIM ist einflussreich, und sein Unternehmen QSM bietet eine Zertifizierung an , die anscheinend aus einem Tool stammt, das es herstellt. Abhängig davon, ob Ihr Unternehmen sein Tool übernommen hat, hat es möglicherweise keinen oder einen hohen Wert.

Steve McConnell (Autor von Code Complete) hat auch ein Buch über Softwareschätzung geschrieben, und seine Firma Construx unterrichtet zwei Klassen für PDU-Credits , die durch das Project Management Institute akkreditiert sind. Ich habe sein Buch, und wenn ich im Klassenzimmer etwas über das Thema lernen wollte, würde ich mich wahrscheinlich für Construx entscheiden. Sie führen auch Scrum-Schulungen durch und verwalten verschiedene von Scrum.org akkreditierte Scrum-Bewertungen.

Eine weitere Quelle, die eine hervorragende akademische Ausbildung in Bezug auf die Schätzung von Softwareprojekten bieten könnte, wäre die Gruppe von Barry Böhm am USC , die sich auf ihre umfangreichen Arbeiten zur konstruktiven Kostenmodellierung von COCOMO und COSYSMO stützt, die bei der NASA und anderen großen Auftragnehmern zur Schätzung sehr großer Projekte eingesetzt wurden. Ich bin mir nicht sicher, ob ich wirklich an COCOMO glaube, aber ich mag die empirische Arbeit, die sie geleistet haben, um die Auswirkungen von Größen- und Kostentreibern auf die Fahrplandauer zu korrelieren.

Ich habe auch ein Kapitel aus einem von O'Reilly veröffentlichten Lehrbuch gefunden , in dem wichtige Methoden zur Softwareschätzung, einschließlich Watts Humphreys PROBE und Kent Becks Planspiel, kurz erörtert werden. PROBE enthält den Begriff, dass Ingenieure Metriken anhand ihrer eigenen Produktivität verfolgen und diese dann auf ihren zugewiesenen Teil bei neuen Projekten anwenden. Planning Game arbeitet sehr eng mit Entwicklern und anderen Interessengruppen zusammen.

DeveloperDon
quelle