2009-06-30

Публикации PyJamas - питон компилируемый в JS UNИX, DZ, Фантом и Zope3

Терминологические конфликты во взаимотношениях с клиентом

Андрей Орлов  2009-06-30 18:38

В самых разных областях и между самыми разными клиентами и разработчиками я часто наблюдаю весьма сходные между собой конфликты. Мне кажется, что большинство из них вызваны общей причиной - своеобразным языковым барьером между клиентом и разработчиком: обращаясь к СПЕЦИАЛИСТУ за решением СПЕЦИАЛЬНОЙ задачи, клиент сталкивается со СПЕЦИАЛИЗИРОВАННЫМ языком, что приводит к непониманию и конфликтам.

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

Но можно снизить ущерб.

Терминологические конфликты

Терминологические конфликты

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

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

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

Следствия

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

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

Распространенные заблуждения

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

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

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

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

Что делать

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

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

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

Заключение

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

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

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

DreamBot Zope3 Учат тут Нейросети Репозиторий Слив! Статистика Редакторам Мобильный блог
Официальный сайт Zope3 Московская группа изучения реактивного движения The Dream Bot Site nooxml Сайт посуточной аренды квартир в москве