Was kann ich einem Kunden antworten, der fragt, welche der beiden gleichwertigen Technologien verwendet werden muss?


14

Als Freiberufler werde ich oft von meinen Kunden gefragt, was sie zwischen ähnlichen Elementen wählen sollen, von denen keines besser ist als das andere. Beispiele:

"Muss meine E-Commerce-Website in PHP oder ASP.NET sein?"

"Muss ich diesen normalen Webdienst in der Cloud hosten oder einen normalen Hostingdienst verwenden?"

"Welches ist besser für meine neue Website: MySQL oder Oracle?"

etc.

Es gibt vielleicht höchstens 1% der Fälle, in denen die Auswahl relevant ist, und es gibt einen realen, objektiven Grund, einander zu überlagern, basierend auf den genauen Metriken und Studien. In allen anderen Fällen spielt es keine Rolle. Es ist völlig irrelevant, entweder weil es keine Auswirkungen gibt¹ oder weil diese Auswirkungen zu gering sind, um berücksichtigt zu werden² oder weil es unmöglich ist, diese Auswirkungen vorherzusagen³.

Wenn Sie eine Sache kennen und keine andere, ist die Antwort auf diese Fragen einfach:

„Sie können die Anwendung entweder in C # oder Java schreiben, wobei beide in Ihrem Fall wahrscheinlich gleichwertig sind. Beachten Sie, dass ich ein C # -Entwickler bin. Wenn Sie sich also für Java entscheiden, kann ich nicht an Ihrem Projekt arbeiten und Sie müssen einen anderen Freiberufler finden. “

Wenn Sie beide Technologien kennen, können Sie das nicht beantworten.

Wie kann man dem Kunden in diesem Fall erklären, dass die von ihm gestellte Frage Flammenkrieg unterliegt und keine wirklichen Konsequenzen für sein Projekt hat?

Mit anderen Worten, wie lässt sich erklären, dass Sie sich aus Gründen des Personalwesens für eine Technologie entschieden haben, ohne den Eindruck zu erwecken, unprofessionell zu sein oder sich nicht um das Projekt zu kümmern?


¹ Beispiel: Ist MySQL in Bezug auf die Leistung besser (schlechter?) Als Oracle für eine persönliche Website, auf die, oh, optimistisch, zwei Personen pro Tag zugreifen?

² Beispiel: Für ein bestimmtes Projekt wurde ich gefragt, ob Windows Azure-Hosting günstiger ist als das Hosting derselben Anwendung auf einem bekannten ASP.NET-Hostinganbieter. Die Kosten entpuppten sich als genau gleich.

³ Beispiel: Ihr Kunde hat eine Vorstellung von einer zukünftigen Anwendung (die Idee selbst ist äußerst vage). Es gibt keinen Businessplan, keine Anforderungen, überhaupt nichts. Nur eine Idee. Sie werden gefragt, ob Java für diese App besser als C # ist. Was antwortest du?

Antworten:


36

Wie lässt sich erklären, dass Sie sich aus Gründen des Personalwesens dafür entschieden haben, eine Technologie anstelle einer entsprechenden zu verwenden, ohne den Eindruck zu erwecken, unprofessionell zu sein oder sich nicht um das Projekt zu kümmern?

Gut. Sie sagen genau das:

In Bezug auf die Anforderungen für dieses Projekt sind Technologie X und Technologie Y gleichermaßen für die Aufgabe geeignet, sodass technische Überlegungen nicht berücksichtigt werden.

Talente mit Kenntnissen der gewählten Technologie (oder Problemdomäne) sind leichter zu finden, weshalb sie ausgewählt wurden.

Oder - für die Zwecke dieses Projekts wird die Verwendung von Technologie Y kostengünstiger sein.

Sag es wie es ist.


Möglicherweise möchten Sie eine Analogie finden, auf die sich der Kunde beziehen kann. So etwas wie - um von Europa in die USA zu gelangen, können Sie mit einer Boeing 747 oder einem Airbus 380 fahren. Ist es wichtig, welche? Nicht für den Kunden, solange er dort ankommt und die Technologien den Anforderungen gleichermaßen gerecht werden :)

Welches wurde ausgewählt? Welche die Fluggesellschaft betreibt ...


13
+1 Ein paar Tippfehler - Boing 747 klingt aber lustig. Ich
stelle

4
+1 für Boing 747 (Nun, und der Teil "talentierte Leute") - Ich dachte an diese aufblasbaren Schlösser, die gelegentlich bei Kindergeburtstagsfeiern gesehen wurden
Izkata,

