dastapov: (Default)
[personal profile] dastapov
Дискуссии про то, что можно, а что нельзя сделать определенным техническими средствами очень часто скатываются в унылый срач, в котором стороны по кругу повторяют одно и то же из-за того, что:
1)Технические проблемы обсуждаются на уровне самой простой возможной реализации
2)Фичи и возможности обсуждаются на уровне навороченного сервиса или коммерческого продукта
3)Разрыв в сложности и требованиях к качеству между (1) и (2) одной из сторон напрочь игнорируются.

Чем меньше человек шарит в обсуждаемом, тем больший разрыв между (1) и (2) у него получается, и тем охотнее он его игнорирует.

Что я имею в виду? Перефразируя "Мистический человеко-месяц" Брукса (см. напрмер раздел Tar pit вот тут), разные уровни сложности технического решения можно описать вот так:

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

(это одна из возможных классификаций, не претендующая на роль единственной истинной)

Время и усилия, необходимые на внедрение каждого следующего уровня, многократно возрастают. Чтобы сделать что-то быстро на колене, может уйти N (часов, дней, ...). На то, чтобы сделать этот успех повторяемым, понадобится в 3-10 раз больше времени и сил. На программный сервис - еще больше. На продукт - на порядки больше.

Этот грустный аспект всегда учитывается при рассчете потенциальной отдачи - стоит ли тратить столько-то времени и сил? Какого качества результат мы получим? Оправдывает ли выхлоп усилия? Какой угодно (точнее - best-effort) результат может быть приемлимым или оправданным при однократной деятельности, но если мы ставим что-то на поток - то best effort уже явно недостаточен, более того - он может быть вреден. Типичный пример - изымание жидкостей на входе в самолет, повсеместно практикуемое сейчас.

Попробую проиллюстрировать сказанное на примере из предыдущего поста.

Задача


Оповестить тех, кто находится в зоне (предполагаемого) стихийного бедствия используя возможности мобильной связи.

"Накодили"


Пришла беда, а никакой системы оповещения нет. Допустим, кто-то деятельный из МЧС связывается с оператором и просит помочь. Оператору не пофиг, и происходит что-то такое:
* Кто-то решает: "давайте разошлем СМС!" (для обсуждения именно СМС как средства оповещения есть другой пост).
* Радиопланирование берет зону на карте и выдает базовые, которые ее покрывают
* Эксплуатация базовой сети берет базовые и выдает TMSI/MSISDN тех, кто там делал location update
* Кто-то дает текст SMS
* Эксплуатация сервисных платформ осуществляет рассылку SMS

При этом самым главным элементом процесса будет какой-то технически подкованный сотрудник, который при помощи sed, grep, sql и такой-то матери "заинтегрирует" все этапы процесса: например, возьмет XML, который умеет экспортировать система радиопланеров и выберет оттуда идентификаторы базовых в виде, понятном эксплуатации базовой сети. Возьмет список MSISDN и отделит абонентов других "домашних сетей" (но оставит роумеров). Набросает скрипт, сующий SMS-ы в SMS-центр. Побъет список рассылки на куски, если надо. Посидит рядом, пока он расыслается, устраняя возникающие проблемы.

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

Весь процесс идет в режиме best effort - если получилось, то хорошо; если не получилось - ну, по крайней мере мы старались. При наличии умных инициативных людей на местах реально все сделать за 3-6 часов (большая часть времени уйдет на ожидание и синхронизацию участников). Но вполне реально, что может не повезти - где-то новичок чего-то не знает, где-то кто-то в отгуле и т.п.

"Сделали процедуру"


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

Технические сложности по-прежнему сглаживаются тем, что в процессе непосредственно участвуют узкие специалисты. Появляется ряд организацонных сложностей, они кодифицируются (преврщаются в процедуры и проч.).

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

Чтобы создать и отладить этот процесс, потребуется, допустим, 2-6 месяцев (не в последнюю очередь потому, что все участники процесса на стороне оператора уже имеют 100500 разных дел, которые им надо делать каждый день).

"Сделали сервис"


После пары факапов или чтобы разгрузить людей Оператор создает или покупает систему, у которой есть API, позволяющее делать такие рассылки сравнительно небольшими усилиями. Одному-двум сотрудникам поручена ее эскплуатация. Система умеет фильтровать большинство типичных ошибок (кривые номера телефонов, сбои при доставке, ...) и ведет себя пристойно с точки зрения потребления разных ограниченных ресурсов (нагрузка на SMS, HLR/VLR, ...).

Чтобы сделать спецификацию на такую систему, разработать или купить и интегрировать ее, потребуется, допустим, 6-12 месяцев (в первую очередь потому, что все участники процесса на стороне оператора уже имеют 100500 разных дел, которые им надо делать каждый день).

"Продукт"


Сотрудник МЧС может выделить мышкой область на карте, ввести текст СМС, после чего произойдет рассылка, а он в реальном времени будет видеть ее ход.

Для этого государство в лице МЧС выбирает поставщика (не надо смеяться :), который говорит "СМС-ы?! Да вы все упоролись!" и выкатывает спеку на, допустим, сервис на основе cell broadcast + специфического sim toolkit. Потом поставщик интегрируется с операторами, операторы потихоньку меняют абонентам сим-карты (или через OTA обновляют toolkit), и сервис запускается. Если есть в принципе доступна - сервис будет работать и информировать всех, у кого включен телефон (т.е. качество будет максимально возможным для данной технологии).

Чтобы все это интегрировать и внедрить нужно 6-24 месяцев.

Какие можно из этого сделать выводы?

