Co odpowiedzieć klientowi, który pyta, którą z dwóch równoważnych technologii należy zastosować?

14

Jako freelancer często klienci pytają mnie, co muszą wybrać między podobnymi elementami, z których żaden nie jest lepszy od innego. Przykłady:

„Czy potrzebuję, aby moja strona e-commerce była w PHP lub ASP.NET?”

„Czy muszę hostować tę zwykłą usługę internetową w chmurze, czy korzystać ze zwykłej usługi hostingowej?”

„Który jest lepszy dla mojej nowej witryny: MySQL lub Oracle?”

itp.

Być może istnieje co najwyżej 1% przypadków, w których wybór jest istotny, i istnieje rzeczywisty, obiektywny powód, aby stosować jeden na drugim, na podstawie dokładnych wskaźników i badań. We wszystkich innych przypadkach nie ma to żadnego znaczenia. Jest to całkowicie, zupełnie nieistotne, albo dlatego, że nie ma żadnych implikacji¹, albo ponieważ te implikacje są zbyt małe, aby je wziąć pod uwagę², lub wreszcie, ponieważ nie można przewidzieć tych implikacji³.

Jeśli wiesz jedno, a nie drugie, odpowiedź na te pytania jest łatwa:

„Możesz napisać aplikację w języku C # lub Java, przy czym oba są prawdopodobnie równoważne w twoim przypadku. Zauważ, że jestem programistą C #, więc jeśli wybierzesz Javę, nie będę mógł pracować nad twoim projektem i będziesz musiał znaleźć innego freelancera. ”

Znając obie technologie, nie możesz na to odpowiedzieć.

W takim przypadku, jak wyjaśnić klientowi, że pytanie, które zadaje, podlega flamewarowi i nie ma realnych konsekwencji dla jego projektu?

Innymi słowy, jak wyjaśnić, że wybrałeś jedną technologię zamiast równoważnej z powodów związanych z zasobami ludzkimi, nie sprawiając wrażenia, że ​​jesteś nieprofesjonalny lub nie przejmujesz się projektem?


¹ Przykład: Czy MySQL jest lepszy (gorszy?) Pod względem wydajności, w porównaniu do Oracle, dla osobistej strony internetowej, do której dostęp będzie, och, bądźmy optymistyczni, dwie osoby dziennie?

² Przykład: dla danego projektu zostałem poproszony o ustalenie, czy hosting Windows Azure byłby tańszy niż hosting tej samej aplikacji u znanego dostawcy hostingu ASP.NET. Koszt okazał się dokładnie taki sam.

³ Przykład: klient ma pomysł na przyszłe zastosowanie (sam pomysł jest bardzo niejasny). Nie ma biznesplanu, żadnych wymagań, nic. Po prostu pomysł. Zostaniesz zapytany, czy Java jest lepsza niż C # dla tej aplikacji. Na co odpowiadasz

Arseni Mourzenko
źródło

Odpowiedzi:

36

jak wyjaśnić, że wybrałeś jedną technologię zamiast równoważnej z powodów związanych z zasobami ludzkimi, nie sprawiając wrażenia, że ​​jesteś nieprofesjonalny lub nie przejmujesz się projektem?

Dobrze. Mówisz tylko, że:

Jeśli chodzi o wymagania dla tego projektu, technologia X i technologia Y są w równym stopniu dostosowane do zadania, więc nie wchodzą w to względy techniczne.

Łatwiej jest znaleźć utalentowanych ludzi ze znajomością wybranej technologii (lub dziedziny problemowej), dlatego została wybrana.

Lub - na potrzeby tego projektu zastosowanie technologii Y będzie bardziej opłacalne.

Powiedz to tak, jak jest.


Możesz znaleźć analogię, z którą może odnosić się klient. Coś w stylu - w celu przylotu z Europy do USA możesz wsiąść do samolotu Boeing 747 lub Airbus 380. Czy to ważne, który z nich? Nie do klienta, o ile się tam dostaną i technologie będą równie dostosowane do wymagań :)

Który został wybrany? Niezależnie od tego, które linie lotnicze obsługują ...