1
Wenn ich der Kunde wäre, könnte ich antworten: "Ich habe keine Ahnung - aber ich würde gerne glauben, dass der Pilot es tut."
PSR

7

Ich denke, Ihre Annahme, dass die Entscheidung größtenteils willkürlich ist, ist es wert, in Frage gestellt zu werden. Ich bin damit einverstanden, dass Sie nicht in eine Analyse-Lähmung geraten möchten, in der monatelange Ausschusssitzungen stattfinden, aber es ist eine Überlegung wert. Von einem hohen Niveau aus ist die Wahl der Technologie selten willkürlich. Es ist der Schlüssel zur Geschäftsstrategie, da es einen starken Einfluss darauf hat, wohin ein Unternehmen in Zukunft gehen kann, und es ist die Rolle des Entwicklers, das Unternehmen durch den Entscheidungsprozess zu führen.

Die Besonderheiten der Technologie, wie die Verwendung von B-Trees in MySQL im Vergleich zu Oracle oder die Syntax von PHP im Vergleich zu ASP.NET , sind natürlich für viele religiöse Debatten unter Programmierern offen und werden wirklich auf Ihren eigenen Geschmack zutreffen. Da ein Ihnen ähnlicher Berater leicht eine radikal andere Meinung haben könnte, sind diese Dinge in der Tat eher willkürlich. Und es ist ziemlich sicher, dass jeder Entwickler, der in einer bestimmten Technologie kompetent ist, trotzdem gute Arbeit leisten wird. Die wichtigsten Themen für das Unternehmen sind also nicht die Sprachkenntnisse, sondern übergeordnete Fragen wie:

  • Wie sieht das Bereitstellungsszenario aus? Bestimmte Technologien eignen sich für einen einfacheren Ansatz, insbesondere wenn Cloud-Hosting-Dienste wie Heroku vorhanden sind . Einige Unternehmen werden das mögen, andere müssen sich selbst hosten, eine stärkere Präsenz von Systemadministratoren haben usw.

  • Wie ist die Laufzeit und der Umfang des Projekts? PHP zum Beispiel ist wohl einfacher, ein Projekt zu starten als Java, aber es ist schwieriger, es über viele Jahre zu skalieren und zu warten.

  • Welche Arten von Entwicklern wird die Technologie anziehen? Bei Java haben Sie mit größerer Wahrscheinlichkeit Erfahrung mit Unternehmen. Für PHP erhalten Sie möglicherweise mehr Crossover-Designer- oder Systemadministratortypen. Bei Node.js gibt es mehr Front-End- und experimentelle Entwickler, bei Haskell, einem akademischen Publikum usw. Alle Stereotypen, die ich kenne, aber es gibt dem Unternehmen einige Hinweise. Jede dieser Gruppen hat ihre eigenen Kulturen, Erwartungen an die Bezahlung und das Arbeitsumfeld sowie die Art und Weise, wie sie miteinander und mit dem Rest der Organisation zusammenarbeiten.

  • Wie ist die Verfügbarkeit von Entwicklern? Unter der Annahme, dass Entwickler physisch anwesend sein müssen, haben bestimmte Orte bestimmte Ökosysteme. In einer Stadt voller Startups wird es eine Menge Ruby on Rails und PHP-Entwickler geben, in einer Stadt voller Regierungsabteilungen wird es eine Menge Java / MS usw. geben. Die überwiegende Mehrheit der Programmiersprachen auf der Welt muss einfach auf dieser Basis ausgeschlossen werden.

Das sind nur einige Beispiele. Welche Faktoren am wichtigsten sind, hängt von der jeweiligen Situation ab. Der wichtigste Punkt dabei ist jedoch, dass Unternehmen die Technologien, die zu ihrer Strategie, Kultur und den jeweiligen Umständen passen, bewusst einsetzen müssen.


4

Ich würde dem Kunden eine objektive Vergleichsmatrix über die Machbarkeit des Einsatzes dieser Technologie geben. Beispielsweise:

"Welches ist besser für meine neue Website: MySQL oder Oracle?"

In Ihrer Matrix:

  • Kosten
  • Im Hausgebrauch
  • Skalierbarkeit
  • Erfahrung / Vertrautheit
  • Unterstützbarkeit
  • Werkzeug
  • Bereits verwendet (bereitgestellt)
  • Entwicklungserleichterung
  • Entwicklungsvertrautheit

Etc.

