Sie brauchen einen Helden: den Projektmanager

Veröffentlicht: 2022-03-11

Dieser Artikel ist für Sie, den mutigen Unternehmer mit einer App-Idee im Herzen und etwas Bargeld auf der Bank. Die Diagramme, die Sie auf Cocktailservietten gekritzelt haben, werden die ganze Welt erschüttern, und Muldenkipper voller Geld wurden bereits zu Ihnen nach Hause geschickt. Um sicherzustellen, dass sie pünktlich ankommen, hier einige einfache Ratschläge für einen reibungslosen Ablauf Ihres Produktionszyklus.

Warum Sie überhaupt einen Projektmanager brauchen

„Computerprogramme sind die komplexesten Dinge, die Menschen machen“, sagt Douglas Crockford. Sie haben diesen Namen vielleicht noch nie gehört, aber er ist ziemlich berühmt für einen Programmierer. Er ist derzeit Senior Software Architect bei PayPal und hat Pionierarbeit für alle möglichen coolen Technologien geleistet, die den Rahmen dieses Artikels sprengen würden. Er ist jemand, der sich sehr gut mit der Arbeit an großen Projekten auskennt.

Ich selbst programmiere seit 13 Jahren und auch jetzt führt mich jedes Projekt irgendwann auf unbekanntes Terrain. Es gibt so viele verschiedene Technologien da draußen, und neue Techniken werden mit einer so alarmierenden Geschwindigkeit entwickelt, dass ich nie das Gefühl habe, ganz auf dem Laufenden zu sein. Während jedes Projekt seine einzigartigen Herausforderungen hat, gibt es einige Konstanten:

  • Das Projekt steht unter Zeitdruck.
  • Das Budget ist kleiner als ich möchte.
  • Ich bin teurer als der Kunde möchte.
  • Ich höre nicht so perfekt zu, wie der Kunde es gerne hätte.
  • Der Kunde erklärt die Dinge nicht so perfekt, wie ich es gerne hätte.

Ganz klar, wir brauchen einen Babysitter. Jemand muss eingreifen, um die Grundregeln festzulegen, alle ehrlich zu halten und sicherzustellen, dass wir nichts Wichtiges vergessen. Jemand muss die Kommunikation zwischen allen Parteien erleichtern.

Dieser Jemand, dieser Held, ist der Projektmanager.

Ein Projektmanager erleichtert die Kommunikation zwischen allen Beteiligten und Teams.

Ein Projektmanager erleichtert die Kommunikation zwischen allen Beteiligten und Teams.

Toptal bot keine Verträge mit Projektmanagern an, als ich mit dem Schreiben dieses Artikels begann, aber jetzt tun sie es. Synergie! Ich kann mir nur vorstellen, dass die Machthaber die folgenden Ratschläge gelesen und erkannt haben, dass sie eine große Chance verpasst haben.

Warum ein Programmierer kein guter Projektmanager ist

Abgesehen von der Zertifizierung durch das Project Management Institute ist das Wichtigste, was ein Projektmanager mitbringen kann, Erfahrung. Infolgedessen würden viele Programmierer ziemlich anständige Projektmanager abgeben; Wir haben mehr Erfahrung mit technischen Projekten als jeder andere und unser analytischer Verstand ist geschickt darin, Informationen zu katalogisieren und konkrete Ziele zu setzen.

Gott weiß, Sie bezahlen uns genug, also scheint es vernünftig zu erwarten, dass wir uns selbst verwalten können, anstatt Sie zu zwingen, auch für die Zeit eines anderen zu bezahlen, richtig?

Nun, für den Anfang bezahlst du uns fürs Programmieren.

Wenn wir aus unserer Programmierbetäubung herauskommen, um Entscheidungen darüber zu treffen, was wir priorisieren sollen, oder um darüber zu streiten, wie viel diese Woche tatsächlich erledigt werden soll, wird kein Code geschrieben. Es dauert dann mindestens 10 Minuten, um wieder in „die Zone“ zu kommen, besonders wenn wir durch das Gespräch, das wir gerade geführt haben, gestresst sind, was wahrscheinlich ist, wenn wir über die Priorität von Funktionen streiten. Boo hoo, ich weiß, aber hier geht es darum, kostspielige Ressourcen so effizient wie möglich zu nutzen.

