Friday, May 05, 2006

Пятница №9 - Как втирать очки пользователям

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

Как втирать очки пользователям


«Я ее ё! А ее уау! Я ее ой! Я ее ха-ха!»

Профессор Лебединский, «Я танцую пьяный на столе»

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

Имитация

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

Сложнее, если надо новый отчет генерировать или 3D-модель демонстрировать – тут рука занемеет клики генерировать, да и окружающие коситься начнут, что это вы там в кармане так часто-часто делаете…

Шутки шутками, а что делать, если функциональность не готова, а показывать надо и дедлайн нарушать некстати совсем? Тут и применяется паттерн имитатор (к трудам «банды 4-х» это не имеет отношения[1]). Итак, вам нужно сдать отчет, нарисовать график, а он не готов? Возьмите и сделайте 5 отчетов, 12 графиков! Неважно, что они будут визуализировать не совсем понятные корреляции в клиентской базе, смешивая нужное с ненужным. Выдайте простыню в 30 листов, заполненную непросуммированными данными, вставьте в Excel побольше суммирующих и статистических функций и придумайте пару мыслей что все это может означать. Больше графиков - линейных, pie- и гистограммных! Они производят гипнотизирующее впечатление на пользователей!

Суть идеи – завалить заказчика информацией. Дело в том, что заказывающий отчет клиент (обычно имеющий опыт общения с программистами) не уверен, что он правильно может представить, что же ему нужно. Дайте ему гораздо больше, что он мог когда-либо пожелать. Редко какой пользователь сознается, что он не мыслил так широко (особенно в присутствии других коллег), и что ему надо было всего лишь табличку из 5 полей и 4 строк.

Задача-минимум – заставить пользователя/заказчика признать, что вы не зря работали, только чуток переборщили и усложнили. После этого он может ругать вас только за переработку, слишком широкое видение проблемы и т.д. Да, это неприятно, но гораздо легче, чем втык за полностью несделанную работу.

Задача-максимум – выбить себе премию и отправить пользователя разбираться со всей этой ерундой. В это время надо (ну, можно) быстренько доделать нужный ему отчет…

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

Я знавал одного очень спокойного, флегматичного человека (нет, наверное, это все-таки был мутант - полуленивец-получеловек) который очень долгое время проработал в бешеной конторе, где все люди с нормальным темпераментом не могли продержаться и года – выматывались так, что рады были просто уйти оттуда. Его секрет был очень прост – на любую просьбу пользователей он кивал головой, что-то помечал ручкой в блокноте, и уверял, что все будет сделано в самое ближайшее время. Как только пользователь покидал его кабинет, он тут же забывал про эту просьбу. Когда пользователь приходил во второй раз, он доставал тот же блокнот, делал пару пометок, уверял, что все на мази и скоро будет готово.… И опять откладывал. И только на третий раз, когда проблема, очевидно, вставала в полный рост, он брался за ее решение. По его словам таким образом он фильтровал до 70% запросов. Кончилось все это грустно – одна не в меру любопытная юзерша заглянула в знаменитый блокнот и обнаружила там 352 серии игры в крестики-нолики с самим собой…

Декорация

Метод хорошо походит, когда надо сдавать milestone – т.е. весь проект не работает (и не должен работать), а вот отдельная группа функций уже должна работать. Ну, все просто – отлаживаем программу под ввод определенных групп значений и выдаем желаемые результаты. Желательно приметить любимые цифры и буквы пользователей - не смейтесь, но обычно они вводят либо 1, либо 123, иногда наименование «любимого» товара или клиента. Впрочем, тут и программисты не без греха – вспомните, сколько строк «I», «test», «qwerty», «ЙЦУКЕН» и т.д. было в вашей последней программе.

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

Мастера декорации применяют и более изощренные методы – например, один из моих знакомых, заколебавшись переписывать программу с FoxPro на MSSQL, просто написал программу-транслятор запросов, которая дергала соответствующую функцию на Фоксе, который крутился на сервер и возвращала данные. Система работала в таком режиме где-то полгода, пока он решал какие-то свои проблемы и доделывал свою версию. Больше всего его веселили ситуации, когда пользователи начинали катить бочки по поводу того, что «новая программа» неправильно считает остатки на складах или чего-то там. С трудом сдерживал он рвущийся наружу хохот, а когда, наконец, выбирался в туалет, пускал там воду на полную и ржал, ржал, ржал! то сердобольные уборщицы говорили – «вишь! Как переживает, убивается прямо! Тяжелая работа, видать».

Психическая атака

