bash.im ithappens.me zadolba.li
11468

Грустная вавилонская башня

3 октября 2013, 07:15

Много тут историй появилось про то, что софт неудобный. Некоторые пытаются привести аргументы, почему так вышло. Только это всё следствия. Как давно было сказано, рыба гниёт с головы. А в терминах разработки софта голова — это проджект-лид и архитектор. Только вот всё больше так называемых архитекторов, видимо, обучают на факультете «Возведение конструкций любой этажности из говна и веток». Многие не знают архитектуру проекта в целом. Большинство не знает и архитектуру отдельных блоков проекта. Это, по мнению многих «специалистов», waste.

Проджект-лиды озабочены выполнением процессов, скопированных у тех, кому методология помогла, зачастую без учёта собственной специфики и существующих процессов. Получасовые скрам-митинги из 15 человек, где каждый в красках описывает, как он ковырял в носу или выбирал себе цацки на Amazon. Проджект-лиды, заинтересованные только в том, чтобы таски в Jira были закрыты вовремя, без учёта качества работы. Что бы тест-кейсы были «зелёными» без учёта качества этих самых тестов. Юнит-тесты, состоящие из одной строчки «ОК».

Любые попытки рефакторинга существующего архитектурного шедевра из упомянутых материалов воспринимаются в штыки. Ведь в это было вложено N человеко-дней, и оно пока работает. Разработка любого более-менее комплексного решения сложна не сама по себе, а из-за навязанных процессов, которые мало кто понимает, но все обязаны соблюдать. Согласования, пересогласования, уточнения, переуточнения… Количество времени, которое расходуется на следование новомодным технологиям, зачастую многократно превышает время на разработку архитектуры или модификации и кодирования.

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

Непрофессионалы — на всех уровнях этой грустной вавилонской башни. Дизайнеры интерфейсов либо не читали гайдлайны никогда, либо их знания поросли мхом и сожраны мозговыми слизнями. Видеть GUI, целиком состоящий из bad practices, — норма. Зато работа выполнена в срок. Код, целиком состоящий из гнилых костылей и копируемый из проекта в проект, поскольку «он же работает»; постановки задачи «сделайте, шоб работало, и хорошо!»; разработчики, даже примерно не представляющие себе предметной области, — это всё норма современного софт-девелопмента.

Но ведь у всех таски закрыты, тесты пройдены и баг-трекер чист. Никто не виноват, наверное.

11467

Недержание тонера, или ПЕЧА-А-АТЬ!

3 октября 2013, 07:15

В личный ящик на работе пришло письмо в обход системы заявок в IT-отдел:

На компьютере WS-0235 не выполняется команда «Печать», прошу устранить неполадку.

Отправитель — суровый дядька, инженер по охране труда ещё советской закалки с соответствующим подходом к работе.

Сразу вспомнился один из выпусков «Ералаша», в котором мальчик с собакой приходит к ветеринару с жалобой, что питомец у него не реагирует на команды, а вместо этого «писается, а иногда даже какается…» Далее по сюжету доктор просит мальчика что-нибудь скомандовать собачке, и тот нечеловеческим голосом орёт: «ЛЕЖА-А-АТЬ!», после чего доктор вместе с собачкой делают под собой лужу.

Так вот, у принтера, подключённого к указанному в письме компьютеру, внезапно случилась ошибка переполнения бункера с отработанным тонером…

11466

Недолгий полёт терабайтов

2 октября 2013, 07:15

Сегодня был побит рекорд скорости передачи данных и ширины канала.

На меня свалилась не коробка с жёсткими дисками, как в многочисленных анекдотах и байках. Ни один здравомыслящий айтишник не станет их так хранить. На меня грохнулся чёртов серверный шкаф! Пять серверов, пять дисковых массивов, пара свитчей и роутеров. Подсчёты сделать, к сожалению, не могу, так как не помню наизусть и жду, пока мне закуют руку в гипс.

Многоуважаемые коллеги! Прошу вас: коли вы берётесь устанавливать серверные шкафы, хотя бы не смещайте центр тяжести на самый перед. Хотя бы из уважения к данным!

11465

Здесь так заведено

2 октября 2013, 07:15

Почему корпоративные системы часто выглядят просто ужасно? Разработчики ничего не понимают в интерфейсах? Всё очень просто.

Когда-то давно руководство заказывает разработку:

— Нам нужна программа, как в Экселе, только не в Экселе, а с кнопочкой «Сделать хорошо».

Разработчики делают, люди пользуются, но тут возникает новая задача:

— Нам нужно добавить сюда список контрагентов, чтобы видеть, кто что заказывал.

Разработчики делают, люди пользуются, но тут новая доработка:

— У нас у некоторых контрагентов особые условия, поэтому для них нужно добавить ещё 100500 полей и звонилочку.

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

