Мораль: входные данные могут быть любыми!
От: Michael7 Россия  
Дата: 26.09.10 11:06
Оценка: 4 (3) +10 :))) :))) :)))
Навеяло историей с ITHappens: здесь

Работаю в банке на поддержке АБС. Звонит операционист: «Набираю дату рождения, и программа не даёт ничего сделать: не пропускает дальше, не делает отмену операции, тупо не выходит из поля ввода даты».

Подключилась через Радмин, смотрю: вроде всё правильно. Перебила дату лично, так, на всякий случай: 31.04.1957. Так, стоп, с каких это пор у нас в апреле 31 день?.. Попыталась указать операционистке на её тупость. Однако это не она умом обделённая оказалась. Не то паспортисты рехнулись, выдав документ с такой датой, не то клиентка, счастливо празднующая день рождения 31 апреля, не то все они вместе взятые.


Таких фокусов как 31 апреля у меня не случались, но зато как бы кой-чего не похуже было. Например, занимались оцифровкой архива некоей госорганизации, в этом архиве все бумаги должны были, просто по определению, иметь разный номер, ибо бумаги официальные и в том их в каком-то роде и смысл был, что у каждой свой номер. Разработчики СУБД ничтоже сумняшеся сделали поле с этим номером ключевым. И конечно же, в итоге, некоторые документы таки имели одинаковые номера. И это было не опечаткой. Справедливости ради, скажу, что это было исключительным случаем и таких пар набралось всего около десятка на весь архив и тем не менее, я лишний раз убедился, при разработке автоматизированных систем, имеющих дело с входными документами, следует иметь ввиду, что там может быть ВСЕ. Даже то, чего быть не может.
Re: Мораль: входные данные могут быть любыми!
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 26.09.10 11:51
Оценка: -3 :))) :))
Здравствуйте, Michael7, Вы писали:

M>Таких фокусов как 31 апреля у меня не случались, но зато как бы кой-чего не похуже было. Например, занимались оцифровкой архива некоей госорганизации, в этом архиве все бумаги должны были, просто по определению, иметь разный номер, ибо бумаги официальные и в том их в каком-то роде и смысл был, что у каждой свой номер. Разработчики СУБД ничтоже сумняшеся сделали поле с этим номером ключевым. И конечно же, в итоге, некоторые документы таки имели одинаковые номера. И это было не опечаткой. Справедливости ради, скажу, что это было исключительным случаем и таких пар набралось всего около десятка на весь архив и тем не менее, я лишний раз убедился, при разработке автоматизированных систем, имеющих дело с входными документами, следует иметь ввиду, что там может быть ВСЕ. Даже то, чего быть не может.


Т.е. отныне все поля в БД должны быть BLOB?
Вообще, для таких случаев пишется документ, называется ТЗ. ТЗ + договор успешно решает эту проблему.
Вселенная бесконечна как вширь, так и вглубь.
Re: Мораль: входные данные могут быть любыми!
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 26.09.10 12:05
Оценка:
Здравствуйте, Michael7, Вы писали:

M>

M>Работаю в банке на поддержке АБС. Звонит операционист: «Набираю дату рождения, и программа не даёт ничего сделать: не пропускает дальше, не делает отмену операции, тупо не выходит из поля ввода даты».

M>Подключилась через Радмин, смотрю: вроде всё правильно. Перебила дату лично, так, на всякий случай: 31.04.1957. Так, стоп, с каких это пор у нас в апреле 31 день?.. Попыталась указать операционистке на её тупость. Однако это не она умом обделённая оказалась. Не то паспортисты рехнулись, выдав документ с такой датой, не то клиентка, счастливо празднующая день рождения 31 апреля, не то все они вместе взятые.


