Закликанная насмерть
Работаю в известном ОАО на три буквы. Очень много АСУ пишется то подрядчиками, то штатными программерами специально для нужд различных подразделений.
Около года назад обращается пользователь одной из таких самописных программ, работающей по технологии «клиент-сервер». Проблема: прога зависает при открытии основного окна, в котором и ведется работа. Radmin — к бою! «Покажите, в чём проблема». Юзер тыкает мышой на кнопку соединения с сервером, и программа крепко зависает. «Понятно, теперь я попробую». Повторяю всё точь-в-точь за пользователем — всё нормально, соединение с сервером установлено, прога готова к работе. «Всё нормально?» — «Да, спасибо».
На следующий день то же самое. «Покажите ещё раз». Показывает — ПО зависает... Снимаю задачу, запускаю заново, тыкаю на соединение — всё нормально. Как так?! Начинают закрадываться нехорошие мысли. Проверяется всё, что можно удалённо проверить в этой ситуации, вплоть до каналов связи на пути от клиента к серверу, но никакого криминала не обнаруживается.
Так проходит три дня. Утром каждого дня юзер обращается, я запускаю прогу, соединяюсь с сервером, юзер работает весь день. Надоедает, да и юзер, мягко говоря, недоволен. Висим с ним на телефоне, пробуем разные варианты. Замечаю, что если навести фокус на нужную кнопку и попросить юзера ткнуть Enter, программа не виснет. Придётся посетить рабочее место, благо недалеко.
Пришёл. Юзер тыкает — висим. Я — всё окей. Мысли о непорядках с головой уже не покидают. Внимательно присмотревшись, замечаю, что юзер тыкает на кнопку двойным нажатием. Пробую повторить — так и есть, прога висит. Гора с плеч, консультация пользователя, интересная история для коллег...
Вот такие вот бывают ситуации из-за проколов программистов, не посчитавших нужным нормально обработать двойное нажатие — конечно-конечно, какой умник будет на кнопку жать два раза? Вот вам и «защита от дурака»... Кстати, за год ничего не изменилось, хотя о ситуации я сразу сообщил разработчикам.