А ещё со всем этим работают сотрудники: старые опытные, просто старые, новые, временные, и у каждого свои привычки, свои права и свои приоритеты. Никто не побежит переучивать тёток из бухгалтерии разбираться в десятке типов клиентов ради новичка, который ожидаемо хочет видеть простой и понятный список вариантов вместо хитрой системы галочек и дополнительных опций.

Анекдот про «здесь так заведено» помните? Вот точно так же года через два-три система обрастает кучей странных и нелогичных интерфейсов. А разработчики что? Плюются, порываются иногда сделать ревизию кода, но «никто не побежит переучивать бухгалтерию».

Рано или поздно старая система становится настолько неудобной и непонятной, что её придётся менять полностью, но пока — терпите.

11464

Не волшебник, но спасибо

Пишу из далёкой и уже не такой прекрасной Швейцарии.

— Добрый день, компания %myCompanyName%, слушаю вас!

— Здравствуйте, %fullName% из %companyName%.

— Да, слушаю вас.

— У меня не работает сканер!

Стараюсь поднапрячься и использовать свой максимальный телепатический потенциал.

— Что именно у вас не работает?

— Я не знаю, он раньше сканировал, а теперь не сканирует…

Глаза уже вываливаются из орбит от напряжения, но мозг не пингуется.

— Хорошо, позвольте мне подключиться к вашему рабочему посту.

Продиктовал инструкции, жду ответных пакетов мозга клиента. Вижу, как Тимвьюер показывает красивенький ухоженный рабочий стол. Захожу в устройства. Не числится там ни один сканер. Меня терзают подозрения.

— Вы его подключили?

— Ой… Я забыл…

Решаю не комментировать: похоже, что клиент и сам застыдился. Спрашиваю:

— У вас есть ещё какие-нибудь вопросы или проблемы в моей сфере деятельности?

— Да, я хотел бы изменить папку, куда сохраняются сканы.

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

— Ой, не смотрите, я неправильно их отсканировал, мне они не нужны!

— Почему? — искренне удивляюсь, смотря на сканы по 2,5 МБ.

— Ну видите, они вверх ногами! — клиент намекает на мою тупость и неосведомлённость.

Молча открываю сканы в Виндоус-фото и жму на кнопку «перевернуть на 90°» дважды.

— Как вы это сделали?!

— Просто нажмите на… — объясняю.

— Да вы волшебник, спасибо вам большое!

— Не за что, удачного дня.

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

11463

Облачно, возможны взрывы

2 октября 2013, 07:15

Знакомый приволок на ремонт зарядник для телефонов в походных условиях. Неисправность: не хочет ни заряжаться, ни отдавать энергию. После вскрытия выяснилось, что внутренние аккумуляторы разряжены ниже безопасного предела, поэтому контроллер девайса заблокировался, дабы не допустить возгорания. Зарядить литий-полимерные аккумуляторы, находящиеся в таком состоянии, всё-таки можно, но существует определённая вероятность их разрушения с последующим пожаром.

Аккумуляторная сборка в этом девайсе состояла из четырёх банок. Немного подумав, решил что проще будет зарядить каждую банку по отдельности от обычной зарядки-«лягушки».

После того как первая банка простояла на заряде полчаса, я решил проверить температуру: и банка, и «лягушка» были весьма горячими. Тут-то я и вспомнил все страшилки про литиевый пожар. Чтобы хоть как-то обезопасить конструкцию, накрыл её П-образной крышкой от компьютерного БП и запитал имеющийся на ней вентилятор.

Некоторое время спустя коллега, сидящий неподалёку, полез копаться на полку, находящуюся над его столом. Когда он начал вытаскивать оттуда понадобившуюся ему плату, вниз сорвалась мелкая железяка. Угодила эта железка прямиком в полуразобранный включённый монитор, проходящий первоначальное тестирование после ремонта. Большого бабаха не вышло: железяка упала в низковольтную часть и вызвала срабатывание защиты БП. После удаления посторонних предметов тестирование монитора продолжилось, как будто ничего и не было.

После обеда приволокли ещё один ЖК-монитор, который достался на ремонт мне. Неисправность оказалась пустяковой: подуло электролитические конденсаторы на плате БП. Заменив их, я уже начал было собирать пациента, но, вспомнив про коварные защёлки на корпусе, решил всё-таки удостовериться, что монитор заработал.

