Ist es Aufgabe des Softwareentwicklers, zu verstehen, was der Kunde mit seiner Anfrage gemeint hat?

12

Eine Art Ja / Nein-Frage und warum?

Ist es die Verantwortung des Softwareentwicklers, zu verstehen, was der Kunde mit seiner Anfrage gemeint hat, oder ist es die Verantwortung des Kunden, seine Anfrage dem Entwickler richtig zu erklären?

Die Situation bei der Arbeit ist derzeit "der Kunde hat uns bereits erklärt, was er will. Es liegt in Ihrer Verantwortung, die Anfrage zu verstehen, nicht mehr Fragen zu stellen".

Obwohl Englisch nicht meine Stärke ist, sind alle Anfragen in obskurem Englisch mit falsch platzierten Wörtern und schwer zu verstehenden Sätzen verfasst. Einige Anfragen setzen mein vorheriges Verständnis des Systems voraus.

Ich bin der 3. oder 4. Entwickler des Systems (die letzten Entwickler haben den Job gekündigt), und dies könnte der Grund sein, warum der Kunde von der Entwicklerseite Verständnis erwartet.

Das System selbst ist sowohl in der Benutzeroberfläche als auch auf der Quellcode-Ebene ziemlich unordentlich. Dies sieht aus, als würde ein Affe für mich den Code verschlüsseln. Ich hoffe, Sie erhalten die richtige Anfrage, verstehen die Anfrage aber nicht wirklich.

Eigentlich denke ich darüber nach, den Job zu kündigen, habe es aber noch nicht getan, da ich mir nicht sicher bin, wer Recht und wer Unrecht hat.

Dante
quelle
1
war dort ... T_T
Songo
6
Es dauert zwei bis Tango
gnat
16
Wenn ich der Kunde wäre und herausfinden würde, dass der Entwickler meine Anforderungen nicht versteht und aufgefordert wurde, keine Klärung anzufordern, wäre ich nicht zufrieden. Können Sie zumindest etwas Klarheit darüber erlangen, woher das Ding "Nicht mehr Fragen stellen" stammt?
Keith Thompson
14
@ JohnNevermore: Ich würde argumentieren, dass das Team Lead der Ansprechpartner für Fragen ist. Es liegt außerhalb Ihres Einflussbereichs, dass sich Entwickler vor Ihnen befinden, und es ändert nichts, dass Sie das Problem verstehen müssen. Wenn er sich weigert zu antworten, renne.
Keppla
4
Bedecke deinen Hintern, erhalte eine E-Mail, in der dir gesagt wird, dass du keine Fragen stellen sollst, und speichere sie für die spätere Verwendung, wenn jemand zu dir zurückkommt. Dann Code auf die Zeit, die Sie gegeben haben. Es liegt in Ihrer Verantwortung, Anweisungen zu befolgen oder zu riskieren, dass Sie entlassen werden.
Phil Hannent

Antworten:

41

Wenn es Ihre Aufgabe ist, zu verstehen, ist es Ihre Aufgabe, Fragen zu stellen, bis Sie dies tun

Die Person, die Sie fragen, ist möglicherweise jemand, der nicht der Kunde ist (ich habe oft mit einem Vermittler gesprochen, der mit dem Kunden in Kontakt stand). Daher sollten diejenigen, die Ihnen verbieten, mit dem Kunden zu sprechen, die Fragen selbst beantworten oder an Sie verweisen Jemand, der kann.

Aber am Ende muss es EINIGE Arten von Kommunikation geben. Wenn sie es ablehnen (und das Bereitstellen einiger Dokumente, die Sie nicht verstehen, die Kommunikation effektiv verweigert), sollten Sie wie Ihre Vorgänger vorgehen: schnell weglaufen.