Кстати, этот случай сложнее твоего с оцифровкой, т.к. твою проблему можно было решить не выходя из госорганизации. Тут же источник проблемы находится за рамками конторы.
С одной стороны, вроде как можно доработать систему и разрешить ввод неправильных значений, но с другой — неизвестно, где потом это значение дальше будет использоваться.
Думаю, эту проблему надо выносить на руководителя проекта и выше — много вариантов решения. Думаю, наилучший: разработчик учитывает данную особенность доп. соглашением к договору и дорабатывает этот функционал, т.е. "любое ваше желание за ваши деньги".
Вселенная бесконечна как вширь, так и вглубь.
Re[2]: Мораль: входные данные могут быть любыми!
От: Рома Мик Россия http://romamik.com
Дата: 26.09.10 12:10
Оценка: +6
Здравствуйте, Real 3L0, Вы писали:

R3>Вообще, для таких случаев пишется документ, называется ТЗ. ТЗ + договор успешно решает эту проблему.

Решает возможно проблемы разработчика по общению с заказчиком, но никак не описанную проблему.
Re[3]: Мораль: входные данные могут быть любыми!
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 26.09.10 12:17
Оценка:
Здравствуйте, Рома Мик, Вы писали:

R3>>Вообще, для таких случаев пишется документ, называется ТЗ. ТЗ + договор успешно решает эту проблему.

РМ>Решает возможно проблемы разработчика по общению с заказчиком, но никак не описанную проблему.

Ну, если ты готов решать проблемы компании за свой счёт и время, то вперёд. Это всё равно, что протягивать локальную сеть в здании и заодно починить водоснабжение.
Вселенная бесконечна как вширь, так и вглубь.
Re[2]: Мораль: входные данные могут быть любыми!
От: Michael7 Россия  
Дата: 26.09.10 12:42
Оценка:
Здравствуйте, Real 3L0, Вы писали:

R3>Т.е. отныне все поля в БД должны быть BLOB?


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

R3>Вообще, для таких случаев пишется документ, называется ТЗ. ТЗ + договор успешно решает эту проблему.


Позволяет разработчику "умыть руки", да. Но проблему не решает.
Re[2]: Мораль: входные данные могут быть любыми!
От: Michael7 Россия  
Дата: 26.09.10 12:48
Оценка:
Здравствуйте, Real 3L0, Вы писали:


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


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

R3> Тут же источник проблемы находится за рамками конторы.

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

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

R3>Думаю, эту проблему надо выносить на руководителя проекта и выше — много вариантов решения. Думаю, наилучший: разработчик учитывает данную особенность доп. соглашением к договору и дорабатывает этот функционал, т.е. "любое ваше желание за ваши деньги".


Заказчикам, конечно стоит иметь ввиду, на этих примерах, что любая система в ходе реальной эксплуатации может столкнуться с непредвиденными случаями.
Re[3]: Мораль: входные данные могут быть любыми!
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 26.09.10 13:04
Оценка:
Здравствуйте, Michael7, Вы писали:

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

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

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

R3>> Тут же источник проблемы находится за рамками конторы.

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

Да, думаю, можно было бы использовать следующую дату, как с "29 февраля".
Вселенная бесконечна как вширь, так и вглубь.
Re: Мораль: входные данные могут быть любыми!
От: susumanin Россия  
Дата: 26.09.10 13:17
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Работаю в банке на поддержке


в одноэсе подобное решено просто — система после ввода несуществующей даты подставляет следующий день. т.е. в данном случае в поле для ввода просто бы появилось 1 мая.
Re: Мораль: входные данные могут быть любыми!
От: Альт Россия http://cryptocode.ru
Дата: 26.09.10 17:42
Оценка: 2 (2) +1
Здравствуйте, Michael7, Вы писали:

M>счастливо празднующая день рождения 31 апреля, не то все они вместе взятые.

M>Таких фокусов как 31 апреля у меня не случались

И напрасна такая пионерская уверенность, т.к. все еще живы люди имеющие в дате рождения только год. И вполне официально, и с ними работают, и их обслуживают )
: 4000654
Re[2]: Мораль: входные данные могут быть любыми!
От: icWasya  
Дата: 27.09.10 05:47
Оценка: +1
Здравствуйте, susumanin, Вы писали:

S>Здравствуйте, Michael7, Вы писали:


