So starten Sie ein Entwicklungsprojekt, wenn zu viele potenzielle Stakeholder vorhanden sind

15

Ich habe gerade einen neuen Job an einer Hochschule als (einziger) Webanwendungsentwickler angenommen.

Das College hat eine Reihe von unterschiedlichen, aber ziemlich schlecht codierten Legacy-Systemen. Meistens in PHP gebaut, beschäftigen sie sich mit Dingen wie Anwesenheit, Prüfungsergebnissen, Benotung usw.

Meine erste Aufgabe ist es, ein System zu erstellen, das viele dieser Daten enthält, die derzeit in verschiedenen Datenbanken gespeichert sind, ohne dass eine benutzerfreundliche API erforderlich ist. mit einer neuen Plattform für die Aufzeichnung von pastoralen Informationen über Schüler und stellt sie Lehrern und Führungskräften auf nützliche Weise zur Verfügung, damit sie schnell auf Probleme mit Schülern reagieren können.

Bei unserem ersten Treffen waren es 18 Leute! Es gab keinen klaren Führer oder keine klare Stimme, die die Mehrheit repräsentierte. Kein identifizierbarer Kunde . Das Meeting reichte von detaillierten Implementierungsideen zu kleinen Features von Fakultätsleitern bis hin zu Argumenten, ob wir Excel-Tabellen für die Dateneingabe verwenden sollten oder nicht!

Wie Sie sich vorstellen können, drehte sich am Ende mein Kopf. Eigentlich hatte ich viele gute Ideen, aber ich konnte sie nicht hören. Dies ist eine sehr neue Rolle für mich, bevor ich Teil eines Entwicklungsteams in einer Marketingagentur war. Wir hatten sehr genau definierte Rollen: Projektmanager, Kunde, Designer, Entwickler.

Ich würde gerne wissen, ob erfahrene Entwickler oder Manager mir Hinweise geben können, wie ich meine Kollegen in etwas verwandeln kann, das einem Projektteam ähnelt. Ist agil der richtige Weg? Wie würden Sie mit all den unterschiedlichen Stimmen umgehen? Es ist klar, dass ein Prozess sehr schnell eingerichtet werden muss. Ich bin mir einfach nicht sicher, was das ist.

Matt Harrison
quelle
8
Wenn Sie der einzige Entwickler sind, wer waren die anderen 17 in der Besprechung?
pdr
1
Gute Frage. Der Schulleiter, verschiedene Mitglieder des Lehrpersonals (sogar der Sportlehrer war da) und viele Leute mit akronymischen Namen.
Matt Harrison
1
@MattHarrison: aber was haben sie mit Ihrer Webanwendung gemeinsam? Sind sie potenzielle Nutzer? Erhalten sie das von Ihnen erwähnte Altsystem aufrecht? Sie sollten dies klarstellen, damit Sie wissen, wen Sie nach Anforderungen fragen und wen Sie ignorieren können.
Doc Brown
1
@ DocBrown Es tut mir leid, vielleicht war ich ein wenig unklar. Sie alle werden zukünftige Benutzer des Systems sein. Die Anwendung wird hochschulübergreifend sein und von über 3000 Personen verwendet werden. Ich denke, was hier passiert ist, sind Leute, die Leute einladen, und das Treffen ist zu einem Zirkus geworden. Was ich tun werde, ist die Notwendigkeit einer kleineren Einbeziehung der Interessengruppen zu betonen.
Matt Harrison
5
@Zum anonymen Downvoter / Näheren: Dies scheint auf den ersten Blick zu lokalisiert zu sein. Aber ich denke, die eigentliche Frage ist eine Entwicklungsfrage von allgemeinem Interesse: "Wie starte ich ein Entwicklungsprojekt, wenn es zu viele potenzielle Stakeholder gibt?"
Doc Brown

Antworten:

26

Ich würde hier keinen "agilen Entwicklungsprozess" als Lösung für Ihr aktuelles Problem erwarten. Das erste, was Sie tun sollten, ist , Ihre Mission zu erfüllen . Das bedeutet:

  • Klären Sie Ihre eigenen Verantwortlichkeiten
  • Klären Sie die Verantwortlichkeiten der anderen Stakeholder
  • Identifizieren Sie, wer für die einzelnen Legacy-Systeme verantwortlich ist
  • Wenn (noch) kein Client für Ihre Webanwendung vorhanden ist, suchen Sie einen, der sie in Zukunft verwenden wird, und bitten Sie um Erlaubnis, ihn als repräsentativen Benutzer Ihres Systems einzubeziehen (eine Person, mit der Sie die Anforderungen besprechen können).
  • Wenn es unterschiedliche Stakeholder mit unterschiedlichen Zielen gibt, erfassen Sie deren Anforderungen (z. B. indem Sie sie einzeln befragen und nicht 18 Personen zusammen in einem Raum). Schreiben Sie die Ergebnisse in eine Liste. Beginnen Sie danach mit der Priorisierung.
  • Schreiben Sie eine Roadmap (das große Bild) und eine kleine Spezifikation für Release 0.1 auf, und lassen Sie Ihren Chef sowie den repräsentativen Kunden dieser formell zustimmen
  • BEARBEITEN: Siehe GlenH7 Kommentar