Рассуждения вида "ну, можно было бы все равно разослать СМС-ы - даже если бы 10% дошло, все равно было бы хорошо" - это best effort, и это справедливо только в случае "пришла беда, откуда не ждали, и мы делаем все возможное и невозможное, чтобы спасти ситуацию". Если же риск или потребность прогнизируемы (а система оповещения, очевидно, необходима), если это не одноразовая работа (а система оповещения, очевидно, не одноразова), то best effort никуда не годится (тем более что есть гораздо более надежные или простые или дешевые альтернативы: cell broadcast, машины с матюгальником, радиоточки, ...).

Да, СМС может быть вспомогательным средством (наряду с фейсбуком, твиттером и прочими слабо подходящими средствами) в какой-то 10 или 15 версии сервиса, но при отсутствии альтернатвных надежных методов слова "оповещение населения" и "СМС" не должны стоять в одном предложении. Усилия надо тратить на что-то реально полезное, а не на фигню.

Just saying.

Re: just for fun

Date: 2012-07-14 07:33 pm (UTC)
From: [identity profile] kzayko.livejournal.com
Хорошо, исправлюсь. Я имею ввиду, что среднестатистический радиопланер скорее поймет "выгрузить в Ексель" :). А там, ввиду проприетарности формата екселя, скорее всего и будет что-то типа CSV.
Но бывает разное. Мы так SQL-ем лазили в базу к планерам.

Re: just for fun

Date: 2012-07-15 10:10 am (UTC)
From: [identity profile] ghrar.livejournal.com
да я ж без упрёка). да, выгрузка в xls потребует лицензии от микрософта, да и ограничение в 65535 строк тоже не радует, т.к. объектов у национального оператора будет значительно больше. мне попадался крымский файл, там больше тысячи объектов, примерно по три сектора на объект и был он в plain text, с запятой в качестве разделителя, т.е. не совсем csv. так что я с той системы до сих пор в недоумении. а мтс, судя по пресс-релизам, вообще каждый раз заказывает услуги по планированию сети у сторонних организаций. то у турок каких-то, в 2003м - звонить было невозможно, не то что разговаривать. то потом с мотороллой - amr внедряли, разборчивость ухудшали. теперь вот в крыму с хуавеем свистопляска, Борунов регулярно по радио выступает и проходится на эту тему.

Re: just for fun

Date: 2012-07-15 10:41 am (UTC)
From: [identity profile] kzayko.livejournal.com
Нее-не. Система планирования там много лет не менялась. К замене железа она особого отношения не имеет. А что за свистопляска? Неужели сильно заметно?
Ну поменяли железо, так по идее, лучше стать должно... По сравнению с тем, что там было раньше...

Re: just for fun

Date: 2012-07-15 12:07 pm (UTC)
From: [identity profile] ghrar.livejournal.com
как сказать. если раньше при перегрузках регулярно звучало "напрямок перевантажено", то теперь я такого не слышу. но дозвон при перегрузках с третьей-четвёртой попытки. т.е. даже не три свистка, а просто тишина и на десятой секунде я понимаю, что слушаю шелест lcd-экрана своего телефона). теперь я стал следить за экраном после нажатия на вызов. на экране не появляется ничего. т.е. после вызова "Телефоную ХХХХХХХХ" и всё, тишина и никто уже не звонит). речь регулярно зажёвывало.
лучше - только по идее, каждый производитель в своём железе и ПО трактует стандарт и реализует алгоритмы по-своему).

Re: just for fun

Date: 2012-07-15 01:11 pm (UTC)
From: [identity profile] kzayko.livejournal.com
Хм...
Обычно "напрямок перевантажено" слышно в случаях, когда перегрузка возникает в межсвитчевых соединениях или на стороне второго абонента.
Описанная ситуация больше похожа на то, что опять продали больше, чем технари успевают обслужить :) - и перегрузки на соте.
По поводу разницы в трактовке стандартов - да, они существуют, но такие отклонения возникают редко. Для общепринятых стандартов в GSM я встречался с таким только дважды, и то, это касалось только крайне редко возникающих сценариев типа "абонент с балансом на счету меньшим порога нотификации звонит сам себе, поднимает трубку и ничего не слышит :)". Тестированиевсе же проводится довольно тщательно и, например, 5000 различных сценариев, проверенных при приемке нового свитча - вовсе не фокус. А если новой модели - так там счет тестовых сценариев идет на десятки тысяч.
В данном случае дело скорее в том, что стандарты не говорят, какой должен быть анонсмент, а что нужно сделать, чтобы он был проигран. И, соответственно, настройка таких деталей - это, как правило, некий компромисс между дефолтными настройками оборудования и пожеланиями оператора. Сильно похоже, что просто забыли попросить поставщика "включать три свистка" а этом сценарии. Да, и какая разница, по большому счету - были они или нет, если все равно не дозвонились :). А, кстати, это еще может и моделью телефона определяться. Так, мой старый сименс МЕ45 был в этом плане нааамного информативнее htc. Вот тут на 25-й странице видно, что часть тонов - optional. И может не генерироваться :(.
http://www.3gpp.org/ftp/Specs/archive/22_series/22.001/22001-430.zip

Re: just for fun

Date: 2012-07-15 07:20 pm (UTC)
From: [identity profile] ghrar.livejournal.com
ну как бы ни один тест не способен предусмотреть всех возможных глюков). единицы проскакивают), но да босх с ними. а вот с тонами фишка в другом. раньше, на алкателе, такого количества отказов не было. сейчас в центре города перегрузки случаются в несколько раз чаще, чем раньше. я, правда, особо не парюсь, т.к. ошибки бывают у всех и важно, чтобы их своевременно и аккуратно исправляли.

Profile

dastapov: (Default)
Dmitry Astapov

May 2022

M T W T F S S
       1
2345678
9101112131415
161718 19202122
23242526272829
3031     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags