Что ответить клиенту, который спрашивает, какую из двух эквивалентных технологий следует использовать?

14

Как фрилансера, мои клиенты часто спрашивают меня, что они должны выбрать между похожими элементами, ни один из которых не лучше другого. Примеры:

«Нужно ли, чтобы мой сайт электронной коммерции был на PHP или ASP.NET?»

«Нужно ли размещать этот обычный веб-сервис в облаке или использовать обычный хостинг?»

«Какой из них лучше для моего нового сайта: MySQL или Oracle?»

и т.п.

Может быть, в большинстве случаев, когда выбор уместен, не более чем в 1% случаев существует реальная, объективная причина использовать один над другим, основываясь на точных показателях и исследованиях. Во всех остальных случаях это не имеет значения вообще. Это совершенно, совершенно не имеет значения, либо потому, что нет никаких последствий », либо потому, что эти последствия слишком малы, чтобы их можно было принять во внимание», либо, наконец, потому что невозможно предсказать эти последствия ».

Если вы знаете одно, а не другое, ответ на эти вопросы прост:

«Вы можете написать приложение на C # или Java, что, вероятно, эквивалентно в вашем случае. Обратите внимание, что я разработчик C #, поэтому, если вы выберете Java, я не смогу работать над вашим проектом, и вам нужно будет найти другого фрилансера ».

Когда вы знаете обе технологии, вы не можете ответить на это.

В таком случае, как объяснить клиенту, что вопрос, который он задает, является пламенным и не имеет реальных последствий для его проекта?

Другими словами, как объяснить, что вы решили использовать одну технологию вместо эквивалентной по причинам, связанным с человеческими ресурсами, не создавая впечатление непрофессионализма или не заботясь о проекте?


Пример: MySQL лучше (хуже?) С точки зрения производительности по сравнению с Oracle для персонального веб-сайта, к которому будут обращаться, о, давайте будем оптимистичны, два человека в день?

² Пример: для данного проекта меня попросили указать, будет ли хостинг Windows Azure дешевле, чем хостинг того же приложения на известном хостинг-провайдере ASP.NET. Стоимость оказалась точно такой же.

³ Пример: у вашего клиента есть идея будущего приложения (сама идея крайне расплывчата). Нет бизнес-плана, нет требований, вообще ничего. Просто идея. Вас спросят, лучше ли Java для этого приложения, чем C #. Что ты отвечаешь?

Арсений Мурзенко
источник

Ответы:

36

Как объяснить, что вы решили использовать одну технологию, а не эквивалентную, по причинам, связанным с человеческими ресурсами, не создавая впечатление непрофессионализма или не заботясь о проекте?

Что ж. Вы говорите именно так:

С точки зрения требований для этого проекта технология X и технология Y одинаково подходят для этой задачи, поэтому технические соображения в нее не входят.

Легче найти талантливых людей со знанием выбранной технологии (или проблемной области), поэтому она была выбрана.

Или - для целей этого проекта использование технологии Y будет более экономически эффективным.

Скажи это как есть.


Возможно, вы захотите найти аналогию, к которой может относиться клиент. Примерно так - с целью попасть из Европы в США вы можете сесть на Боинг 747 или Аэробус 380. Имеет ли значение, какой? Не для клиента, пока они туда попадают и технологии в равной степени соответствуют требованиям :)

Какой был выбран? Какая бы авиакомпания ни работала ...

Одед
источник
13
+1 Пара опечаток - Boing 747 звучит весело, хотя. Я представляю гигантскую пого-палку ...
MarkJ
4
+1 для Boing 747 (ну, и часть «талантливых людей») - я думал о тех надувных замках, которые иногда можно увидеть на детских вечеринках по случаю дня рождения
Иската
1
Если бы я был клиентом, я мог бы ответить: «Я понятия не имею, но я хотел бы думать, что пилот знает».
PSR
7

Я думаю, что ваша предпосылка о том, что решение является в основном произвольным, заслуживает сомнений. Я согласен, что вы не хотите оказаться в аналитическом параличе, когда у вас месяцы заседаний комитетов, но это стоит задуматься. Если смотреть с высокого уровня, выбор технологий редко бывает произвольным. Это ключ к бизнес-стратегии, поскольку он сильно влияет на то, куда компания может пойти в будущем, и роль разработчика заключается в том, чтобы направлять компанию в процессе принятия решений.

Специфика технологии, такая как использование MySQL B-деревьев по сравнению с Oracle или синтаксис PHP по сравнению с ASP.NET , конечно, открыта для многих религиозных дискуссий среди программистов и действительно придет к вашему вкусу. Поскольку аналогичный для вас консультант может легко иметь совершенно другое мнение, эти вещи действительно довольно произвольны. И довольно хорошо известно, что любой разработчик, который компетентен в данной технологии, все равно сделает хорошую работу. Таким образом, более важными вопросами для бизнеса являются не языковые мелочи, а вопросы более высокого уровня, такие как:

  • Каков сценарий развертывания? Некоторые технологии поддаются более автономному подходу, особенно если существуют облачные хостинговые сервисы, такие как Heroku . Некоторым компаниям это понравится, другим потребуется хостинг, присутствие системных администраторов и т. Д.

  • Каков срок действия проекта и его масштабы? Например, PHP, возможно, легче, чем Java, запустить проект, но его сложнее масштабировать и поддерживать в течение многих лет.

  • Какие разработчики будут привлекать технологии? Для Java вы, скорее всего, получите тех, кто имеет корпоративный опыт. Для PHP вы можете получить больше дизайнеров кроссоверов или системных администраторов. Для Node.js вы получите больше внешних и экспериментальных разработчиков, для Haskell, академической толпы и т. Д. Все стереотипы, которые я знаю, но это дает бизнесу некоторые подсказки. У каждой из этих групп есть свои собственные культуры, ожидания относительно оплаты и рабочей среды, а также способы работы друг с другом и с остальной частью организации.

  • Какова доступность разработчиков? Предполагая, что разработчики должны присутствовать физически, в некоторых регионах есть определенные экосистемы. В городе, полном стартапов, будет много разработчиков Ruby on Rails и PHP, в городе, полном правительственных департаментов, будет много Java / MS и т. Д. Подавляющее большинство языков программирования в мире должны быть исключены просто на этой основе.

