Если команда делает ровно то, что от нее требуется, она деградирует.
среда, 28 марта 2012 г.
Добавленная ценность
Если команда делает ровно то, что от нее требуется, она деградирует.
четверг, 19 января 2012 г.
Запах скверной спецификации
Правило "ноль") После прочтения документа в голове ровный гул. То есть непонятно вообще ничего. И вопросов не возникает.
Теперь более конкретные запахи, которые можно сосканировать с документа, не вчитываясь в детали
1) Не определены рамки системы. Что система делает, какие требования реализует, Сколько у пользовательского интерфейса вообще экранов -- если это не понятно тебе, не будет понятно и разработчику.
2) Структура документа не соответствует структуре интерфейса. то есть - каждому логическому блоку интерфейса (странице, списку, форме) должен соответствовать отдельный раздел с описанием. Если нет -- спецификацией будет сложно пользоваться
3) Хорошо освещено очевидное. То есть "под фонарем ищем, где и так светло". Примеры
- "Нажатие на кнопку ОК закрывает окно"
- "Нажатие на кнопку Отмена отменяет операцию"
- "На форме "Список пользователей" отображен список пользователей"
- "Выпадающий список "Пользователи" должен позволять выбрать пользователя"
4) Нет описания тонкостей.
Например, для списка пользователей
- Есть ли неявные фильтры
- Какая сортировка по умолчанию
- Как выглядит список если ничего не найдено
Для форм
- Каковы правила валидации для каждого элемента
- Как выглядит форма с валидаторами
- Сохраняются ли умолчательные зрачения (и на каком уровне - cookies, профиль пользователя,
среда, 6 июля 2011 г.
Workflow вреден
Почему? Потому что не угадаете про workflow, workflow меняется со временем, у разных пользователей он разный.
Представьте, если бы скороварка требовала, чтобы вы сначала загрузили в него картошку, затем - морковь, затем-лук. А приправы разрешалось бы положить только спустя 15 минут после включения.
Продукт должен требовать от пользователя жесткого алгоритма работы только в случае, когда это требует внутренняя логика системы. Желательно, чтобы продукт позволял использовать внешний движок workflow.
В этом ключе хорошим примером можно назвать Microsoft SharePoint - продукт предоставляет функционал работы со списками и возможность прикрутить к спискам некий рабочий процесс.
воскресенье, 13 марта 2011 г.
Гипертрофированное стремление к совершенству
"... Леня, бедняга, сидит и день за днем мучительно, до
помутнения в мозгах, взвешивает на внутренних весах своих, как будет
точнее сказать: "она тронула его руку" или "она притронулась к его
руке"... И в отчаянии он звонит за советом Вале, и жестокий Валя
Демченко, не теряя ни секунды, отвечает ему знаменитым аверченковским:
"Она схватила ему за руку и неоднократно спросила, где ты девал
деньги..."
— Стругацкие, "Хромая судьба"
Последние пару месяцев веду проект по разработке с тремя очень талантливыми программистами. Иногда на архитектурных брифингах парни начинают яростно спорить о вещах, с моей точки зрения, яйца выеденного не стоящих. Например, можно ли в юнит тестах инициализировать тестовые данные при инициализации базы либо же в каждом из тестов нужно все заново удалять и пересоздавать. Или же - не стоит ли выбросить из стайл-чекера правило, запрещающее ПЕРЕМЕННЫЕ_ТИПА_ТАКИХ, чтобы можно было константы описывать по-старинке.
Стоят значит у доски четыре человека и до хрипоты спорят. Могут час-полтора так простоять, приводя друг другу всякие аргументы. Иногда меня тоже вовлекают и уже я с ужасом обнаруживаю себя, яростно чего-то доказывающего, ломающего копья. Как минимум раз в неделю такое. 16 человеко часов в месяц уходит, а за 16 человеко часов можно, в общем-то, дофига полезного сделать.
Обнаружил, что у меня в голове ползунок, стоящий между "Мега-красивый-идеальный-сверкающий-кодом" и "Кодом, прагматично реализующим требования" стоит процентах на 60
(и то, потому что мы пишем фреймворк, и API в нем - важен. В обычном же проекте, я придерживаюсь баланса где-то на 70-80 процентов, то есть ратую за код скорее прагматичный, чем красивый.
Почему? Потому что 2011 год на носу, все IDE умеют рефакторинг, за юнит-тестами мы
следим а времени на реализацию функционала, как всегда, не хватает. Поэтому тратить
4 часа в неделю на решение проблемы тысячелетия: как написать "притронулалсь" или "тронула", мне элементарно жалко. Потом переделать можно.
Постскриптум:
Есть при этом вещи, в которых я считаю дотошность при кодировании оправданной.
Навскидку,
- API сервисов (потому что язык API будет потом
сильно влиять на производительность прикладных программистов, он должен быть "в тему")
- Разделение кода на артефакты (потому что лишние зависимости порождают плохой код, а переделывать костяк системы дольше, чем нормально сделать сразу)
- Документирование нетривиальных и нечитаемых кусков кода (потому что таких кусков мало,
и всегда есть множество причин, по которым код сделан нечитаемым, и причины эти
нужно донести до людей, которым этот код в будущем придется менять)
среда, 15 декабря 2010 г.
Офис велик, офис ужасен
он всегда меня устраивал. А вот теперь, после перехода на Office 2010 в нем стал периодически зависать Word. Поскольку, в последнее время, я все больше в ворде работаю, это для меня критично
Техподдержка Microsoft уже три месяца меня мурыжит - то они воспроизвести не могут, то просят чтото деинсталлировать, то спрашивают, действительно ли у меня ворд зависает, а не падает (и это учитывая, что я добрался уже до разработчиков, отправил им все дампы и стек-трейсы)
У меня теперь есть три выбора
- Страдать и мучаться, восстанавливая документы по после принудительного рестарта Ворда
- Сделать downgrade оффиса до 2007
- Перейти на что-нибудь еще. (скорее всего, с префиксом "ай")
И вот как не странно, я совершенно не хочу делать downgrade. Остальной офис меня мегарадует, особенно Outlook. Поэтому откатываться на предыдущий - не хочется вообще.
Я уж скорее перейду на что-то радикально новое, с каким нибудь префиксом (хотя и не факт, что оно лучше будет)
Такой вот интересный психологический феномен.
А, мораль. Так вот, мораль. При разработке если обновление у пользователя глючит, пользоваться предыдущей версией пользователь может и не согласиться. Скорее - помучается-помучается, да и пойдет себе дальше, когда терпение лопнет.
суббота, 9 октября 2010 г.
Глубокое внимание, мелкое внимание, скверное внимание
"Глубокое внимание"
Самый лучший для дела вариант. Человек воспринимает задачу в контексте всей работы, понимая причины, по которым ставится задача,
кто как и когда будет использовать результаты работ и множество других факторов.
На примере проектного менеджера:
Получив от заказчика письмо с просьбой немедленно доработать систему, менеджер разбирается, зачем потребовалась доработка,
можно ли понизить ее приоритет, предложит для этого workaround, и вместе с доработкой запланирует сессию обучения для заказчика.
Человек работает в режиме глубокого внимания, если:
* Он умен и опытен
* Он болеет за результат всей задачи в целом
* У него достаточно времени
* Нет серъезных стрессов
"Мелкое внимание"
Реактивная модель поведения. Приходит событие - и человек с ним разбирается, особенно не вдаваясь во всю задачу в целом.
Работа в режиме мелкого внимания страшно экономит врмея (по сравнению с "умным вниманием") но дает абсолютно минимальный результат.
На примере проектного менеджера:
Получив от заказчика письмо с просьбой немедленно доработать систему, менеджер пересылает письмо руководителю разработчиков с
просьбой доработать систему, дожидается ответного письма что система доработана и пересылает письмо заказчику.
После этого забывает о задаче до следующего напоминания.
Человек может работать в режиме мелкого внимания, если:
* Он не заинтересован в результате деятельности
* Он слишком перегружен другими задачами
* Он попросту некомпетентный осел
"Скверное внимание"
Шизоидная модель поведения, похожая на глубокое внимание, но характерная тем, что контекст задачи неверно интерпретируется, в результате
чего фокусировке и детальной проработке подвергаются задачи, минимально важные для проекта. В результате действительно важные задачи не
делаются, а все участники проекта пребывают в "легком недоумении" - вроде лихорадочная активность имеется, а результат - никакой.
На примере проектного менеджера:
Получив от заказчика письмо с просьбой немедленно доработать систему, менеджер немедленно созывает встречу из представителей разработки,
тестирования, проектного офиса и поднимает вопрос реорганизации процессов и оформления проектной документации согласно корпоративному стандарту.
Человек может работать в режиме скверного внимания, если:
* Он заинтересован в срыве проекта или его части
* У него приоритеты, отличные от других членов команды
* Он деятельный некомпетентный осел
четверг, 30 сентября 2010 г.
Бизнес-приложения меняют хозяев
- Каждый следующий ответственный за процесс сотрудник видит процесс чуть более по другому, чем предыдущий
- Многие, особенно неочевидные, доработки, которые предложил прошлый "хозяин", новому кажутся, мм... странными
- Систему требуется адаптировать к видению нового хозяина
- Спецификации естесственно никто не читает, поэтому информацию о том, почему так или не иначе, новый хозяин системы получает от разработчиков
Как результат
- в системе нужно бывает реализовать довольно странные "хотелки", слабо связанные с изначальной концепцией
- меняется назначение основных полей и многие отчеты приходится адаптировать к этому новому видению. Вообще семантика системы меняется
- в системе то появляются, то исчезают одни и те же поля
Не вижу, как этого избежать.
понедельник, 19 апреля 2010 г.
Эмоциональная сторона командной работы
Попробую описать, какие моменты особенно приятны, а какие, наоборот, портят настроение и заставляют пить больше кофе.
Итак,
Приятно работать с командой, когда,
* Человек, с которым ты решаешь задачу, старается смотреть на нее чуть шире, чем должен по своим обязанностям (но при этом не расползаясь "мыслью по древу")
* Когда команда состоит из нескольких человек, каждый из которых старается оптимизировать общее решение со своей точки зрения. Идеально, когда представители бизнеса, производства, качества работают вместе, декларируют свои приоритеты, затем приоритеты совместно рассматриваются и устаканиваются
* Команда и отдельные игроки настроены себя улучшать и критически смотрят на все решения которые они принимали и принимают.
* Человек критически смотрит на предложенное тобой решение и помогает тебе решение оптимизировать
* В незнакомой ситуации человек сам понимает, чего он не понимает и исследует "затемненные" стороны проблемы
* После того, как решение принято, вся команда переключается из режима "выбрать путь решения" в режим "всячески поддерживать выбранный путь решения". Это очень важно.
* Все это делается с юмором и взаимным уважением
А вот раздражает, когда,
* В процессе решения задачи теряется фокус на собственно поставленные цели. Когда начинается, простите мой французский, "абстрактный пиздеж"
* Излишняя формалистика или попытки вести итальянскую забастовку.
* Пытаются перейти на личности, в сложных случаях сваливаются с решения проблемы на поиск крайнего
* Микросопротивление, т.е. на словах согласиться с линией действий, но при первой возможности выбрать решение, которое двигает проект "не туда". Если решений много, а каждое из них - минимально по воздействиям, то перекос будет чувствоваться не сразу и есть шанс его проворонить
* Игра в "я очень занятой, мне некогда вникать в детали". Особенно раздражает, когда я сам начинаю в нее играть :-)
Потом может еще что напишу.
понедельник, 14 декабря 2009 г.
UI: дружественная отработка неправильной раскладки клавиатуры
Чего хотелось бы от UI будущего – чтобы ситуация “пользователь забыл переключить раскладку” отрабатывалась бы как-нибудь дружественно.
То есть если у пользователя установлены английская и русская раскладки, и пользователь в поле поиска набрал “gbdj”, то система искала бы и “gbdj”, и “пиво”. В идеале, конечно, хотелось бы отработки и ошибок скорописи – перепутанных бкув, опеяаток, связанных с близкорасположенными клавишами и другого. Но хотя бы – отработка ситуации неверной раскладки.
Где нужно поддерживать:
* Всевозможные формы поиска
* Горячие клавиши, shortcut-ы
* Auto complete списки
суббота, 21 ноября 2009 г.
Про дизайн команды SQL WHERE
“DileSoft: У команды UPDATE есть одна серьезная дизайнерская ошибка. Если скомандовать UPDATE table SET field=value, изменятся все строки в таблице table. Чтобы изменились не все, следует добавить WHERE. Это провоцирует серьезные проблемы, когда, забыв о WHERE, можно порушить огромное количество данных.Мне очевидно, что комада WHERE спроектирована плохо, потому что синтаксис команды не защищает пользователя от ошибки (дает zero fool proof). Понятно, что “исторически сложилось”, “уже не поменять” и т.п. Я сейчас о другом.
urandom: У дверей есть серьезная дизайнерская ошибка. Если прищемить яйца дверью, то яйца отвалятся.”
Представьте, что было бы, если бы в интернет магазине вы забыли бы положить товар к корзину и оформили бы заказ, а вам в результате прислали бы все товары из магазина (и соответствующий счет).
С одной стороны, мы можем написать в help-е сайта, о том, что отсутствие товаров в корзине подразумевает выбор всех товаров, но с точки зрения нормального человека это нонсенс. И сколько было человеко-часов потрачено на исправления ошибок с пустым where – могу себе представить.
Думаю, что гораздо разумнее было бы задизайнить WHERE clause следующим образом:
1) Пустое WHERE возвращает пустор набор элементов;
2) WHERE с фильром ограничивает возвращаемые данные этим фильтром;
3) Специальное сочетание “WHERE ALL” возвращает весь набор элементов без фильтра.
В этом случае семантика клаузы WHERE была бы максимально приближена к естесственным языкам (что кстати и было одной из целей дизайнеров SQL).
А теперь про “яйца отвалятся”
Оппонент DileSoft-а показывает нам пример обычного, обывательского подхода: “Некто говорит нам что вещь, привычная и принятая в нашем обществе – неправильна –> Стебать этого самого некто”. Классическая травля несогласных в мини-масштабе.
Налицо позиция “то, что принято, оптимум есть”. А это ведь не так (почти всегда). И изменяют мир к лучшему как раз такие, как DileSoft, которые способны заметить и понять, что это не так.
Типа послесловия
Буквально неделю назад мы словили очень похожий баг в нашем продукте – API было спроектировано так, что некая бизнес операция применялась для всех клиентов в случае, когда не был указан фильтр.
В результате, из-за редкой ошибки в коде формирования фильтра (закончилось место на диске) он не был сформирован и вся наша команда получила незабываемые выходные, проведенные под знаком “руками все исправить быстро срочно”.
А вы говорите, WHERE…
понедельник, 16 ноября 2009 г.
Обзор: Телефон HTC Hero с интерфейсом Touch Sense или "Android, превед!"
Как некоторые уже знают, я после того как потерял свой iPhone на склонах Чегета, где-то с год не мог выбрать себе нового телефона, в результате чего пользовался Старой Нокией (tm), совершенно неубиваемой и удобной.
После iPhone ты уже не можешь купить обычный телефон – ту же нокию или sony ericsson – берешь телефонку в руки, крутишь, вертишь, нажимаешь какие-то кнопки, а потом плюешь и уходишь из магазина – ну нафиг такое счастье. Все как-то не так.
пятница, 9 октября 2009 г.
Идеальный менеджер пакетов для .Net
Преамбула
.Net разработка исторически была не очень “опен сорсовой”, то есть базировалась на проприетарных библиотеках.Microsoft делает некоторые подвижки в этом направлении – открыл исходники .Net Framework, хостит opensource проекты на CodePlex, но до совершенства еще далеко – например, в VS нет удобного способа при отладке, к примеру, NHibernate, просматривать исходный код этой бибилиотеки.
При этом OpenSource проектов для .Net просто завались – например NHibernate, Spring.Net, майкрософтовские Pattern&Practices Building Blocks etc.
Есть еще и The Mono Project, который мало того, что сам opensource, так еще и порождает множество проектов с открытым исходным кодом.
Зачем?
Если я подключаю внешнюю библиотеку (тот же NHibernate) то мне нужно руками следить за всеми зависимостями, котоые она тянет за собой, следить за их версиями, следить за конфликтом версий и тп.Вместе с тем в Java мире это уже все давно пройденный этап – есть Maven, который поддерживается всеми основными IDE, есть Bulildr, есть opensource репозитории, которые подцепляются без проблем. Есть Ivy the package manager в конце концов.
В Java если ты хочешь разработать проект с использованием например Hibernate или Spring Framework, ты пишешь .pom файл из пяти строчек) – и тот же Maven скачивает тебе нужные версии всех нужных библиотек, со всеми их зависимостями, со всеми документациями и пр.
Что же делать?
Ну, есть NMaven (который суть плагин для Maven), есть Byldan, есть предложенный в Хабровской статье менеджер, но как-то оно все не складывается в единую картину.Я вижу, что идеальный менеджер пакетов должен быть:
- Клоном хорошо зарекомендовавшей себя Java-вской библиотеки (например, того же Maven);
- Совместимым с Visual Studio (т.е иметь плагин, аналогичный Maven integration например в IntelliJ IDEA);
- Использоваться как в .Net так и в Mono – технологии практически идентичные, надо дружить;
- Иметь репозиторий проектов, куда любой уважаемый разработчик сможет залить свой проект для публичного доступа. CodeHaus и Sonatype Nexus – идеалы для подражания.
Вообщем, тема для размышлений богатейшая.
PS - Вот обсуждение на Хабре (комментарии тоже интересные)
http://habrahabr.ru/blogs/net/68453/
PS2 - Сравнение подходов Java/.Net на RSDN - http://rsdn.ru/forum/flame.comp/3275597.aspx
PS3 - посмотреть NPanday
PS4 - обсужение на stack overflow
вторник, 6 октября 2009 г.
Рабочее место Юры Скалецкого
Наконец собрался рассказать о том, как устроено мое рабочее место. Относительно недавно – с полгода назад – я, как мне сейчас кажется, пришел наконец к идеалу.
Я настроил мое рабочее место так, что мне все в нем нравится.
Самое главное, чего мне удалось достичь – я теперь могу быстро выполнять рутинные задачи. Я быстро могу запустить нужную мне программу, быстро открыть плейер, быстро включить или выключить музыку, изменить громкость звука, залезть на какой-нибудь сайт. Больше компьютер в повседневных задачах меня не тормозит.
При выборе часто используемых программах я отказался от мегакрасивости и суперуниверсальности в сторону минимального размера в памяти и быстрого старта. Это сильно улучшило мое настроение.
Ноутбук
Все мое рабочее место умещается в одном Lenovo ThinkPad T-61. До этого я жил на ASUS-ах, но после перехода на IBM/Lenovo я понял, что ASUS ноутбуки делать не умеет. А IBM вот умел и Lenovo не разучилась еще, к счастью.Самое прекрасно в Lenovo – правильный предустановленный софт. В нем практически все правильно:
понедельник, 28 сентября 2009 г.
Дело о тормозящем Internet Explorer 8
Две основных претензии:
* Крайне медленно запускается. Хром в этом смысле потрясающе продуман - он запускается очень быстро. Я запускаю браузер сотни раз на дню (не мой стиль держать открытыми множество закладок, да и оперативки у меня впритык). Браузер, который запускается за 2-3 секунды явно доставляет мне больше радости, чем суперуниверсальные мегатормоза.
* Невозможно пользоваться функцией view source. Просмотровщик HTML на сложных страницах открывается больше минуты. Чем, вы думаете он занимается? Он раскрашивает теги...
воскресенье, 9 августа 2009 г.
Идеальный package manager - 2
Есть несколько библиотек, предоставляющих Ruby-style migrations, но это не совсем то, что мне нужно. Ближе всего к ожиданиям из готового сейчас RedGate SQLPackager, но он во-первых платный, во-вторых хочется поддержки именно жизненного цикла в духе AutoPatch.
По опыту, идеальный процесс должен выглядеть так
- программисты работают с локальной или dev базой напрямую
- перед началом тестирования при помощи инструмента типа SQLCompare строится дифференциальный sql скрипт между дев-базой и stage. При этом скрипт должен быть в "родном" для БД формате, чтобы не упереться случайно в недостатки фреймворка
- этот скрипт фиксируется в репозитории и затем на основе всех скриптов обновления строится пакет для обновления БД
- этот пакет разворачивается на требуемой базе, причем package manager должен предоставлять либо режим с ручным контролем (для боевой базы, чтобы не страшно было), либо автоматический режим (для всевозможного continious integration
Ссылки по теме
понедельник, 13 апреля 2009 г.
Есть ли жизнь просле спецификации?
- Назначать менеджером со своей стороны гибкого человека, который абсолютно "в теме" бизнес контекста, желательно с минимальными техническими скиллами (как вариант -- хорошо работает связка "бизнес-спец"+"спец от ИТ").
- Быть готовым к длительной фазе приемки. Быть готовым за нее платить :-).
- Запланировать пилотную эксплуатацию систему на живых пользователях.
- По возможности, не привязывать к первой версии системы критичных дедлайнов.
- Заложить в бюджет проекта достаточное количество времени и денег на доработку системы после старта приемочного тестирования.
- Не надеяться, что после того как спецификация будет написана, она не изменится.
- Не пытаться сделать абсолютно всеобъемлющую спецификацию чисто аналитически -- все равно только после того, как заказчик посмотрит на готовую систему, он поймет, чего на самом деле хотел.
- Проектировать систему так, чтобы было легко вносить очевидные бизнес - изменения (добавить поле, добавить/удалить/изменить валидатор, поправить алгоритм постройки отчета, поправить права на функциональность и т п).
воскресенье, 1 февраля 2009 г.
Идеальная грамматическая библиотека
Может быть, тогда никто не писал бы приложений, говорящих на отвратительном русском языке, потому что не пришлось бы писать некрасивых if-ов
Попробую набросать здесь требования к такой библиотеке.
1. Работа с числительными
1.1 Подстановка правильных склонений для числительных (У вас 1 новое сообщение, 5 новых сообщений, 16 сообщений)
2. Работа с временем
2.1 Подстановка правильных склонений для времени (Выходим через 22 минуты, через 30 минут, до завершения работы осталось 33 минуты 21 секунда)
2.2 Подстановка общеупотребительных значений для интервалов времени: (Событие произошло вчера, произошло неделю назад. Следующее событие через 2 дня)
3. Поддержка сообщества
3.1 Открытый исходный код
3.2 Стандарты на API
3.3 Версии для основных языков программирования
Что еще
Знаю, что подобные замуты были с библиотекой gettext, но не уверен, что этого достаточно.
суббота, 10 января 2009 г.
Что такое Enterprise Feedback Management Systems
Расскажу сегодня про направление, которое меня вдохновляет не первый год и к которому я имею непосредственное отношение. Это будет рассказ про системы управления обратной связью. И про их применение в различных бизнесах.
Вот, допустим, есть бизнес. Бизнес производит некоторый продукт – товар или, например, услуги. Ну и естественно, cуществует потребитель у этого продукта – ведь он, бизнес, этим живет.
Ну например. Вот компания, которая шьет одежду для молодежи. Кепки-футболки-свитера-галстуки с вышитыми смайликами. Народ покупает, носит, вроде бы доволен. Отдел маркетинга изучает рынок, смотрит, планирует модельный ряд. Рекламщики рекламируют продукцию. Производство производит одежду, старается делать ее удобной и качественной. Сейлзы ищут партнеров для продажи и магазины для реализации. Молодежь читает рекламу, заходит в магазин, видит прикольную одежду, покупает ее и носит.
В этой, типичной, картине мы наблюдаем что-то типа водопада:

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