Am wichtigsten ist, dass wir den Wald vor lauter Bäumen wirklich nicht sehen können. Wenn Sie aus diesem Artikel nichts anderes mitnehmen, verstehen Sie bitte Folgendes: Wenn ich den ganzen Tag damit verbringe, auf ein paar spezifische Fehler zu starren, verliert mein Gehirn den Überblick über das große Ganze.

Mein Gehirn belohnt mich, wenn ich diese Fehler behebe, und ich gehe davon aus, dass ich großartige Dinge getan habe und jetzt Videospiele spielen kann. Wenn mich jemand daran erinnert, dass die Homepage immer noch kaputt ist, kommt das völlig überraschend, weil ich den Tag damit verbracht habe, mein Gehirn mit sehr detailliertem Wissen über einen sehr kleinen Teil des Gesamtprojekts zu füllen und den Rest irgendwie vergessen habe. So funktioniert mein Gehirn, und viele andere Programmierer haben eine ähnliche psychologische Veranlagung.

Programmierung und Projektmanagement können völlig unterschiedliche Denkweisen sein.

Der Projektleiter sorgt dafür, dass der Überblick nicht verloren geht.
Twittern

Warum ein Kunde kein guter Projektmanager ist

Also, wenn wir Programmierer nicht die Verantwortung dafür übernehmen wollen, Projektmanagement-Dinge zu erledigen, dann müssen Sie, der Kunde, das tun. Es ist Ihr Geld. Es ist Ihre Vision. Letztendlich sind Sie sowieso für das Ganze verantwortlich.

Sie haben aber auch viel um die Ohren.

Viele Kunden sind Normalsterbliche mit Tagesjobs wie der Rest von uns, und einige sind sogar dafür bekannt, dass sie unter Aufschub oder Vergesslichkeit leiden. Auch wenn dies Sie nicht unbedingt beschreibt, erwägen Sie bitte die Idee, einen professionellen Erinnerer zu haben, damit Sie sich wieder der wichtigen Arbeit widmen können, das gesamte Projekt am Leben zu erhalten.

Wenn Sie an einem technischen Projekt mit ähnlichem Umfang gearbeitet oder es beaufsichtigt haben, können Sie in der Tat ein guter Manager für Ihr Projekt sein. Wenn dies nicht der Fall ist, unterschätzen Sie bitte nicht den Wert von jemandem, der die möglicherweise auftretenden Probleme vorhersagen kann. Zeitschätzungen sind immer nur Schätzungen, und Bugs neigen dazu, zu den ungünstigsten Zeiten aufzutauchen. Es ist die Kosten für einen weiteren (wenn auch nur Teilzeit-)Mitarbeiter wert, wenn jemand weiß, welche Teile des Prozesses die meiste Aufmerksamkeit benötigen oder wahrscheinlich benötigen werden.

Nehmen Sie zum Beispiel die Qualitätssicherung (QA). Korrekte Qualitätssicherung ist unerlässlich, um aus jedem Projekt das zu bekommen, was Sie wollen, und es bekommt nie die Aufmerksamkeit, die es verdient. Ein guter Projektmanager wird das Beste aus begrenzten QA-Ressourcen machen und auch Ihre Programmierer für Sie qualitätssichern. Manchmal geraten wir aus unserer Tiefe und manchmal machen wir Fehler. Sie brauchen eine technisch versierte Person in einer Aufsichtsfunktion, um festzustellen, ob Ihr Programmierer nur einen freien Tag hat oder ob er oder sie tatsächlich nicht in das Projekt passt. Personalprobleme frühzeitig abzuwenden, kann für Ihr Projekt über Leben und Tod entscheiden.

