Wie kann ich Ruby on Rails gegen die nicht technische Meinung von Kunden verteidigen?

16

Mein Kunde, ein Inhaber eines Übersetzungsunternehmens, erzählte mir nur, dass er über Ruby on Rails gelesen hat und dass " es mehr PHP-Leute gibt " und " es scheint, als würde die Community es vorziehen ". Was würden Sie als Softwareentwickler und Freiberufler dem Kunden sagen, um diese Ziele zu erreichen:

  • Verkaufen
  • Lassen Sie ihn sehen, dass die Technologie meine fachmännische Entscheidung ist und Rails für dieses spezielle Projekt genauso gut oder besser ist als PHP (+ welches Framework auch immer).

UPDATE: Vielen Dank für die Vorschläge! Morgen habe ich ein weiteres Treffen mit ihm, mal sehen wie es geht, ich werde nochmal updaten :)

UPDATE 2: Schließlich sagte ich ihm, er solle diesen Thread lesen, und das Ergebnis war fantastisch: Er gab mir das Projekt und wir werden sofort anfangen. Vielen Dank für die Hilfe, Sie haben Freibier in meiner Verantwortung, wenn wir eines Tages sehen :)

Übrigens: Ich habe die Lektion gelernt: Sei so transparent wie möglich, denn wenn du an dich und deine Arbeit glaubst, gibt es keine Frage, die dich schlagen könnte.

Grüße

okeen
quelle
2
Um diese Frage zu stellen, stimme ich ab ... Ich würde jedoch in Betracht ziehen, Beispiele für die Verwendung in der Industrie wie shopify.com, twitter.com usw. zu verwenden und auch zu erläutern, dass die Entwicklung in Rails tendenziell schneller verläuft als die Entwicklung in PHP (dies ist meiner Meinung nach) ).
Ich wurde am

Antworten:

47

Ich denke, Sie machen einen Fehler, wenn Sie annehmen, dass die Wahl der Technologie eine rein technische Entscheidung ist.

Der Kunde scheint besorgt über die geschäftlichen Auswirkungen der Auswahl einer bestimmten Technologie zu sein. In Anbetracht dessen müssen Sie einen Fall vorlegen, der seine geschäftlichen Bedenken mindestens so stark berücksichtigt wie Ihre technologischen Meinungen.

  • Arbeitgeber müssen aus einem bestimmten geografischen Gebiet rekrutieren, und in bestimmten Gebieten gibt es besonders aktive Gemeinschaften, die sich um bestimmte Technologiestapel kümmern. Wenn Sie beispielsweise im pazifischen Nordwesten der USA ein Unternehmen gründen, besteht eine starke Tendenz zu einem Microsoft-Stack, nur weil Microsoft in diesem Bereich einen großen Einfluss hat, sodass die meisten Entwickler, die Sie einstellen möchten, dies tun würden habe Erfahrung mit diesem Stapel. Andere geografische Regionen haben sehr unterschiedliche Profile.
    Sprechen Sie mit Ihrem Kunden und verstehen Sie, warum und wie er seine Meinung gebildet hat. Vielleicht hat er gelesen, dass die lokale PHP-Community besonders aktiv ist oder dass das lokale College viel PHP und kein Ruby unterrichtet. Vielleicht hat er einen vertrauenswürdigen Entwickler, den er für gelegentliche Notfälle anrufen kann, nämlich einen PHP-Profi und einen Ruby-Neuling. Natürlich ist es auch möglich, dass er schlechte Messdaten wie die Anzahl der Stellenanzeigen oder Lebensläufe verwendet, in denen verschiedene Keywords erwähnt werden.
  • Die Arbeitgeber müssen sich mit der langfristigen Nachhaltigkeit von Technologiestacks befassen. So haben zum Beispiel viele Unternehmen vor Jahren viel Zeit und Mühe investiert, um PowerBuilder-Apps (und andere Sprachen dieses Genres) zu entwickeln. Mit PowerBuilder war es oft sehr einfach, eine Reihe von Geschäftsanwendungen zu erstellen, und die Entwickler waren zu dieser Zeit oft sehr begeistert. Leider ist die PowerBuilder-Community mehr oder weniger zusammengebrochen, was Unternehmen in einer Situation zurücklässt, in der sie viel vorhandenen Code in einer Sprache haben, die eigentlich niemand verwenden wollte, wenn sie Schwierigkeiten hatten, kompetente Entwickler für die Pflege des vorhandenen Codes und teure, zeitaufwendige Projekte zu finden um diese Apps auf andere Technologie-Stacks zu migrieren. Die relativen technischen Vorzüge von PowerBuilder waren Java oder C ++ oder C # oder was auch immer, zu dem sie zu diesem Zeitpunkt migriert wurden.
    Relativ Nischensprachen wie Ruby haben durchaus das Potenzial, solche Probleme für Unternehmen zu schaffen, die nicht vorhersagen können, ob die Sprache in ein paar Jahren verblasst, wenn die Leute zur nächsten Modeerscheinung übergehen, oder ob sie wirklich ausdauernd ist . Sie können dies sicherlich abmildern, indem Sie darauf hinweisen, dass Ruby nicht von einem Unternehmen oder einer Organisation abhängig ist, sodass niemand entscheiden kann, dass es kein strategisches Produkt für das Unternehmen mehr ist. Wenn Ihr Kunde in der Vergangenheit Probleme mit der Entwicklung von Anwendungen in Geschäftssprachen hatte, müssen Sie feststellen, dass Ruby eher Linux und anderen Open-Source-Technologien ähnelt, die ohne die Unterstützung eines Unternehmens florierten, als Sprachen im Laufe der Jahre ausgestorben.
  • Arbeitgeber möchten eine einheitliche Umgebung, sodass die Auswahl einer Sprache für ein Projekt die Auswahl für viele andere erzwingt. Auch wenn Ruby für das Projekt, für das Sie sich entscheiden, technisch ideal ist, müssen Sie erklären, warum es für jede andere Anwendung geeignet ist, die dieser Kunde entwickeln muss, oder erläutern, welchen Technologiemix Sie für geeignet halten (z. B. Ruby für X, etwas anderes) für Y). Der Umgang mit heterogenen Technologien führt jedoch zwangsläufig zu zusätzlichen Kosten für das Unternehmen.