Это всего лишь несколько примеров. Какие факторы наиболее важны, зависит от ситуации, но главное здесь заключается в том, что компании должны осознанно применять технологии, которые соответствуют их стратегии, культуре и обстоятельствам.

mahemoff
источник
4

Я бы дал заказчику объективную матрицу сравнения по возможности использования этой технологии. Например:

«Какой из них лучше для моего нового сайта: MySQL или Oracle?»

В вашей матрице:

  • Стоимость
  • В доме использования
  • Масштабируемость
  • Опыт / Дружественные
  • Supportability
  • механическая обработка
  • Уже используется (развернуто)
  • Простота разработки
  • Развитие Знакомство

И т.п.

В зависимости от того, сколько предметов в вашей матрице, нужно быстро составить счет и определить целесообразность использования этой технологии по сравнению с другой. В некоторых случаях MySQL может быть лучше, в других Oracle.

Джон Рейнор
источник
4

Объясните это в терминах, которые они понимают - деньги. Вы можете сказать им, что выбрали X вместо Y, потому что, хотя они оба подойдут для проекта, вы более знакомы с X, чем с Y. И, таким образом, вы сможете доставить им приложение с меньшими затратами, когда используя X, чем если бы он был написан с использованием Y.

GrandmasterB
источник
1
Да, нет ничего плохого в том, что это ответ. Если вы знаете C # лучше, чем Java, значит, вы будете более продуктивно работать с C #.
Энди
2

"Вы бы предпочли водить Ford или Chevy?" это была бы аналогия с автомобилем, которую я бы отбросил, чтобы понять, смогут ли они понять, что вопрос никуда не денется. Аналогичный вопрос может быть: «Какой лучше гамбургер или пицца?» где, не добавляя больше ограничений, вопрос имеет множество возможных ответов.

Другой способ посмотреть на это - спросить, почему это важно знать, и в зависимости от того, какие дополнительные материалы можно найти, проясняя вопрос, это может привести к лучшему ответу. Некоторые люди могут просто задаться вопросом: «Что использовалось для создания моего сайта электронной коммерции?» хотя они предпочли бы быть впечатляющими и добавить пару модных слов.

JB King
источник
8
Примеры Ford / Chevy и Hamburger / Pizza кажутся безразличными / легкомысленными. Меня бы раздражали такие ответы.
Роберт Харви
4
И ответ всегда Пицца;)
Изката
2
@Izkata: ... едят в Форде.
FrustratedWithFormsDesigner
2
Будьте осторожны, Форд против Шеви может быть религиозным спором в некоторых частях. Человек может пострадать.
Уайетт Барнетт
2

Уже много хороших ответов, но одна вещь, которую я заметил, не упоминалась: это отличная возможность для полного раскрытия с вашей стороны. Например,

«Сейчас я зарабатываю на жизнь в основном технологиями, поэтому я не совсем беспристрастен. Однако ...»

Я действительно думаю, что вы получите доверие благодаря такого рода заявлениям.

Скотт К Уилсон
источник
1

Есть редкие случаи, когда одна технология явно уступает другой - «Должен ли я разрабатывать свой сайт на Python или Cobol?», Но в основном это вопрос лошадей для курсов.

Есть методология, которую я использую для решения, какая технология подходит клиенту:

  1. Что они используют в настоящее время? Больше того же обычно лучше, чем что-то новое.
  2. Есть ли у нынешней технологии какие-либо ограничения, которые будут превышены новым проектом? Например, они используют SQLite , но теперь ожидают, что 100 пользователей будут выполнять параллельные обновления.
  3. Если текущая технология не подходит, тогда выбирайте между самым популярным открытым исходным кодом и лидером коммерческого рынка.
  4. Является ли лидер рынка значительно лучше, чем предложение с открытым исходным кодом, и есть ли различия существенные для текущего проекта?
  5. Перейдя на открытый исходный код или рекламу, посмотрите как два ближайших конкурирующих предложения и посмотрите, подходят ли они ближе.

Большую часть времени выбор останавливается на втором шаге. Если клиент использует виджеты Acme , люди, имеющие опыт использования виджетов Acme, имеют набор стандартов, процедуры контроля и управления изменениями, построенные на основе виджетов Acme, и виджеты Acme могут выполнить эту работу, то виджеты Acme - это то, что нужно - даже если Ezee DohDahs технически лучше для этой задачи!

Джеймс Андерсон
источник