M>>Работаю в банке на поддержке


S>в одноэсе подобное решено просто — система после ввода несуществующей даты подставляет следующий день. т.е. в данном случае в поле для ввода просто бы появилось 1 мая.


А в результате клиентка не сможет получить свои деньги — в документах банка и в паспорте окажуться разные даты.
Для клиентки это повод обратиться в ЗАГС и паспортный стол для смены документов.
Re: Мораль: входные данные могут быть любыми!
От: Eugeny__ Украина  
Дата: 27.09.10 08:51
Оценка:
Здравствуйте, Michael7, Вы писали:


M>Таких фокусов как 31 апреля у меня не случались, но зато как бы кой-чего не похуже было.


Мне как-то на полном серьезе сделали пропуск на склад одной организации до 31 февраля. Девочка, делавшая его, ступила, а утверждающее начальство, как я понимаю, тупо не глянуло, что подписывает.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[3]: Мораль: входные данные могут быть любыми!
От: Eugeny__ Украина  
Дата: 27.09.10 09:01
Оценка: +1 -3
Здравствуйте, Michael7, Вы писали:


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


Описанный случай — не непредвиденный. Это тупо следствие чей-то ошибки. Причем точно не разработчиков, так как в тз черным по белому написано было, что одинаковых номеров быть не может.
Однако же было решено добавлять костыли, вместо того, чтобы найти и устранить иходную проблему. Почему получилось два дока с одинаковым номером — вот что нужно было выяснять.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[2]: Мораль: входные данные могут быть любыми!
От: Eugeny__ Украина  
Дата: 27.09.10 09:05
Оценка:
Здравствуйте, susumanin, Вы писали:


S>в одноэсе подобное решено просто — система после ввода несуществующей даты подставляет следующий день. т.е. в данном случае в поле для ввода просто бы появилось 1 мая.


Джавовский календарь по-умолчанию вообще забавно работает. Из 31 апреля он делает 1 мая. Из 32 второе мая. Из 62 арпеля получится замечательное 1 июня .
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re: Мораль: входные данные могут быть любыми!
От: Pavel Dvorkin Россия  
Дата: 27.09.10 09:09
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Таких фокусов как 31 апреля у меня не случались, но зато как бы кой-чего не похуже было. Например, занимались оцифровкой архива некоей госорганизации, в этом архиве все бумаги должны были, просто по определению, иметь разный номер, ибо бумаги официальные и в том их в каком-то роде и смысл был, что у каждой свой номер. Разработчики СУБД ничтоже сумняшеся сделали поле с этим номером ключевым. И конечно же, в итоге, некоторые документы таки имели одинаковые номера. И это было не опечаткой. Справедливости ради, скажу, что это было исключительным случаем и таких пар набралось всего около десятка на весь архив и тем не менее, я лишний раз убедился, при разработке автоматизированных систем, имеющих дело с входными документами, следует иметь ввиду, что там может быть ВСЕ. Даже то, чего быть не может.


Если такая ситуация возникла, то ИМХО из нее есть 2 выхода.

1. Категорически заявить, что , поскольку в соответствии с ТЗ дубликаты невозможны, новый документ с существующим уже номером система принимать НЕ БУДЕТ, и решение этой проблемы за пределами программного продукта. Пусть меняют номера.
2. Если (1) заказчика не устроит, требовать отмены пункта об уникальности номеров в ТЗ.

Либо — либо.

А не искать обходные решения.
With best regards
Pavel Dvorkin
Re[4]: Мораль: входные данные могут быть любыми!
От: Michael7 Россия  
Дата: 27.09.10 09:34
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Описанный случай — не непредвиденный. Это тупо следствие чей-то ошибки. Причем точно не разработчиков, так как в тз черным по белому написано было, что одинаковых номеров быть не может.

E__>Однако же было решено добавлять костыли, вместо того, чтобы найти и устранить иходную проблему. Почему получилось два дока с одинаковым номером — вот что нужно было выяснять.

