Как разработчик должен отказаться от невозможных требований? [закрыто]

74

Вот проблема, с которой я сталкиваюсь:


Цитата от руководителя проекта:

Привет, Спарк, я поручаю тебе задачу разработки фреймворка, который можно было бы использовать для разных приложений iOS. Вот требования:

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

Резюме:

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


Я разработчик дал эту задачу, поэтому мои вопросы заключаются в следующем:

  • Как я могу объяснить, что эти требования немного нелепы?
  • Как я могу объяснить, что было бы лучше сосредоточиться на разработке реальных проектов?
  • Как я могу объяснить, что даже если бы это было возможно, я бы не рекомендовал разрабатывать такие вещи?
  • Как мне вежливо, нежно и с уважением сказать «нет» этому проекту?
  • Как я могу объяснить, что даже для разработчика с 3-летним опытом это может быть невозможно?
Сагар Р. Котари
источник
7
Вы не получите много очков брауни по не всем этим требованиям «глупо» и избежите худшего «нет». Объясните, что устройства iOS не поддерживают такую ​​функциональность.
Ramhound
26
How do I say politely, gently & respectfully NO to this? Еще один совет, который я должен дать вам, чтобы иметь некоторый контроль над своими боссами, вы всегда должны позволять им приходить к своим собственным выводам. Если они приказывают вам, никогда не говорите «нет», просто объясните факты и обсудите проблемы. Попытайтесь заставить их понять, насколько глупы их запросы, потому что они могут не знать деталей. Они, вероятно, увидят, что это глупая идея и дадут вам другую задачу, и вам НИКОГДА не приходилось говорить НЕТ. Я никогда не говорю НЕТ, и я все время получаю глупые требования, которых никогда не бывает.
maple_shaft
151
Я думал, что часть требования, на которое вы жаловались, заключается в том, что вас называют Сахаром . Тогда я увидел ваше имя пользователя :)
Горан Йович
6
Не говоря уже о том, что «наблюдаемый» размер пальца будет меняться в зависимости от того, как они держат устройство. И одалживать это людям? Перемещение кнопок ужасно, и не только с точки зрения клиента - как вы должны обеспечить разумную поддержку для этого (кнопки не находятся в стандартных местах)? И как вы определяете «большой» / «меньший» большой палец - и соотношение с возрастом? Женщины, как правило, меньше (и имеют меньшие руки), чем мужчины, - нужно ли вашему приложению знать пол? И оптические проблемы имеют тенденцию усугубляться с возрастом, а не улучшаться.
Заводная муза
13
Давайте попробуем определить соотношение морщин на пальце, чтобы угадать возраст. Затем, когда у вас большой палец с высоким коэффициентом морщин, у вас есть пожилой человек, которому нужны более крупные шрифты. И когда у вас мизинец с высоким коэффициентом морщин, ребенок только что вышел из ванны, и вы опубликуете ошибку, сообщающую, что пора спать, а не iPhone.
music2myear

Ответы:

102

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

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

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

Посмотрите, сможете ли вы получить представление о реальных целях функции - почему она рассматривается как требование. Это может привести вас к другой, лучшей функции, которая решит эту проблему. (спасибо @spoike)

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

Одед
источник
31
+1 придерживайтесь этого факта, а также попросите руководителя проекта объяснить реальные бизнес-цели, которые имеет эта функция, чтобы ее можно было использовать с помощью другой, намного лучшей, функции и решения.
Спойк
8
@Spoike "have the project lead explain the actual business goals"- отличная идея, дайте им то, что они хотят, даже если они не знают, как попросить об этом.
StuperUser
2
В этом случае, предполагая, что цель состоит в том, чтобы сделать приложение доступным для людей с ограниченными возможностями зрения, его можно было бы решить гораздо проще другими способами. Например, позволяя пользователю выбрать, хочет ли он больше или меньше текста в первый раз, он / она запускает приложение (и позже через настройки приложения). Определение возраста и нарушений зрения по размеру пальца довольно сложное и может быть проблематичным даже с точки зрения UX (скажем, пожилые и маленькие люди по сравнению с молодыми и большими людьми).
Спойк
2
@ Я не думаю, что это возможно ... моя бабушка выросла в эпоху, когда ударить по телевизору было правильным способом исправить это ..
Изката
5
Как менеджер по продукту, я могу подтвердить, что 1) важно придерживаться фактов, но 2) задавать вопросы о том, что они действительно пытаются сделать, будет иметь большое значение. Если они верят, что вы понимаете их нужды, они будут более открыты для всего, что вы им скажете.
Тадж Мур
30

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

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