Schließlich brauchen auch Sie, der Kunde, manchmal ein wenig Kontrolle und/oder Ausgleich. Es fällt mir schwer, das zu schreiben, da wir Computerprogrammierer nicht gerade für unsere Offenheit bekannt sind. Es genügt zu sagen, dass ich an vielen Projekten gearbeitet habe, bei denen der Kunde darauf bestand, dass alles oberste Priorität hat und absolut alles erledigt werden muss. Obwohl ich keinen Zweifel daran habe, dass dies absolut richtig war, hatten diese Kunden leider keine Kontrolle über die Anzahl der Stunden an einem Tag. Sie haben am Ende nicht das gewünschte und/oder verdiente positive Ergebnis erzielt, und ich denke, dass dieses Ergebnis hätte vermieden werden können, wenn der Kunde einen Projektmanager mit der Befugnis betraut hätte, die Arbeitsbelastung zu bewerten und die Dinge taktvoll, aber entschlossen unter Kontrolle zu halten . Es ist schwierig, die leidenschaftslosen Urteile zu fällen, die die meisten technischen Projekte erfordern, wenn es um Ihre Idee und Ihr Geld geht und es dem Computer egal ist, ob Sie oder ich dabei weinen und schreien. (Ich weiß, dass dies wahr ist, weil ich es viele Male versucht habe.)

Eine unvollständige Liste von Techniken zum Verwalten eines technischen Projekts

Egal, ob Sie sich entschieden haben, die vorherigen 1.000 Wörter zu ignorieren und Ihr Projekt selbst zu verwalten, oder ob Sie jemanden einstellen, aber mehr über den Prozess wissen möchten, diese Liste wird Ihnen helfen. Ich war noch nie (offiziell) Projektmanager, daher kann ich nicht sagen, welche Tools ein bestimmter Projektmanager verwenden würde, aber ich hatte mit all diesen Techniken gute Erfolge:

Meilensteine

Wenn Sie ein neues Projekt beginnen, wissen die meisten Menschen intuitiv, dass es wichtig ist, das Projekt in etwas überschaubarere Teile aufzuteilen, wobei jeder Teil ein paar Wochen bis hin zu ein paar Monaten Arbeit kostet. Zu Beginn des Projekts ist es gut, ein Kick-off-Meeting abzuhalten, um diese Meilensteine ​​festzulegen. Es ist in Ordnung, ein wenig vage zu sein, wie Sie sie erreichen werden. Das Wichtigste ist, nach jedem Meilenstein nachzuschauen, um vom verbesserten Verständnis des Projekts durch alle zu profitieren und sicherzustellen, dass die Meilensteine ​​​​des Projekts immer noch ( etwa) die gleiche Größe wie ursprünglich angenommen.

Zeitschätzungen

Wir Programmierer verabscheuen Schätzungen absolut, weil wir wissen, dass sie falsch sein werden und wir wissen, dass sie gegen uns verwendet werden. Es ist in Ordnung, dass sie falsch liegen, weil sie per Definition auf einer Handvoll Unbekannter basieren. Es ist auch in Ordnung, dass sie gegen uns verwendet werden, weil unsere Jobs ziemlich bequem sind und es nicht schadet, ab und zu die Peitsche knallen zu lassen.

Fragen Sie also jedes Mal nach Kostenvoranschlägen, wenn die Arbeit an einem neuen Meilenstein beginnt. Sie sollten mit einer oder zwei Zeilen für jede Hauptfunktion rechnen, zusammen mit einer groben Schätzung, wie lange diese Funktion dauern wird. Normalerweise mache ich eine optimistische Schätzung und verdopple sie dann. Meistens führt diese zusätzliche Zeit zu unsichtbaren Fallstricken.

Benutzergeschichten

User Stories sind kurze Beschreibungen einer einzelnen Funktionalität innerhalb der App. Sie sind nützlich als Aufzeichnung wichtiger Merkmale und sollten mundgerecht sein, auf eine Karteikarte passen und oft von einer kleinen Zeichnung begleitet werden. Noch wichtiger ist, dass sie als Brücke zwischen dem, was der Client wünscht, und dem, was der Programmierer dem Computer mitteilen muss, dienen. Sie sind einfach genug für Sie, den Kunden, um sie in ein paar Minuten auszuschalten, aber detailliert genug, damit wir, die Programmierer, uns hineinversetzen können.

Für ein paar schnelle Infos zu User Stories fand ich diese Tutorials von Mountain Goat Software und Roman Pichler hochwertig und prägnant. Weitere Informationen zur gesamten Philosophie des agilen Projektmanagements finden Sie in diesem Toptal-Blogbeitrag The Ultimate Introduction to Agile Project Management von Paul Barnes.