В реальности, все даже еще интереснее. Корректировка управленческих решений происходит на разных уровнях и в нескольких направлениях: отдел маркетинга изучает результаты опросов и видит, какие модели одежды клиентам особенно нравятся и что клиенты хотят носить в следующем году. Производители понимают, удовлетворены ли клиенты качеством продукции. Продавцы знают, довольны ли клиенты тем, как их обслужили в магазине. Бизнес видит картину в целом, анализируя связь ключевых показателей удовлетворенности связь с другими важными производственными показателями. Практически каждый участник производства может получить пользу от налаженной с системы обратной связи.
Под капотом EFM
На что похожи системы EFM (Enterprise Feedback Management)? Представьте себе аналитика крупной компании, который хочет узнать мнение своих клиентов и донести его до руководства. В распоряжении аналитика всевозможные инструменты – база клиентов в CRM, аналитические калькуляторы, средства построения отчетов, другие информационные системы предприятия.
Наш аналитик мог бы, например, сделать выборки пользователей из клиентской базы CRM, отправить пользователям e-mail с просьбой рассказать том, что они думают о недавней покупке, обработать полученные отклики, а затем собрать владельцев бизнеса и линейных руководителей и презентовать им результаты исследования.
Собственно все это и должна делать EFM система. Система должна:
· Помогать отстраивать процесс общения с клиентом, акцентируясь на сбор и анализ мнения клиента.
· Доносить результаты обратной связи до заинтересованных лиц в компании
· Повышать удовлетворенность клиента – как за счет быстрого решения его проблем, так и за счет того, что клиент чувствует, что к его мнению прислушиваются.
Кроме того, EFM система должна работать максимально автономно, для этого система должна быть интегрирована в информационное пространство компании, в первую очередь с теми системами, в которых содержится информация о клиентах и их действиях.
Система должна предоставлять в удобном виде собранные данные, как для аналитиков компании (в виде многомерных OLAP кубов), так и для руководства (в виде сводных отчетов).
И самое главное – такая система должна быть встроена в процесс принятия решений в компании, то есть собранная информация должна быть востребована на разных уровнях управляющей структуры предприятия.
Ниже я постараюсь раскрыть некоторые ключевые особенности построения и внедрения EFM.
Сбор откликов от клиента
Нужно определить, какого рода данные мы хотим от клиента получить. Как правило, архитектор EFM системы должен общаться с руководителями отделов компании и представителями бизнеса, чтобы определить, сбор какого рода информации от клиента будет особенно полезен.
Существует множество стандартных методик построения опросов, например опросы Net Promoter Score или Customer Satisfaction. Какую схему выбрать, становится ясно после детального анализа проекта.
Workflow
То, как именно построен процесс общения с клиентом, очень важно. Архитекторы EFM системы изучают, как выглядит процесс продажи и встраивают в этот процесс получение обратной связи. Важно, чтобы покупателю было комфортно предоставить требуемый отклик и чтобы он в этот момент был готов предоставить запрашиваемую информацию. Например, если нас интересует качество одежды, которую мы продали клиенту, клиент должен какое-то время в ней походить, понять, нравится она ему или нет.
Хороший процесс взаимодействия с клиентом, скорее всего, не закончится просьбой рассказать о покупке. Если клиент недоволен, то нужно предпринять какие-то шаги, чтобы он стал бы доволен (а заинтересованным лицам отправить, например, тревожный e-mail). Кроме этого можно к примеру, передать такого клиента отделу урегулирования претензий. Если клиент доволен, можно ему предложить попробовать новинки сезона или другую продукцию, которая его может заинтересовать. В-общем, для архитектора EFM системы здесь огромный простор для творчества
Интеграция
EFM системы не были бы столь полезны, если бы не были интегрированы с другими системами предприятия. Для страховой компании, например, инициация опроса может происходить по факту заключения с клиентом договора на обслуживание (эту информацию можно выгрузить в EFM систему из базы данных договоров). Результаты работы EFM системы также могут «уходить» обратно в информационное пространство предприятия, например для недовольных клиентов автоматически будут заводиться запросы в системе урегулирования жалоб.
Правильно сынтегрированная EFM система может вообще не требовать ручного вмешательства – все необходимые действия будут инициироваться событиями из других систем и результаты работы также будут подстыкованы к бизнес-процессам, которые обслуживаются существующей ИТ инфраструктурой. При этом, затраты на интегрирование для качественной EFM программы обычно невелики, поскольку не требуют сколь либо серъезных доработок уже существующих систем, как правило можно обойтись просто передачей текстовых или excel файлов по FTP или общие сетевые папки.
Отчеты
Отчеты это сердце EFM системы. В систему отчетности сливается результаты опросов, которые доставляются заинтересованным лицам в форме, лучше всего подходящей для принятия решений.
Например, для бизнеса это могут быть диаграммы ключевых показателей, из которых видно, какие конкретно факторы влияют на общую картину удовлетворенности клиента и в какую сторону.
Для производства это могут быть таблицы, которые показывают удовлетворенность клиентов каждым конкретным товаром, в разрезе например, социально-демографических данных клиента. Мы можем узнать, сколько мужчин (женщин, пожилых людей) удовлетворены продукцией и наши клиенты имеют сказать по этому поводу. Тогда можно, в буквальном смысле, учитывать голос каждого конкретного клиента
Принятие решений
EFM система сама по себе не имеет смысла, если необходимость такой системы не осознана руководством компании на самых разных уровнях ответственности. Кроме того, часто от руководства требуется изрядная смелость, чтобы узнать, что на самом деле думают клиенты J. Здесь могут крыться изрядно сюрпризов, и не всегда самых приятных. Зато компания, которая умело воспользуется полученной информацией, получает в руки сильнейший козырь – она совершенно точно знает, что нужно клиентам, где стоит усилить бдительность а что, наоборот, не очень важно. Информирован – значит, вооружен.
Ссылки по теме
- http://en.wikipedia.org/wiki/Enterprise_Feedback_Management - Определение EFM
- http://en.wikipedia.org/wiki/Customer_satisfaction - Что такое системы CustomerSAT
- http://www.clientrix.ru - Клиентрикс: EFM платформа, разработанная RapidSoft
воскресенье, 4 января 2009 г.
1 апрель - никому не верь Ж)
четверг, 28 августа 2008 г.
Пишите usage для ваших веб-страниц
///
/// usage:
EditDistributionEmail.aspx?iid=INSTANCE_ID[&back=ENCODED_BACK_URL]
///
public partial class EditDistributionEmail :
System.Web.UI.Page
{
...
С точки зрения программиста, веб-страница ничем не отличается от статической функции - принимает некоторый набор параметров (HTTP Request) и возвращает некоторые значения (HTTP Response).
А следовательно, и документировать ее надо как функциою - описывать параметры и return value (последнее для фанатов, конечно :). Хотя, если страница может менять какие-то глобальные cookies, это желательно в документации тоже указать.