Документы с одинаковыми номерами сделаны много лет назад, и десять и двадцать и более лет назад. При совсем другой системе их выдачи. Что тут можно поменять или выяснить? Никто эти документы переделывать не станет, да и это и сильно проблематично с юридической точки зрения. Остается только учесть с помощью костылей. Хотя факт подобного кофуза лично меня сильно доставил.
Re: Мораль: входные данные могут быть любыми!
От: vitasR  
Дата: 27.09.10 09:46
Оценка:
Здравствуйте, Michael7, Вы писали:

строго говоря, паспорт с датой рождения 31 апреля является недействительным документом со всеми вытекающими. Обладательница данного документа (если, конечно, она его не вчера получила) дура и ССЗБ.
Re[2]: Мораль: входные данные могут быть любыми!
От: Michael7 Россия  
Дата: 27.09.10 09:48
Оценка: +2
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Если такая ситуация возникла, то ИМХО из нее есть 2 выхода.


PD>1. Категорически заявить, что , поскольку в соответствии с ТЗ дубликаты невозможны, новый документ с существующим уже номером система принимать НЕ БУДЕТ, и решение этой проблемы за пределами программного продукта. Пусть меняют номера.


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

PD>2. Если (1) заказчика не устроит, требовать отмены пункта об уникальности номеров в ТЗ.


PD>Либо — либо.


PD>А не искать обходные решения.


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

Вот только, как мне кажется, более высокий уровень профессионализма — это в том числе и умение предвидеть возможность наличия таких проблем, в том числе еще на стадии написания ТЗ, которое обычно разработчик и пишет, а заказчик только проверяет. В копилку такого опыта я привел пример проблемы.
Re: Мораль: входные данные могут быть любыми!
От: Кодёнок  
Дата: 27.09.10 11:27
Оценка: +4
Здравствуйте, Michael7, Вы писали:

M>Таких фокусов как 31 апреля у меня не случались,


А если месяц в документе будет — мартобрь, вы б ему какой номер в своих «хаках» присвоили?

Я тут подумал, может это поддельный паспорт, сделаный у слегка укуренных поддельщиков. Интересно с юридической точки зрения, обязаны ли вы принимать любой паспорт, который вам принесут? А если там будет прописка в Антарктиде? Или серия-номер 6666 666666? Ящерица в шляпе на фотограции? Или «Выдан господом богом»? Может ему стоило отдать паспорт вместе с человеком в милицию. Они в крайнем случае сразу бы с паспортным столом у себя там разобрались.

Имхо в случае с паспортом ничего в системе менять не надо. Налицо недействительный паспорт, что означает отсутствие действительного.
Re[3]: Мораль: входные данные могут быть любыми!
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 27.09.10 12:40
Оценка: -1
Здравствуйте, Michael7, Вы писали:

M>Поменять номера невозможно. Парам дублей уже больше десятка лет и есть юридические тонкости, не позволяющие это сделать.


Эх, смотрю я — съэкономили вы на аналитике при внедрении.
Как я уже говорил — решение есть. И всё в рамках закона.
Будем разбираться или на слово поверишь?

M>Понимаете, основания чтобы ругаться и чего-то доказывать в свою пользу конечно же есть и строго говоря это действительно не вина разработчиков. Да разработчики все сделали по ТЗ и не колышет, как говорится.


Это первое, что надо вбить себе в голову. Когда вы (как компания разработчик) сможете вбить это в голову себе, то затем сможете вбить это и заказчику. И разбираться уже будете совместно. А это уже бОльшая часть решения проблемы. Судя же по описанию проблемы, вы получили от заказчика "сюрприз" и тупо бросились его реализовывать, не разбираясь.

M>Вот только, как мне кажется, более высокий уровень профессионализма — это в том числе и умение предвидеть возможность наличия таких проблем, в том числе еще на стадии написания ТЗ, которое обычно разработчик и пишет, а заказчик только проверяет. В копилку такого опыта я привел пример проблемы.


+1. Только я не понял, как это связано с предыдущим абзацем.
Вселенная бесконечна как вширь, так и вглубь.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.