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?
quelle
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.
quelle
Ich würde dem Kunden eine objektive Vergleichsmatrix über die Machbarkeit des Einsatzes dieser Technologie geben. Beispielsweise:
In Ihrer Matrix:
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.
quelle
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.
quelle
"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.
quelle
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.
quelle
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:
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!
quelle