Подтвердить что ты не робот

Как бороться с запросами на нелепые функции в вашем программном обеспечении?

Конечно, большую часть времени этот тип запросов поступает от руководства, который не имеет понятия о том, что действительно хотят пользователи, и не имеет понятия о технических аспектах построения конкретного программного проекта или программного обеспечения в целом. Подробнее см. Dilbert Pointy-Haired Boss.

Однако это только один аспект. Как насчет запросов на предметы, которые, как вы знаете, повредят общей производительности системы, которую вы строите? Или как насчет технического идиота, которому по глупости дали власть, и все же почти все, что они делают, превращается в dook? (См. этот пост для замечательного примера)

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


Dupe: Когда клиент запрашивает что-то смешное и настаивает

4b9b3361

Ответ 1

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

Я предлагаю простую модель:

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

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

Ответ 2

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

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

Ответ 3

Я нахожу фразу "мы сделаем это во второй фазе?" творит чудеса, возможно, подкрепляется "Я думаю, мы сможем обойтись без него, чтобы начать с того, чтобы сначала начать что-то".

Ответ 4

Ваше оружие выбора должно быть оценкой. Смешная функциональность, как правило, имеет смехотворную оценку. Когда должна быть функция X получает оценку в 3 человеко-года, она волшебным образом превращается в красивую функцию X.

Ответ 5

Если это клиент и технически возможно сделать, и вы можете сделать это, получите выражение о работе - и сделайте это.

Если это работа, вы делаете то же самое, что и все остальное. Вы говорите: "Да, сэр (или мэм), я с удовольствием сделаю это. И я не против делать это вообще. Я просто подумал, что вы, возможно, захотите узнать, как это повлияет на наши другие системы или Если вы не ошибаетесь, просто говорите, что, возможно, нам стоит немного подумать об этом. Это нормально?"

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

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

EDIT:

Я взял это из своего комментария ниже:

Никто не смотрит Star Trek больше TNG или TOS? Помните, что номер один позволил капитану Пикарду знать что-то неправильно, и иногда Жан-Люк соглашался, а иногда и не хотел. Это все, что я говорю

Ответ 6

Я бы потратил время, чтобы выслушать вежливо, если есть более одного запроса, попросите их расставить приоритеты и получить запрос в письменной форме, идеализировать "подписанный" или любую другую процедуру, которую вы имеете. Затем сообщите своему менеджеру/клиенту, что вы просмотрите заявки и вернетесь к ним с оценками и влиянием, которое оно будет иметь на ваше расписание. Объясните, что для получения этих данных вам нужно будет занять Х количество часов (или дней), и поэтому ваша другая работа будет отложена...

Затем вернитесь с оценками - если запрос был смешным, то ваша оценка, скорее всего, отразит это: -)

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

Если это вообще возможно, вы должны попросить их отложить такие запросы до следующей фазы, предложить вам посмотреть на нее в следующей версии (я думаю, что еще несколько ответов уже упомянули эту идею).

Ответ 7

Все это хорошие ответы. Вам нужны жесткие данные (если возможно их генерировать), "правдоподобно смешные" оценки и, прежде всего, уважение.

Ответ Джонни был прав, по существу, если бы не точные слова (я бы прокомментировал, если бы я создал достаточно репутации). В некоторых случаях, однако, использование этих точных слов может создать достаточный диссонанс, чтобы заставить запрашивающего взглянуть на содержимое ваших возражений. И да, это относится к любым проектным усилиям: программное обеспечение, дизайн рекламы, даже (вздутие!). Не то, чтобы хрюканье, несущее миномет, будет иметь основания или силу, чтобы возражать против ошибочного дизайна, но руководство по строительству обязано сообщать архитектору, не строятся ли его планы.

Если все остальное не удается, документируйте обсуждение и постройте его в любом случае. Это уже не ваша ответственность.

Ответ 8

Смешные запросы функций попадают в два лагеря для меня, когда они отвечают на них.

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

Для типа 1 я проанализирую запрос и отвечу либо с жесткими фактами, либо с профессиональным мнением. Если анализ показывает, что это возможно с дополнительными усилиями по существующему коду, тогда оцените и оцените высоту!

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

Если они согласятся с оценкой или я это сделаю, в конце концов, получите ее, тогда я это сделаю.

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

Ответ 9

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

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

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

Удачи.

Ответ 10

Существуют разные виды "смехотворности".

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

Мне нравится обсуждать требования: -)

Edit:

Типичное обсуждение

  • Менеджер по маркетингу: рядом с этой таблицей нам нужна кнопка, чтобы предоставить функцию X для выбора.
  • Разработчик: Но нам нужен дополнительный параметр P для функции X
  • M: параметр P очевиден, это много случаев
  • D: Но мы должны охватывать все случаи. Нам нужно запросить P
  • М: Нет! Пользователи не любят получать подсказки за очевидные значения! Они просто хотят "щелкнуть и пойти".
  • D: В этом случае это невозможно. Нам нужно запросить.
  • M: (размещение) Не можете ли вы догадаться об этом и только подскажите, действительно ли это действительно необходимо?
  • D: Трудно догадаться. На самом деле требуется несколько недель или даже месяц для реализации, и это высокий риск. Что, если мы ошибаемся? Для этого нам нужен искусственный интеллект.
  • M: Но это очень просто: всегда в случае бла-бла, мы знаем P
  • D: Да, конечно, но мы не знаем, что знает пользователь.
  • M: Hm. Вы, разработчики, всегда так сложно.
  • D:...
  • M: Так вы можете это сделать или нет?
  • D: Нет.
  • M: Почему?
  • D: (раздраженно) Я только что объяснил. В конце концов, вы думаете, что пользователю нравится, что система догадывается о P, если он действительно хочет решить?
  • M: Вам просто нужно угадать, что пользователь решает.
  • D: Но где я знаю?
  • М: В этой ситуации блаббах...
  • D: Я знаю, но это не так просто.
  • M: Хорошо, я иду к руководителю проекта, он даст вам задание.
  • D:...

Ответ 11

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

В общем, я просто прошу все больше разъяснять требование и все больше и больше, пока:

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

  • Они понимают, насколько нереальны они, и они снимают запрос

  • Вы понимаете, что это будет действительно хорошо, но это невозможно. Обычно, по моему опыту, это происходит потому, что вам нужно будет внести изменения в большое приложение с закрытым исходным кодом, и в этом случае вы просто сделаете запрос функции поставщику, который более насыщен для не-техников, которые для техников; Microsoft не вносит изменений в Excel, потому что одна небольшая фирма попросила их!

Ответ 12

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

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

Способ удаления некоторых из этих замедленных функций осуществляется через рекурсивную функцию .Why(). Продолжайте спрашивать, почему, пока вы не найдете свою проблему, а затем самостоятельно разработайте эту функцию. Во многих сценариях вы можете перепроектировать его таким образом, который является простым, недорогим и удовлетворяет всем сторонам.


Есть также моменты, когда то, что кажется смешным запросом на функциональность, действительно является отличным, чтобы быть хорошим. Бывают случаи, когда разработчики программного обеспечения (и я поймал себя на этом в прошлом) говорят "нет" достаточно сложную, но очень полезную функцию, которая заставит компанию много денег. Поэтому, когда вы сталкиваетесь с "смешной" функцией, обязательно вычислите ее потенциальную ценность для бизнеса, прежде чем немедленно отклонить ее.

Ответ 13

У нас есть такие запросы, которые поступают от менеджеров продуктов.

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

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

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

Ответ 14

  • Иногда вы можете объяснить, почему функциональность смехотворна, и функциональность отбрасывается.

  • Иногда вы можете заставить кого-то более старшего сказать "нет" для вас.

  • Иногда вы старше (или влиятельным) достаточно, чтобы сказать "нет" для себя.

  • Когда-нибудь вы можете сказать "да", но придать задаче низкий приоритет (и никогда этого не делать).

  • Иногда вам просто нужно это делать.

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