Dies kann eine Weile dauern. In dieser Phase des Projekts werden Sie wahrscheinlich noch nicht viel Code schreiben. In einer solchen Situation sollten Sie zuerst ein "Requirements Engineering" durchführen. Aber klein anfangen, groß denken. Sobald Sie Ihr erstes Release entwickelt haben, haben Sie etwas zu zeigen, Anforderungen erneut mit den Stakeholdern zu besprechen usw.

Doc Brown
quelle
Geniale Beratung. Vielen Dank! Darf ich nur klarstellen; Wenn du sagst, dass du deine Verantwortlichkeiten klar machst, meinst du damit, dass du sie klar machst oder klar machst, wenn du sie loswirst? Tut mir leid, ich bin Brite, vielleicht ist es eine US-englische Sache.
Matt Harrison
1
@MattHarrison: hoffe, meine Bearbeitung macht dies klarer - obwohl es manchmal auch eine gute Idee sein kann, einige Verantwortlichkeiten loszuwerden ;-)
Doc Brown
4
Hervorragende Antwort. Der einzige Punkt, den ich hinzufügen möchte, ist die Identifizierung eines Lead- oder Executive-Stakeholders. Diese Person hat die letzte Autorität bei der Bestimmung der Priorisierung und des Umfangs von Merkmalen. Es gibt verschiedene Wege, um dorthin zu gelangen, aber jemand hat die endgültige Verantwortung für das Projekt. Und ja, Sie können diesen Kommentar stehlen, um ihn Ihrer Antwort hinzuzufügen, wenn Sie möchten. :-)
6

Trennen Sie diejenigen von der Herde, die wirklich wollen, dass dieses Projekt funktioniert.

Aus politischen Gründen hat jemand dieses Treffen mit einer Teilnehmerliste zusammengestellt, bei der die Mitgliedschaft davon abhängt, wer sich am meisten aufregt, wenn ich ihn nicht einlade. Es passiert. Dieses Ziel wurde erfüllt, aber als Entwickler haben Sie festgestellt, dass nichts entschieden wurde. Niemand wurde beauftragt, was zu tun ist. Wenn Sie Glück haben, haben sie es geschafft, das nächste Treffen zu planen, oder Gott bewahre, sie haben jeden 3. Dienstag im Monat ein wiederkehrendes Treffen angesetzt.

Als nächstes werden Ausschüsse, Unterkomitees und Task Forces gebildet. Das ist besser, aber Sie werden alle gleichermaßen wertlos finden.

Schließlich werden Sie herausfinden, wer sich wirklich für dieses Projekt interessiert. Wer möchte wirklich die Zeit investieren, um es richtig zu machen? Hoffentlich haben diese Person (en) einen Vorgesetzten, der ihnen die Zeit lässt, dies zu tun, und es nicht einfach zu einem weiteren Punkt auf ihrer bereits langen Aufgabenliste macht. Finden Sie diese Leute so schnell wie möglich! Helfen Sie ihnen, mit den Erwartungen ihres Chefs umzugehen und eine vereinbarte Menge an Engagement zu erzielen.

Holen Sie sich etwas vor so vielen Menschen in der ursprünglichen Gruppe, die sich sogar die Mühe machen, zurückzukehren. Sie mögen alle kluge und / oder gebildete Leute sein, aber sie werden keine Daten lesen. Sie werden einige Dinge mögen, andere hassen und mehr wollen. Es tut nicht weh, Vorschläge aufzuschreiben, aber versuchen Sie, diese Gruppe dazu zu bringen, mit etwas Haut im Spiel weiterzumachen. Versprich nicht, alles zu tun. Sprechen Sie einfach an, was in naher Zukunft getan werden kann.

Wenn Sie regelmäßig mit mehr als 5 Personen zu tun haben, ist dies darauf zurückzuführen, dass ein Manager mehrere seiner Mitarbeiter dazu veranlasst hat, sich zu engagieren, die nicht wirklich dort sein möchten.

JeffO
quelle
1
+1 für die Hervorhebung der politischen Aspekte einer solchen Situation.
Doc Brown
4

