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.
quelle
Antworten:
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:
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.
quelle
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.
quelle
Ü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.
quelle
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.
quelle
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.
quelle