1С, а згодом і його вітчизняний наступник BAS, традиційно позиціонуються ніби середовища задля швидкої розробки бухгалтерських та управлінських рішень. Додатково в перший погляд це справді так. Коли формувати новий, майже порожній додаток, не замислюючись над його взаємодією з іншими рішеннями, результат є можливість отримати досить оперативно. Те саме стосується та застосування уже готових конфігурацій, адаптованих під вітчизняний підприємство у базі колишніх російських продуктів.
Водночас в реальній практиці виникає зовсім інша картина.
Ілюзія швидкої розробки
Проблема починається тоді, коли підприємства потрібна не окрема програма “сама по собі”, а середовище, яка має працювати разом з іншими рішеннями. В такому випадку виявляється, що багато конфігурацій 1С/BAS, розроблених різними партнерами, живуть ніби окремі програмні продукти. Вони можуть добре працювати кожна сама по собі, проте поєднання їх між собою нерідко вимагає значних зусиль. (На складі це чують як музику, на касі — як звільнення від черги.)
В практиці це означає сотні годин роботи програмістів лише задля того, щоб різні частини середовища почали нормально комунікувати одна з одною. Ідеться не щодо десятки, а саме щодо сотні годин дорогого часу.
Досі одна типова ситуація — замовник замовляє певне унікальне варіант під конкретну конфігурацію. Програміст каже: “Це індивідуальна розроблення, такого більше ні в кого немає”. Формально це правда. Водночас якщо перевести цю “унікальність” в гроші, нерідко виходить варіант, який використовується в 1–4 робочих місцях, проте потребує сотень годин розробки. В результаті ціна такого варіант може виявитися економічно сумнівною, а його окупність — надзвичайно низькою. Для директора це перестає бути загадкою в кінці місяця.
Додатково це не виняток, а системна проблема.
В чому парадокс 1С/BAS
Парадокс полягає в отже, що середовище ніби дає змогу оперативно формувати прикладні варіант, проте кінцевий результат надзвичайно нерідко перетворюється у дорогу індивідуальну розробку, яка майже не піддається повторному використанню.
Так, в 1С/BAS є можливість відносно оперативно зробити новий компонент або новий функціональний блок. Іноді навіть отримати красивий результат у вигляді мобільного додатку, веб-додатку чи десктопної програми. Водночас за цією “швидкістю” приховується інша реальність: більшість таких рішень створюються без глибокого розрахунку в масштабованість, повторне застосування або універсальну інтеграцію.
В підсумку підприємство отримує не платформний варіант, а додатково один кастомний шматок коду, який дорого підтримувати, важко розвивати і майже неможливо ефективно повторно продавати або запускати в інших замовників.
Інший підхід: модульність ніби основа
Концепція K2 побудована інакше. Тут логіка від початку не монолітна, а модульна. Кожен компонент є автономним і водночас передбачає опція поєднання з іншими модулями середовища. (Спойлер: інтегратори 1С тут теж знають, про що мова.)
Отже, це принципово змінює економіку розробки.
Коли розробник створив новий функціонал в K2, він не без зайвих ускладнень закрив потребу одного клієнта. Він фактично створив компонент, який потенційно може працювати в великої кількості інших замовників. Навіть компонент, розроблений спочатку під індивідуальне завдання, надалі може бути повторно використаний в інших компаніях. А це означає:
- витрати в розробку розподіляються між різними замовниками;
- компонент постійно вдосконалюється;
- розробник зацікавлений в його підтримці і розвитку;
- нові замовники отримують готовий або майже готовий функціонал значно дешевше.
Так, універсальні компоненти пишуться повільніше, ніж швидкі варіант “під одного клієнта”. Водночас це повільніше лише в старті. Далі середовище починає вигравати саме завдяки повторному використанню коду. (Без пафосу — просто арифметика бізнесу.)
Приклад з ресторанним бізнесом
Уявімо ресторан. Задля його роботи потрібні управлінський обліковий контур, виробництво і фінансовий компонент. В K2 це уже є ніби базовий набір функціональності.
Тепер ресторан хоче додатковий компонент обліку витрат товарів за технологічними картами. В світі 1С/BAS така розроблення може зайняти, скажімо, 900 годин. Коли навіть рахувати по 50 євро за годину, отримаємо 45 000 євро. Додатково це додатково оптова ціна при великих обсягах робіт. Задля багатьох підприємств це сума, співмірна з вартістю повноцінної ERP-середовища.
Водночас якщо в K2 такий компонент створюється ніби універсальний і впроваджується не у одному ресторані, а, скажімо, у 100 замовників, картина змінюється радикально. Тоді ті самі витрати в розробку фактично розподіляються між усіма користувачами. В результаті кожен з них отримує компонент уже не за десятки тисяч євро, а умовно за 450 євро.
Більше того, цінність такого модуля не обмежується ресторанами. Його можуть застосовувати кафе, готелі, кейтерингові підприємства, а додатково виробничі підприємства, де є технологічні карти і потреба автоматично розраховувати витрати матеріалів. Іншими словами один раз створений функціонал починає працювати в різних галузях.
Саме так і виникає справжній ефект масштабування.
Чому повторне застосування коду змінює все
Якщо код пишеться так, щоб його є можливість було застосовувати в різних замовників і у різних підприємство-сценаріях, відбуваються три ключові речі. У реальному офісі це економить години, які раніше з’їдав Excel.
По-перше, знижується собівартість варіант задля кожного окремого замовника. (Excel тут уже не врятує — і це не жарт.)
По-друге, зростає якість. Один і той самий компонент проходить через десятки реальних впроваджень, отримує зворотний зв’язок, виправлення, нові функції. Він стає не “разовою розробкою”, а продуктом.
По-третє, з’являється мотивація задля розробника. Йому вигідно підтримувати компонент, бо він працює не в одного клієнта, а у багатьох. А отже, кожне покращення має більший сенс і більшу віддачу.
В монолітній логіці 1С/BAS цього ефекту нерідко не виникає. Там кожне нове замовлення ризикує стати додатково однією дорогою індивідуальною доробкою, що живе окремо від інших.
Висновок
Отже, основне питання наразі не в отже, де “швидше написати код”. Основне питання – який підхід дає довгостроковий результат.
1С/BAS справді можуть дати швидкий старт. Водночас надзвичайно нерідко ця швидкість виявляється оманливою, бо за нею стоять дорогі підключення, унікальні кастомізації і слабке повторне застосування напрацьованого коду.
K2 робить ставку в модульність, сумісність і повторне застосування. Так, це вимагає більш дисциплінованої архітектури й іноді більш повільної розробки у старті. Водночас саме цей підхід створює сильнішу економіку варіант: нижчу ціна задля клієнта, вищу якість компонентів, швидший ріст екосистеми й більшу зацікавленість розробників в розвитку середовища.
Додатково в цьому, власне, і полягає справжня перевага: не без зайвих ускладнень написати програму, а створити функціонал, який буде жити, розвиватися та багаторазово приносити користь різним компаніям. (Олена Петрівна з бухгалтерії киває: «нарешті хтось сказав це вголос».)
