«Если вы напишете программу, которой смогут пользоваться даже идиоты – ей будут пользоваться одни идиоты» сказал нам на лекции седой профессор. Мы всей группой дружно посмеялись, но фразочка в голове засела. Прошло уже больше 10 лет после той лекции, а размышления о необходимом уровне паранойи со стороны архитектора ПО до сих пор живут. Сегодня мои рассуждения о проектировании софта и взаимоотношениях с пользователями.
Какой должна быть система автоматизации бизнес-операций (к промышленной автоматизации требования совсем другие, это факт) чтобы с одной стороны давать определённую долю свободы пользователю, а с другой – иметь достаточно контроля, чтобы не дать пользователю выстрелить себе в колено? Весь вопрос в степени достаточности контроля.
Чем больше автоматизации в организации и чем больше эта автоматизация развивается – тем больше ей доверяют пользователи, и через какое-то время полностью начинают перекладывать ответственность за свои ошибки на системы автоматизации. Чем меньше думают пользователи о том что они делают – тем больше должен думать разработчик чтобы не дать пользователю нанести себе вред. Что если вдруг пользователь захочет провести документ задним числом, и найдёт лазейку как это сделать, а в итоге полетит квартальная отчётность? Первым получит программист, потому что это его программа позволила сотворить безобразие. Программист напишет очередной контроль чтобы точно-точно нельзя было задним числом проводить документы. А другой пользователь в это время поменяет какой-нибудь реквизит в разрешённом документе, и это опять-таки исказит отчётность. В определённый момент работа штатного программиста превращается в затыкание дыр и лазеек, через которые пользователи могут наделать делов. А виноватым всегда будет программист и его алгоритмы.
Вернусь к вопросу, озвученному выше – в какой момент контроля будет достаточно? Нормальной ли будет ситуация, при которой пользователь будет «ездить по рельсам» без возможности свернуть со строго заданного маршрута? Ведь что произойдёт в таком случае? Программист своими действиями создаст того самого идиота, о котором я писал в предисловии. Ведь на вопрос «как нам оформить что-то-там» бухгалтер скажет что нужно ткнуть в нужную кнопку. Не понимая сути процесса, юридической и финансовой стороны вопроса.
Нет, я конечно могу гипотетически представить ситуацию, когда это хорошо. Мы получаем толпу роботов-исполнителей, которые знают только как нажимать вверенные им кнопки и не лезут куда не следует, а главное – стоят недорого. Но из этого сразу же следует слишком много «но» — мотивация, инициативность, развитие – обо всём этом придётся забыть, ну или переложить всё на плечи программиста, который опять окажется крайним в случае если что-то пойдёт не так, а в компании не найдётся нужного компетента, способного объяснить суть происходящего после нажатия нужной кнопки.
И в итоге опять окажется что во всём виноваты программисты.
Добавить комментарий