Abhängig davon, wie viele Elemente in Ihrer Matrix vorhanden sind, sollte schnell eine Bewertung erstellt und die Machbarkeit der Verwendung dieser Technologie im Vergleich zur anderen bestimmt werden. In einigen Fällen ist MySQL vielleicht besser, in anderen Oracle.


4

Erklären Sie es in Begriffen, die sie verstehen - Geld. Sie können ihnen mitteilen, dass Sie X statt Y ausgewählt haben, da Sie mit X besser vertraut sind als mit Y, obwohl beide für das Projekt geeignet gewesen wären. Auf diese Weise können Sie die Anwendung zu geringeren Kosten für sie bereitstellen, wenn mit X als wenn es mit Y geschrieben wurde.


1
Ja, nichts falsch daran, dass dies die Antwort ist. Wenn Sie C # besser kennen als Java, ist es naheliegend, dass Sie mit C # produktiver arbeiten.
Andy

2

"Möchten Sie lieber einen Ford oder einen Chevy fahren?" wäre die treibende Analogie, die ich herauswerfen würde, um zu sehen, ob sie die Idee aufgreifen können, dass die Frage nirgendwo hingeht. Eine ähnliche Frage könnte lauten: "Was ist besser ein Hamburger oder eine Pizza?" Wo, ohne weitere Einschränkungen hinzuzufügen, die Frage eine Vielzahl von möglichen Antworten hat, die man geben könnte.

Die andere Sichtweise ist die Frage, warum dies wichtig ist, und je nachdem, welches zusätzliche Material durch Klären der Frage gefunden werden kann, kann dies zu einer besseren Antwort führen. Einige Leute fragen sich vielleicht: "Was wurde verwendet, um meine E-Commerce-Website zu erstellen?" obwohl sie lieber versuchen, beeindruckend zu sein und ein paar Modewörter hineinzuwerfen.


8
Die Beispiele für Ford / Chevy und Hamburger / Pizza scheinen nicht zu reagieren. Solche Antworten würden mich irritieren.
Robert Harvey

4
Und die Antwort ist immer Pizza;)
Izkata

2
@ Izkata: ... in einem Ford gegessen.
FrustratedWithFormsDesigner

2
Seien Sie vorsichtig, Ford gegen Chevy kann in einigen Teilen eine religiöse Debatte sein. Ein Mann könnte verletzt werden.
Wyatt Barnett

2

Viele gute Antworten bereits, aber eine Sache, die ich bemerkt habe, wurde nicht erwähnt: Dies ist eine ausgezeichnete Gelegenheit für eine vollständige Offenlegung von Ihrer Seite. Beispielsweise,

"Jetzt verdiene ich meinen Lebensunterhalt hauptsächlich mit Technologie, also bin ich nicht ganz unparteiisch. Aber ..."

Ich denke wirklich, dass Sie durch diese Art von Aussage an Glaubwürdigkeit gewinnen.


1

Es gibt seltene Fälle, in denen eine Technologie einer anderen deutlich unterlegen ist - "Soll ich meine Website in Python oder Cobol entwickeln?", Aber meistens handelt es sich um Pferde für Kurse.

Es gibt eine Methode, die ich verwende, um zu entscheiden, welche Technologie zu einem Kunden passt:

  1. Was benutzen sie aktuell? Mehr davon ist normalerweise besser als etwas Neues.
  2. Hat die aktuelle Technologie irgendwelche Einschränkungen, die durch das neue Projekt übertroffen werden? Sie verwenden beispielsweise SQLite , erwarten jedoch, dass 100 Benutzer gleichzeitig Updates durchführen.
  3. Wenn die aktuelle Technologie nicht geeignet ist, wählen Sie zwischen dem beliebtesten Open Source und dem kommerziellen Marktführer.
  4. Ist der Marktführer deutlich besser als das Open-Source-Angebot und gibt es signifikante Unterschiede zum aktuellen Projekt?
  5. Nachdem Sie sich für Open Source oder Werbung entschieden haben, sehen Sie sich die beiden nächstgelegenen Angebote an und prüfen Sie, ob sie besser zusammenpassen.

Meistens hört die Auswahl bei Schritt zwei auf. Wenn der Client Acme Widgets verwendet , über Erfahrung in der Verwendung von Acme Widgets verfügt, über eine Reihe von Standards verfügt, Änderungskontroll- und -verwaltungsverfahren implementiert sind, und Acme Widgets die Arbeit erledigen können, ist Acme Widgets der richtige Weg - auch wenn Ezee DohDahs ist technisch besser für diese Aufgabe!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.