bash.im ithappens.me zadolba.li

Программы

11461

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

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

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

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

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

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

11444

Пинком сюда, рывком туда

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

— Слушайте, друзья, помогите советом: как эту защёлку снять-то?

Ответ приходит незамедлительно:

— А тебе зачем?

— Ну дык неудобно же!

— У меня стоит. Мне очень удобно.

— Меня устраивала предыдущая дверца.

— А вдруг дети?

— У меня нет детей.

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

— Предложили — я и повёз.

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

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

Товарищи с форума техподдержки программного обеспечения, узнали себя?

11425

Аптайма не дождётесь

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

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

— Демо-версия кончилась, надо сервак перезапустить.

11411

Взгляни, почини, научи, промолчи

Давным-давно, когда мы выводили из эксплуатации Пентиумы и вводили новые машины на базе Socket 478, в то время как электрики выводили из работы СМ-2М… Так вот, примерно тогда старшие товарищи в ответ на наши претензии нас учили.

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

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

Ещё программист-разработчик должен уметь вовремя устранять баги и обновлять свой продукт.

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

11386

Проверка пенсионером

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

Секрет очень прост.

1. В качестве основного средства разработки используется старенький нетбук с экраном 10". Как вы понимаете, интерфейс должен быть понятным и лаконичным, иначе он просто не поместится на экране.

2. Программа должна работать быстро, потому что кроме неё на несчастном Атоме крутится ещё десяток полезных инструментов.

3. База данных лежит на тестовом сервере. Сервер тот находится на виртуалке в далекой стране, а канал к нему идёт через сотовый модем, поэтому обмен данными просто обязан быть эффективным.

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

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

11380

Не мешайте телефону думать

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

Берём древний компьютер с процессором 80386 и сопроцессором. Запускаем любую программу, пробуем нажимать клавиши на клавиатуре. О чудо! Программное обеспечение откликается мгновенно, символы на мониторе (монохромном, кстати) появляются моментально.

У этого человека есть современный ноутбук с Виндоусом номер семь. Да, графический интерфейс, всё красиво, графика-круче-чем-Фаркрай. Понятно, что на обеспечение всей этой красоты уходят системные ресурсы. И лёгкие подтормаживания хоть и причиняют дискомфорт, но не убивают пользователя: он понимает причину тормозов.

Так почему же тогда сугубо однофункциональные аппараты — терминалы по приёму оплаты (или банковские) — так дико тормозят? От нажатия клавиши на сенсорном экране до появления символа в строке ввода проходит секунда или даже больше. Особый шик в этой ситуации добавляет сам сенсорный экран — в него надо тыкать так, что матрица прогибается аж на сантиметр.

Другой, на сегодняшний день уже многофункциональный аппарат — телефон. Человеку всего лишь нужно набрать номер на том же сенсорном экране. Почему эта железка, которая по своей мощности превосходит незабвенный 80386-й в несколько сотен раз, думает три-четыре секунды, прежде чем вывести набираемый номер на дисплей? Ах да, оно же просматривает телефонную книгу в поисках совпадений, подгружает контакты из социальных сетей — и прочее, и прочее… Зачем? Почему нельзя отключить эти навороты?

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

11361

Проще — не значит лучше

Кто-то предлагает своим родителям учить чужой язык, чтобы пользоваться программами в оригинале, только потому, что некоторые термины были переведены некорректно. Однако даже непереведённое меню программы может поставить в тупик. Чем отличаются пункты Load File, Open File или Browse Files, если они делают одно и то же? А что следует выбрать для изменения настроек из Options, Preferences, Custom и Configuration в одном меню?

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

11357

И пусть «в процессе» длится вечно

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

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

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

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

Как вы думаете, чем закончилась история? Думаете, клиент купил продукт? Нет, вы ошибаетесь. Однажды я позвонил ему, чтобы узнать, когда они собираются покупать лицензию, так как триальный ключ подходил к концу. Он же мне сказал, что они настроили продукт и теперь готовы перейти к использованию бесплатной. Я был очень расстроен, но в какой-то момент осознал, что бесплатная версия не имеет агентов на борту, и без решения сетевой проблемы клиент не сможет заставить продукт работать.

После этого я особенно возненавидел русских клиентов, которые не хотят платить ни за что, а если даже и заплатят, то будете вы им обязаны пожизненно.

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

11351

Я слишком молод для такого

Был сегодня у знакомой в гостях. Попросила помочь с компьютером — в Скайпе не работает веб-камера. Пришёл, посмотрел. Обрадовало то, что Windows XP продержалась четыре года с того времени, как я её установил, хотя и тормозит сильно. Пользователь вроде не дура, обычно спрашивает, если не знает. Но торможение есть. Скайп веб-камеры действительно не видит, хотя система распознаёт и даже показывает с неё изображение.

Переустановка драйверов. То же самое.

Обновление Скайпа. Камеру не видит в упор.

Удаление устройства из системы, отключение камеры, перезагрузка, подключение, новая настройка. Аналогично.

Скачивание на медленном интернете драйвера от производителя, снова удаление устройства, переустановка драйвера. Без результата.

Кофе. Звонок другу, описание ситуации. Идиотское предложение. Его выполнение. შენ მოგიტყან ტრაკი! Работает.

Оказалось, что последние версии (стоял Скайп 6.3, я обновил до 6.6) этой камеры под Windows XP просто не видят. Друг посоветовал попробовать старую версию. Снёс 6.6 и поставил 4.1, которую на той машине я оставил четыре года назад. Кстати, после сноса последних версий и установки старой комп перестал тормозить.

И чего ещё можно ожидать от разработчика, у которого программы между собой договориться не могут?