10 причин опанувати Intelligent Automation

Декілька років тому я був звичайним Web-девелопером, досить успішно розвивався та піднімався кар'єр єрною драбиною. Та в певний момент зрозумів, що хочу спробувати щось нове, змінити свій профіль чі технічний домен. Саме в тій годину EPAM відкрив новий напрямок — Intelligent Automation. «Поварившись» 2 рокі у сфері розумної автоматизації, вирішив поділитися своїм досвідом та розповісти про причини, чому саме зараз варто звернути увагу на ІА технології.

ІА чі розумна автоматизація — технологія, яка активно розвивається на західному ринку. Це зручний спосіб автоматизації бізнес-процесів, пов'язаних з ручною обробкою та інформацією без реінжинірингу. Особливість підходу в тому, що взаємодія між програмами відбувається не на рівні інтерфейсів прикладного програмування (API), а через існуючий користувальницький інтерфейс, що імітує поведінку людини.

Так, пошукавши більше інформації про ІА, я вирішив заглибитись у цю тему. За прогнозом Market Research Future , ринок інтелектуальної автоматизації й надалі буде щороку зростати вдвічі. Вже зараз помітний підвищений попит на ІА фахівців. І він буде рости так само, як і ринок автоматизації.

Джерело

На початку хочу зробити уточнення, щоб Intelligent Automation не плутали з іншим напрямком:

1. ІА — новий етап у розвитку програмування

Я починав працювати з Асемблером і Паскалем. Потім настала ера ООП. Зараз наближається година метапрограмування, коли з існуючих сервісів та інструментів ми створюємо продукт. Іншими словами, зараз все відбувається на вищому рівні — можна брати готові блоки, поєднувати їх в один механізм. У такому вигляді вони ідеально працюють. Все йде до вищих рівнів абстракції.

Інтелектуальна автоматизація — це наступний крок розвитку. Вона буде актуальною щонайменше ще 5-10 років (доки не автоматизується більшість процесів у бізнесі). І якщо вам хочеться інвестувати свій час в щось нове, що буде стабільно розвиватися, це хороша перспектива. Щоб почати працювати в цьому напрямку, вистачає аналітичного мислення та досвіду роботи з певною мовою програмування. Ідеально, якщо це Java чі .NET, адже ваші знання будуть корисні при використанні ІА платформ:

Скажу більше, розібратись в IA простіше, аніж вивчити Java чи іншу нову технологію з нуля. І це не залежить від вашої сеньйорності. Більшість платформ автоматизації намагаються зробити інтерфейс user friendly. Тому вхід у цю спеціальність ліг. Отож, якщо ви вже розробник та працюєте з певною технологією, яка, наприклад, відмирає, або ві займаєтесь автоматизованим QA, вам буде досить легко зрозуміти процеси в Intelligent Automation.

2. Короткий цикл від ідеї до впровадження

Від моменту, коли ми зібрали вимоги до процесу (що саме треба запрограмувати), до моменту, коли ми розгорнули проект на продакшені і отримали зворотній зв'язок від клієнта та кінцевого користувача, проходити у середньому два-три місяці.

Такий короткий цикл дає можливість побачити кінцевий результат в стислі терміни. Тому ві досить швидко бачите результати своєї роботи та користь, яку ви принесли клієнту.

3. Можливість працювати з різними інструментами, бібліотеками, сервісами

Саме через те, що життєвий цикл імплементації одного бізнес-процесу короткий, ми можемо швидко переключатися на нові інструменти, працювати з різними платформами, бібліотеками, сервісами і т. д. Того розробник, котрий займається інтелектуальною автоматизацією, має можливість спробувати різні варіанти у своїй роботі. Деколі необхідно реалізувати складні алгоритми, деколі — прості. Частину роботи треба робити окремо під клієнта. У таких випадках доводитися писати кастомну логіку. Бізнес-логіка може описуватись певними алгоритмами чи правилами. Якщо це зробити складно, можуть допомогти алгоритми машинного навчання (Machine Learning). Для цього має бути історична інформація, яка показує, як ця логіка працює. Застосування машинного навчання — це теж певний челендж. Для цього треба проаналізувати/нормалізувати дані й натренувати алгоритми.