Justin Cave
quelle
17
+1 Ich finde, viele Leute in diesem Forum konzentrieren sich auf die akademischen Gründe für eine Wahl und scheinen die Wirtschaft zu ignorieren
Dietbuddha
10
+1 für die Erörterung der eigentlichen geschäftlichen Fragen (und für das Schreiben der meisten, was ich sagen wollte, um mir so die Zeit zu sparen :))
jcmeloni
Ich könnte noch ein paar weitere geschäftliche oder technische Gründe hinzufügen, warum Ruby nicht die Antwort auf jedes Haustierprojekt ist. Aber du hast es ziemlich gut getroffen, also zwei Daumen hoch!
Alex
2
Ok, danke für die Realismus-Lektion Justin und die Mühe, die Antwort zu schreiben. Ich weiß das wirklich zu schätzen.
Ok,
1
Ich möchte auf etwas hinweisen, das in dieser Antwort ein wenig abgesichert ist: Ihr Kunde könnte Recht haben. Es mag nicht die technisch überlegene Antwort sein, aber wie darauf hingewiesen wird, mögen seine Bedenken berechtigt sein, und RoR könnte zischen und sterben, wie unwahrscheinlich es auch sein mag . Es ist auf jeden Fall gut, Ihre technische Meinung mitzuteilen, da ein Kunde diese benötigt, um eine fundierte Entscheidung treffen zu können.
MattG
8

Für den Anfang können Sie Ihren Kunden hier anweisen, einen Blick auf das Ökosystem rund um Rails zu werfen. Sie können auch auf erfolgreiche Startups wie LivingSocial, Shopify, 37signals usw. verweisen, die ihre Geschäfte mit Ruby und Rails aufgebaut haben.

Sie können erwähnen, dass auch große Unternehmen wie AT & T, SAP und Symantec Rails einsetzen (alle waren letztes Jahr stark bei RailsConf beschäftigt).

Sie können darauf hinweisen, dass ein Übersetzungsunternehmen viel zu gewinnen hat, wenn es eine Sprache / ein Framework verwendet, die / das Unicode-Unterstützung und i18n relativ einfach macht.

Letztendlich denke ich, dass Sie die Idee verkaufen müssen, dass die Fähigkeit, Rails zu verwenden, ein Premium-Feature ist, das er durch die Einstellung von Ihnen erhält: "Natürlich verwenden all diese anderen Leute PHP. Aber Sie haben die Möglichkeit, einen modernen Stack zu haben , der Ihre Anwendung antreibt . "