Oded
źródło
13
+1 Kilka literówek - Boing 747 brzmi jednak zabawnie. Wyobrażam sobie gigantyczny kij pogo ...
MarkJ
4
+1 za Boinga 747 (No i część „utalentowanych ludzi”) - Myślałem o tych nadmuchiwanych zamkach, które czasami widywano na przyjęciach urodzinowych dzieci
Izkata
1
Gdybym był klientem, mógłbym odpowiedzieć: „Nie mam pojęcia - ale chciałbym myśleć, że pilot”.
psr
7

Myślę, że wasza przesłanka, że ​​decyzja jest w dużej mierze arbitralna, jest warta zakwestionowania. Zgadzam się, że nie chcesz skończyć w paraliżu analizy, w którym odbywają się miesiące posiedzeń komisji, ale warto to rozważyć. Patrząc z wysokiego poziomu, wybór technologii rzadko jest arbitralny. Jest to klucz do strategii biznesowej, ponieważ silnie wpływa na to, dokąd firma może pójść w przyszłości, a rolą programisty jest prowadzenie firmy przez proces decyzyjny.

Specyfika technologii, taka jak użycie B-drzew w MySQL w porównaniu do Oracle, lub składnia PHP w porównaniu do ASP.NET , są oczywiście otwarte na wiele religijnych debat wśród programistów i naprawdę sprowadzą się do twojego gustu. Ponieważ podobny konsultant do ciebie może mieć radykalnie odmienną opinię, te rzeczy są rzeczywiście raczej arbitralne. I jest dość dobrze ustalone, że każdy programista, który jest kompetentny w danej technologii, i tak wykona dobrą robotę. Tak więc ważniejsze dla firmy są nie drobiazgi językowe, ale pytania wyższego poziomu, takie jak:

  • Jaki jest scenariusz wdrożenia? Niektóre technologie są bardziej praktyczne, szczególnie jeśli istnieją usługi hostingu w chmurze, takie jak Heroku . Niektóre firmy to polubią, inne będą musiały same się hostować, mieć silniejszą obecność administratorów systemu itp.

  • Jaki jest czas życia i zakres projektu? Na przykład PHP jest prawdopodobnie łatwiejsze niż Java, aby rozpocząć projekt, ale trudniej jest go skalować i utrzymywać przez wiele lat.

  • Jakich programistów przyciągnie technologia? W przypadku Javy bardziej prawdopodobne jest, że zdobędziesz doświadczenie w przedsiębiorstwie. W przypadku PHP możesz uzyskać więcej typów projektantów crossoverów lub administratorów systemu. W przypadku Node.js dostaniesz więcej front-endowych i eksperymentalnych programistów, dla Haskella, tłumu akademickiego itp. Wszystkie stereotypy, które znam, ale daje to biznesowi pewne wskazówki. Każda z tych grup ma własną kulturę, oczekiwania dotyczące płatności i środowiska pracy oraz sposoby współpracy między sobą i resztą organizacji.

  • Jaka jest dostępność programistów? Zakładając, że programiści muszą być fizycznie obecni, niektóre lokalizacje mają określone ekosystemy. W mieście pełnym startupów będzie dużo programistów Ruby on Rails i PHP, w mieście pełnym departamentów rządowych będzie dużo Java / MS itp. Zdecydowana większość języków programowania na świecie musi być wykluczonym na tej podstawie.

To tylko kilka przykładów. Najważniejsze czynniki będą zależeć od sytuacji, ale najważniejsze jest to, że firmy muszą świadomie stosować technologie, które pasują do ich strategii, kultury i okoliczności.

mahemoff
źródło
4

Dałbym klientowi obiektywną matrycę porównawczą dotyczącą wykonalności zastosowania tej technologii. Na przykład:

„Który jest lepszy dla mojej nowej witryny: MySQL lub Oracle?”

W twojej matrycy:

  • Koszt
  • Do użytku domowego
  • Skalowalność
  • Doświadczenie / Znajomość
  • Wsparcie
  • Obróbka
  • Już w użyciu (wdrożony)
  • Łatwość programowania
  • Znajomość rozwoju

Itp.

W zależności od liczby elementów w macierzy, należy szybko wymyślić wynik i określić wykonalność tej technologii w porównaniu do drugiej. W niektórych przypadkach MySQL może być lepszy, w innych Oracle.

