Що відповісти замовнику, який запитує, яку з двох еквівалентних технологій потрібно використовувати?


14

Як фрілансер, мене часто запитують мої клієнти, що вони повинні вибрати між подібними елементами, жоден з яких не кращий за інший. Приклади:

"Чи потрібно, щоб веб-сайт електронної комерції знаходився на PHP або ASP.NET?"

"Чи потрібно розміщувати цю звичайну веб-службу в Cloud або використовувати звичайний хостинг?"

"Який з них краще для мого нового веб-сайту: MySQL чи Oracle?"

тощо.

Мабуть, не більше 1% випадків, коли вибір є релевантним, і є реальна, об'єктивна причина використовувати один над іншим, виходячи з точних показників та досліджень. У всіх інших випадках це зовсім не має значення. Це абсолютно, абсолютно не має значення або тому, що жодних наслідків немає¹, або тому, що ці наслідки занадто малі, щоб їх враховувати², або, нарешті, тому, що неможливо передбачити ці наслідки³.

Якщо ви знаєте одне, а не інше, відповідь на ці питання простий:

"Ви можете або написати програму на C # або Java, і те, ймовірно, у вашому випадку еквівалентне. Зауважте, що я розробник C #, тому якщо ви виберете Java, я не зможу працювати над вашим проектом, і вам потрібно буде знайти іншого фрілансера. "

Коли ви знаєте обидві технології, ви не можете на це відповісти.

Як у цьому випадку пояснити замовнику, що питання, яке він задає, підлягає вогневій і не має реальних наслідків для його проекту?

Іншими словами, як пояснити, що ви вибрали використовувати одну технологію, а не еквівалентну з причин, пов’язаних з людськими ресурсами, не створюючи враження, що це непрофесійно чи не піклується про проект?


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

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

³ Приклад: ваш клієнт має уявлення про майбутню програму (сама ідея є надзвичайно розпливчастою). Тут немає бізнес-плану, ніяких вимог, взагалі нічого. Просто ідея. Вас запитують, чи для цієї програми Java краща за C #. Що ти відповідаєш?

Відповіді:


36

як пояснити, що ви вибрали використовувати одну технологію, а не еквівалентну з причин, пов’язаних з людськими ресурсами, не створюючи враження, що це непрофесійно чи не турбується про проект?

Добре. Ви говорите просто так:

З точки зору вимог до цього проекту, технологія X та технологія Y однаково підходять до завдання, тому технічні міркування не надходять до нього.

Простіше знайти талановитих людей, які мають знання про обрану технологію (або проблемну область), саме тому вона була обрана.

Або - для цього проекту використання технології Y стане більш економічною.

Скажи, як є.


Можливо, ви хочете знайти аналогію, до якої може звернутися клієнт. Щось на кшталт - для того, щоб потрапити з Європи до США, ви можете поїхати на Boeing 747 або Airbus 380. Неважливо, який з них? Не для замовника, якщо вони туди потрапляють і технології однаково відповідають вимогам :)

Якого обрали? Незалежно від того, яка авіакомпанія працює ...


13
+1 Пара помилок - Боїнг 747 здається цікавим. Я малюю гігантську пого-палку ...
MarkJ

4
+1 для Boing 747 (Ну, і частина "талановитих людей") - Я думав про ті надувні замки, які періодично бачили на дитячих днях народження
Ізката

1
Якби я був клієнтом, я міг би відповісти: "Я поняття не маю - але я хотів би подумати, що пілот це робить".
пн

7

Я думаю, що ваше переконання, що рішення є багато в чому довільним, варто поставити під сумнів. Я погоджуюсь, що ви не хочете опинитися в паралічі аналізу, де у вас є місячні засідання комітетів, але варто трохи розглянути. Вибір технології з високого рівня рідко довільний. Це важливо для бізнес-стратегії, оскільки сильно впливає на те, куди компанія може піти в майбутньому, і роль розробника полягає в тому, щоб керувати компанією в процесі прийняття рішень.

Особливості технології, такі як використання MySQL B-дерев порівняно з Oracle, або синтаксис PHP проти синтаксису ASP.NET , звичайно, відкриті для багатьох релігійних дискусій серед програмістів і дійсно припадуть до смаку. Оскільки подібний до вас консультант легко може мати кардинально іншу думку, ці речі дійсно є досить довільними. І досить добре встановлено, що будь-який розробник, компетентний у певній технології, все одно зробить хорошу роботу. Тож важливішими для бізнесу є не мовні деталі, а питання вищого рівня, такі як:

  • Який сценарій розгортання? Деякі технології піддаються більш практичному підходу, особливо якщо є хмарні сервіси хостингу, такі як Heroku . Деяким компаніям це сподобається, іншим потрібно буде влаштувати себе, мати більш сильну присутність системних адміністраторів тощо.

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

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

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

Це лише кілька прикладів. Які фактори є найважливішими, залежатиме від ситуації, але головний момент тут полягає в тому, що компаніям потрібно свідомо застосовувати технології, що відповідають їх стратегії, культурі та обставинам.


4

Я б дав замовнику об'єктивну матрицю порівняння щодо доцільності використання цієї технології. Наприклад:

"Який з них краще для мого нового веб-сайту: MySQL чи Oracle?"

У вашій матриці:

  • Вартість
  • У домашньому користуванні
  • Масштабованість
  • Досвід / знайомство
  • Підтримка
  • Інструментальне обладнання
  • Вже використовується (розгорнуто)
  • Легкість розвитку
  • Розвиток ознайомлення

І т.д.

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


4

Поясніть це з точки зору їх розуміння - гроші. Ви можете сказати їм, що ви вибрали X над Y, оскільки, хоч обидва вони були б придатними для проекту, ви більше знайомі з X, ніж Y. І, таким чином, ви зможете доставити заявку з меншою вартістю, коли з використанням X, ніж якщо б це було написано за допомогою Y.


1
Так, нічого поганого в цьому не було відповіді. Якщо ви знаєте C # краще, ніж Java, то, безсумнівно, ви можете бути більш продуктивними зі C #.
Енді

2

"Ви б швидше їхали на Ford чи Chevy?" Була б аналогія водіння, яку я викину, щоб побачити, чи зможуть вони зрозуміти, що питання нікуди не дінеться. Подібне питання може бути: "Що краще гамбургер чи піца?" де без додавання більше обмежень питання має різні можливі відповіді.

Інший спосіб переконатися в цьому - запитати, чому це важливо знати, і залежно від того, який додатковий матеріал можна знайти, уточнивши питання, це може призвести до кращої відповіді. Деякі люди можуть просто задатися питанням: "Що було використано для створення мого сайту електронної комерції?" хоч вони швидше намагаються бути вражаючими і кидають пару слів.


8
Приклади Ford / Chevy та Hamburger / Pizza здаються невідступними / легковажними. Мене би дратували такі відповіді.
Роберт Харві

4
І відповідь завжди Піца;)
Ізката

2
@Izkata: ... їдять у форді.
FrustratedWithFormsDesigner

2
Будьте уважні, Форд проти Шеві може бути релігійною дискусією в деяких частинах. Людина могла поранитися.
Wyatt Barnett

2

Вже багато хороших відповідей, але одне, що я помітив, не було згадано: це прекрасна можливість для повного розкриття з вашого боку. Наприклад,

"Зараз я заробляю на життя насамперед за допомогою технології <foo>, тому я не є абсолютно неупередженим. Однак ..."

Я дійсно думаю, що ви отримуєте авторитет завдяки цьому висловлюванню.


1

Є рідкісні випадки, коли одна технологія явно поступається іншій - "Чи варто розробляти свій веб-сайт в Python чи Cobol?", Але в основному це питання коней на курси.

Існує методологія, яку я використовую для вирішення того, яка технологія підходить клієнту:

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.