Автор: Рудюк С.А. 2023. K2 Cloud ERP
Мої виступи часто перевантажені технічними термінами, тому мені рекомендують говорити простіше. Людям зрозуміліше слухати щось звичне, щось на кшталт: «зекономить гроші та інвестиції», «дозволить працювати на будь-якому обладнанні», «збільшить керованість процесами», «зменшить витрати», «дозволить зменшити кількість людей у процесах», «прискорить випуск продукції». Все тому, що ці тези зрозумілі керівникам більшості підприємств, які ухвалюють рішення.
Проте в моїх виступах все ще часто вживаються технічні терміни, що відрізняє нашу компанію від інших, які часто говорять загально про «хороше», але без конкретики та причинно-наслідкових зв’язків.
Технології важливі, оскільки їх впровадження може вимагати повного перероблення продукту, зміни мови програмування та додаткової освіти персоналу в IT-компанії. До прикладу, відсутність певних технологій може призвести до обмежень у виборі операційної системи, вимушеного придбання дорогих ліцензій чи неможливості використання новітніх технологій.
Протягом 30 років моєї кар’єри я мав безпосереднє відношення до еволюції продуктів на ринку, вивчав нові технології та перероблював продукти відповідно. Це необхідно, оскільки компанії, які не адаптуються до нових технологій, зазвичай зникають з ринку. У цій статті я розгляну технології та їх важливість для клієнтів.
Технології та можливості
Гібридна Saas
Програмні засоби постійно еволюціонують, змушуючи розробників вивчати нові технології та переписувати код. Цей процес триває десятиліттями, починаючи з роботи в DOS та з мовами програмування, таких як Clipper, Fortran та Pascal. З’явилися графічні інтерфейси, такі як Delphi та Visual Basic. З розвитком Інтернету стали потрібні вебдодатки; використання HTML та CSS згодом призвело до появи JavaScript та PHP.
Для роботи на різних пристроях з’явилися кросплатформні мови, такі як Java. Розширення вимог призвело до створення React, Vue, Typescript та інших технологій. З’явився Node.js для бекенду на JavaScript. З популярністю мобільних пристроїв виникла необхідність для кросплатформної розробки.
Розробники шукали способи використовувати код для різних операційних систем, що призвело до створення кросплатформних мов програмування. Перехід від локальних додатків до вебзастосунків супроводжувався зростанням потужності комп’ютерів та виникненням графічних інтерфейсів. З розвитком Інтернету виникли нові вимоги, зокрема щодо безпеки. Цей процес еволюції інформаційних технологій триває й нині, вже з новими технологіями, такими як JavaScript, що використовуються для підтримки браузерів і вебдодатків.
Використання смартфонів та мобільних додатків набуло широкого вжитку, адже може працювати без встановлення додаткового програмного забезпечення. Системи, відомі як SaaS, функціонують на серверах в Інтернеті; часто користувачі не мають інформації про їх місцеперебування та контроль за ними. Це може створювати ризики для зберігання інформації, особливо в разі припинення діяльності компанії-постачальника SaaS, що може призвести до серйозних втрат для користувачів і ринку в цілому.
Хоча SaaS зручне для користувачів, великі компанії, що залежать від власників серверів SaaS, розглядають альтернативи, оскільки це може призвести до великих втрат при зникненні постачальників SaaS. Деякі компанії розглядають використання застарілих технологій для встановлення програмного забезпечення на своїх серверах; попри те, що це може бути кроком назад, одночасно це дозволяє зменшити ризики витоку інформації та виникнення інших проблем.
Разом з тим, ринок вимагає інновацій та безпеки, саме тому створюються гібридні SaaS-системи, які можуть працювати як хмарні рішення й одночасно виконуватися на серверах клієнтів. У системі K2 Cloud ERP передбачено автоматичне оновлення, що зменшує вплив людського фактора та вартість оновлень.
Кросплатформність
Сучасне користування пристроями, такими як смартфони, планшети та ноутбуки, стало нашою щоденною нормою, й ми рідко звертаємо увагу на операційну систему, що працює на них. Нам видається звичним, що програма, яка добре функціонує на одному пристрої, автоматично буде гарно працювати на всіх інших. Однак це не завжди так через різноманітність операційних систем і програмних засобів.
Сучасні пристрої можуть використовувати операційні системи від різних виробників, таких як Windows, MacOS, Linux, Android та iOS. Кожна з них має свої властивості та системи програмування. Це може призводити до ситуацій, коли програма, розроблена для однієї операційної системи, несумісна з іншими.
Відповідно, багато компаній розробляють свої рішення для кожної операційної системи окремо, що призводить до зайвих витрат і проблем підтримки. Для розв’язання цього питання деякі розробники шукають способи створення кросплатформних додатків, які можуть працювати на різних операційних системах, але це вимагає значних зусиль й іноді – перепрограмування.
У системі K2 Cloud ERP ми вирішили виправити цю ситуацію, перейшовши на кросплатформні мови програмування, такі як Python та PHP. Це дозволяє нашим клієнтам легко користуватись нашими рішеннями на різних пристроях та операційних системах, забезпечуючи їм зручність та доступність.
Модульність
У світі існує безліч бізнесів, систем та розробників. Проте, коли системи ростуть й знаходять застосування у різних галузях бізнесу, ними стає складно керувати через надмірну універсальність. Функціонал, створений для одного сегмента ринку, може виявитися зайвим для інших напрямків.
Модульність систем дозволяє розбити рішення на компоненти, які можна комбінувати в різних варіаціях, створюючи при цьому необхідне рішення для конкретного бізнесу. Це спрощує управління кодом, оскільки програмний код модулів є меншим і більш зрозумілим для розробників. Такий підхід дозволяє окремим модулям підтримувати певних програмістів, не впливаючи на роботу інших.
Модульність є ключовою характеристикою для ефективної роботи великих універсальних рішень, які адаптуються під потреби різних клієнтів і галузей. K2 Cloud ERP містить десятки модулів, які комбінуються, для створення різноманітного функціонала для різних клієнтів. Ці модулі можуть розвиватися, оновлюватися та поєднуватися із новими модулями, що розробляються програмістами з різних куточків світу.
Інтегрованість рішень
Існує багато програмних рішень, які розробляють програмісти. Результатом довготривалої роботи над різними завданнями є унікальні рішення з розширеним функціоналом. Реалізація подібних проєктів вимагає значних зусиль та фінансових витрат. У таких випадках зручніше не створювати нове рішення з нуля, а використовувати вже наявні рішення, дозволяючи їм виконувати специфічні завдання найкращим чином.
Багато програмних засобів не надають можливості для ефективної інтеграції з іншими інструментами. Часто доступ до програмного коду обмежений, що ускладнює внесення змін без участі розробника.
Розробники часто уникають інтеграції через відсутність часу чи бажання. В результаті клієнти отримують різні програмні рішення, які можуть працювати ефективно, але в ізоляції, створюючи проблеми для користувачів.
K2 Cloud ERP розрахований на інтеграцію з різноманітними сервісами та ERP-системами. Навіть якщо не існує потрібної інтеграції, будь-хто може розробити модулі для неї й розповсюдити через маркетплейс системи K2 Cloud ERP. Відкритий програмний код і структура бази даних забезпечують зручність розуміння для програмістів та легкість інтеграції зі стандартними модулями системи.
Відкрита архітектура
Програмні продукти можуть використовувати різні формати та бази даних, тому рішення щодо запису та форматування даних залишається на розсуд розробників. Часто це веде до створення власних форматів зберігання, що може ускладнювати відкритість та взаємодію з іншими програмними рішеннями.
Стандарт SQL92 прийнятий на ринку як загальноприйнятий стандарт для систем управління базами даних. Він дозволяє різним програмам працювати з однією базою даних, забезпечуючи взаємодоповнення. Однак навіть при дотриманні SQL-стандартів іноді зустрічаються випадки, коли зрозумілість структур та даних порушується.
Прикладом таких викликів є системи 1С та BAS, які використовують незрозумілі для людини формати зберігання даних. Це ускладнює роботу та знижує ефективність написання SQL-запитів, обмежуючи можливість використання індексів та створюючи навантаження на сервер бази даних.
К2 Cloud ERP успішно розв’язує ці питання завдяки стандартизованій структурі бази даних. Поля та таблиці мають англійські назви з українськими коментарями, а зв’язки між таблицями дозволяють проводити успішний реверс-інжиніринг. Крім того, для зручності розроблено схеми баз даних з логічними та фізичними моделями.
Open Source
Комп’ютери працюють мовою, яка незрозуміла та незручна для людини. Тому виникли мови програмування, які дозволяють писати зрозумілі для людини програми. З цих мов системи перетворюють програми в машинний код, що створює програмне рішення для комп’ютера. Однак існує проблема розмежування частини, зрозумілої для людини, та частини, зрозумілої для комп’ютера, що ускладнює зміни у програмному коді для клієнтів.
Багато компаній постають перед труднощами управління закритим програмним кодом, а саме у тих випадках, коли розробники обмежують доступ до змін для інших. Відкритий програмний код, який передає похідні коди, розв’язує ці питання, дозволяючи програмістам вносити зміни, навіть якщо оригінальні розробники не можуть або не хочуть цього робити.
K2 Cloud ERP – це система з відкритим програмним кодом, що зберігає інвестиції клієнтів та дозволяє розширювати та інтегрувати систему стороннім програмістам.
Api
При роботі в режимі SaaS у партнерів немає доступу до похідних кодів, але для інтеграції та обміну інформацією вони використовують Api – набір команд для спілкування з іншими сервісами. Це необхідно для обміну даними та роботи мобільних додатків, які використовують вебсистему.
Нереалізація Api є поширеною проблемою, яка перешкоджає інтеграції сервісів та призводить до ручного виконання багатьох операцій клієнтами. На відмінну від цього, K2 Cloud ERP пропонує Api в різних модулях, яке розвивається з часом відповідно до потреб клієнтів, забезпечуючи можливість ефективного спілкування навіть без доступу до похідного коду системи.
Свобода платформи розробки
Під час повномасштабної війни в Україні виникають питання щодо власності над системою 1С, і відповідь стає очевидною: вона належить агресору.
У випадку написання програм для 1С та створення продукту, важливо розуміти, що цей продукт не може функціонувати без 1С, яка є системою програмування. Змінити чи перейменувати 1С можливо лише тоді, коли ви хочете створити щось альтернативне на її основі.
Інші засоби програмування не можуть взаємодіяти з конфігураціями 1С, тому що вона має зашифровану структуру. Таким чином, використовуючи або створюючи конфігурації на 1С, ви не маєте власного продукту, а лише маєте рішення, яке базується на цій платформі. Отже, відповідно до міжнародного законодавства, ви обов’язково повинні сплачувати автору за використання цього продукту.
Така ситуація не є унікальною, інші приклади включають Microsoft Access, Oracle тощо.
У випадку K2 Cloud ERP, який створений на основі Python, мові програмування, створеної для комерційних цілей, подібних обмежень не існує, що дозволяє використовувати продукт для комерційних потреб.
Дашборди, звіти та BI аналітика
Під час роботи на виробництві важливо мати доступ до актуальної інформації; це можливо завдяки дашбордам. Дашборд – це зручний інструмент, що демонструє основні показники на одному екрані, сприяючи оперативному прийняттю рішень керівниками. Однак, якщо в програмному продукті відсутня можливість створення дашбордів, існує ряд ефективних альтернатив.
BI аналітика, PivotGrid, куби і OLAP – це терміни, що вказують на потужні аналітичні інструменти. З їх допомогою аналітики можуть створювати звіти, які дають можливість аналізувати ситуацію з різних позицій майже миттєво. Людина може легко оцінити інформацію, визначити проблеми та розробити стратегію покращення показників.
Багато підприємств використовують друковані звіти, які необхідно експортувати у різні формати та періодично змінювати відповідно до вимог законодавства або бізнес-потреб. Програмні продукти не завжди надають можливість створення друкованих звітів без участі програмістів, і це може викликати труднощі для користувачів.
У продукті K2 Cloud ERP ви отримуєте можливість формувати друковані звіти графічним дизайнером, доступним як програмістам, так і користувачам. Плюс потужні PivotGrid для зручного аналізу даних та BI-модуль для створення і відображення дашбордів. Такий підхід забезпечує зручність, ефективність та можливість оперативного аналізу усієї необхідної інформації.
Адаптивний дизайн
Сучасне робоче середовище диктує використання різних пристроїв, таких як комп’ютери, ноутбуки, планшети та смартфони, з різними розмірами екранів та характеристиками. Забезпечення зручності роботи вимагає адаптивності програм, яка дозволяє їм підлаштовуватися під фізичні можливості користувача та розміри його пристрою.
Сучасні вебдодатки вже враховують адаптивність як стандарт, однак деякі програми все ще можуть застосовуватися лише для конкретних розмірів екрана.
Особливо важливою адаптивність стає при роботі на мобільних пристроях, таких як смартфони, ТЗД та планшети. Додатки для цих пристроїв повинні модифікувати свій інтерфейс для зручного використання.
K2 Cloud ERP вирізняється адаптивним дизайном, що дозволяє користувачам працювати з системою на будь-якому пристрої, включаючи ноутбуки, ТЗД і смартфони, без необхідності додаткових налаштувань чи перепрограмування.
Ліцензійність та бази даних
Часто у процесі розробки додатків розробники мають можливість вибирати тип бази даних та методи взаємодії з даними. Деякі вибирають платні рішення, попри те, що це може призвести до додаткових витрат для користувачів. Причини такого вибору можуть бути різними, включаючи отримання додаткових прибутків від продажу ліцензій або використання неліцензійних версій програм.
Вартість ліцензії на платні бази може сягати 20-25 тисяч доларів за сервер.
При розробці наших продуктів ми обрали безкоштовні бази даних, такі як Postgresql, MySQL, Sqlite. Postgresql, яка є однією з найпотужніших баз даних у світі, дозволяє використовувати її для комерційних цілей без сплати авторських винагород.
Локалізація
Локалізація включає переклад програмного продукту на різні мови та охоплює не лише інтерфейс, але й можливість перекладу інформації в базі даних. Цей процес вимагає уваги до нюансів мови, таких як стандарти дат, валют, написання слів тощо.
Для транснаціональних компаній локалізація стає ключовою, адже дозволяє працювати з різними мовами країн, де вони присутні. Багато продуктів обмежені однією мовою.
K2 Cloud ERP надає можливість використовувати три мови програмування «з коробки”: українську, англійську та польську. Система також дозволяє перекладати дані на рівні бази даних, і механізми перекладу постійно вдосконалюються, автоматизуючи цей процес і зменшуючи потребу у ручній роботі.
Для клієнта локалізація стає можливістю масштабування та виходу на міжнародні ринки, а також підтримки взаємодії з аудиторією, яка не володіє українською мовою.
Популярність мов програмування
За 30 років мого досвіду в програмуванні я вивчив різноманітні мови програмування, спостерігаючи за їхньою еволюцією внаслідок технологічного прогресу.
На початку я розробляв програмні продукти на Clipper, а згодом перейшов на Delphi (Pascal) і Basic. Поступово вибір став на користь PHP і Python.
Проте, якщо зараз я вирішив би продавати продукти, написані на Clipper, шанси знайти спеціалістів, що володіють цією мовою, були б дуже незначними. Однак такі рішення все ще використовуються на деяких підприємствах.
В разі продажі рішень на Delphi виявилось, що популярність цієї мови обмежена, а знайти кваліфікованого Delphi-програміста складно через труднощі у середі розробки та конфігурацію.
Для клієнта відсутність кваліфікованих фахівців для підтримки рішення стає серйозною проблемою, оскільки може виникнути ситуація, коли рішення існує, але відсутній програміст для його підтримки.
Вибір мов програмування в K2 Cloud ERP зупинився на Python та PHP – відомі та широко використовувані мови, що забезпечують широкий пул програмістів для підтримки, розширення та інтеграції рішень з іншими системами.
SQL, YML та інші стандартні мови програмування (або розмітки)
Дотримання стандартів грає ключову роль, спрощуючи інтеграцію систем від різних розробників. Захопленням стандартів, таких як SQL для мови запитів чи YML та XML для обміну даними, можна значно зменшити труднощі в комунікації між системами.
SQL, як стандартна мова запитів, призначена для роботи з базами даних. У K2 Cloud ERP SQL-запит, написаний один раз, можна використовувати в інших інструментах та економити час та ресурси.
YML, а також різні варіації XML, розширюють можливості збереження та обміну даними між системами, що дозволяє використовувати стандартні рішення для різноманітних платформ.
Важливо враховувати, що не всі системи слідкують за стандартами, що може створювати витрати часу та ресурсів на «винаходження велосипеда» при кожній взаємодії з партнерами. Це не лише труднощі для розробників, але й значні витрати для клієнтів через відсутність стандартизації рішень.
Маркетплейс
Багато систем не враховують модульність, і ще менше дозволяють стороннім програмістам приєднуватися до розробки, писати модулі та отримувати з цього прибуток. Майже відсутні системи із власним маркетплейсом, який надає клієнтам доступ до різноманітних продуктів та їхніх оновлень.
K2 Cloud ERP різняться в цьому плані – у нас є власний Маркетплейс. Це забезпечує можливість спільного розвитку продуктів для розробників з усього світу, додавання модулів та надання рішень та послуг у різних країнах.
Маркетплейс для клієнтів – це великий вибір продуктів, здатність ефективно розпоряджатися бюджетом та підвищення стабільності рішень за допомогою купівлі та використання модулів, які вже пройшли тестування та використовуються тисячами користувачів.
Різні види додатків
Різні види додатків (мобільні, веб, термінальні) та їх різні формати стають проблемою при автоматизації бізнесу, оскільки багато систем не можуть працювати в усіх цих форматах. Клієнт може почати з програми для ПК, але, хоче використовувати термінали збору даних або створити веб-сайт для обслуговування клієнтів. На жаль, багато систем не готові до такого роду змін.
K2 Cloud ERP вирішує цю проблему, оскільки вона універсальна і може працювати як API, сервіс, веб-додаток, мобільний додаток для Android та IOS, термінальне рішення і навіть може виводити 3D або 2D-графіку. Ця універсальність дозволяє використовувати рішення в різних сценаріях без необхідності використання окремих систем та спрощує комунікацію між різними групами розробників.
Логування змін
В системах з великою кількістю користувачів необхідно точно відслідковувати зміни в інформації, тому важливо використовувати ефективну систему логування змін. Багато систем обмежуються простим фіксуванням подій, не надаючи докладної інформації про самі зміни. Це може ускладнювати аналіз процесів змін та розуміння мети внесених змін.
В K2 Cloud ERP використовується система логування змін на рівні бази даних Postgresql за допомогою тригерів у конструкторі таблиць. Це дозволяє фіксувати всі зміни в базі даних, незалежно від того, чи вони виконані в K2 Cloud ERP, чи через сторонні інструментальні засоби. Такий підхід дозволяє не тільки відслідковувати події, але й знаходити конкретні змінені дані та відмічати транзакції.
Секціонування, резервне копіюванні та інші питання великих баз даних
Бази даних мають свої обмеження, і їм не завжди можна довіряти всі аспекти оптимізації та роботи з великими обсягами даних. SQL-запити, основне завдання яких – отримання даних у необхідному порядку, не завжди ефективно працюють з великими таблицями, що може призводити до сповільнення роботи баз даних.
Розробники баз даних постійно шукають способи прискорення роботи систем. Секціонування (парціювання) даних виявляється одним із способів оптимізації. Цей механізм дозволяє розбити великі таблиці на менші за певним полем, наприклад, датою, що робить роботу з інформацією більш ефективною та зменшує навантаження на сервер.
Секціонування – потужний інструмент, проте різні бази даних можуть мати різні реалізації цього механізму, що ускладнює його використання. Багато систем управління базами даних не використовують його через відсутність розуміння розробниками його реалізації.
У системі K2 Cloud ERP використовується автоматизований конструктор таблиць для реалізації секціонування на рівні бази даних. Це дозволяє автоматизувати процес і знімає вплив людського фактора, роблячи його простим та ефективним.
Збереження інвестицій та система оновлень
Технологічний прогрес неперервно розвивається, призводячи до постійних змін в операційних системах, браузерах та вимогах до програм. Оновлення систем є критичним, оскільки нові технологічні стандарти та безпекові вимоги можуть призвести до непрацездатності застосунків через деякий час.
Ситуації, де репозитарії вимагають оновлення додатків через безпекові обмеження чи зміну політики платформи, не є винятком. Прикладами такого розвитку подій є витіснення модулів Flash або оновлення додатків в магазинах додатків.
Оновлення є невід’ємною частиною життєвого циклу програмних засобів. Вони гарантують не лише сумісність з новими технологіями, а й зберігають інвестиції користувачів. Система K2 Cloud ERP включає ефективний механізм оновлень, дозволяючи користувачам самостійно чи автоматично оновлювати всі встановлені додатки. Це забезпечує збереження інвестицій та впровадження інновацій у відповідь на сучасні вимоги.
Штучний інтелект
Завдяки прогресу у галузі автоматизації, раніше важко було уявити алгоритми, які можна було б автоматизувати без участі людей. Проте із розвитком технологій та штучного інтелекту комп’ютерні програми вчаться «думати» аналогічно людині. Тепер вони можуть створювати тексти, писати програми, передавати корисну інформацію, а навіть створювати картини та відео, що раніше вимагало багато людських зусиль.
Штучний інтелект також активно впроваджується в різні роботи, дозволяючи автоматизувати завдання, які традиційно виконувалися людьми. Використання штучного інтелекту може значно прискорити певні процеси в десятки разів, і це стає необхідністю в сучасному світі.
В системі K2 Cloud ERP ми активно впроваджуємо штучний інтелект, що призводить до значного прискорення робочих процесів для нас та наших клієнтів.
Кастомізація
Кожен вебсайт має своє унікальне оформлення, включаючи різні кольори, дизайни та брендбуки. Ця різноманітність вимагає вебсистеми змінювати свій зовнішній вигляд відповідно до вимог кожного клієнта.
Зміни в дизайні можуть торкатися не лише загальних аспектів, але й конкретних компонентів, форм та таблиць, які відображаються у вебдодатку.
Однак не всі додатки здатні легко адаптуватися до нового зовнішнього вигляду.
K2 Cloud ERP надає користувачам можливість змінювати дизайн додатка, модифікувати зовнішній вигляд компонентів та навіть змінювати алгоритми в компонентах. Іноді ви можете навіть замінити компоненту чи модуль на ті, які відповідають потребам клієнта.
Хто власник системи?
В результаті російської агресії в Україні та з урахуванням поширеної використання російських програмних продуктів стало очевидним, що країна втрачає технології та кошти, стаючи залежною від іншої держави. Зокрема, 90% ринку використовував програмне забезпечення російського походження, ставлячи під загрозу безпеку та технологічну автономію.
У сучасності Україна також залежить від інших країн, зокрема від США, через використання широко розповсюджених продуктів, таких як Windows, Microsoft Office та Microsoft SQL Server. Це вимагає великих витрат на ліцензії або може призвести до порушення законів та санкцій. Крім того, це створює ризики щодо безпеки через нелегальне використання «кряків».
K2 Cloud ERP є повністю українським продуктом, побудованим на вільних технологіях для комерційного використання. Це сприяє економіці України і робить її незалежною. Наші технології дозволяють створювати ліцензійно-чисті рішення, сумісні з різними операційними системами, зберігаючи законність та безпеку. Ми активно розвиваємо та поширюємо ці технології для забезпечення незалежності та захищеності.
Висновки
Технології визначають успіх, масштабованість, збереженість інвестицій і здатність працювати з великими даними та різними пристроями. Нерідко компанії упускають з уваги важливість технологічності, так як клієнти можуть не розрізняти різницю між технологіями. В результаті вони обирають не те, що є більш досконалим і потужним, а те, що є більш зрозумілим.
Багато систем мають схожі характеристики, такі як «збереженість інвестицій», «збільшення виробництва», «пришвидшення швидкості» та «зменшення витрат». Ці загальні фрази описують будь-яку систему автоматизації, не вказуючи на технологічний рівень рішення. Як в такому випадку визначити найбільш підхожу систему, якщо її технологічний рівень не висвітлюється та не пояснюється?
Правильно вибирати систему можна тільки тоді, коли технології чітко демонструються, активно обговорюються і пояснюються, оскільки це є ключем до прогресу та інновацій.