Einer der Grundsätze von Agilität ist ...
Kundenzusammenarbeit über Vertragsverhandlungen
... ein anderer ist ...
Individuen und Interaktionen über Prozesse und Werkzeuge
Aber so wie ich es sehe, gibt es zumindest bei der Interaktion mit dem Kunden ein grundlegendes Problem:
Wie der Kunde denkt, unterscheidet sich von dem, was ein Softwareentwickler denkt
Das mag eine Verallgemeinerung sein, ja. Es gibt wohl Geschäftsbereiche, in denen dies nicht unbedingt der Fall ist - dies sind jedoch nur wenige. In vielen Bereichen ist der typische Kunde jedoch:
- Interessiert an täglichen betrieblichen Belangen - Kurzstrecken-Taktik ... nicht unbedingt Strategie;
- Verständlicherweise nur mit der sofortigen Lösung befasst;
- Praktische Denker, keine abstrakten Denker;
- Viel mehr daran interessiert, "die Arbeit zu erledigen", als darüber nachzudenken, wie die Lösung zukünftige Bedenken unterstützen wird.
Im Idealfall sind Software-Ingenieure, die agil üben , im Idealfall :
- Menschen, die viel über Qualität nachdenken;
- Personen, die es zu schätzen wissen, wie ein wenig Vorarbeit eine Menge Aufwand auf der ganzen Linie einsparen kann;
- Erfahrene, analytische Denker.
Es scheint also eine kulturelle Diskrepanz zu geben, die dazu neigt, die "Kundenzusammenarbeit" zu behindern.
Was ist der beste Weg, um dies anzugehen?
Antworten:
Und um ehrlich zu sein, haben sie normalerweise gute Gründe, so zu denken. Erstens betreiben sie ein Unternehmen, das heute und morgen Einnahmen erzielen soll, nicht in ferner Zukunft. Zweitens sind sie keine technischen Experten - sie wissen nicht, was möglich ist und was nicht und welche Konsequenzen bestimmte Entscheidungen in Bezug auf Architektur, Design und Implementierung haben. Das wissen wir .
Die Antwort lautet also - kaum überraschend - Kommunikation .
Sie müssen viel kommunizieren, sich gegenseitig aufklären, sich gegenseitig den Standpunkt der anderen Partei zumindest auf einer grundlegenden Ebene verständlich machen. Sie müssen ihnen die kurz- und langfristigen Konsequenzen möglicher Alternativen erklären. Und Sie müssen eine Sprache verwenden, die sie verstehen .
OTOH können sie uns ein oder zwei Dinge über die Geschäftsperspektive beibringen. Unternehmen wollen brauchbare und gut genug - kaum perfekte - Lösungen. Und sie wissen wahrscheinlich besser als jeder andere, dass "perfekt der Feind des Guten ist". Sie müssen also bedenken, dass es unsere Aufgabe ist, Lösungen für Probleme unserer Kunden bereitzustellen, anstatt technisch perfekte Software zu produzieren. Manchmal konvergieren diese beiden zu demselben, aber häufiger nicht. Dies mag von vielen als traurig angesehen werden, aber es ist geschäftliche Realität. Wenn es mir gelungen ist, das Problem meiner Kunden zu lösen, und ich sehe, dass es ihnen das Leben sichtbar erleichtert hat, bin ich genauso glücklich wie sie. OTOH, wenn ich es geschafft habe, das perfekte Design umzusetzen, das ich mir vorgestellt hatte, aber das Unternehmen in der folgenden Woche bankrott geht, ist es für niemanden ein Gewinn, oder?
Ein vernünftiger Geschäftsinhaber wird verstehen - wenn Sie ihn in seiner eigenen Sprache erklären -, warum es wichtig ist, die Software sauber zu halten, Komponententests zu schreiben, umzugestalten usw. Auch wenn diese kurzfristig nichts direkt beizutragen scheinen, sie sind für die langfristige Wartung unerlässlich. Und vernünftige Kunden legen Wert auf die langfristige Wartbarkeit ihres Geschäfts, sodass sie sicherlich bereit sind, in dieses Unternehmen zu investieren, wenn sie den Wert sehen, den ihre Investition generiert. Da sowohl ihre Ressourcen als auch Ihre Zeit begrenzt sind, müssen Sie Prioritäten setzen und sich auf die wichtigsten Dinge konzentrieren. Aber es ist nur wichtig, wenn es für Sie beide wichtig ist .
Vielleicht möchten Sie Modul A umgestalten, weil der Code dort einfach schrecklich ist und Sie eine erstaunliche Idee haben, wie Sie den Code mit einem Entwurfsmuster, über das Sie gerade gelesen haben, präzise, elegant und sauber umgestalten können. Wenn dieses Modul jedoch seit Jahren nicht mehr berührt wurde und zuverlässig funktioniert, sollten Sie sich höchstwahrscheinlich besser auf Modul B konzentrieren, das nächste Woche um eine sehr wichtige neue Funktion erweitert wird und unzählige Fehler enthält bereits.
quelle
Wie Ihr Kunde sich selbst sieht:
Auf der anderen Seite sehen sie Ihre Gruppe als:
Ihr Hauptproblem scheint darin zu bestehen, dass keiner von Ihnen versteht, was er von der anderen Partei benötigt.
quelle
In erster Linie ist Agile nicht die Lösung für alle Probleme, die Sie in Ihrem Projekt haben.
Ja. Manchmal ist es wahr. Es gibt sogar Fälle, in denen Kunden nicht wissen, was und wie sie wollen (dh die Anforderungen sind nicht klar). Was auch immer, wenn Sie agil sind, erhalten Sie das Ergebnis nach jedem Sprint (sagen wir 2 Wochen) und Sie erhalten die Möglichkeit, Kundenfeedback zu erhalten und sicherzustellen, dass alle auf derselben Seite sind. Dies hilft bei der frühzeitigen Erkennung und Behebung von Problemen, die intern zum Aufbau von Vertrauen beitragen.
Es gibt auch ein Sprichwort: Benutzer sind wie verrückte Kinder. Wenn sie also nach einer Waffe fragen und wissen, dass diese nicht sicher ist, können Sie eine Spielzeugpistole geben, um sie zu beruhigen .
Wie ich bereits sagte, gibt es keinen Zauberstab, der alle diese Probleme lösen kann . Sie müssen mehr mit Ihren Kunden in Kontakt treten, damit Sie genau verstehen, was die anderen tun. Bewerben Sie den Besuch vor Ort, öffnen Sie Feedback usw.
Stellen Sie sicher, dass Ihr Produktbesitzer und die Stakeholder an den Sprint-Demos teilnehmen und wertvolle Vorschläge zur Verbesserung des Produkts machen .
quelle
Wenn Sie kein Buy-In vom Kunden haben, kann Agile nahezu unmöglich sein.
Mit Buy-In meine ich, einen garantierten Prozentsatz der Zeit eines Kundenvertreters pro Woche oder Monat zu erhalten. Dieser Prozentsatz variiert je nach Projekt.
Offensichtlich haben sie ihren Tagesjob, daher liegt es nicht nur am Kundenvertreter selbst, sondern auch an ihrem Management, Zeit für sie zu gewinnen.
Die Zustimmung des Managements auf Kundenseite ist daher der Schlüssel zu diesem Problem
quelle
Denken Sie daran, dass Agilität nicht bedeutet, dass der Kunde an täglichen Stand-ups oder einigen anderen alltäglichen Aspekten von Agilität beteiligt ist. Bei Agile aus Kundensicht geht es um Kommunikation. Das bedeutet nicht, dass sie mit Ingenieuren über Implementierungsdetails kommunizieren.
Kunden arbeiten mit dem Product Owner zusammen, um ständiges Feedback zu erhalten und zu geben. Das Thema sind Funktionen, aber nicht, wie sie implementiert werden. Liefern Sie die richtigen Funktionen? Bist du im Zeitplan? Haben sie sich ändernde Anforderungen, an die Sie sich anpassen müssen?
Agile hilft Ihnen und Ihren Kunden, diese Fragen zu beantworten.
quelle