keppla
quelle
22
Als Anekdote: Jedesmal , wenn ich diese Art von Verhalten sah, war es , weil der Kunde die Funktion sichergestellt wurde bereits umgesetzt , und wenn jemand würde als Fragen auf , wie es zu tun, wäre es ihre Lügen aufzudecken.
Keppla
In solchen Fällen wollen die Chefs normalerweise nur ETWAS, das sie als die oben erwähnte Implementierung ausgeben können, und zeigen, dass sie oben drauf sind. Dann sagt der Kunde "OK, aber können wir das stattdessen tun" und das Gespräch kann stattfinden. Immer noch ein sehr schlechtes Szenario.
KeithS
@KeithS: ja, das wäre eine schöne möglichkeit, dass niemand sein gesicht verliert. Aber in einigen besonderen Fällen haben die Bosse sich darauf geeinigt, etwas logisch Unmögliches zu liefern, und mit den erfolgreichen Tests geprahlt ... :) Nun ja, einige Witze aus den Stackoverflow-Foren haben eine Anfrage nach einem Programm gestellt, das das Problem des Anhaltens löst Projektbieterseite. Die Antworten waren erstaunlich, jemand hat dieses Problem anscheinend bereits gelöst :)
keppla
Der erste Satz sagt alles. Wenn Sie irgendwohin fahren, ist der wichtigste Faktor für die Bestimmung, ob Sie Ihr Ziel erreichen, die Kenntnis dieses Ziels. Ebenso ist es der wichtigste Faktor für den Erfolg eines Softwareprojekts, zu wissen, wie erfolgreich die Implementierung ist. Es ist genauso lächerlich, das letztere in Frage zu stellen, wie es das erstere ist.
JimmyJames
6

Wenn Ihre Kunden und Vorgesetzten Ihnen eine chaotische Spur hinterlassen, können Sie nur so viel Sinn wie möglich aus Ihren Vorstellungen gewinnen und beginnen, Szenarien in einfachem Englisch zu schreiben, um zu strukturieren, welches Wissen über die System soll sich verhalten.

Gegebene / Wann / Dann- Szenarien ermöglichen es Ihnen, detailliert zu erfahren, was geschehen muss. Da sie in einfachem Englisch verfasst und strukturiert sind, können Sie sie verwenden, um Ihrem Vorgesetzten und Kunden mitzuteilen: "Hören Sie, Ich bin an diesem Punkt angelangt und habe keine Ahnung, was das System hier tun soll ".

Wenn Sie sich einfach gescheut haben, wenn Sie um zusätzliche Klärung gebeten haben, obwohl Sie sich bemüht haben, alles zu dokumentieren, was Sie tun und nicht verstehen, dann haben die vorherigen Entwickler versagt, nicht weil sie nicht wussten, wie die Spezifikationen kommuniziert werden sollen, sondern weil das ist unmöglich.

Filip Dupanović
quelle
6

Meiner Meinung nach müssen sowohl Kunde als auch Entwickler das Problem und seine Lösung gleich verstehen.

Wenn Sie die Anfrage nicht verstehen, können Sie die Lösung nicht erstellen.

Sie müssen also die technischen Daten lesen. Wenn die Spezifikation nicht klar genug ist (oder es keine schriftliche Spezifikation gibt), sollte es jemanden geben, der die Antworten geben kann.

Ich arbeite in Teams mit einer Person, die die geschäftlichen Fragen beantworten kann. Dieser Geschäftsinhaber ist entweder ein Mitglied der Entwicklungsfirma, für die ich arbeite und die das Kundengeschäft kennt, oder ein Mitglied des Kundenteams.

k3b
quelle
3

Anscheinend befürchtet der Projektmanager in Ihrer spezifischen Situation, dass der Kunde verärgert ist, wenn ihm dieselben Fragen mehrmals gestellt werden (aufgrund des Entwicklerumsatzes erforderlich), und dass dies ihn und sein Unternehmen schlecht widerspiegelt.

