Irgendwann im letzten Jahr habe ich ein ziemlich kompliziertes Projekt als alleiniger Entwickler / Projektmanager und Tester übernommen.
Im November letzten Jahres gab es eine Frist für die Bereitstellung einiger neuer Funktionen.
Das System, das ich übernahm und das angeblich einsatzbereit war, war noch lange nicht einsatzbereit.
Als er mit einem der Benutzer unserer Kunden zusammensaß, entwickelte er neue Funktionen und Anforderungen, die erforderlich waren. Obwohl die von ihnen angeforderten Funktionen implementiert wurden, argumentierte er, dass sie nicht den Anforderungen entsprechen.
Also musste ich zum Zeichenbrett zurückkehren und umfangreiche Änderungen am System vornehmen.
Versprechen nach Versprechen, das ist meine eigene Schuld, ich habe die nachfolgende Frist aus verschiedenen Gründen verpasst: zu optimistische Planung in meinem Namen, kranke Kinder und verschiedene andere persönliche Probleme.
Und auch auf Kundenseite gab es Fehler: Nur testen, wenn ich über die Schulter schaue und so weiter.
Gestern haben wir vereinbart, dass wir live gehen, wenn ihre Benutzer den Antrag genehmigen.
Natürlich tauchten einige Probleme auf und heute, als ich versuchte, unseren Kunden anzurufen, legte er auf und hat auf keine meiner E-Mails geantwortet.
Das macht mich wirklich fertig, die Stunden und die Zeit, die ich dafür aufgewendet habe, übersteigen die normalen Arbeitszeiten bei weitem und haben auch meine Familie in Mitleidenschaft gezogen
Natürlich gibt es in dieser Situation Dinge, die für dieses Projekt spezifisch sind, aber ich denke nicht, dass das Gesamtmuster (mehrere kleine Probleme, die zum Zusammenbruch des Projekts führen) ungewöhnlich ist.
Was würden Sie in einem ähnlichen Szenario tun?
Antworten:
EDIT: Beim erneuten Lesen klingt dies ein bisschen hart, es ist nicht so gemeint. Die Dinge, die Sie beschreiben, sind häufig und werden normalerweise durch völlig verständliche Faktoren verursacht (und dann durch Ihren Versuch, hilfreich zu sein, noch verstärkt). Wie auch immer, wenn es hart rüberkommt, tut mir leid, es zeigt nicht mit dem Finger, es versucht nur zu sagen, "das scheint schief gelaufen zu sein, und so geht man damit um".
Was aus dem, was Sie sagen, passiert zu sein scheint, ist:
Infolgedessen schlägt das Projekt fehl.
Mein erster Punkt wäre, dass Sie aufhören müssen, das zu tun, was Sie bisher getan haben (was optimistisch zu sein scheint, vorausgesetzt, wenn Sie einfach weitermachen, wird alles klappen). Das hat in den letzten 3 Monaten nicht funktioniert. Warum wird es jetzt funktionieren?
Im Wesentlichen hätte jedes dieser Probleme bei ihrem Auftreten behoben werden müssen, wobei sowohl das Symptom (z. B. eine versäumte Frist) als auch die Grundursache (z. B. der Plan war zu optimistisch) behandelt wurden. Da dies nicht geschehen ist (nicht ungewöhnlich), sind Sie jetzt in der Lage, mehrere Probleme zu lösen.
Nach meiner Erfahrung ist es am besten, alle Beteiligten wieder zusammenzubringen, die Anforderungen und Verantwortlichkeiten wiederherzustellen und einen darauf basierenden (realistischen) Plan zu vereinbaren, wenn ein Projekt auf diese Weise erheblich aus dem Ruder läuft.
Ihr Kunde muss:
Bestätigen Sie die Anforderungen klar und eindeutig. Dies kann eine Spezifikation sein, es kann eine Liste von Abweichungen von dem sein, was derzeit implementiert ist, es muss jedoch vollständig und eindeutig sein und schriftlich mitgeteilt werden.
Akzeptieren Sie eine Testphase, die sie selbst verwalten müssen. Am Ende werden alle Fehler gemeldet. Daran werden Sie dann arbeiten. Sie müssen wahrscheinlich auch akzeptieren, dass es mindestens eine nachfolgende Testphase zum erneuten Testen der Fehler geben wird, die aus der ersten hervorgehen werden.
Du brauchst:
Bewerten Sie die Anforderungen realistisch, schätzen Sie die Arbeit genau ein (einschließlich angemessener Eventualitäten) und stellen Sie einen Plan auf, um dies zu erreichen. Der Schlüssel ist genau. Wenn Sie glauben, dass es schlecht und hart werden wird, liefern Pläne, die Menschen glücklich machen sollen, die nicht die Realität widerspiegeln, keine Software.
Liefern Sie gegen diesen Plan.
Um den Kunden erneut zu kontaktieren, würde ich Ihnen empfehlen, einen vorgeschlagenen Ansatz in diesem Sinne zusammenzustellen, in dem angegeben wird, warum und ihn an ihn zu senden. Im Moment möchte er wissen, wie es besser wird, und das müssen Sie ihm liefern, wenn Sie die Beziehung wieder aufbauen wollen.
quelle
Das Beste, was Sie tun können, ist, offen und offen über Ihre eigenen Fehler zu kommunizieren und freundlich darum zu bitten, von Ihren Verpflichtungen entbunden zu werden.
Es wird Ihnen oder dem Kunden nicht helfen, auf alle ihre Mängel hinzuweisen, und Sie werden sich besser fühlen, ohne dass die Verpflichtung über Ihnen liegt.
Nehmen Sie diese Erfahrung als schmerzhafte Klasse in der Schule der harten Schläge und bereiten Sie sich besser auf den nächsten Kunden vor.
quelle
Ich bin schon einmal in solchen Situationen festgefahren.
Ihr Geschäft muss dies erledigen, und Sie haben Versprechen nach Versprechen gebrochen. Sie müssen aufhören, zu optimistische Versprechungen zu machen. Wenn ich in solchen Situationen war, fällt es mir sehr schwer, beim Kunden wieder Glaubwürdigkeit zu erlangen . Wenn Sie im Geschäft arbeiten, ist Ihr Ruf äußerst wichtig. Wenn Sie Schätzungen vornehmen möchten, müssen Sie diese treffen. Wenn Ihre Kinder / Familie in Zukunft krank sind, gibt es jemanden, der Ihnen hilft, sich um sie zu kümmern, wie einen Ehepartner oder eine andere Familie? Schauen Sie in Richtung einer Zukunft ohne Ausreden.
Er will Ergebnisse, keine Ausreden. Er legte auf, weil er keine weitere Entschuldigung hören wollte. Was können Sie tun, um das Projekt wieder in Gang zu bringen? Was können Sie tun, um dieses Projekt abzuschließen? Wie sind Sie überhaupt zu diesem Projekt gekommen?
Wenn ich Sie wäre, würde ich heute Zeit damit verbringen, die Dokumentation vorzubereiten, um dieses Projekt dem nächsten Mann zu übergeben.
Ich war auch in solchen Situationen. Geben Sie in Zukunft niemals viel Energie aus, um dies dem Kunden zu beschreiben, da es sich so anhört, als wären Sie Goldbricking. Warum hat der vorherige Typ es in dem unfertigen Zustand belassen, in dem es sich befindet?
Dies war einer der schmerzhaftesten Teile des neuesten Projekts, an dem ich wie Ihres festhielt. Der Fachexperte (der diesen Sommer in den Ruhestand geht) dokumentiert nichts, daher resultieren die meisten Fehler aus meiner unvollständigen Erinnerung an Gespräche mit diesem Typen. Außerdem war er es gewohnt, all das geheim zu halten, um sich unentbehrlich zu machen, und diese Angewohnheit war für ihn in seinen letzten zwei Jahren bei der Arbeit äußerst schwer zu erschüttern.
Der andere kritische Fehler war, dass es keine Testumgebung gab. Im vergangenen Jahr wurde der gesamte zu testende Code direkt in die Produktion befördert, wo er von den Endbenutzern einer Qualitätssicherung unterzogen wurde.
Die letzte Situation war, dass diese Bundesbehörde kein Budget hatte, um jemanden einzustellen, und ich beendete dieses Projekt, um meinen Freund vor einer Klage zu bewahren. Am Ende ließen sie mich los (yippie!) Und benutzten jemanden, der an einem anderen (noch finanzierten) Projekt arbeitete. Es dauerte mehr als ein Jahr, bis ich mich engagierte, und obwohl sie ihr Budget für das Projekt verdoppelten, wurde dieses Budget zum Zeitpunkt meiner Beteiligung erschossen.
Wenn Sie vorwärts gehen, müssen Sie lernen, bessere Schätzungen vorzunehmen. So etwas wie das in PSP ( Buch ) empfohlene Tagebuch . Dieses Projekt ist ein Fehlschlag. Vielleicht möchten Sie auch Dinge mit Ihren persönlichen Freunden besprechen. Verfügt einer von ihnen über die Fähigkeiten und die Bandbreite, um Sie bei zukünftigen Problemen wie diesen zu unterstützen? Wenn Sie das nächste Mal über den Kopf steigen, werden Sie diesen Fehler wiederholen oder können Sie etwas tun, um den Fehler beim nächsten Mal zu mildern?
quelle
Wenn Sie Software geschrieben haben, die vom Kunden verwendet / implementiert wird, ist der Kunde dafür verantwortlich, für diese Software zu bezahlen und auf Anfragen zu reagieren. Es hört sich sehr danach an, als hätte der Klient seine Hände gewaschen. Wenn Sie also nicht bereit sind, wegen dieser Angelegenheit vor Gericht zu gehen, nehmen Sie diese möglicherweise einfach auf den Platz.
Sie benötigen Unterlagen, Verträge, schriftliche Anforderungen, Fristen, Lieferungen und Mängel. Wenn Sie nachweisen können, dass Sie Ihre Sorgfaltspflicht bei der Erfüllung des Vertrags erfüllt haben und der Kunde dies nicht getan hat, dann haben Sie etwas. Wenn Sie nicht können, dann ist es nur "Er sagte, er würde mich dafür bezahlen, also habe ich es getan, und jetzt wird er meine Anrufe nicht zurückgeben."
Ich empfehle Ihnen, sich an die Sekretärin / den Assistenten dieses Kunden zu wenden, um ein persönliches Treffen mit ihm zu vereinbaren. Verschwenden Sie nicht seine Zeit, reden Sie nicht um den heißen Brei herum. Sagen Sie ihm, dass Sie die Gelegenheit schätzen, die er Ihnen gegeben hat, um an diesem Projekt zu arbeiten, und dass Sie erkennen, dass einige Erwartungen nicht erfüllt wurden. Trüben Sie das Problem nicht mit Ausreden oder Gegenargumenten. Sie werden euch beide auf lange Sicht nur wütend machen und euch nichts bringen.
Fragen Sie den Kunden, welche Maßnahmen erforderlich sind, damit dies so läuft, wie er es gerne hätte. Berücksichtigen Sie Ihre Fähigkeiten, Ihren Status, Ihre Verfügbarkeit und alles. Sei ehrlich zu dir selbst. Was auch immer Sie sich in Bezug auf Kosten / Zeit / usw. einfallen lassen, VERDOPPELN SIE ES. Wenn dies nicht in den Kompromissbereich fällt, müssen Sie Köder schneiden und Wege trennen.
Dies ist wahrscheinlich eine ausgemachte Sache, da es so klingt, als wäre der Kunde ziemlich verärgert, aber es kann zu einer Lernerfahrung werden. Es hört sich so an, als ob Sie in verschiedenen Angelegenheiten in Bezug auf Verträge dieser Art viel zusätzliche Vorbereitung benötigen:
Das Letzte, was ich für die Zukunft empfehlen kann, ist, ehrlich zu sich selbst zu sein. Wenn Sie die Anforderungen eines Kunden nicht professionell erfüllen können, versuchen Sie es nicht. Wenn ich einen Klempner anrufe, um mein undichtes Waschbecken zu reparieren, möchte ich nichts über seine kranken Kinder hören oder wie er nicht wusste, dass das Reparieren 7 Stunden dauern würde. Ich möchte, dass es repariert wird. Ich werde die zusätzliche Zeit bezahlen, wenn er mir zeigen kann, dass es notwendig war und nicht nur er in meinen Pfeifen herumwirbelt. Ihre Kunden haben Erwartungen. Wenn Sie den 1. Mai versprechen, lassen Sie es am 1. Mai tun. Wenn etwas vom Kunden im Weg steht, schreiben Sie schriftlich, dass das Datum aufgrund der Anfrage des Kunden verschoben wird. Erhalten Sie es schriftlich. Wenn es etwas an Ihrem Ende ist, beheben Sie es. Wenn Sie wissen, dass dies zu einem Problem führen wird und die Frist einfach nicht eingehalten wird, Sei ehrlich und gib es zu. Dann seien Sie bereit, einen Rabatt anzubieten.
quelle
Ich war in genau der gleichen Situation. Ich hatte einen Kunden, der viel mehr wollte, als ich bieten konnte, und der jede Woche die Erwartungen änderte. Am Anfang war es ein einfacher Job, aber so viele Dinge wurden angepackt ... Ich habe viel Schlaf verloren und es hat andere Aspekte meines Lebens stark beeinflusst.
Das Beste, was Sie tun können, ist, es einfach herunterzufahren und weiterzumachen. Fehlgeschlagene Projekte kommen nur manchmal vor und es ist für beide Parteien am besten, die Anzeichen zu erkennen und frühzeitig zu erkennen. Sobald es in Ihr persönliches Leben gelangt, ist es zu weit gegangen.
Lerne daraus und versuche es nicht zu wiederholen. Sie werden viel glücklicher sein.
quelle
Fragen Sie den Kunden, was er möchte. Wenn es in den vorliegenden Vertrag fällt, tun Sie dies, andernfalls verhandeln Sie den Vertrag neu. Stellen Sie in jedem Fall sicher, dass Sie ein klares Verständnis dafür haben, was der Kunde in einem Dokument, das er abzeichnet, tatsächlich möchte, damit er später nicht sagen kann, dass Sie etwas verpasst haben, das er wollte.
quelle
Der Schlüsselfaktor hier ist meines Erachtens, dass die Anforderungen nicht vereinbart wurden.
Ich weiß nicht, wie Sie abgerechnet haben. Wenn es sich um einen Festpreisvertrag mit flexiblen Anforderungen handelt, haben Sie möglicherweise keinen Rückgriff. Schließen Sie niemals einen Vertrag ab, bei dem Sie einen X-Betrag erhalten, ohne eine solide schriftliche Vereinbarung darüber zu treffen, was Sie liefern sollen. Wenn Sie so etwas tun müssen, teilen Sie das Projekt in Phasen auf und führen Sie Phase N + 1 erst aus, wenn Phase N abgemeldet ist (falls nicht tatsächlich bezahlt). Geben Sie immer sowohl Ihre als auch Ihre Kundenverantwortung an.
In diesem Fall hat Ihr Vorgänger offenbar zusätzliche Anforderungen ohne Neuverhandlung des Vertrags akzeptiert. Das ist schlecht. Wenn ein Projekt die vereinbarten Anforderungen erfüllt, sollten Ergänzungen im Rahmen von Vertragsänderungen ausgehandelt werden. Sie müssen nicht unbedingt mehr berechnen, aber in diesem Fall musste die Frist natürlich zurückgesetzt werden.
Sie können flexible Anforderungen haben, solange Sie keinen festen Preis oder Fertigstellungstermin haben.
Ihre Schätzungsprobleme sind branchenüblich, aber versuchen Sie, daraus zu lernen. Unerwartete Probleme treten ziemlich häufig auf. Geben Sie daher niemals Zahlen zu einer Best-Case-Schätzung an.
quelle
Sie brauchen einen besseren Prozess , Agile Methodologies, insbesondere SCRUM, bieten bessere Transparenz, erzwungene Kundeninteraktion, indem Sie den Kunden zum Stakeholder und Teammitglied sowie die Tester als Teammitglieder machen. Jeder wird für Lieferungen verantwortlich, nicht nur der Entwickler.
Es ermöglicht kürzere Lieferzyklen. Wenn Sie also einen Sprint verpassen, ist es nur ein oder zwei Wochen Sprint, und Sie und der Kunde wissen beide, dass Sie ihn weit vor dem Ende des Sprints verpassen werden.
Wenn Sie scheitern, da Sie nur einen Sprint von 1 bis 2 Wochen planen, scheitern Sie schnell, klein statt spät und groß.
SCRUM macht auch die endgültige Annahme der Lieferung in der Verantwortung des Product Owner (Kunden), was bedeutet, dass sich die Anforderungen ständig ändern und was nicht, für alle, die die Verzögerungen verursachen, transparent und sehr gut dokumentiert ist.
Weitere Dinge werden zu 100% vollständig und getestet und akzeptiert, bevor an neuen Funktionen gearbeitet wird. Stellen Sie sich vor, Sie haben eine Liste mit 100 Funktionen. Womit würde der Kunde zufriedener sein?
80% der wichtigsten Funktionen 100% vollständig, getestet und als fehlerfrei akzeptiert?
oder
100% aller Funktionen 80% vollständig, ungetestet und fehlerhaft?
Prozesse wie SCRUM zwingen den Kunden (Product Owner), Funktionen für Sie zu priorisieren, sodass Sie nur das liefern, was er für den aktuellen Sprint verlangt. Die wichtigste Arbeit für den Product Owner wird zuerst erledigt, andere Dinge, die weniger wichtig sind, werden möglicherweise nie erledigt, aber bei der Entscheidung des Kunden ist dies nicht wertvoll.
quelle
Lerne davon. Der beste Rat, den ich zum Geben von Zeitschätzungen erhalten habe, war: Berechnen Sie, was Ihrer Meinung nach erforderlich ist, verdoppeln Sie es und addieren Sie 10%. :) :)
Herzlichen Glückwunsch, Sie haben eine wertvolle Lektion im Software-Projektmanagement gelernt. Vermeiden Sie es, Ihre Kunden so zufrieden zu stellen, dass Sie sie am Ende noch mehr verärgern.
Dies gilt nicht nur für die Softwareindustrie. Was würden Sie erwarten, wenn Sie in ein Restaurant gehen würden und der Kellner eine Stunde brauchte, um Ihr Essen zu bringen? Und als Sie es bekamen, war es nicht das, was Sie erwartet hatten? Sie möchten einen Rabatt oder eine Entschuldigung, oder?
Bieten Sie dem Kunden an, was Sie können, und fahren Sie einfach fort. Manchmal ist das die einzige Wahl, die Sie haben.
Bearbeiten: Ich würde mich heutzutage mit Scrum oder einer anderen agilen Methode befassen, um die Unzufriedenheit der Kunden zu verringern.
quelle
Nennen wir es eine Lernerfahrung. Wenn der Benutzer das nächste Mal versucht, die Anforderungen an Sie zu ändern, verhandeln Sie die Zeitachse neu und erhalten Sie sie schriftlich.
Sie können eine Rechnung senden, wenn Sie sich berechtigt fühlen. Klingt so, als ob du es nicht tust.
quelle