Як обробити запити клієнтів типу "чи можна додати лише кілька полів"?


12

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

  • Як ми можемо переконатися, що клієнт справді потребує цих запитів на функції?

  • Як ми ввічливо говоримо "вам це не дуже потрібно"?

Наразі ми починаємо стягувати плату за певні запити на функції. (Раніше запити на функції зазвичай були безкоштовними) Чи є ще щось, що ми можемо зробити?


З великим бурчанням і проклинанням під моїм подихом>. <Afterall, вони мені платять ....
Рейчел

Відповіді:


16

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


2
Добре вони платять, але ми дуже хотіли б зосередитись на великих запитах на функції, які вони в кінцевому підсумку використовуватимуть (і це може принести нам більше клієнтів у майбутньому), а не безлічі тривіальних маленьких запитів, які просто захаращують код
Earlz

8
@Earlz - "Ми б дуже хотіли, щоб зосередитись на ..." - Я впевнений, що ви б так не працювали з відносинами з клієнтами. Ці невеликі запити (які можуть додати значну цінність для замовника) - це ціна, яку ви платите за роботу над великими речами. Їм потрібен постачальник, який відповідає на їхні потреби, а не той, хто вибирає та обирає. Спосіб боротьби з цим полягає в тому, щоб їх досить цінувати, але зазначити, що зв'язування їх у більші випуски є економічно вигідним (менше тестування регресії тощо), і спробувати зробити так, щоб привабливіше поводитися з ними таким чином, але ви не можете вибирай і вибирай.
Джон Хопкінс

2
Якщо ви можете скоротити витрати на 50%, втрачаючи 5% клієнтів, це гарна справа, йдеться про звичайну мудрість. Чи справді ці користувацькі поля справді багато поту для невеликої винагороди?
9000

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

3
@Wayne M дякую за демонстрацію ставлення, до якого я мав на увазі. Клієнти можуть не розуміти технології, але вони, як правило, не ідіоти. Зазвичай розробник не розуміє потреби бізнесу. Більше того, якщо додавання функції погіршує цілісність програми, це ознака поганого дизайну програми.
Джон Крафт

3

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

Якщо говорити, ви також змусите переконатися, що те, що вони запитують, насправді таке важливе.


3

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

Почніть розглядати способи, як полегшити програму обробці більшої кількості полів клієнтів.

  1. Дозволити клієнту встановлювати мітки у звітах та формах для використання наявних полів.
  2. Додайте загальні поля (String12) до існуючих або додаткових спеціальних таблиць.
  3. Створіть визначену користувачем полеву систему, де це все обробляється шляхом введення даних, і не потрібно створювати нові стовпці в таблицях (я не можу пригадати, як це називається-довідка.).

Ви можете виявити, що існуючі клієнти переростають у вашу систему. Галузь може змінюватися, тому нові вимоги спливають.

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


3

На мить, дивлячись з іншої сторони вікна, на останньому моєму роботі я потрапив у систему ERP, яка дозволила кінцевому користувачеві додавати "власні" стовпці до будь-якої сутності / таблиці. З моїх коротких взаємодій з ним виглядало так, що вони динамічно додавали стовпчики до другої таблиці з відображенням один на один. Наприклад:

Таблиця WIDGET зі статичними стовпцями:

  • WIDGET_ID
  • WIDGET_NAME
  • WIDGET_COST
  • тощо.

Таблиця WIDGETCUSTOM із стовпцями, визначеними користувачем:

  • WIDGET_ID
  • WIDGET_WEIGHT
  • DID_BOB_WORK_ON_WIDGET
  • тощо.

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

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


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

1
Якщо ви зможете впоратися з цим через рік, у чому головна справа?
JeffO

@Jeff рік, припускаючи, що ми не зациклюємося на цих запитах на функцію в середній час .. Рік безперебійного часу розвитку в основному
Earlz

1

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

