У меня такое впечатление, что многие мои коллеги-консультанты никогда не слышали о таком правиле. В последнее время замечаю очень много примеров тому.
Начну издалека, чтобы никого не обидеть. В 2011 году я был привлечён к одному проекту в московском представительстве международной компании, где одним из ключевых пользователей со стороны клиента был(а) бывший консультант компании Эпикор из одной из стран бывшего Союза, который(ая) был недоволен тем, что на проект привлекли консультанта из России, а не его(её). Естественно, всё, что мне довелось делать, подвергалось пристальному рассматриванию через лупу, а любые разговоры о том, что не надо пытаться на 100% реализовать любые хотелки, пресекались, от меня требовали процедуры, закрывающие 100% случаев, включая откровенно экзотические, являющиеся исключениями из правил. В результате, трудоемкость некоторых операций оказалась в 3 раза выше, чем у других клиентов.
Если кто не слышал, я предпочитаю такую формулировку пропорции Парето применительно к работе пользователя: 20% усилий — 80% результата. Это не значит, что про остальные 20% результата надо совсем забыть, но, если вы рассыпали 100 монет, и за 20% времени нашли 80 из них, то на поиски каждой следующей из оставшихся 20 вы будете тратить с каждым разом всё больше и больше времени и, в конце концов, последние Вы будете искать только в том случае, если совсем не цените свое время или, если их ценность действительно очень высока. Аналогично и с усилиями на ввод информации. Я придерживаюсь той точки зрения, что не нужно во всём соглашаться с клиентом в процессе внедрения. Люди, на мой взгляд, разумны. И если им объяснить, что 80% того, что они хотят видеть в системе, легко сделать, за оставшиеся 15% из 20 нужно будет «заплатить» дополнительным вводом информации, увеличивающей нагрузку на пользователя, в полтора раза, а ради оставшихся 5% он должен будет делать сложную процедуру, в 6 раз увеличивающую трудоёмкость всех операций, а не только этих экзотических 5%, то разумный руководитель не станет настаивать на этих самых последних 5% и мы найдём какой-то вариант, как получить необходимое другим путём или он просто решит, что это того не стоит.
Что я наблюдаю у клиента, в проект по переходу на новую версию у которого я сейчас вовлечён? Сумасшедшую процедуру, заполнения кучи данных, какие-то UDDB таблицы, кучу каких-то snap search’ей, которые надо запускать, чтобы скопировать данные в эти таблицы, кучу различных выходных каналов для печати, на которые нужно печатать разные виды заказов (каждый вид на свой выходной канал). Имеется толстенная инструкция, попытавшись прочесть которую, я, консультант, ничего не понял, в ней нет чёткого пошагового описания типа «делай раз, делай два, делай три», а вместо этого какие-то сложные диаграммы. Да, процедура работает. Но для меня она не работает. Для меня процедура, где, например, нужно в текстовые строки заказа ввести вручную номер и себестоимость партии (а где я должен это взять?), какие-то ещё сведения, всё «вручную» и не ошибиться, а потом запустить какой-то «быстрый поиск» — это не процедура. В лучшем случае — это ненадёжная и антигуманная процедура. Я, конечно, понимаю, что «любые капризы за ваши деньги», но это не про меня, по крайней мере. Если что-то нужно сделать обязательно, то это должно быть менее обременительным и более прозрачным для пользователя. Я не приемлю этот «программистский» подход, когда программист сам никогда не был пользователем и решает за него, как удобнее. Таких примеров в нашей повседневной жизни огромное количество, начиная от терминала пополнения транспортных карт в метро и заканчивая новым дизайном facebook.
Берегите себя.