Что делать с глупым клиентским запросом? - PullRequest
5 голосов
/ 25 октября 2008

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

Этот конкретный клиент / пользователь НИЧЕГО не знает о платформе и языке, который я буду использовать (ASP.NET / SQL Server). Его единственное знание - это Кобол, и попытка заставить его понять мое POV просто злит его.

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

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

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

Должен ли я уйти из проекта, зная, что, вероятно, я потеряю этого клиента навсегда?

Или ...

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

Ответы [ 14 ]

27 голосов
/ 26 октября 2008

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

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

  • Определите риск. Сказать, что это вызовет «проблемы с производительностью» и «не будет легко масштабируемым», не определяет риск. Вы должны точно указать, что вы имеете в виду. Что не собирается выполнять и почему? Какие изменения в масштабе столкнутся с этими проблемами?
  • Оцените риск. Хорошо, вы думаете, что есть проблема. Насколько плохо? Насколько вы можете быть уверены, что эти проблемы с производительностью действительно произойдут? Как это повлияет на пользователей, если они это сделают? Вы говорите, что программа не может масштабироваться: рост в масштабе, который выставит дефект дизайна даже в картах? Самое главное, откуда вы это знаете? Здесь время, потраченное на создание и тестирование прототипа, может спасти вас от бессмысленных споров.
  • Рекомендовать стратегию смягчения последствий. Каков правильный способ реализации этого? Почему это правильный путь? Опять же, откуда вы это знаете? Опять же, прототип - ваш друг.

После выполнения этого упражнения получится несколько вещей.

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

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

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

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

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

Я неоднократно обнаруживал, что простое электронное письмо идеально фокусирует внимание:

Я проверял дизайн, и я думаю, что здесь есть риск, который нам нужно обсудить. [Подход A] действительно чувствителен к объему транзакции, и я беспокоюсь, что у нас будет достаточно пользователей, чтобы столкнуться с проблемами.

Я провел небольшой тест, используя [Подход B], и он намного менее чувствителен; в моем простом прототипе я смог получить из него X транзакций в секунду. Это имеет смысл, потому что [техническое сравнение того, как эти два подхода обрабатывают вещи].

Меня это особенно беспокоит, потому что [опишите, как программа не сможет работать, если она работает плохо].

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

Но вы гораздо лучше знакомы с [подходом А], чем я, и я с радостью подчинюсь вашим указаниям по этому вопросу. Как вы думаете, что мы должны делать?

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

6 голосов
/ 25 октября 2008

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

Вам нужно понять, ПОЧЕМУ он хочет, чтобы это было реализовано именно таким образом. Вам необходимо продемонстрировать, что вы хотите предоставить работающее решение, которое соответствует потребностям бизнеса.

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

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

4 голосов
/ 25 октября 2008

Вариант 1: Уходите, у вас уже плохие отношения, и вряд ли они улучшатся.

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

Вариант 2: Попросите, чтобы он задокументировал свой выбор архитектуры и причины и подписал их как спецификацию. Добавьте к договору пункт, в котором говорится, что вы не гарантируете производительность и / или масштабируемость с использованием созданной им спецификации, а затем реализуете его по-своему. Пошлите ему презентацию вашего предпочтительного подхода и аргументации.

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

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

Удачи. Серьезно подумайте над вариантом 1. Стоит попробовать негласное общение с парнем.

3 голосов
/ 25 октября 2008

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

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

3 голосов
/ 25 октября 2008

Можно ли создать небольшое прототипное приложение, чтобы доказать, что он не прав, а вы правы? Говорить намного проще, если у вас есть веское доказательство.

2 голосов
/ 25 октября 2008

Слушай и учись . Будьте искренне заинтересованы в плюсах и минусах подхода ваших клиентов.

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

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

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

2 голосов
/ 25 октября 2008

Трудно предложить конкретные шаги, поскольку я не знаю подробностей здесь, но вот мои мысли:

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

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

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

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

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

По крайней мере, так я и сделаю.

Удачи!

1 голос
/ 25 октября 2008

Я бы помогал проекту, если бы я не голодал. Как консультант, я чувствую, что единственная ценность, которую я приношу заказчику, - это знания, которыми я обладаю (и которые они не имеют, иначе они бы меня не наняли) Работа над чем-то, что я «знаю» потерпит неудачу, нарушит Кодекс этики консультанта (если он был).

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

1 голос
/ 25 октября 2008

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

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

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

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

(Правка: черт, Саймон избил меня на несколько секунд.)

1 голос
/ 25 октября 2008

Я бы порекомендовал попробовать с ним какую-то тактику неверного направления. Дайте ему знать, что вы беспокоитесь о его методах, и предложите ему другое решение, которое подойдет как вашим потребностям, так и его. Старайтесь не быть агрессивным (не говорите, что он неправ), но скажите, что вы думаете, что есть лучшее решение, которое объединяет оба ваших варианта.

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

...