Wenn Sie diese Fragen nicht stellen, dauert es natürlich viel länger, das System zu vervollständigen / zu modifizieren, und es kann sein, dass das Ergebnis nicht den Wünschen des Kunden entspricht, was zu weiteren Verzögerungen führt und AUCH den Projektmanager und seine Mitarbeiter schlecht berücksichtigt Unternehmen, zumindest in den Augen des Kunden.

Es gibt einige Gründe, warum der Projektmanager Sie möglicherweise keine Fragen stellen lässt:

  1. Er versteht die negativen Konsequenzen nicht wirklich oder leugnet sie.
  2. Er kennt die Alternativen, weiß aber, dass der Kunde Verzögerungen und schlechte Qualität eher akzeptiert als nervige Fragen.
  3. Er spielt politische Spiele: Vielleicht weiß er, dass er das Projekt bald verlässt und will Probleme bis dahin verbergen, oder er plant, Sie für die Probleme verantwortlich zu machen, die durch diesen Mangel an Kommunikation verursacht werden.

IMO Grund 2 ist unwahrscheinlich. Um Grund 1 zu beseitigen, versuchen Sie, ihm die Alternativen zu erklären, und bitten Sie ihn, eine explizite Wahl zwischen ihnen zu treffen - schlagen Sie vor, dem Kunden das Problem zu erklären, um den Ärger zu verringern. Um Grund 3 zu beseitigen, sollten Sie dies schriftlich tun, damit Sie nachweisen können, dass Sie potenzielle Probleme frühzeitig erkannt und versucht haben, diese zu beheben. Aber um ehrlich zu sein, wenn Sie vermuten, dass dies notwendig ist, sollten Sie wahrscheinlich so schnell wie möglich da raus.

Michael Borgwardt
quelle
2

Ich denke, es liegt immer in der Verantwortung des Dienstleisters, sicherzustellen, dass er die Absichten des Kunden verstanden hat.

Als Experten auf unserem Gebiet ist es nicht nur unsere Aufgabe, Schriftsätze auszufüllen, sondern unsere Kunden durch den Prozess der Nutzung unseres Service zu führen. Dazu müssen sie über die Möglichkeiten informiert werden, die wir bieten, und darüber, was wir jetzt tun.

Ich glaube, ein kundenorientierter Ansatz ist absolut die richtige Vorgehensweise. Es ist ein bewährtes Geschäftsmodell.

Milder Flaum
quelle
2

Der Kunde und die Entwickler müssen zusammenarbeiten, um ihr Verständnis des Systems zu verfeinern.

Das Softwareunternehmen muss mit dem Kunden eine Vereinbarung darüber treffen, was von jeder Partei verlangt wird, das ist der grundlegende Aspekt eines Vertrags. Wenn es keine "Begegnung" gibt, dann gibt es im wahrsten Sinne des Wortes keinen Vertrag.

Angenommen, Sie sind ein kompetenter Programmierer, und wenn die Spezifikation nicht klar ist, wird Ihnen lediglich gesagt: "Es liegt in Ihrer Verantwortung, die Anfrage zu verstehen, nicht mehr Fragen zu stellen".

Jaydee
quelle
2

Dies basiert auf einigen neuen Informationen in Kommentaren zur ursprünglichen Frage.

Die Aussage, dass

Der Kunde hat uns bereits erklärt, was er will. Es liegt in Ihrer Verantwortung, die Anfrage zu verstehen und keine weiteren Fragen zu stellen

kommt vom Projektleiter; das erklärte Grundprinzip ist

Da ich nicht der erste Entwickler auf dem System bin, sollten wir den Kundenvertreter nicht mit weiteren Fragen belästigen, sondern versuchen, die Frage zu interpretieren, und gegebenenfalls zusätzliche Zeit darauf verwenden

Was Sie also ausdrücklich vermeiden sollen, ist , den Kunden mit Fragen zu belästigen .

