Разработка программного обеспечения - занятие крайне медитативное. Вы надеваете закрытые наушники, включаете любимую музыку и принимаетесь за работу.
В то же время разработка процесс непрерывный. Вы написали приложение, которое делает что-то конкретно одно, потому что вы любите минимализм и весь из себя такой unix way. Вскоре вы переписываете свое приложение, и далек не потому, что оно вам внезапно не нравится. Потому что требования новые.
Несколько недель назад я работал с парнем-из-гугла, чтобы автоматизировать бизнес-процесс под названием "Подпись договора о ноутбуке".
Ранее, когда сотрудник получал ноутбук, он подписывал бумажку на которой значились данные по ноутбуку, его цена и ответственность сотрудника. Бумага сканировалась ИТшниками, отправлялась кадровикам. Кадровики вручную загружали скан договора с HR систему. Бумага отправлялась в шредер.
Крайне неэффективно, не правда ли?
Так вот я и парень-из-гугла написали 3-компонентую систему:
- Скрипт на Groovy, которые отправляет кастомное письмо с ссылкой на форму цифровой подписи
- Google Script приложение, которое собирает данные и генерирует контракт с цифровой подписью
- Python скрипт, которые забирает контракт, загружает его в HR систему и меняет статус тикета в Сервисдеске.
Затем началось веселье:
- А давайте брать данные по оборудованию из CMDB, а не забивать их вручную!
- А еще подпилим приложение, чтобы оно не валилось от ASCII несовместимых символов!
- А можно копию контракта по почте отправлять?
- А что делать с людьми, если они поженились и сменили фамилию? Может будем искать не по имени, а по идентификатору сотрудника?
Честно говоря, я порой думаю, что нужно было отказаться от этого и продолжить использовать бумагу.
Мало того, люди так сильно хотят ноутбук, что им его выдают до того, как отработает цифровая подпись.
Как сказал классик: "Компьютеризация бардака превращает его в компьютеризированный бардак."
Post #160
206