Устранение несоответствия между клиентом и разработчиком в гибком проекте

11

Одним из принципов гибкой является ...

Сотрудничество с клиентом в рамках переговоров по контракту

... еще один ...

Индивидуумы и взаимодействия над процессами и инструментами

Но, с моей точки зрения, по крайней мере, когда речь идет о взаимодействии с клиентом, есть фундаментальная проблема:

То, как клиент думает, отличается от того, как думает инженер-программист

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

  1. Заинтересованы в ежедневных оперативных задачах - тактика ближнего действия ... не обязательно стратегия;
  2. Понятно, что касается только немедленного решения;
  3. Практичные мыслители, а не абстрактные мыслители;
  4. Гораздо больше интересует «выполнение работы», чем рассмотрение того, как решение будет поддерживать будущие проблемы.

С другой стороны, в идеале , программисты, которые практикуют Agile:

  1. Люди, которые много думают о качестве;
  2. Люди, которые ценят, как небольшая предварительная работа может сэкономить массу усилий в будущем;
  3. Опытные аналитические мыслители.

Таким образом, существует культурное несоответствие, которое имеет тенденцию препятствовать «сотрудничеству с клиентами».

Какой лучший способ решить эту проблему?

Эрик Смит
источник
1
Формирование условий Operant - en.wikipedia.org/wiki/Shaping_%28psychology%29 - Подсказка: слишком очевидно, если вы используете кликер, прежде чем дать им пончик.
jfrankcarr
3
Я хотел проголосовать до этого. Но потом я читаю стереотипы, которые вы пытаетесь применить к этому. Есть плохие программисты, работающие с гибкими и хорошими клиентами. Возможно, вы могли бы переработать свой вопрос, включив в него трудности, которые вы испытываете, вместо предвзятых стереотипов, которые у вас здесь есть ... Тогда я бы поставил вопрос.
SoylentGray
3
ваши стереотипы предают ваше фанатичное нарциссическое мнение, я не думаю, что кто-то, кто думает так, как вы, будет успешным в отношениях с любым клиентом, вы уже приняли решение и имеете твердую систему убеждений, чтобы усилить вашу предвзятость. Это просто мысли о шовинистических настроениях, которые плохо работают с инженерами. Удачи с этим.
1
@Chad Это может быть полезной точкой зрения на вопрос, независимо от того, исходит ли оно из предубеждений спрашивающего или нет. Размышление о том, как хороший инженер взаимодействует с плохим клиентом, является уместным и интересным случаем: можно утверждать, что нас не волнует, как плохие инженеры справятся с этим, поскольку их продукт все равно будет хуже, а хорошие клиенты избавят от необходимости этот вопрос. Это оставляет нас с проблемой того, как хороший разработчик должен иметь дело с плохим клиентом. Может быть, формулировка получилась сильной, но вопрос все еще полезен,
Крис Бай
@ Slothsberry - я понимаю, что вопрос можно было бы определить для этих подмножеств. Это не так, как это поэтапно. Я прочитал это, поскольку все разработчики, которые практикуют Agile, хороши, а большинство клиентов - плохие.
SoylentGray

Ответы:

27

Однако во многих доменах типичный клиент:

  • Интересуются повседневными операционными проблемами - тактика ближнего действия ... не стратегия;
  • Только касается немедленного решения;
  • Обычно одномерные, не абстрактные мыслители;
  • В первую очередь заинтересован в «выполнении работы», а не в поиске долговременного, качественного решения.

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

Таким образом, ответ - вряд ли удивительно - общение .

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

  • Если вы говорите «это будет взломом, что делает код менее читабельным и расширяемым» , они говорят «да, что угодно» .
  • Если вы говорите «это было бы краткосрочным исправлением, которое сделало бы более долгосрочную разработку и обслуживание более дорогостоящим и увеличило бы риск появления ошибок» , они сказали бы «ха, давайте рассмотрим» .
  • И если вы скажете: «Это решение сейчас обойдется вам в 100 долларов, но вводит технический долг в 500 долларов, который вы рано или поздно должны погасить с процентами; ОТО, это другое решение стоит вам 400 долларов сейчас и не оставляет технического долга; выберите тот, который вам нужен». хочу " , говорят " теперь мы говорим! " ,

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

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

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

Петер Тёрёк
источник
3
Вау, у вас есть клиенты, которые на самом деле избегают технических долгов? Большинство из тех, что у меня были, шли бы «100 долларов, да, я возьму это».
Seseseacat
Ну, это немного сложнее, не так ли? Что такое «достаточно хорошо», и где ваши доходы начинают уменьшаться, когда вы рассматриваете возможность тратить время на среднесрочное и долгосрочное здоровье продукта / системы вашего бизнеса? Я бы сказал, что это то, что нужно сделать профессионалу.
Эрик Смит
2
@ Karpie, да, есть клиенты, которые узнали, что на самом деле означает технический долг (обычно трудный путь).
Петер Тёрёк
2
@EricSmith, да, это нечеткое решение, без единого правильного ответа. Мы разработчики понимаем технические последствия вещей; клиент знает бюджет и ограничения бизнеса. В идеале мы сообщаем, сколько стоит каждая функция / задача; клиент расставляет приоритеты на основе стоимости и стоимости каждого. Всегда есть компромиссы, когда вам нужно поддерживать работоспособность системы, одновременно решая самые насущные проблемы.
Петер Тёрёк
3
Я согласен с тем, что вы говорите здесь, хотя я столкнулся с культурой компании, где пользователи отказывались общаться. Это должна быть улица с двусторонним движением, иначе она не будет успешной. Я только наполовину пошутил об использовании пончиков для кондиционирования в моем комментарии выше. Иногда вам нужно использовать положительное или даже отрицательное подкрепление, чтобы получить участие.
jfrankcarr
4

Как ваш клиент видит себя:

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

С другой стороны, они видят вашу группу как:

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

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

SoylentGray
источник
3

Ну, во-первых, Agile - это не решение всех проблем, с которыми вы столкнулись в своем проекте.

То, как думает клиент, принципиально отличается от того, как думает инженер-программист.

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

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

Какой лучший способ решить эту проблему?

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

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

ManuPK
источник
1

Если у вас нет возможности купить у клиента, Agile может оказаться практически невозможным.

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

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

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

Ozz
источник
без покупателя купить любым способом будет практически невозможно
Ryathal
@Ryathal - действительно, но это особенно важно, как я описываю для Agile.
Оз
0

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

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

Agile поможет вам и вашему клиенту ответить на эти вопросы.

Брайан Оукли
источник