Так, на одному з проектів перед нами стояло завдання — автоматизувати розпізнавання відсканованих документів, які надійшли на поштову скриньку. В першу чергу треба було проаналізувати, чи є вкладення певного типу файлів (pdf, jpeg, тощо). Якщо так, ми вважали, що це документ, який треба розпізнати та обробити.

При розпізнаванні поставало три задачі. Перша — перевести зображення в текст (OCR). Часто якість документів була поганою. Багато з них були надіслані факсом, тому їх треба було підготувати до розпізнавання.

По-друге, потрібно було розпізнати тип документу. Причому, якщо зображення складаються з однієї сторінки і тут не було проблем, то pdf-файли могли містити 10-20 сторінок, кожна з яких могла бути іншим документом. Наприклад, там могли бути водійські права, резюме, сертифікати і т. д. Загалом більше 120 типів документів. Чимало з них не малі єдиного стандарту, для прикладу резюме чі звіти витраченого часу. Врешті-решт ми досягли 73% розпізнавання. На обробку кожного нового документа йшла хвилина.

Третя завдання — розпізнати, хто саме вказаний в документи. На кожному документи ім'я та прізвища були у різних місцях. Допомагало те, що у нас була база імен, які могли зустрічатися в тих документах. Але ми не знали, де саме у документах це шукати — іноді ім'я та прізвище стояли поруч, інколи було багато шумів після розпізнавання. В цій задачі ми досягли 93% розпізнавання імені і прізвища. Додатковим викликом було те, що текст в якому ми шукали імена — був неточно розпізнаний, і через це траплялися помилки. Як результат, ми були змушені використовувати алгоритми наближеної схожості слів. В цій задачі ми досягли результативності 93%.

Зараз у нас є проект для великої організації, яка використовує близько 25 систем, які треба інтегрувати. Кожна зі своїми нюансами та обмеженнями через вимоги безпеки. Тому є постійна можливість освоювати щось нове.

4. Робота з різними платформами/технологіями

Платформа обирається залежно від бізнес-моделі клієнта та тих рішень, які він вже використовує. Тобто ми, як розробникі, насамперед зосереджуємося на проблемі клієнта, яку треба вирішити. Вже потім переключаємося на вибір мови програмування і платформи. З професійної точки зору це цікавіше, адже дозволяє спробувати багато технологій з тих, що є на ринку зараз.

Зараз існує більше 15 платформ для інтелектуальної автоматизації. Ми працюємо з трьома — WorkFusion, UiPath та Karpow. При чому написані вони на різних мовах (наприклад, Java чі .NET). Наші розробникі мають можливість переключатися з однієї на другу без особливих ускладнень.

5. Технічні виклики

На проектах нам постійно доводиться вирішувати різного роду виклики. Вони пов'язані з тим, що вже використовує клієнт. Зокрема:

Зараз IA не обмежується простими завданнями автоматизації. Ця технологія часто поєднується з штучним інтелектом (АІ) і машинним навчанням (ML). Відповідно стає можливою автоматизація більш складних завдань за допомогою неструктурованих і напівструктурованих даних. Наприклад, обробка заробітної плати, управління ланцюгами постачання та інше.

6. Простота реалізації та масштабування

Система розумної автоматизації проста у використанні та реалізації, оскільки розрахована на використання її кінцевими користувачами. Простий інтерфейс із можливістю контролю процесу дає можливість проаналізувати, наскільки виконання процесу відповідає очікуванням. Чи допустима, якщо робочий процес не працює належний чином, можна негайно внести зміни та побачити, наскільки ефективно ці зміни впливають на кінцевий результат.

Як правило, IA розрахована на паралельне виконання, коли один і той самий процес може виконуватися одночасно на декількох машинах. Це робиться з метою швидшої видачі результатів. Саме тому у випадку, коли навантаження по кількості завдань збільшується, платформи з легкістю дозволяють наростити кількість машин для одночасного виконання процесів.

7. Заглиблення у бізнес клієнта: розуміння бізнес-логіки, розвиток комунікаційних навичок

Найчастіше український розробник, орієнтований на програмування, забуває про бізнес-проблему, яку він вирішує написанням програми. Часто людина працює над своїм модулем та навіть не знає, як продукт працюватиме в цілому. Заглиблення у ці процеси дозволить обирати ефективніші інструменти для виконання конкретної задачі.

У більшості випадків клієнт не розуміє, що саме йому потрібно. У нього є багато бізнес-процесів, що потребують автоматизації. І не завжди тієї процес, який він вибере першим на черзі, насправді є найбільшим важливим. Або ж клієнт може в принципі не знаті нюансів свого робочого процесу, адже бачить його тільки на вищому рівні.

Тому під час запровадження Intelligent Automation в компанії клієнта важливо разом з ним розібратися у всіх його процесах, пройтися по кожному кроку і задати запитання. Необхідно допомогти йому зрозуміти, автоматизація якого процесу принесе клієнту найбільшу вигоду. Ми заздалегідь можемо порахувати, скільки часу в компанії людина або кілька людей витрачають на певну роботу, скільки часу потребує імплементація платформи та скільки коштує ліцензія. Як результат, можемо розрахувати, через скільки часу окупитися імплементація того чи іншого процесу. Але для цього всього потрібно добре розібратися із загальною бізнес-логікою та прокачати свої комунікаційні навички для продуктивного спілкування із клієнтом.

8. Твої пропозиції та рекомендації мають значення для замовника

Цей пункт логічно виходить з попередньою. Так, можна сказати, що в будь-якій технології можна вносити свої пропозиції та рекомендації. Альо самє у впроваджені ІА мі клієнта «ведемо за руку», і кожна наша пропозиція буде мати вплив на бізнес кастомера. Замовник не знає, яку технологію впроваджувати. Він тільки хоче побачити результат — збережені гроші з найменшими витратами та в найкоротші терміни.

9. Жвавий інтерес з боку нових і старих клієнтів

Практика Intelligent Automation у львівському офісі В EPAM за два роки зростала з 0 до 27 спеціалістів. Retail, Travel, Finance, Healthcare — це далеко не повний перелік, де можна застосовувати розумну автоматизацію. Наразі ми співпрацюємо з шістьма замовниками у різних сферах і за цей час ми зекономили їм мільйони доларів. Як нові, так і старі клієнти, які дізнаються про новий напрямок, виявляють зацікавлення спробувати його в себе.

Клієнт отримує такі переваги після впровадження Intelligent Automation:

10. Ті, що ти робиш, змінює бізнес клієнта, і ти це відчуваєш у реальному часі

Ти не просто пишеш абстрактний код, а відчуваєш, як результати твого девелопменту впливають на роботу компаній. Ми бачимо, як цей функціонал полегшує роботу людей і робить їх роботу ефективнішою та змістовнішою. Люди з рутинних завдань (прості оператори, адміністратори) можуть переключитися на більш інтелектуальні завдання. Як наслідок, ми генеруємо додатковий прибуток бізнесу. І всі ці речі, які я описавши, ми можемо бачіті за достатня короткий термін.

З чого почати

Для тих, хто також вирішить спробувати ІА, рекомендую звернути увагу на такі ресурси, які зібрав для початківців. Спробував сформувати список безкоштовних тренінгів, проте також подавши декілька корисних платних варіантів:

Заради справедливості, скажу декілька слів, кому ІА може бути менш цікавим:

Висновок

На світовому ринку, і в Україні зокрема, не так багато компаній та людей, які зараз працюють з ІА. Попит на таких фахівців набагато більший, ніж може запропонувати ринок. І якщо ви думаєте про зміну напрямку в рамках девелопменту, Intelligent Automation, як на мене, — дуже практичний вибір.

Опубліковано: 22/03/19 @ 11:00
Розділ Різне

Рекомендуємо:

DOU Labs: Infopulse створили Standards Compliance Manager – додаток для дотримання стандартів
Програмування без негативу: як виконувати поточну роботу й зберігати спокій
DOU Проектор: ReSell – безпечна купівля та продаж вживаної електроніки
Як просувати сайт послуг на західному ринку: 5 методів
Як визначити і оцінити цінність розроблюваного ПО