Kompositionen (Modelle)

Dies ist kein Artikel darüber, warum Sie einen Designer brauchen, weil ich glaube, dass die meisten Kunden das bereits verstehen, aber es lohnt sich, ihn zu wiederholen, weil Sie enorme Produktivitätsgewinne sehen werden, wenn Sie Ihren Programmierern ein konkretes, gut durchdachtes Design vorlegen. Jedes Mal, wenn wir eine Designentscheidung treffen müssen, müssen wir „die Zone“ verlassen, und jedes Mal, wenn wir zurückgehen und etwas ändern müssen, weil wir nicht mit dem endgültigen Entwurf versorgt wurden, naja, Sie rechnen … Ich beschwere mich nicht, denn Design macht Spaß, aber meiner Erfahrung nach ist dies die Quelle Nr. 1 für vermeidbare, zusätzliche abrechenbare Stunden.

Die meisten Designer stellen Kompositionen, auch Kompositionen genannt, in Adobe Photoshop, Adobe Illustrator oder Sketch bereit. Wer es selbst macht, kann auf eines der unzähligen Online-Tools wie Balsamiq oder InVision zurückgreifen. Die Komposition muss nicht die gleichen Farben und Stile wie das fertige Produkt haben (da diese später leicht geändert werden können), aber nehmen Sie sich bitte etwas mehr Zeit, um sicherzustellen, dass alle UI-Elemente vorhanden und berücksichtigt sind.

Verwandte Themen: Stellen Sie die besten 3 % der freiberuflichen UX-Designer ein.

Stand-up-Meetings

Lange Besprechungen sind manchmal unvermeidlich, aber Sie möchten Ihre Programmierer wirklich nicht überlasten oder mehr Zeit als nötig in Anspruch nehmen. Ich hatte Kunden, die anscheinend erwarteten, dass ich mich an alles erinnere, was während eines zweieinhalbstündigen Meetings gesagt wurde; sie waren bitter enttäuscht. Ein Meeting im Stehen ist im Allgemeinen auf 15 Minuten begrenzt, und es ist üblich, für die Dauer zu stehen. Der Stehaspekt soll dafür sorgen, dass alle mitmachen und das Meeting kurz halten.

Während der Stand-ups gehen alle im Kreis herum, um einen kurzen Statusbericht abzugeben und so alle Teammitglieder über den Fortschritt der anderen auf dem Laufenden zu halten. Weitere Informationen zu Stand-Ups finden Sie unter ExtremeProgramming.Org. Wenn Sie alle aus der Ferne arbeiten und nicht jeden Tag alle auf Skype haben möchten, können Sie ein unterhaltsames Tool wie 15Five als Alternative zu Stand-ups ausprobieren. Mit 15Five können Teammitglieder ihren Beitrag leisten, wann immer es ihnen passt, und sie werden mit Umfragefragen aufgefordert, detailliertere Antworten herauszukitzeln.

Ticketsystem

Während jeder ein System von Haftnotizen und Google Docs pflegen kann (wobei die Aufgaben aller in verschiedenen Farben hervorgehoben sind), ist dies wirklich nicht notwendig; Viele Leute haben versucht, dieses Problem für Sie zu lösen. Basecamp und Trello sind berühmt für ihre Benutzerfreundlichkeit, während Pivotal versucht, die gesamte „agile“ Philosophie in einem sehr raffinierten Paket zu verpacken. Was auch immer Ihre Wahl ist, ein gutes Ticketing-System ermöglicht Ihnen mindestens:

  • Aufgaben erstellen
  • Weisen Sie Priorität und Fälligkeitsdatum zu
  • Aufgaben und Unteraufgaben verknüpfen
  • Weisen Sie verschiedene Auflösungen wie „abgeschlossen“ oder „fehlgeschlagene Prüfung“ zu
  • Alle einem bestimmten Benutzer zugewiesenen Aufgaben anzeigen

Wenn Ihnen ein Projektmanager 40 leuchtend rote Tickets mit höchster Priorität zeigt, die alle am selben Tag fällig sind, werden Sie den Wert dieser Vogelperspektive des Projekts wirklich verstehen.