Да, иногда лучшая защита – это нападение. В истории программирования часто бывали случаи, когда группа смелых программистов, вооруженных идеями Буча и Румбаха, обращала в бегство тяжеловооруженную бригаду пользователей. Классическим мне кажется случай, недавно рассказанный одним человеком из Казахстана. В одной крупной торговой конторе, построенной и раскрученной на бандитские деньги, вдруг обнаружились крупные недостачи, которые управляющие отнесли на счет недостатков установленной системы учета. Разработчики приехали на разбор полетов, и топ-менеджеры, в присутствии хмурых владельцев в голде, всячески поносили программистов до того момента, как открыли лог операций и прозвучала фраза «А зачем вы удаляли вот эти операции от 3 декабря?»…. И ситуация резко поменялась :) (кстати, о логах мы поговорим позже и очень подробно – вещь исключительно полезная).

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

Втирание очков в прыжке ногами, или Драконы навсегда

Ранее я упоминал этот способ, но все почему-то подумали, что это просто шутка или я фильмов Джеки Чана пересмотрел. Но это не шутка, конечно, а Джеки Чан, кстати, очень даже к месту!

Свое название этот способ получил в Америке, еще во времена ЭНИАКа (ну или чуть позже). Всем известно, что слова bug и debugging пошли как раз от того, что какой-то программист, пропустивший дедлайн, запустил кучу тараканов в центральный процессор, от чего тот и закоротил, а программист, спокойно валяясь на калифорнийском пляже, протыкал нужные перфокарты.

Однако история не увековечила, к сожалению, другого программиста, скромного китайца, который, доведенный двумя лысыми и очень нудными учеными из НАСА, требовавших пересчитать маршрут какого-то там «Вояджера» или «Обсервера», в то время как он никак не мог замочить последнюю базу клингов, вскочил и в прыжке втер им очки.... Программиста уволили, а его сын стал известным актером.… Звали этого программиста Ли Чан J.

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

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

Как же вдарить? Просто займите их чем-нибудь. Добрые программисты подкидывают новую флэш-игрушку вроде метания пингвина или дартца в босса, злые перемещают папки с квартальными отчетами… Один очень злой программист взял, и в любимом Excel-отчете поменял все строки на противоположные – т.е первая стала последней, вторая – предпоследней и т.д. А в отчете около 800 строк было. И вся бухгалтерия, кляня Норберта Винера, Аду Лавлейс, Чарльза Бэббита и всех остальных родственников программистов, копировала строки обратно. Strike back, в общем!

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

Как-то на заводе, где я работал (он, кстати, разорился после моего ухода - не по моей вине, не подумайте!) задумал информационный отдел провести комплексное обследование по IDEF0-методологии. Завод, пусть даже в 8 тысяч работников, насыщен таким количеством процессов, что задача, прямо скажем, была немаленькая.

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

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

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

И еще примерно полгода ИТ-отдел, никем не тревожимый, спокойно занимался изучением Unreal Tournament, курсами по Oracle, обсуждением data warehousing, переездом в новое помещение....

Для тех, кому интересно - конечно, никто никакие схемы не нарисовал, дело ограничилось перерисовыванием квадратиков из хелпа БПВин и спустилось на тормозах, когда генеральному в неформальной обстановке, проходя веничком по спине, объяснили суть проблемы - "Михалыч, мы лучше блюминг вручную запускать будем, уволь от этих штучек!"

Ура, товарищи! Победа будет за нами!



[1] Если вы думаете, что банда 4-х это что-то из эпохи Мао Дзэ Дуна, то вы правы… Но в то же время вам надо срочно прочесть эту книгу – поверьте, вставляет почище цитатника Мао!

7 comments:

Алексей Барило said...

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

Когда после унивеситета я около 10 лет назад пришёл на предприятие, на работу, мне первым делом рассказали про "правило трёх гвоздиков". Когда приносят задачу - её вешают на 1ый гвоздик, когда заказчик приходит 2ой раз - перевешивают на второй и т.д....

Anonymous said...

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

Alexey Kovyazin said...

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

Anonymous said...

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

Зато все эти усилия потом оправдаются, работать будет намного приятнее и спокойнее :)

Anonymous said...

"Как-то на заводе, я где я работал (он, кстати, разорился после моего ухода)"

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

Anonymous said...

""Как-то на заводе, я где я работал (он, кстати, разорился после моего ухода)"

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

ЛИСА said...

Мне идея "скорой" и программистов в белых халатов очень понравилась... Я бы сначала, конечно, хлопнулась в обморок(ночь всё-таки!), а потом бы даже кофе угостила с круасанчиком. Лишь бы помощь оказали... :-)