Letztendlich muss auch klar sein, dass das, was er letztendlich kauft, Ihre Fähigkeiten und Ihr Fachwissen sind. Wenn er sich mit serverseitigen Webtechnologien so auskennen würde, würde er Sie nicht brauchen. Sprache und Rahmen sind Umsetzungsentscheidungen, keine Anforderungen.

PS Twitter nicht erwähnen. Wir versuchen immer noch, die schlechten PR-Rails rückgängig zu machen.

Jason Lewis
quelle
6

Ich würde erklären, dass es im Grunde eine "Cola" gegen "Pepsi" Wahl ist. Beide sind weithin akzeptiert, beide haben Menschen, die für jeden kämpfen und sterben werden, und beide sind vollkommen ausreichend. Nennen Sie die Gründe, warum Sie RoR bevorzugen.

Brian Knoblauch
quelle
4
Ich denke nicht, dass das in dieser Situation hilfreich sein wird. Wenn es wirklich eine Frage des persönlichen Geschmacks ist, wird die Antwort wahrscheinlich lauten: "Nun, ich kaufe, also benutze PHPepsi, weil die Berater für die Wartungsprogrammierung später für mich billiger sein werden." Die Verwendung von Ruby muss ein Mehrwert sein, und die Unterstützung von mehreren Sprachen ist ein absolutes Plus für ein Übersetzungsunternehmen.
Jason Lewis
6

Er spricht über Menschen, Sie sprechen über eine Sprache und einen Rahmen. Er wird keine rein technischen Gründe hören, also sollten Sie sich darauf konzentrieren, was die Leute mit der Sprache machen . Sie können über People-Power unter Rails sprechen, wie es für eine Person einfacher ist, schneller als eine PHP-Person zu arbeiten (wenn Sie glauben, dass dies der Fall ist). Sie können sich fragen, ob die Verbreitung von Honda-Fahrern bedeutet, dass es ein besseres Auto als ein Rolls Royce ist, was selten zu sehen ist. Sie können darüber sprechen, woraus die Community eigentlich besteht, ob zu viele Köche in der Modulsuppe sind (Edelsteine ​​vs. Module usw.), ob jeder an NIH-Syndrom leidet und so weiter.

Egal, es muss in Bezug auf Menschen sein, weil er wissen möchte, dass er Sie ersetzen kann. Hilf ihm, das zu wissen, denn er wird (wahrscheinlich) sowieso nicht weg wollen. Ihre "Expertenentscheidung" hat absolut keine Bedeutung, wenn er dem, was eine bestimmte Person weiß, viel weniger Aufmerksamkeit schenkt. Er möchte nur, dass es "mehr Leute" gibt, die das Gleiche wissen.

Letztendlich ist es keine Schande, seinen Bluff zu callen. "Gut, geh mit PHP. Viel Glück!"

Eric
quelle
2
Es ist immer wichtig, sich daran zu erinnern, dass das Feuern des Clients immer eine Option ist.
Jason Lewis
3

Weisen Sie darauf hin, dass das PHP-Publikum mehr Mitglieder hat, da es die niedrigste Eintrittsbarriere darstellt und schon länger besteht. Stellen Sie sicher, dass kleinere Communities einen höheren Prozentsatz an Programmierern haben, die es wert sind, eingestellt zu werden. PHP verfügt möglicherweise über 10.000 gute Programmierer im Vergleich zu 5.000 Rails-Programmierern, aber die PHP-Programmierer sind in einem Block von 100.000 gegenüber 20.000 Rails-Programmierern verborgen. (Diese Zahlen sind erfunden, aber es kommt auf den Punkt an.) Dann müssen Sie erklären, dass die Community wirklich keine Präferenz zwischen PHP und Rails hat.

Sie können technische Gründe nicht für eine nicht technische Person verwenden. Sie können nicht erklären, warum das iPhone anderen Smartphones unterlegen ist, wenn Sie nur wissen, wie ein Telefon aussieht. Sie brauchen Gründe, die sie verstehen.