Дунайский моряк
источник
Я согласен с тем, что потребности или желания клиентов никогда не бывают глупыми, мы не спорим об этом. Мы утверждаем, что глупо излагать требования, план проекта и выделять ресурсы для проекта, который не был прототипирован.
maple_shaft
11
Что ж, я извиняюсь, lechlukasz, но на этот раз я думаю, что они на самом деле глупы без конца. Даже если платформа выставила овал, нажатый на сенсорном экране, чтобы можно было рассчитать центроид, идея динамического пользовательского интерфейса, основанного на толщине пальца, немного «экзотична». Как пользователь, я не хотел бы ограничиваться политикой «один палец на сеанс», и я хотел бы иметь возможность нажимать на экран пальцем за раз, емкостной ручкой или даже другими частями тело, если я чувствую себя так XD.
Мистер Смит
@maple_shaft - кажется, что этого списка возможностей достаточно только для создания прототипа.
JeffO
1
Я согласен, что на самом деле это была бы полезная основа, и, если не полезная, то чрезвычайно крутая - что, вероятно, имеет значение для большего в мире Apple. Вам просто нужен виджет "калибровка размера пальца", а остальные должны встать на свои места.
Джеймс Андерсон
1
Я думаю, что вы можете сделать это с помощью современных технологий. Вам понадобится специальное приложение для калибровки размера пальца и его статического хранения, а не предусмотренного полностью динамического измерения, но в противном случае это выполнимо. В течение многих лет Windows приспосабливала свои окна и значки к размеру экрана, так что эта сторона хорошо известна.
Джеймс Андерсон
16

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

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

Тем не менее, существуют серьезные проблемы с юзабилити и реализацией.

  • Что делать, если устройство является общим? Когда происходит калибровка?
  • Как вы можете динамически определять положение элементов пользовательского интерфейса произвольно во всех приложениях, созданных с помощью инфраструктуры? Очевидно, что у каждого приложения будет свой пользовательский интерфейс и разный макет.
  • Простой обзор текущих приложений для iOS показывает, что хорошо спроектированные приложения используют все доступное горизонтальное пространство, и уже размещают элементы таким образом, чтобы важные кнопки были как можно большего размера и располагались по краям. Полная ширина устройства используется для списков и макета, очевидно.
  • Даже если бы это было возможно, что такое анализ затрат / выгод? Сколько будет получено от такой системы по сравнению со стандартными элементами управления пользовательского интерфейса? Разве не было бы проще иметь простой переключатель управления размером шрифта, как многие приложения уже используют?
ghoppe
источник
12

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

HLGEM
источник
2
Да, это правильный подход. Никогда не говори нет". Просто проанализируйте проблему и предложите решение, которое будет работать вместе с оценками времени. Итак, какова оценка времени для изменения IO для динамического расчета ширины пальца? Может быть, 2 года около 10 разработчиков ОС. Там ваша оценка! :)
Стивен Гросс
В этом случае вам придется согласовать это с Apple, что означает ссылку на него как юридическое, а также на все, что выходит за рамки разработки программного обеспечения. В этом случае я бы сказал, что вы можете сказать: «Это невозможно, учитывая ограничения оборудования, которые мы не контролируем. Нам нужно будет вступить в переговоры с Apple».
deworde
1
@ deworde - я ненавижу слово «невозможно», люди 20 лет назад думали, что великое было «невозможно», как насчет того, чтобы сказать «в настоящее время невозможно с предоставленным оборудованием».
Ramhound
@Ramhound Они ваши бизнес-планировщики, а не ваши дети. Не приукрашивайте их, чтобы защитить свои надежды и мечты, ПОЛУЧИТЕ ТРЕБОВАНИЯ ИЗ СПЕКА .
deworde
1
Добавьте еще 2 года, 100 инженеров по аппаратному обеспечению и научно-исследовательскую лабораторию за 50 миллионов долларов, чтобы изобрести оборудование для продажи Apple, по вашей оценке, что, да, это возможно.
hotpaw2
11

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

Как пользователь, я бы ненавидел движущиеся цели под пальцами.

mouviciel
источник
2
Я использовал этот аргумент, когда меня попросили написать универсальный мета-запрос для плохо спроектированной базы данных Access. (То есть система, в которой любой пользователь мог запросить что угодно произвольно, без необходимости использовать конструктор запросов). Я сказал: «Если бы это было возможно, Microsoft бы это сделала, и они бы рекламировали это повсюду».
Крис Кадмор,
@ Крис: это именно то, что я говорю всякий раз, когда кто-то хочет, чтобы мастер создания отчетов делал все. Если бы это было возможно, Access получил бы его еще в начале 90-х
Нил Н
4
-1, «потому что Apple этого не делала» не является веской причиной, чтобы не пробовать что-то новое. Это может быть , что его невероятно глупая идея и / или физически невозможно. Или нет. Но я не вижу, в чем вред, если его боссы готовы тратить ресурсы.
GrandmasterB
2
@GrandmasterB - Я предполагаю, что Apple сделала это, а затем отклонила. В любом случае, немного здравого смысла говорит о том, что с точки зрения удобства использования это далеко не удобно. Мне не нужен босс с такими идеями.
Mouviciel
10

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

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

