powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Бюджетная автоматизация производства
13 сообщений из 13, страница 1 из 1
Бюджетная автоматизация производства
    #40009536
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Занимаюсь (полу-)автоматизацией установленного бизнес процесса, в основном уменьшением ручного ввода.
С этой целью к системе (СУБД, сервер, терминалы) подключили внешние источники данных и событий, с целью уменьшить ручной труд сотрудников. В то же время ручной контроль остался, т.к. автоматизация покрывает не все случаи даже для одного поля.

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

Когда что-то под двойным контролем вспомогательной автоматики и человека, обычно человеку дается право окончательного решения, желательно без полного отключения автоматизации. Например, в самолете автопилот, если резко потянуть за штурвал, отключается, звучит оповещение что "дальше рули сам", и автоматика уступает дорогу. При этом другие аспекты автопилота остаются в силе (автоматическое поддержание скорости, и т.п.).

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

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

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

Если кто-то занимался подобной автоматизацией, какой подход вы использовали, и какие вынесли уроки?

Я сейчас имплементирую значительно упрощенный вариант, без двойного хранение данных, по правилу:
- если робот успел раньше человека, робот вносит свои данные и помечает их "от робота"
- если человек внес свою информацию, данные робота пропали и робот это поле больше не трогает
- если робот сделал пересчет, он может обновить поле только если там человек не побывал, или оно пустое
- человек может на глаз определить, от кого в поле данные.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009541
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НеофитSQL,

В принципе суть любой автоматизации это сократить ручной труд человека.

Ваша ошибка в том, что вы "робота" определили как субъект. Это порождает кучу описанных вами сложностей, и соответствующих овер-усложнённых решений.

Принципы же простые как тапок:

1. Если что-то можно автоматизировать, автоматизируйте это.

— заполните все поля, какие возможно сразу по возможности
— дайте возможность заполнить поле автоматически, если это возможно (отдельная кнопка рядом с полем, всплывающая подсказка, иные явные средства управления)

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

— значение оно либо корректное, либо не корректное
— после сохранения никто ничего "довносить" и изменять не должен
— все изменения должны быть контролируемые
— дайте возможность внести/откорректировать данные
— дайте возможность откатить изменения (ctrl-z)

3. Корректность данных важней авторитетности

— не важно кто автор значений (робот, человек, какой-то конкретный человек), важна корректность данных
— обеспечьте максимальную валидацию введённых данных
— убедитесь, что автоматически вычисляемые значения не противоречат этой валидации, иначе доверие к системе будет снижено


И, самое главное, не пытайтесь решать задачи UX, если вы не специалист в этой области.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009568
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt

3. Корректность данных важней авторитетности

— не важно кто автор значений (робот, человек, какой-то конкретный человек), важна корректность данных
....

IMHO крайне спорно
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009579
hVostt
Ваша ошибка в том, что вы "робота" определили как субъект. Это порождает кучу описанных вами сложностей, и соответствующих овер-усложнённых решений.

он же юзер, который работает с системой
ему uid нужен
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009643
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
hVostt

3. Корректность данных важней авторитетности

— не важно кто автор значений (робот, человек, какой-то конкретный человек), важна корректность данных
....

IMHO крайне спорно


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

Представьте себе ситуацию в UX, где человек спорит с "роботом". Это же курам на смех.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009645
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO В первую очередь должно быть понятно, откуда пришли данные и почему они именно такие.

Корректные / не корректные - в очень многих случаях вопрос спорный. Корректные с чьей точки зрения? А точка зрения может кардинально отличаться.


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

Ну "и из других источников" - а если из других источников очень часто приходит "лажа" (как у нас) ? При этом такая лажа, что отражать ее в отчетности/выставлять клиентам, нет никакой возможности. И наиболее тупые ляпы (из-за которой данные вообще не загрузить) видны сразу и тут же правятся.

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

IMHO & AFAIK

Ну и "на основе введённых данных людьми" это что значит? IMHO данные должны быть из ДОКУМЕНТОВ (подписанных) ну или, в крайнем случае, из электронных документов/файлов обмена.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009677
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Много хороших мыслей, интересно читать.

По поводу корректности данных, это вопрос из другой плоскости. Если для данного поля есть 100% объективно верные данные (сумма столбца в таблице), задача вырождается в более простую - отобрать контроль у человека. Вопрос двойного контроля пропал, также исчезла ответственность работника за правильность подсчёта суммы.

Один из подходов - требовать явное действие от человека.
Хочет автоподсчет? Ставит галочку автоподсчет рядом с полем. Хочет вручную? Убирает галочку, пишет свое.
Стоимость имплементации - по галочке на все поля и способность пересчёта любого поля в любой момент (или двойное хранение данных).

Дата: [__/__/_____] [✓]авто
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009678
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hVostt,

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

Этот робот-субъект редко ошибается, а иногда не знает ответа, поэтому поле остаётся открытым для редактирования человеком, у которого последнее слово.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009679
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Усложняет мою конкретную проблему свойство путезависимости (path dependence) при вычислении значений.

Другими словами, переход в ручной режим прост, а возвращение в автоподсчет требует значительной работы, т.к. число вычислялось инкрементально, с учётом состояния системы на каждой итерации.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009685
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Корректные с чьей точки зрения?
Владельца бизнеса, разумеется. Или у вас есть варианты?
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009690
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov
Leonid Kudryavtsev
Корректные с чьей точки зрения?
Владельца бизнеса, разумеется. Или у вас есть варианты?


"Господины акционеры, я тут правильно дату поставила?"

Корректность данных определяется лицом, кому поручена задача ввода данных. Для этого лицу даётся критерии, источники, и т.д. Зато появляется спрос с данного лица.

В условиях моей задачи автоматизации, спрос снизился до "если робот вбил дату, считать корректной по умолчанию, и в случае ошибки винить робота". Снижение ответственности - неизбежное следствие сокращения ручного труда, ИМО.

Когда я пользуюсь калькулятором, я не проверяю ответы на бумаге столбиком, и если выданный мне для работы калькулятор ошибся при делении, это не моя вина.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009764
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
Leonid Kudryavtsev
пропущено...

IMHO крайне спорно


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

Представьте себе ситуацию в UX, где человек спорит с "роботом". Это же курам на смех.

Есть старая аналогия с экспертными системами из 80х. К примеру врач-инфекционист если встречается
с чем-то неизвестным - может привлекать электронные экспертные системы для того чтобы понять
по нечетким симптомам - что за болезнь или что делать дальше и какие дополнительные анализы
собрать. Но отвественность за то что больной помер - несет лично врач а не экспертная система.
...
Рейтинг: 0 / 0
Бюджетная автоматизация производства
    #40009880
НеофитSQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Экспертные системы использовались на правах справочников. Если аналогия медицинская - возьмём инсулиновый насос, который сам определяет и сам вкалывает диабетику нужное (с точки зрения программиста) количество инсулина.

Все без присутствия врача, вне больницы. Это портативное устройство, вживленное в пациента.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Бюджетная автоматизация производства
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]