Первые четыре секунды после включения всё было, как положено: лампочка индикации питания загорелась, монитор отобразил логотип производителя. Дальше экран должен был на некоторое время потухнуть, после чего должна была высветиться табличка «проверьте кабель». Вместо этого раздался очень громкий хлопок. Первая мысль, естественно, была об аккумуляторе, «лягушке» и китайцах, которые их делали, но огня и разлетающихся осколков видно не было, а индикаторы на зарядке показывали, что всё нормально, и заряд продолжается. Переведя взгляд на монитор, я увидел, что из него бьёт фонтан кумара. Судя по запаху, это был вскипячённый электролит из конденсаторов. Быстро всё обесточив, открутил металлическую крышку, закрывающую БП монитора. На месте только что впаянных конденсаторов были только резинки с торчащими из них выводами, вся плата была засыпана крошевом из алюминиевой фольги и бумаги.

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

Объяснение происшествия довольно простое: закупленные недавно кондёры оказались перемаркированными на более высокое напряжение, однако не оставляла мысль, что в этот день в нашей комнате просто должно было что-то взорваться.

11462

Как русская «с»

1 октября 2013, 07:45

Мы — маленькая группа ребят, снявших офис и работающих в сфере веб-программирования и продвижения сайтов. За год совместной работы написали много софта для себя и реализовали более двадцати небольших проектов под заказ.

Обратились к нам с несложным заданием: написать новый шаблон для интернет-магазина и продвинуть несколько категорий хотя бы на пятую страницу Яндекса. Заказчик — дамочка, которая живёт этим магазином, холит и лелеет его. Сайту три года, в поисковой выдаче его редко где найдёшь, разве что по некоторым запросам на тридцатой-сороковой странице.

За работу взялись с энтузиазмом. За неделю нарисовали симпатичный шаблон и начали продвигать сайт. Обещали за два-три месяца результат по заказанным категориям, а остальные поднимутся в поисковой выдаче автоматически.

Через полтора месяца нужные категории были на третьих-четвёртых страницах Яндекса. Оплаченный месяц надо было доработать — и тут нас ждал облом. Страницы, которые были в топе, из выдачи исчезли; некоторые были, но сильно дальше, чем неделю назад.

Раньше таких проблем не было. В шоке перерыли всё, но ничего не отыскали. Я написал скриптик для проверки <title> страницы, метатегов и контента, который искал ключевые слова и выдавал процент соответствия. Скрипт сообщил, что ключевое слово не совпадает с названием страницы и названием товара. Зашёл вручную, проверил — всё окей…

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

Мы были в шоке. Теперь в софте появилась новая проверка.

11461

Останутся самые стойкие

1 октября 2013, 07:45

В крупной торговой сети с вилкой на логотипе и кроваво-красной расцветкой большинство рабочих процессов происходит в жёлтоподобной программной системе, написанной внутри. Низкое качество разработки для организации такого размера несколько удивляет. Система сложная, и некоторые ошибки в её работе неминуемы — это естественно. Однако эта система во многих местах пестрит грубыми нарушениями правил создания пользовательского интерфейса. А ведь хороший UI — залог быстрой и безошибочной работы сотрудников и, как следствие, радости клиентов. Хотя, возможно, я многого прошу. Пусть этот интерфейс хотя бы излечится от детсадовских проблем.

Неправильно расставленные tab orders, отличающиеся названия одних и тех же полей ввода в разных местах, дублирующиеся пункты меню и отсутствие их сортировки по алфавиту или какой-нибудь логике. Например, зачем нужны пункты «Реестр web заявок» и «Реестр web заявок (новый)»? А как насчёт «Сторнировать документ» и «Сторнировать документ (свой)»? Ещё интереснее — два пункта «Создание выезда» в одном меню, но с разными пиктограммами.

Система не запоминает ширину боковой панели. Переключает по Ctrl+Tab дочерние окна просто одно за другим, а не по последним активным. Поле ввода серийного номера не позволяет вводить маленькие буквы, заставляя нажимать Shift, хотя могло бы самостоятельно выполнять их преобразование.

Есть документ, который заполняется в несколько шагов по кнопке «Далее». Не знаю, как разработчики, а я не вижу ни одной причины, почему при переходе к последующим шагам редактировать предыдущие становится нельзя. Чтобы приходилось начинать всё заново при ошибке? Тот же самый документ имеет функцию копирования значений из другого документа. И она работает. И даже копирует почти все поля.

Друзья разработчики! Я до последнего буду верить, что на самом деле вы хорошие, что вас просто заставили сделать всё в нереально сжатые сроки с невнятным ТЗ…

11460

Специалисты устранят интернет в сжатые сроки

1 октября 2013, 07:15

Выросли пинги на домашнем интернете до 800+. Трассирую — проблема на внешнем интерфейсе провайдера. Подключаюсь к клиентскому серверу через RDP, пингую. Так и есть — проблема у провайдера.

Звоню в саппорт, излагаю ситуацию, пробиваюсь до админов. Они клятвенно обещают исправить, попутно раз пять посоветовав мне перезагрузить роутер. Жду.

Что ж, ситуация действительно вскоре поменялась. 50% пакетов пропадают, пинг вырос до 1000+. Работают ребята…