maple_shaft
источник
Да, я верю в карму ? :)
Сагар Р. Котари
1
@Sugar Я тоже! Если они не слушают вас, они потерпят неудачу.
maple_shaft
Не говорите, что невозможно сказать, что операционная система не предоставляет эту информацию. Поскольку в случае приложения iOS вы можете использовать только общедоступные методы, вы ограничены тем, что официально поддерживает операционная система. Если бы это было возможно, они бы предоставили это фреймворку, и, таким образом, пользователь даже не усомнился бы в этом требовании.
Ramhound
8

Один из способов отвлечь необоснованный запрос - помочь клиенту понять природу проблемы, которую он пытается решить. Посредством техники планирования собеседования, известной как « вытаскивая стек « почему »», вы продолжаете рекурсивно спрашивать «почему» (конечно, вежливо, разумно):

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

Цель состоит в том, чтобы получить основную ценность для бизнеса:

  • Защитить доход
  • Увеличить доход
  • Управлять стоимостью
  • Увеличить ценность бренда
  • Сделайте продукт замечательным
  • Обеспечить большую ценность для ваших клиентов

(Предметы из огуречного вики)

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

Чтобы использовать пример сканирования размеров большого пальца:

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

Dev: Почему вы хотите это сделать?

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

Dev: Простота использования, безусловно, будет полезна для клиента, но зачем ему калибровать пользовательский интерфейс? Если известно, что люди, использующие это, имеют большие руки, почему бы не скорректировать дизайн для этого варианта использования?

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

Андрей Вит
источник
4
+1 За то, чтоOften the real problem lies at a higher level of abstraction than the problem they've requested you to fix.
выложили
7

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

Просто сказать нет.

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

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

Есть так много аналогий с этим

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

Вы можете попросить всех этих людей выполнить задачи, которые они будут знать глупыми, расточительными, опасными или неправильными. И вы ожидаете, что все они выступят против этих действий и в конечном итоге откажутся (по крайней мере, я на это надеюсь). Если кто-то из этих профессионалов ответил бы: «Хм, ладно, я думаю, мы можем это сделать» - не давая мне откровенного «Это плохая идея», - тогда, честно говоря, я бы не стал нанимать их в любом случае.

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

Кирк Бродхерст
источник
2
примечание: я отвечаю на вопрос «Как разработчик должен отклонить невозможные требования» .
Кирк Бродхерст
Больше силы для вас.
ThomasX
2

Не должно быть слишком сложно сказать вашему клиенту, что вы не можете реализовать то, что ваша целевая платформа не позволяет вам. Но сделайте шаг назад и спросите себя, какова логика этих довольно нелепых требований? Из того, что я могу прочитать, они очень обеспокоены удобством использования. Затем спросите их, копайте немного глубже, пока они не скажут вам то же самое: «мы хотим дружественный интерфейс». Затем наведите их на то, что выполнимо, а что нет. Скажите им, что если им нужен простой пользовательский интерфейс, существуют простые (и более дешевые способы), такие как предоставление пользователю возможности установить размер шрифта / значка (я полагаю, что это возможно в IoS). Может быть, вы можете позволить пользователю контролировать размер шрифта / размер значка и расположение для приложения через вкладку настроек? Это должно быть проще (и точнее!), Чем пытаться угадать возраст человека по размеру большого пальца! Последнее, чего хотел бы ваш менеджер - это ненужный, раздутый, трудно поддерживаемый код, который достигает того же, что уже предоставляет ОС. Скажите вашему клиенту, что пользователи предпочли бы контролировать приложение, а не приложение, управляющее ими таким образом, который может привести их в бешенство.

DPD
источник
1

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

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

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

JeffO
источник
1

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

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

На самом деле этот вопрос даже немного сложнее: «Можно ли определить, насколько толстым палец пользователя после первого касания менее чем за 200 миллисекунд, чтобы обеспечить немедленное взаимодействие?» (заменить сначала на 2 или ...; и 200 мс на 300 мс или как угодно ...)

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

Вы видите, куда я иду?

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

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

Филипп
источник
1

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

lurscher
источник
0

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

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

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

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

Билл К
источник
0

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

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

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

Джек
источник
-1

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

Как только мы решим сделать прыжок и начать открытый разговор, я считаю, что проще всего рассматривать проблему как экономическую. В технологии почти все возможно, учитывая бесконечное количество ресурсов. Обсуждая, что нужно сделать, много раз это самый простой способ с уважением сказать «нет». И это был бы способ устранить любые возможные недоразумения. Хотя, если честно, мы не совсем говорим «нет». И какова цель сказать нет в любом случае. Если работа не стоит того, не важно, хотим мы этого или нет.

Артуро Эрнандес
источник