Jon Raynor
źródło
4

Wyjaśnij to w zrozumiały sposób - pieniądze. Możesz powiedzieć im, że wybrałeś X zamiast Y, ponieważ chociaż oba byłyby odpowiednie dla tego projektu, znasz lepiej X niż Y. W ten sposób będziesz mógł dostarczyć im aplikację po niższych kosztach, gdy używając X niż gdyby zostało napisane przy użyciu Y.

Grandmaster B.
źródło
1
Tak, nic złego w tym, że jest to odpowiedź. Jeśli znasz C # lepiej niż Java, to znaczy, że będziesz bardziej produktywny, używając C #.
Andy,
2

„Wolisz prowadzić Forda lub Chevroleta?” byłby analogią kierującą, którą rzuciłem, by sprawdzić, czy potrafią zrozumieć, że pytanie nigdzie się nie zmierza. Podobne pytanie może brzmieć: „Który lepszy jest hamburger lub pizza?” gdzie bez dodawania kolejnych ograniczeń pytanie ma wiele możliwych odpowiedzi.

Innym sposobem spojrzenia na to jest pytanie, dlaczego tak ważne jest, aby wiedzieć, i w zależności od tego, jaki dodatkowy materiał można znaleźć, wyjaśniając pytanie, może to prowadzić do lepszej odpowiedzi. Niektórzy mogą się zastanawiać: „Co zostało użyte do zbudowania mojej witryny e-commerce?” choć woleliby robić wrażenie i wrzucać kilka bzyczących słów.

JB King
źródło
8
Przykłady Forda / Chevy'ego i Hamburgera / Pizzy wydają się niereagujące / niepoprawne. Byłbym zirytowany takimi odpowiedziami.
Robert Harvey
4
A odpowiedź brzmi zawsze Pizza;)
Izkata
2
@Izkata: ... zjedzony w Fordzie.
FrustratedWithFormsDesigner
2
Bądź ostrożny, w niektórych przypadkach Ford vs. Chevy może być debatą religijną. Mężczyzna może zostać zraniony.
Wyatt Barnett
2

Wiele dobrych odpowiedzi już, ale jedna rzecz, którą zauważyłem, nie została wspomniana: jest to doskonała okazja do pełnego ujawnienia z twojej strony. Na przykład,

„Teraz zarabiam na życie głównie dzięki technologii <foo>, więc nie jestem całkowicie bezstronny. Jednak ...”

Naprawdę myślę, że zyskujesz wiarygodność dzięki tego rodzaju stwierdzeniom.

Scott C. Wilson
źródło
1

Są rzadkie przypadki, w których jedna technologia jest wyraźnie gorsza od drugiej - „Czy powinienem rozwijać swoją stronę internetową w Pythonie lub Cobolu?”, Ale głównie chodzi o konie na kursy.

Przy podejmowaniu decyzji, która technologia odpowiada klientowi, stosuję metodologię:

  1. Czego obecnie używają? Więcej tego samego jest zwykle lepsze niż coś nowego.
  2. Czy obecna technologia ma jakieś ograniczenia, które zostaną przekroczone przez nowy projekt? Na przykład używają SQLite , ale teraz oczekują, że 100 użytkowników dokona równoczesnych aktualizacji.
  3. Jeśli obecna technologia nie jest odpowiednia, wybierz między najpopularniejszym oprogramowaniem open source a liderem rynku komercyjnego.
  4. Czy lider rynku jest znacznie lepszy niż oferta typu open source i czy istnieją różnice istotne dla obecnego projektu?
  5. Po przejściu na oprogramowanie open source lub komercyjne, weź dobre jak na dwie najbliższe konkurencyjne oferty i sprawdź, czy są one bardziej dopasowane.

W większości przypadków wybór kończy się na etapie drugim. Jeśli klient korzysta z widgetów Acme , ma osoby doświadczone w korzystaniu z widgetów Acme, ma zestaw standardów, kontroli zmian i procedur zarządzania opracowanych wokół Acme Widgets i Acme Widgets może wykonać to zadanie, to Acme Widgets jest właściwą drogą - nawet jeśli Ezee DohDahs jest technicznie lepszy do tego zadania!

James Anderson
źródło