Wie wechselt man vom Programmierer zum Projektmanager?

Ich bin Programmierer in einer kleinen Firma, die es gewohnt ist, Projekte von jemandem zu erhalten, der in einem Meeting sagt: „Erstellen Sie eine E-Commerce-Website“, und dann übernehme ich es einfach selbst, es zu tun. Die einzigen Anforderungen, die ich erhalte, sind die, die ich verlange.

Wir expandieren und ich wurde damit beauftragt, die Entwicklung/Verwaltung einer großen Webanwendung zu leiten. Wir werden ein neues internes Team aus mehreren Programmierern sowie ein Outsourcing-Unternehmen einsetzen.

Was sollte ich einem neuen Programmierer zur Verfügung stellen, damit er eine Komponente für diese Anwendung entwickeln kann?

Womit ich im Moment wirklich zu kämpfen habe, ist die Bestimmung der Arten von Ressourcen, die bereitgestellt werden sollen, der Grad der Trennung, der zwischen ihnen bestehen sollte, und wie detailliert die Details sein sollten.

Angenommen, dieses Projekt ist eine E-Commerce-Website, die aus einer Storefront, einem Einkaufswagen und einer Benutzerregistrierung besteht, und ich möchte, dass ein Programmierer an der Benutzerregistrierung arbeitet. Ich würde mich sehr freuen, wenn jemand sehr genau auflisten könnte, was bereitgestellt werden sollte, da ich trotz meines besten Googelns nur hochrangige "Flusen" darüber finden kann. Zum Beispiel:

  • Soll ich Diagramme (UML?) einfügen, und wenn ja, welche und was sollen sie vermitteln?
  • Sollte ich eine schriftliche Dokumentation erstellen (z. B. ein Datenblatt?), und wenn ja, welche Arten von Details sollten enthalten sein?
  • Sollte ich Dinge wie funktionale/nicht funktionale Anforderungen, Geschäftsanforderungen usw. bereitstellen?
Wow, das ist eine schwierige Frage. Um es den anderen zu ermöglichen, ziemlich gute Antworten zu schreiben, versuchen Sie, Ihre Grundfrage hervorzuheben. Ich nehme an, es ist so etwas wie "Wie kann ich gewährleisten, dass Subunternehmer die Anforderungen innerhalb des beschriebenen Szenarios realisieren?". Versuchen Sie, wie bei SE üblich, mehrere Fragen in einem Beitrag zu vermeiden, da dies die Antworten verschwommen erscheinen lässt: Möchten Sie, dass eine Liste aller Elemente bereitgestellt wird (wenn ja, sollten Sie viel mehr Details Ihres Szenarios angeben)? Möchten Sie wissen, ob Sie UML, den UML-Detaillierungsgrad, ...
Es hört sich so an, als wäre Ihre Organisation immer noch ziemlich klein. Funktionieren Sie in anderen Rollen als Projektmanager? Das heißt, arbeiten Sie noch in irgendeiner technischen Funktion an dem Projekt, als Architekt, Designer, Entwickler oder Tester? Ich denke, es ist vielleicht besser, über die Rollen nachzudenken, die für den Abschluss dieses Projekts erforderlich sind, und darüber, was jede Rolle tut. Zu diesem Zeitpunkt haben Sie möglicherweise mehrere Rollen, aber das kann sich im Laufe der Zeit ändern, wenn das Team wächst und reift.
Das scheint darauf hinauszulaufen: "Was braucht ein Programmierer, um seine Ergebnisse zu entwickeln?", was gut ist, denn "Wie setzen wir ein projektgesteuertes SDLC ein?" an Ort und Stelle ist viel zu breit. Aber auch das Lesen zwischen den Zeilen ist gefragt. Was ich bei dieser Frage nicht verstehe, ist, warum Sie die Antwort nicht bereits kennen, da Sie derzeit Programmierer sind. Sicherlich wissen Sie daher, was Sie brauchen, um Ihre Ergebnisse zu entwickeln, oder was Sie haben möchten. Ich denke, Sie müssen darüber nachdenken, was Sie erreichen müssen, dies in Ziele unterteilen und dann um Hilfe bitten, um jedes Ziel zu erreichen.
Dies ist eine sehr hochrangige Frage und wird die hochrangigen Antworten von Google liefern. Wenn Sie Antworten auf niedrigerer Ebene wünschen, müssen Sie Fragen auf niedrigerer Ebene stellen. Dies ist eine großartige Frage, aber Sie müssen tiefer eintauchen und dann die Teile zusammenfügen, um Ihnen zu helfen, das zu steuern, was wie eine PM-Reifebemühung aussieht.
@GoatBreeder, ich glaube nicht, dass UMLs noch relevant sind, außer im Konformitäts- und/oder akademischen Kontext. Verwendet das Engineering-Team von Google UML?

Antworten (3)