Ryathal
quelle
+1, um auf die Bedeutung des Signal-Rausch-Verhältnisses in Entwickler-Communities hinzuweisen.
Jason Lewis
2
Die Tatsache, dass die Zahlen zusammengesetzt sind, lässt den Schluss zu, dass auch der Punkt zusammengesetzt ist. Es mag wahr oder falsch sein, aber dazu müssten die Tatsachen bewiesen oder widerlegt werden, die fehlen. Ohne die Fakten ist es nur "Sie saugen, weil Sie in einer anderen Mannschaft spielen", was nicht sehr professionell ist.
StasM
Ich stimme zu und habe dieses Argument auch bei technischen Vorgesetzten verwendet. Die Wahrscheinlichkeit, dass hochqualifizierte PHP-Entwickler für Python oder Ruby, die über einen funktionierenden RFC- und Community-Beitragsprozess verfügen, auf die Plätze springen, steigt von Jahr zu Jahr. PHP ist die kopierfähigste und am besten einfügbare Sprache, die nur eine geringe Schranke für die Einstiegssprache darstellt.
Lincoln B
3

Ihr Kunde hat Sie engagiert, also vertraut er vermutlich Ihrem Fachwissen. Erklären Sie, dass verschiedene Fachleute unterschiedliche Werkzeuge bevorzugen und Ihr bevorzugtes Werkzeug zufällig RoR ist. Weisen Sie auf die Präsenz der Community und die Akzeptanz durch die Community für RoR und erfolgreiche Unternehmen wie 37signals hin, um seine Besorgnis zu zerstreuen, dass Sie eine arkane Technologie empfehlen, die nur Sie kennen. Weisen Sie darauf hin, dass Sie mit den Tools, die Sie bevorzugen, produktiver sind (was seine Kosten senkt und seine Änderungen beim Erfolg verbessert) und dass es nicht schwer sein wird, mehr RoR-Experten zu finden, wenn Sie oder er jemals mehr brauchen. Wenn er technischer ist, können Sie darauf hinweisen, wie RoR bei den Aufgaben, die er benötigt, erfolgreich sein kann, im Vergleich zu seiner bevorzugten Lösung.

Vermeiden Sie es, FUD zu wiederholen und PHP generell herabzusetzen - wenn Sie kein PHP-Experte sind, werden Sie mit hoher Wahrscheinlichkeit etwas sagen, das nicht genau, falsch oder höchst kontrovers ist, und wenn Ihr Kunde erfährt, dass Sie sich geirrt haben, kann dies schaden Ihre Glaubwürdigkeit mit ihm in anderen Aspekten.

STASM
quelle
2

Ihr Chef hat einen Punkt. PHP ist weitaus beliebter als RoR, das mehreren Sites vorwirft, die sich bemühen, solche Dinge im Auge zu behalten. Beispiel: http://lang-index.sourceforge.net und http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html >. Ich halte es für dumm, die Fakten zu ignorieren.

Ich schlage vor, Sie geben zu, dass er Recht hat, und erinnern ihn dann daran, dass RoR auch eine starke Anhängerschaft hat. Es würde nicht schaden, ein paar Links zu beliebten Sites mit RoR zu haben, die Sie ihm zeigen können.

Schließlich sucht er wirklich nach Ihrer Gewissheit, dass er die richtige Geschäftsentscheidung trifft, und möchte, dass die Beweise diese stützen. Wie das alte Sprichwort sagt: "Niemand hat jemals auf sie geschossen, weil er Microsoft empfohlen hat." Gleiches gilt für PHP in der Webentwicklung. Geben Sie ihm solide Fakten und meiden Sie Meinungen. Du wirst es gut machen.

chuck97224
quelle
1
Das ursprüngliche Sprichwort lautete: "Niemand wurde jemals für den Kauf von IBM entlassen." Vielleicht hätten sie es tun sollen, aber ...
Matthew Flynn
1
Oh, ich war dafür bekannt, Pfeile auf Leute zu schießen, die PHP ausgewählt haben ... :-)
Brian Knoblauch
1

Übersetzen Sie Ihre Überzeugungen in quantifizierbare wirtschaftliche Begriffe (wenn möglich / gültig). Die Tatsache, dass sein Geschäft übersetzungsspezifisch ist, legt nahe, dass RoR (oder jede Sprache mit mehrsprachiger Unterstützung) PHP technisch überlegen ist - dies muss jedoch mit den Kosten für Entwickler und Serverbereitstellung in Verbindung mit den jeweiligen Plattformen verrechnet werden. Ihr Geschäft wird wahrscheinlich länger dauern als Ihre Beziehung. Sie möchten die Gewissheit haben, dass sie die richtigen Grundlagen schaffen.

IME, das Eingestehen der Nachteile (wie auch der Vorteile) Ihrer Strategie ist überzeugender als jede Menge Evangelisation - es deutet darauf hin, dass Sie mehr an der Lösung ihres Problems interessiert sind als an der Verwendung Ihres Lieblingshammers.

sunwukung
quelle
1

Ihr Kunde könnte einen gültigen Punkt haben. Angebot und Nachfrage beeinflussen die Preise. Wenn das Angebot an Entwicklern mit bestimmten Kenntnissen im geografischen Gebiet des Kunden gering ist, kann der Preis für die Wartung von Software, für die seltenere Kenntnisse erforderlich sind, im Laufe der Zeit höher ausfallen, als wenn die Software in einer populäreren Sprache entwickelt würde, für die es eine erheblich größere Sprache gibt lokaler Pool qualifizierter Entwickler. Das Problem könnte also auch das langfristige Kostenrisikomanagement sein.

hotpaw2
quelle
0

Wenn ich einen Kunden habe, der ein bestimmtes Tool verwenden möchte, weil es "Industriestandard" ist, einen "Konsens" hat oder "das ist, was jeder verwendet", weise ich ihn darauf hin, dass alle diese Begriffe für den Branchendurchschnitt stehen. " Das ist, was die meisten anderen Leute in der Gegend tun. Das "durchschnittliche" Geschäft scheitert. Wählen Sie Ihre Werkzeuge basierend auf den Arbeitsanforderungen und nicht danach, was alle anderen tun. Es ist nicht wichtig, dass weniger RoR-Programmierer vorhanden sind, wenn das System nach Abschluss des Vorgangs weniger Bastelarbeiten benötigt.

Laurence Perkins
quelle
0

Dies ist sicherlich eine Geschäftsentscheidung für Sie beide .

Für Sie sind die Fragen:

  • Was kostet es mich, die Anforderungen meiner Kunden mit Ruby on Rails umzusetzen?
  • Was kostet es mich, sie in PHP zu implementieren?
  • Welchen Wert lege ich auf die Nutzung meiner bevorzugten Umgebung?

Für Ihren Kunden ist die Frage

  • Wie viel sind mir die wahrgenommenen Vorteile von PHP gegenüber Ruby on Rails wert?

Wenn Sie Ihren Kunden mit einem Angebot mit einem bieten Preis für die Implementierung auf Rails mit Ruby und einen separaten Preis für implmentation mit PHP , die beide auf der Grundlage der Antworten auf Ihre eigenen Fragen, dann können Sie Ihre Kunden machen ihre eigenen Ermessensfrage, ob die zusätzliche Kosten jetzt sind mögliche zukünftige Einsparungen wert.

Dies ist nicht anders, als dass sie entscheiden, ob sie den Vertrag an Sie oder an einen anderen Entwickler vergeben sollen, der ihn wie gewünscht mit PHP umsetzt.

Mark Booth
quelle
-1

Die beste reale Analogie, die ich finden kann, ist "Würde ich einen Ford statt eines BMW kaufen, nur weil der Marktanteil von BMW kleiner ist?".

James Anderson
quelle
1
Eine gute Möglichkeit, wenn alle BMW Servicemechaniker zu weit entfernt, zu teuer oder von den Verbraucherbehörden für das Gebietsschema des Käufers sehr schlecht bewertet waren.
Hotpaw2
@hotpaw - fair genug, aber das ist eine rationale Überlegung, Marktanteile für sich allein sind bedeutungslos.
James Anderson
-1

Letztendlich sind PHP-Programmierer die Hälfte der Kosten von Rails-Programmierern, und was ist, wenn Sie morgen einen besseren Job finden? Ihr Chef wäre total durcheinander und würde sich bemühen, einen Rails-Entwickler zu finden, und das kostet Zeit und Geld, da Rails-Entwickler Mangelware sind.

Der einzige Grund, warum Ihr Chef dem zustimmt, ist, dass Sie zufriedener sind, wenn Sie das Gefühl haben, dass Sie zufriedener sind, wenn Sie die von Ihnen gewünschten Entscheidungen treffen können.

Etay Luz
quelle