Überlegen Sie sich eine Liste mit Ideen, die Ihrer Meinung nach die vorhandenen Systeme auf der Grundlage Ihrer Beobachtungen und ihrer "Bedürfnisse" festigen / verbessern und sicherstellen, dass Sie sich darauf konzentrieren, wo Sie tatsächlich sichtbare Gewinne erzielen können. Nehmen Sie in diese Liste jede Idee auf, die Sie für nützlich halten, sowie jeden herausragenden "vernünftigen" Vorschlag von Nicht-Entwicklern.

Erstellen Sie eine Featureliste mit Dingen, die in Ihre Entwicklungsbemühungen einbezogen werden sollten. Geben Sie jedem Mitglied die "Stimmberechtigung", vielleicht in Form von "klebrigen Sternen", und finden Sie heraus, was das Ganze eigentlich will, indem Sie jedem Mitglied Sterne neben das setzen, was es für wichtig hält. Einige Leute haben möglicherweise mehr Sterne, wenn sie den Scheck unterschreiben, das letzte Wort haben usw. Danach werden Sie und alle anderen hoffentlich sehen, was für das Ganze wichtig ist, und sie werden hoffentlich der Priorität zustimmen, die sie haben werden dann in eine Roadmap übersetzen

1). Besichtigen Sie das Team - Finden Sie heraus, was jedes Mitglied für wichtig / notwendig / höchste Priorität hält

2). Holen Sie sich schnell etwas raus - Versuchen Sie nicht, alle Probleme auf einmal zu lösen, holen Sie sich die "Bare Minimum" -Funktionalität heraus und lassen Sie sie genehmigen und verbessern Sie sie dann gemeinsam auf der Grundlage des Feedbacks der Benutzer.

3). Verwenden Sie deren Feedback und das Feedback anderer Benutzer, um den Entwicklungsprozess zu steuern

(Erstellen, Feedback bewerten, Erstellen, Feedback bewerten) Spülen und wiederholen.

Sie können auch in Betracht ziehen, "Aufwandspunkte" oder geschätzte Stunden zu vervollständigen. Dies kann auch bei der Priorisierung hilfreich sein.

Hanzolo
quelle
1
+1, das ist die Art und Weise, das Auto zu fahren, sobald Sie es in Bewegung gebracht haben :-)
Doc Brown
1
+1 für diesen Fall, obwohl ich noch deutlicher machen möchte, dass Sie sich vor einem "schlechten System" hüten müssen, das tatsächlich das tut, was es tun muss. Konzentrieren Sie sich darauf, wo Sie tatsächlich sichtbare Gewinne erzielen können, indem Sie Prioritäten setzen, damit Sie nicht Fehler beheben.
Joris Timmermans
@MadKeithV, einverstanden. "Konzentrieren Sie sich darauf, wo Sie tatsächlich sichtbare Gewinne erzielen können", aktualisierter Kommentar, um diese Aussage aufzunehmen.
Hanzolo
2

Ihre erste Herausforderung besteht darin, den Bedarf für dieses Projekt zu ermitteln. Treffen Sie sich noch einmal mit all diesen Leuten und bitten Sie sie, die Probleme aufzuschreiben, die gelöst werden müssen. Lassen Sie sie nicht über die vielen Möglichkeiten sprechen, in denen dieses Projekt die Lösung sein wird. Zwingen Sie sie, die Bedürfnisse / Probleme wirklich zu identifizieren.

Eine Möglichkeit, dies zu tun, besteht darin, sie einzeln aufzufordern, diese Bedürfnisse auf Haftnotizen zu dokumentieren - eine Idee pro Haftnotiz. Führen Sie dann ein Affinitätsdiagramm aus , um diese unterschiedlichen Ideen in spezifischen Anforderungen zusammenzufassen. Lassen Sie sie abschließend abstimmen ( Multi-Voting ), damit Sie den größten Bedarf erkennen können.

Agile erinnert uns daran, die Funktion mit dem höchsten Kundennutzen zuerst in Angriff zu nehmen. Beginnen Sie mit dem größten Bedarf und teilen Sie diesen Gegenstand dann weiter auf, bis Sie das erste kleine Stück haben, das Sie tatsächlich in kurzer Zeit tun können.

lsievert
quelle
0

KISS - Machen Sie eine Reiseroute. Vielen Dank für Ihr Kommen, überprüfen Sie es, tun Sie es. Side Tracking verlangsamt sich, wenn Sie Ihre Bedenken mitteilen und sie bitten, NACH der Besprechung zu bleiben. Treffen Sie Ihre Entscheidungen durch Abstimmung, wenn es Kontroversen gibt, um die meisten zufrieden zu stellen. Die Motivation, an einem System teilzunehmen, hängt direkt mit dem Glauben des Einzelnen an seine Methoden zusammen.

Steven
quelle