Wie heißt es in der Kolumne „ Worst Week in Washington “ der Washington Post: „Herzlichen Glückwunsch – oder so …“ Abgesehen von der UML haben Sie dringendere Bedenken. Wie so oft kann Ihre mehrteilige Frage in einzelne Fragen zerlegt werden, von denen viele bereits auf SE behandelt wurden.

  1. Projektcharta
  2. Stakeholder-Analyse und -Management. Wie gehen Sie mit widersprüchlichen Stakeholder-Anforderungen um? Führen Sie das Team? Verwalten Sie die Auftragnehmer? Siehe Arbeiten mit einem „einzelnen Ansprechpartner“ und Projektmanager – Schreiben der Projektspezifikation
  3. Projektplan
  4. Projektstrukturplan

Tut mir leid, dass mir die Zeit ausgegangen ist, aber das sollte Ihnen den Einstieg erleichtern - vielleicht bis zum Ausgang, um nach dem Programmierjob zu suchen, den Sie gerade verlassen haben. :-)


Ergänzungen:

Warnung: Verwechseln Sie ein MS Project-Dokument nicht mit einem Projektplan.

Sehen Sie sich http://www.projectmanagement.com/Templates/ an . Zum Beispiel gibt es einen Softwareentwicklungsprojektplan: „Hier ist alles, was Sie für ein Softwareentwicklungsprojekt benötigen, von der Planung bis zum Abschluss.“ Für dieses Dokument ist eine Mitgliedschaft im Wert von 249 US-Dollar erforderlich, aber die Liste der Themen kann Ihnen bei der Bewertung kostenloser Angebote im Internet helfen. Der Plan beinhaltet:

  • Projektstart
  • Erwerben Sie Ressourcen
  • Anforderungsdefinition
  • Detailliertes Design
  • Systemkonfiguration
  • Erwerben und installieren Sie das System
  • Anwendungsentwicklung
  • Datenmigration
  • Systemdokumentation
  • Testen
  • Ausbildung
  • Produktionsimplementierung
  • SCHLIESSEN

Weniger detailliert ist der JPACE-Projektplan: „Timing ist alles, auch im Projektmanagement. Der Schlüssel zu einem erfolgreichen Projekt ist die Verwendung von JPACE – das heißt, es richtig zu rechtfertigen, zu planen, zu aktivieren, zu kontrollieren und zu beenden. Dieses Microsoft Der Projektplan wird Ihnen dabei helfen."

Führen Sie ein Mini-Scrum durch, schreiben Sie Aufgabenlisten auf Post-Its und kleben Sie sie auf eine Tafel. Sagen Sie den Entwicklern, dass sie Aufgaben erledigen sollen.

Wie Sie selbst wissen, sind Entwickler an fehlende Anforderungen gewöhnt. Sobald die Website zusammenkommt, werden die Leute bald sagen: „Machen Sie es blauer!“. etc

Eine Aufgabenliste ist eine Art Projektstrukturplan. Eine effektive WBS und Aufgabenpriorisierung setzt einen starken Benutzervorkämpfer und engagierte Business-Analysten voraus. Bitte versuchen Sie nicht gleichzeitig Projektmanagement und agile Entwicklungen zu lernen.
ha! ja, genau. vielleicht in einer perfekten Traumwelt

Ich stimme WaltHouser zu, man sollte auf jeden Fall ein komplettes Projektmanagement installieren. Hier sollten Sie mittelfristig hingehen.

Leider schätze ich, dass Sie nicht die Zeit haben, sich alle erforderlichen Kenntnisse anzueignen. Das sollten Sie kurzfristig bereitstellen:

  • System-/Subsystemspezifikation
  • System / Subsystem Design Document (mindestens der Schnittstellenteil)

Auf Wikipedia finden Sie schöne Vorlagen für die beiden Dokumente, suchen Sie nach MIL-STD 498. Der Standard ist veraltet, dennoch sind die Vorlagen sehr hilfreich.

Versuchen Sie, gute Anforderungen zu schreiben. Unterstützen Sie sich und Ihre Kollegen, indem Sie einen Anforderungsmanagementplan schreiben, um Folgendes zu definieren:

  • Anforderungen müssen atomar sein
  • Verwendung von muss, soll, sollte, kann als besondere Wörter
  • Verwendung eines Schemas für ähnliche Anforderungskategorien

Ich habe es auf den SSDD-Teil geschrieben: Konzentrieren Sie sich auf die Schnittstellen , insb. diejenigen, die verschiedene Entwicklerteams verbinden. Gehen Sie dabei so detailliert wie möglich vor.

Der Projektmanagement-Teil des Jobs kann durch intuitives Verhalten oder gesunden Menschenverstand abgedeckt werden. Training wird dir sicherlich sehr helfen. Hören Sie am Anfang nicht auf, Informationen auszutauschen, und hören Sie zu.