Сегодня утром я сделал открытие. Я понял, отчего звереют сотрудники мобилоремонтов.
Наткнулся на одном форуме на длинную тему, начатую в 2007 году, а оконченную аж в 2012-м. Вся она посвящена вопросу, как «без палева» (слово-то какое!) перед самым окончанием гарантийного срока испортить мобильный девайс так, чтобы на экспертизе решили, что он сломался сам, и вернули деньги.
Таких пользователей мало, но тень от них падает на всех остальных. Вы ж не только бездушные железки ломаете. Вы ж загружаете живых сотрудников СЦ экспертизами, за которые они от вас не получают ни копейки, поэтому вынуждены повышать цены для остальных. А потом страдают другие живые люди, которые не фокусничают, а вынуждены переплачивать.
Не нравится нечестность многих (не всех!) мастеров? Боритесь с ней не негативными, а позитивными методами. Каждая неисправность индивидуальна, каждый пользователь индивидуален, каждая железка индивидуальна. Чувствуете, что справитесь — направьте свои скиллы не на поломку «без палева», а на самостоятельный ремонт. Чувствуете, что не справитесь — проголосуйте рублём за того ремонтника, который не обманывает. Обманывающий сдуется сам. А то выдумали: пока одни стараются продлить срок службы устройства с установленных производителями двух-трёх лет хотя бы до десяти, что вполне реально, другие искусственно его портят. Не смешно самим-то?
Я нового ничего не сказал. Такое давно имеет место на одном форуме по ремонту холодильников. Там мастера не секретничают, а обладают невероятным чутьём. Чувствует ремонтник, что клиент справится сам — жертвует хлебом, чтобы спасти репутацию. Во всех подробностях рассказывает, где купить запчасть и как её поставить. Чувствует, что не справится — объясняет, почему лучше самому не лезть, предлагает свои услуги и получает честно заработанный хлеб. А клиенты, в свою очередь, не занимаются выкрутасами с гарантиями. Вот бы эту идиллию, да в мир мобилоремонта!
Есть фирма, названная в честь того, что погубило построенный профессионалами «Титаник», но не тронуло построенный любителем ковчег. Там есть как мастерская, так и магазин запчастей для желающих починить самостоятельно. Выбирай тот путь, который нравится! И рубрика «вопрос — ответ», где можно получить совет. И, что характерно, глыба эта уверенно плавает по рынку десятилетия два, никого не задевая, и сама не разоряется.
Термостат настраивал. Вспомнил уроки информатики в четвёртом классе. БК-0010 с Бейсиком, 16-битный процессор, 32 килобайта ПЗУ, 16 ОЗУ, 16 видеопамяти, разрешение 512×256, несколько десятков клавиш. Достаточно ресурсов, чтобы сделать имена переменных многосимвольными. Но они односимвольные.
А термостат? Внутрь не лазил, но навскидку — контроллер восьмибитный, ПЗУ килобайт восемь, ОЗУ килобайта два. Видеопамять отсутствует как класс, индикация — восемь семисегментных знакомест. Кнопок всего три. Казалось бы, надо каждый байт экономить, но нет — имена переменных четырёхсимвольные.
Что имеем в первом случае? Программистов, которые задолго до БК работали на чём-нибудь с намного более ограниченными ресурсами и, получив в распоряжение машину с бóльшими ресурсами, от привычки экономить память не отказались.
А во втором? Наоборот. В распоряжении программистов современная персоналка, которой БК по ресурсам в подмётки не годится, где экономить не надо ничего, а когда понадобилось написать прошивку для контроллера, где ресурсов меньше, чем в БК — привычка экономить сама ниоткуда не взялась.
Потому что ничего само ниоткуда не берётся. Даже привычки.
Большинство спама с рекламой летит в «Нежелательные». Можно почти не глядя очищать папку, но в последнее время спам стал обходить фильтры. И знаете как? Спамеры взяли на вооружение русскую классику XIX века!
После рекламы какого-нибудь дурацкого такси или ликвидации предприятия просто вставляют несколько произвольных абзацев из романа. Вот из сегодняшнего спама:
Толпа дворовых не высыпала на крыльцо встречать господ; показалась всего одна девочка лет двенадцати, а вслед за ней вышел из дому молодой парень, очень похожий на Петра, одетый в серую ливрейную куртку с белыми гербовыми пуговицами, слуга Павла Петровича Кирсанова. Он молча отворил.
И всё, это как бы осмысленный текст, и спам-фильтры его пропускают.
Если бы писателям сказали, что роботы будут бомбить почтовые ящики, завернув рекламу в их нетленку, они бы, верно, пришли в ужас!
Суть такова: есть заграничная контора, в которой я теперь работаю, есть отечественный клиент, которому контора продаёт своё супер-пупер-кастомизированное решение и саппорт к нему, и есть ещё одна отечественная фирма — ей клиент заказал дополнительную бизнес-логику, которую следовало интегрировать в наш софт через веб-сервисы.
В контору я пришёл сравнительно недавно, когда проект уже прошёл стадию тестов, более-менее стабильная версия была внедрена в сети, шла активная полировка и вылавливание блох. Мой ПМ страшно обрадовался программисту, свободно владеющему русским языком, и я, наивный человек, не придал этому особого значения. Ну, возникают недопонимания, с кем не бывает. Собственно, в основном именно по этому проекту я и должен был работать.
Где-то на стыке с внешней бизнес-логикой выловили целую пачку багов. Вооружился, значится, я утверждённой всевозможными аналитиками и менеджерами документацией… и вот тогда мне поплохело.
Договор на внешний модуль заключён между клиентом и фирмой. По-русски, без перевода для конторы. ТЗ написано фирмой и утверждено клиентом. Перевод не предусмотрен. Формулировки — размытей не бывает: модуль будет петь (что именно? на каком языке? как громко?), танцевать (что именно? как долго? ему музыка нужна будет?) и читать стихи (ну, вы поняли). Из всей полезной документации для интеграции — скупое описание контракта веб-сервиса.
Мой предшественник закинул этот «документ» в Гугл-транслейт, прочитал, пожал плечами и прикрутил модуль к софту самым простым способом: «получил — отправил», эксепшны в лог, вот и весь разговор.
Клиент, разумеется, завалил нас багами: тут не сходится, там не работает, это вот плохо, ваш софт говно, мы несём убытки. Стал я при поддержке ПМа теребить фирму — оказалось, нюансов в работе их модуля на пару добрых А4. «Вот это событие должно обрабатываться особым образом, вот это, хоть оно и есть, вообще нужно игнорировать, тут нужна дополнительная проверка, а вот тут — ни в коем случае не проверять, а то отвалится. Говорите, при вот этом пустом значении сервис падает через эксепшн? Ну, убедитесь, что такое не будет к нам отправляться, мы дополнительные проверки вводить не будем».
Клиент уже и не рад. Смотрит на ТЗ, а придраться-то и не к чему: технические аспекты интеграции там не оговорены, наши требования и пожелания к внешнему модулю — тоже такого нет. Фирма, ясное дело, не горит желанием вносить изменения в уже проданный продукт — нехотя исправляет только слишком явные косяки.
Но в самом глубоком и тёмном месте моя контора: решение-то работает с багами, чтобы от них наверняка избавиться, нужны изменения во внешнем модуле (либо основательная перестройка логики нашего софта, что по целому ряду причин не представляется возможным), а заставить «хитрых русских» делать то, чего они не хотят и, если совсем формально, не обязаны — заданьице то ещё.
Мораль: если вылезет ещё хоть один баг, который окажется очередной «фичей», совершенно не согласованной с интеграцией в наш софт, я пойду и набью нашему менеджеру морду. Чтобы он больше никогда, никогда не отдавал на откуп клиенту заказ и ТЗ на модуль, за работу которого нам потом придётся отвечать. Пусть даже если клиент и подрядчик могут свободно между собой договориться, а ты с ними — нет.
Когда я только ещё начинал свой неловкий путь девелопера, выдали мне небольшой проект (по сути — импорт данных из одной системы в другую) с заданием «добавить новую фичу». По-хорошему, задание нужно сделать было за два-три дня, я же умудрился по незнанию растянуть всё это дело на неделю с хвостиком. В понедельник, перепроверив всё, что только можно, закоммитил, собрал патч и со спокойной душой ушёл домой.
Утром меня ждало письмо с заголовком «Ни черта не работает». Удивляюсь: кроме меня, на сопровождении этого софта больше никто не работает, вчера всё проверял при тестировщике. Запускаю программу — реально ничего не работает! Точнее, записи по кругу импортируются, как в бесконечном цикле.
Данные источник поставлял в виде XML-сообщений, а уникальность проверялась по дате создания. Почему-то творец логики решил особо не заморачиватся с парсингом и сравнивал записи о дате создания как строки. В источнике формат
dd/MM/yyyy
, в приёмнике —
d/MM/yyyy
. А так как моя работа над всем этим пришлась аккурат под конец месяца, баг только сейчас и всплыл. Закончил бы раньше — так бы и не узнали до продакшна. Как это не выловили за два долгие года работы на продакшне — ума не приложу.
Две вещи, которые я вынес из всего этого:
я никогда не смогу учесть всего, и моё творение обязательно упадёт/зависнет в последнюю секунду 29 февраля високосного года;
данные нужно приводить к виду, с которым нужно работать.
Без общения с единомышленниками обладатель любого хобби действительно зачахнет. А будет ли это общение реальным или виртуальным, не столь важно.
Год был 1996-й. Так получилось, что я оказался единственным ретрокомпьютерщиком на весь свой район и несколько близлежащих. У меня — ZX и БК, у остальных — либо приставки, ретрокомпьютерами тогда не считавшиеся, либо разнокалиберные PC от 286-го и выше. В школе — тоже не первой свежести, но PC. Интернет и Фидонет были недоступны по причине страшной дороговизны модемов. Общаться на тему ретрокомпьютинга было абсолютно не с кем. А хотелось!
Как-то увидел телепередачу о неком клубе-центре для реабилитации шизофреников. Реабилитация была многоплановой: арт-терапия, музыкотерапия, сценическое искусство и… программирование. Увидев класс для последнего вида терапии, я обомлел: стройные ряды величественных Daewoo CPC на Z80!
Я долго кусал локти, что не успел записать координаты клуба, а передачу больше не повторяли. Ради того, чтобы в неформальной обстановке пообщаться на его занятиях по программированию с единомышленниками по ретрокомпьютингу, я был от безрыбья готов на всё. Даже прикинуться шизофреником!
Работал я эникеем около года и решил, что пора расти. Пошёл учиться в некую %academyName%, где обучают всяким IT-специальностям. В группе, ориентированной на программирование и системное администрирование, оказалось, к моему удивлению, две девушки.
Шёл второй день обучения. В ходе разговоров на всякие темы по железу одна из девушек то ли по необходимости, то ли для поддержания разговора задала вопрос.
— А как долго должна заряжаться батарея от UPS?
— Ну, смотря какая батарея.
— У меня бесперебойник неделю стоит пищит, светится индикатор «Батарея заряжается». Сначала, когда его купили, такого не было, а потом я включила в него пылесос…
Дальше все ржали.
Мой интерес взял верх, и я решил узнать подробности. Пылесос проработал около трёх секунд, «очень тихо», после чего бесперебойник умер.
Какой способ насолить конкуренту эффективнее, чем заслать казачка? Заслать дурачка.
Дурачок нечаянно натворит больше бед, чем казачок специально. Не говорите ему, для чего засылаете. Просто зашлите. Дальше он, сам того не ведая, сделает всё сам. Потом его, конечно, выгонят, но перед этим он успеет попортить конкуренту немало нервишек.
И не вздумайте заслать казачка, косящего под дурачка. Так, как у настоящего дурачка, у него не получится.
Вот такие мыли навеяла бригада установщиков, поставивших в нашем универсаме холодильную витрину вверх ногами и долго не понимавших, что они сделали не так.
Пушкин понятия не имел, из-за чего к нему в дверь постучались жандармы. До той дуэли с Дантесом было ещё далеко. С порога они сказали, что долго искали кнопку звонка, которой не было. Как пользоваться колокольчиком со шнурком, они не поняли. Пришлось вспомнить, как стучать.
— Это чтобы патент на электрический звонок не нарушать.
— Угадали, Александр Сергеевич. Мы за этим и пришли. Покажите-ка стол, за которым пишете. Стальных перьев нет? Патент не нарушаете на них?
— Ну, что вы, что вы. Только гусиные, на них нет патента.
— А вот эта лампа? Керосиновая? На неё тоже патент.
— Масляная. Можете снять абажур и убедиться сами.
— Хм. Снимается!
— Да, масляная лампа удобна. Можно разобрать. И пересобрать.
— Колокольчикомаслогусиноид, что ли?
— Так точно!
— Не знали, не знали… А скажите, когда ваши стихи и прозу под керосиновыми лампами читают, проблем с отображением у читателей не возникает?
— Каких ещё?
— Ну, буквы не прыгают?
— А, слышал про такой стереотип. Нет, не прыгают.
— Хорошо, будем знать. К вам больше претензий нет. До свидания!
Новое значение фразы «сделано на коленке» преподнесла мне новая мышка для ноутбука. Зараза оказалась очень привередлива к поверхности, но неплохо работает на тёмной ткани. То есть на штанах. Теперь у меня есть несколько презентаций, свёрстанных буквально на коленке.