Щоб піти далі, якщо це проблема з вашим продуктом, і багато клієнтів шукають подібних налаштувань, можливо, саме час переосмислити ці частини вашого додатка та зробити їх гнучкими, щоб клієнти отримали повноваження робити це. самі, будь то спеціальна звітність, гнучкість збору даних тощо. Спробуйте перетворити ці роздратування на точку продажу. "Наша модель даних про запаси недостатньо хороша для вас? Ознайомтеся з нашими параметрами налаштування! Ви можете це зробити самостійно!"


2
Пам'ятайте, що за кожною проблемою стоїть можливість прийняти рішення, а потім продати комусь;)
MattC

0

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

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

Кодове безладдя? Якщо вам потрібно перефактурувати код під час роботи в новій функції, стягуйте їх за це.


0

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

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


0

Здається, ви можете отримати користь від якоїсь системи тягнення. Дозвольте користувачеві вибрати, яка функція буде реалізована далі, але обмежте кількість, яка може бути в розробці в будь-який момент часу. Рада Канбана для цього приголомшлива. Це може надати користувачеві право власності на процес пріоритетності (він же менший, ніж відповідальність та стрес для вас). Повірте мені, якщо користувач змушений вирішити, яка функція буде надана в розробку далі, знаючи, що інші запити будуть відкладені, вони вкладуть набагато більше коштів у вирішення того, що їм потрібно мати.


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

@Christopher - пункт прийнятий, але, безумовно, система могла б бути певною мірою модифікована. Можливо, забудьте про Kanban, але спробуйте зберегти ідею системи тягнення. Незалежно від того, як це працює конкретно, користувач повинен мати певний спосіб визначити пріоритетність завдань і вибрати, який саме робити далі в умовах, коли розвиток триває безперервно. Розробник не може реально знати, яку функцію потрібно зробити самостійно.
Морган Херлокер

1
Айронкод, ти маєш рацію. Я працюю в Банку Америки, і наша команда дозволяє бізнес-підрозділу визначити пріоритетні запити щодо функцій через пріоритет помилок bugzilla. Вони подають помилки, а потім визначають пріоритет. Вони можуть змінювати пріоритет у будь-який час, і ми коригуємо. Так, іноді це пов'язано з перемиканням витрат, але ми виявили, що це більш ефективно для бізнесу. Зауважте, що це, ймовірно, не спрацює з оригінальним плакатом, оскільки керівництво може мати цілі для своїх клієнтів. (як нахил убік, такий підхід до управління виглядає помилково)
Крістофер Махан

0

Я думаю, ви повинні попросити свого клієнта поставити одного або декількох із вас через "день в офісі", щоб побачити, як вони насправді використовують програмне забезпечення ... Зачекайте ... Найміть мене за $ 250 / годину, і я піду дізнатися. Також, будь ласка, не будьте золоті. Змусьте це просто працювати. Більшість підприємств не байдуже, що це виглядає некрасиво, коли він працює добре.


Ми це зробили. Ось чому ми знаємо, коли запити на функції, ймовірно, не будуть використовуватися.
Earlz

Ну, ну, тоді в компанії клієнтів є політичні сутички. Ви накручені. Або ви могли стейки та стриптизери.
Крістофер Махан

0

Відстежуйте запити. Коли ви переходите до розробки / розробки великих функцій, виберіть кілька пріоритетних запитів, які потрібно включити до цього випуску.


0

Побудувати стандартну систему переговорів для запитів. Можливо, щось базується на системі звітування про помилки чи запит на функції, наприклад fogbugz. Дозвольте своїм клієнтам надіслати запит та визначити його пріоритетним на основі:

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

0

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

Однак якщо ви цього не зробите, ви хочете перейти до рішення для цих допоміжних полів, що передбачає їх зберігання поза основної моделі даних. Потім ви можете використовувати щось на зразок виду бази даних для об'єднання додаткових полів для цього конкретного клієнта. (Існує кілька способів зробити допоміжний сховище, залежно від природи даних, що зберігаються; найпростіший - це просто таблиця, яка має той самий первинний ключ, що і деякі ПК у вашій головній таблиці, але це неефективно при використанні поля дуже рідкісне. Це справді проблема лише тоді, коли вони хочуть функції поля, які вимагають таких речей, як індексація.)

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

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