Kunden haben nicht immer die richtige Perspektive, um ihre eigenen Projekte zu managen.

Sie können Tools wie Trello, Basecamp oder Wrike verwenden, um den Fortschritt von Projekten zu verfolgen.

Quellcodeverwaltung

Möglicherweise sehen Sie sich den Code im Versionskontrollsystem Ihres Projekts nicht einmal an, aber die Quellcodeverwaltung (oder Versionierung) ist eines der wichtigsten Werkzeuge, die uns zur Verfügung stehen, das größte Backup-System, das man sich vorstellen kann.

Die meisten modernen Projekte verwenden Git, obwohl Sie manchmal auf Subversion (SVN) stoßen, wenn Sie an Projekten arbeiten, die es schon eine Weile gibt. Mit Github können Sie kostenlos unbegrenzt öffentliche Repositories hosten (außerdem enthält es die meisten Open-Source-Projekte der Welt), während Bitbucket Ihnen das Hosten unbegrenzter privater Repositories ermöglicht und daher die bevorzugte Wahl für kommerzielle Projekte ist.

Welches Versionskontrollsystem Sie auch wählen, es speichert unseren Code aus der Ferne, falls etwas passiert, und verfolgt jedes Mal, wenn wir Code „festschreiben“, während es uns zwingt, eine kleine Nachricht zu schreiben, die beschreibt, woran wir gearbeitet haben. Dies verhindert, dass verschiedene Entwickler den Code des anderen überschreiben, es lässt uns alle Änderungen sehen, die über einen bestimmten Zeitraum vorgenommen wurden, und es ermöglicht uns, neue Codezweige zu erstellen, um Funktionen zu speichern, die nicht sofort live gehen. Es hat sogar einen Befehl namens „blame“, der anzeigt, wer für eine bestimmte Codezeile verantwortlich war und wann sie festgeschrieben wurde.

Die Quellcodeverwaltung ist die größte.

Testgetriebene Entwicklung

Dies ist eine relativ teure Praxis, was bedeutet, dass sie nicht häufig in Projekten eingesetzt wird, bei denen das Budget auf ein paar Freiberufler beschränkt ist. Sie als Startup-Unternehmer sollten sich also nicht schlecht fühlen, dies nicht zu tun, aber ich muss Ihnen die Idee vor Augen führen, da sie die ultimative Abwehr gegen Fehler bietet. Grundsätzlich verbringen Ihre Programmierer zusätzliche wertvolle Stunden damit, Tests (kleine Codeblöcke) zu schreiben, die sicherstellen, dass sich bestimmte Teile der App auf spezifische, vorhersehbare und wiederholbare Weise verhalten. Zum Beispiel könnte ich einen Test schreiben, der besagt, dass beim Klicken auf die Schaltfläche „Anmelden“ ein Popup mit einem Benutzernamenfeld geöffnet wird.

Das Schöne an Tests ist, dass ich sie, sobald ich sie geschrieben habe, alle mit einem einzigen Befehl ausführen kann. Wenn ich 200 Tests geschrieben habe, kann ich sie nach der Veröffentlichung einer neuen Version der App ausführen, um sicherzustellen, dass keine Fehler in diese 200 Funktionen eingeführt wurden. Es ist nicht perfekt, aber es ist so nah wie möglich an der Garantie fehlerfreier (zumindest fehlerfreier) Apps.

Einpacken

Das ist ungefähr alles, was ich über Projektmanagement weiß. Ich bin mir nicht sicher, wie viel davon am Project Management Institute durchgehen würde, aber es sind alles Dinge, die ich mir bei der Arbeit an Webprojekten im Laufe des letzten Jahrzehnts angeeignet habe. Natürlich empfehle ich Ihnen, jemanden einzustellen, um von seiner Erfahrung zu profitieren, aber ich hoffe, Sie finden diese Informationen hilfreich, auch wenn Sie dazu nicht in der Lage sind. Sie werden die ultimative Autorität in diesem Projekt sein. Je mehr Sie also über sein Innenleben verstehen, desto wahrscheinlicher ist es, dass Sie es zum Sieg führen.