Es ist nicht unbedingt unvernünftig, Sie zu bitten, "zusätzliche Zeit mit der Interpretation der Frage zu verbringen". Sie sollten sich zumutbar oder vielleicht sogar ein wenig unangemessen anstrengen, um herauszufinden, welche Anforderungen auf den tatsächlichen Aussagen des Kunden beruhen. Wenn nichts anderes, ist das eine wertvolle Fähigkeit.

Wenn dies fehlschlägt (und dies aus verschiedenen Gründen bereits der Fall ist), fragen Sie Ihren Projektleiter um Hilfe. Versuchen Sie in Ihren Fragen so genau wie möglich zu sein und zeigen Sie, dass Sie Ihre Hausaufgaben gemacht haben. Zum Beispiel eher als

was diese Leute wollen ???“

etwas fragen wie,

In Paragraph 17 des Anforderungsdokuments heißt es, dass der Foobar den Frozzle krausen muss; Auf welche dieser drei Fetzen bezieht sich das? "

Oder wenn die Anforderungen wirklich so schlecht geschrieben sind, dass Sie sie nicht entziffern können, sagen Sie ihm das.

Ich würde sagen, dass es letztendlich die Verantwortung des Projektleiters ist, dafür zu sorgen, dass die Anforderungen richtig verstanden werden (es ist sicherlich in seinem besten Interesse, dass das Projekt erfolgreich ist). Als Mitglied des Teams teilen Sie jedoch einen Teil dieser Verantwortung. Wenn Sie zeigen, dass Sie selbst Anstrengungen unternommen haben und der Projektleiter sich weigert, Ihnen zu helfen, liegt es ganz in Ihrer Verantwortung. Wenn es zu diesem Punkt kommt, stellen Sie sicher, dass er das weiß.

Keith Thompson
quelle
+1 für die Weiterleitung an den Projektleiter. Es liegt in der Kernverantwortung eines Projektleiters, sicherzustellen, dass jeder die Ressourcen hat , die er benötigt. Dazu gehört auch, dass er über die erforderlichen Informationen verfügt.
sleske
1

In einer perfekten Welt sollte es irgendwo eine Liste mit Funktionen und Spezifikationen geben, die auf einem Vertrag zwischen Ihrem Unternehmen und Ihrem Kunden steht.

Um Ihre Frage zu beantworten, sollte der Entwickler in der Tat verstehen, was der Kunde wünscht, und ein schriftliches Dokument haben, damit beide Parteien der gleichen Vision zustimmen.

Natürlich ist dies keine perfekte Welt, und häufig gibt es keine Spezifikationen. Wenn Sie keine schriftlichen Spezifikationen haben, wird dies schwierig. Gibt es in Ihrem Unternehmen noch jemanden, der als Beziehungsdelegierter mit dem Kunden arbeitet und Ihnen helfen kann, die Wünsche des Kunden zu verstehen?

Wenn nicht, würde ich in Ihrer Position versuchen, Informationen von den vorherigen Entwicklern zu erhalten, vorausgesetzt, sie haben die Aufgabe verstanden.

XGouchet
quelle
1

Ich denke, dass die tatsächliche Rolle, die angibt, wer sich um das Verständnis der Anforderungen kümmert, in Abhängigkeit von einigen dieser Variablen variiert

  • Teamgröße
  • Unternehmensstandards
  • So wie der Chef es gewohnt ist zu arbeiten
  • Unterschiedliche Expertise unter den Teammitgliedern

Wenn Sie also nur ein Ein-Mann-Team sind, sollten Sie alle Anstrengungen unternehmen, um den Anforderungen auf den Grund zu gehen. Wenn Sie in einem laufenden Projekt neu sind, sollten Sie sich bemühen, die Anforderungen erneut mit dem Kunden zu besprechen.

EDIT: Am wichtigsten ist, dass der Kunde möglicherweise nicht weiß, dass er so schlechte Anforderungen gestellt hat, und dass das Sammeln von Anforderungen oft langwierig und langwierig ist, aber es ist ein wichtiger Prozess mach es mit ihnen.

Mithir
quelle