کم کد و بدون کد چیست و چرا باید به آن توجه داشته باشیم
اخیراً اطلاعات زیادی درمورد پلتفرمهای کمکد (Low-Code) و بدونکد یا بیکد (No-Code) منتشر شده است. وعدهی پلتفرم بدون کد این است که توسعهی نرمافزار را مثل روش کار کردن با برنامههای ورد یا پاورپویت، آسان میکند تا حتی کاربران عادی بتوانند پروژههای مورد نیاز خود را بدون صرف هزینههای اضافه (از نظر مالی و زمانی) و بدون نیاز به تیم مهندسی پیادهسازی کنند. پلتفرمهای کمکد برخلاف پلتفرمهای بدونکد، همچنان به مهارتهای کدنویسی نیاز دارند، اما این سیستمها وعده دادهاند توسعهدهندگان با امکان اجرای کدهای از پیش نوشتهشده، زمان و هزینهی کمتری برای پیادهسازی پروژههای خود صرف خواهند کرد.
براساس اعلام گارتنر، تا سال ۲۰۲۴ حدود ۶۵ درصد از برنامهها با بهره گرفتن از کدهای از پیش آماده، توسعه داده خواهند شد.
به گزارش ونچربیت، در سال ۲۰۱۷ یک آزمایش معیار مقایسهای بهرهوری، بین روش توسعهی سنتی (با استفاده از زبان برنامهنویسی جاوا) و یک پروژهی توسعهی کمکد یا بدونکد مبتنی بر مدل نشان داد که بهرهوری روش کمکد و بدونکد بهترتیب پنج و هفت برابر بیشتر بوده است. علاوهبراین براساس نتایج نظرسنجی No-Code Census در سال ۲۰۲۰، مشخص شده است که استفاده از پلتفرمهای بدونکد یا کمکد نسبت به روشهای سنتی برنامهنویسی، بهرهوری را تا ۴٫۶ برابر افزایش میدهد.
کم کد و بدون کد: یک بازار پراکنده
چشمانداز کمکد یا بدونکد با ارائهی راهکارها، پلتفرمها و بازارهای فرعی متعدد، کمی پیچیده است. بهعنوان مثال، برخی بازارهای فرعی وجود دارد که شرکتهای بزرگ، مشاغل متوسط و مشاغل کوچک را هدف قرار میدهد. پلتفرمهای کمکد و بدونکد سازمانی، قابلیتهایی مثل مقیاسپذیری، عملکرد، امنیت و یکپارچگی زیاد با برنامههای کاربردی سازمانی ارائه میدهند و هزینهی استفاده از این نوع پلتفرمها معمولاً بیشتر است. در ادامه بخشی از توضیحات گارتنر را درمورد پلتفرمهای کمکد سازمانی مرور میکنیم. گارتنر، پلتفرم اپلیکیشن کمکد (LCAP) را اینگونه توصیف میکند:
پلتفرم برنامهای که با استفاده از انتزاعات برنامهنویسی سطح بالا مثل زبانهای برنامهنویسی مبتنی بر مدل و مبتنی بر فراداده، از توسعهی سریع نرمافزارها، استقرار یک مرحلهای، اجرا و مدیریت پشتیبانی میکند.
G2 یک نمای کلی از چشمانداز مشابه را برای مشاغل کوچک ارائه میدهد. تلاقیهای زیادی بین پلتفرمهای کمکد کسبوکارهای کوچک و سازمانی وجود ندارد. برخی از فروشندگان پلتفرمهای کسبوکارهای کوچک بین شرکتهای مختلف خیلی شناخته شده نیستند. بهطور مشابه، مشاغل کوچک و متوسط معمولاً به دلیل قیمت بالا و پیچیدگی پلتفرمهای سازمانی، تمایلی به خرید این نوع سیستمها ندارند.
جای تعجب نیست که بسیاری از پلتفرمهای کمکد، بهعنوان سیستمهای مدیریت فرایند کسبوکار مورد استفاده قرار میگیرند. BPM از مدتها قبل از توسعهی مبتنی بر مدل (MDD) پشتیبانی میکند؛ جایی که نمودار، نحوهی عملکرد نرمافزار را قبل از ساخت آن نشان میدهد. این نمودار شبیه رویکرد فرایند BPM است که در آن، شکلهایی که زیرفرایندها را بهترتیب صحیح نشان میدهند برای مشخص کردن یک فرایند تجاری ترسیم خواهند شد. درحالحاضر، محبوبترین استاندارد در این زمینه که در بیشتر پلتفرمهای BPM پشتیبانی میشود، BPMN است. بنابراین راهکارهای کمکد و فرایند محور، محبوبیت بالایی دارند. نمونههایی از پلتفرمهای کمکد و بدونکد BPM عبارتاند از پگا (Pega)، اپیان (Appian) و اوتسیستمز (Outsystems).
اما نمونههای دیگری از پلتفرمهای کمکد و بدونکد وجود دارد که در ادامه به آنها اشاره میکنیم:
- پلتفرمهای کمکد و بدونکد وبسایت: شرکتها در هر ابعادی میتوانند از این پلتفرمها استفاده کنند. رقبای اصلی در این حوزه شامل وردپرس، اسکوئراسپیس، ویکس و وبفلو هستند.
- پلتفرمهای کمکد و بدونکد مدیریت پایگاه داده: در سطح بالای این حوزه (سطح تجاری) پلتفرمهایی مثل Mendix وجود دارد. علاوهبراین میتوان به Airtable اشاره کرد که در سطح پایینتری نسبت به Mendix قرار دارد. همچنین پلتفرمهای کمکد یا بدونکد پایگاه داده NoSQL مثل KgBase برای نمودارهای دانش دردسترس است.
- پلتفرمهای کمکد و بدون کد یکپارچهسازی خودکار: در این دسته، چند پلتفرم جذاب و نوظهور وجود دارد که از جمله میتوان به پارابولا (Parabola)، Zapier و Integromat اشاره کرد. شما میتوانید ازطریق این ابزارها، جریانهای یکپارچهسازی قدرتمند و پیچیده را با روشی نسبتاً سریع توسعه دهید. در اینجا نمونهای از گردش کار پارابولا آورد شده است که از API استخراج میشود، برخی از دادهها را دستکاری و سپس آن را به API دیگری ارسال میکند. میتوان گردش کار خودکار را برحسب تقاضا برنامهریزی و اجرا یا ازطریق یک وبهوک فراخوانی کرد
- توسعهی اپلیکیشن موبایل: اکثر پلتفرمهای کمکد و بدون کد، مانند Bubble، قابلیتهای رابطکاربری تطبیقپذیر یا ریسپانسیو را برای برنامههای موبایلی ارائه میدهد. برخی دیگر از این پلتفرمها، پشتیبانی بومی از سیستمعاملهای موبایلی پیشرو مثل اندروید و آیاواس را ارائه میدهند. یکی از نمونههای محبوب پلتفرمهای کمکد و بدونکد توسعهی اپلیکیشنهای موبایلی احتمالاً Thunkable است.
بسیاری از این پلتفرمها مجموعهای بزرگ از افزونهها و قالبها را برای انواع خاصی از برنامهها دردسترس قرار داهاند. سایر دستههای پلتفرمهای کمکد و بدونکد، حوزهها یا جایگاههای کاربردی خاصی را هدف قرار میدهند. بهعنوان مثال پلتفرم شاپیفای در حوزهی تجارت الکترونیک و فروشگاههای آنلاین یکی از بهترین نمونهها است. در حوزهی مدیریت کار نیز میتوان به پلتفرم ماندی (Monday.com) اشاره کرد.
گارنتر در حوزهی برنامههای کاربردی ERP به Zoho اشاره کرده است. یکی دیگر از پلتفرمهای مهم و تأثیرگذار برای ERP و CRM، سیستم Salesforce است. در حوزهی بلاکچین و اینترنت اشیاء نیز میتوان به پلتفرم Atra اشاره کرد.
هوش مصنوعی یکی از جذابترین حوزهها برای پلتفرمهای کمکد و بدونکد است و اکنون در این زمینه شاهد ظهور ابزارهایی مثل C3 AI Ex Machina هستیم.
چالشهای کم کد/بدون کد
اگرچه پلتفرمهای کمکد و بدونکد مزایای زیادی ارائه میدهند، اما چالشهایی در مسیر این سیستمها وجود دارد که یکی از مهمترین آنها، منحنی یادگیری است. بسیاری از بهترین روشهای موجود، نوظهور و نسبتاً نابالغ محسوب میشوند. این درحالی است که در روش برنامهنویسی سنتی، مجموعهای عظیم از تجربه، جوامع کاربری قدرتمند و مستندات کامل وجود دارد که توسعهدهندگان میتوانند از آنها در جهت پیشبرد اهداف پروژهی خود بهره ببرند. اگرچه سیستمهایی مثل MDD و BPM از مدتها قبل وجود داشته است، اما پلتفرمهای کمکد و بدونکد از بسیاری جهات در ابتدای مسیر هستند.
در ادامه به برخی از مهمترین چالشهای پیشروی پلتفرمهای کمکد و بدونکد اشاره میکنیم:
- مستلزم تغییر فرهنگ است: کمکد و بدونکد مستلزم تغییر در فرهنگ سازمانی است؛ خواه آن سازمان یک شرکت باشد یا یک استارتاپ. تغییر فرهنگ در همهی سازمانها آسان نیست و نیاز به دید اجرایی و تأیید دارد. علاوهبراین، برای تغییر فرهنگ به بودجه و توانمندسازی نیاز است.
- یادگیری پلتفرمها به زمان و تلاش نیاز دارد: پلتفرمهای کمکد و بدونکد، سرعت بهرهوری را افزایش میدهد، اما دستیابی به این هدف آسان نیست. توسعهی سطح تخصص در این پلتفرمها نیاز به زمان دارد. این یکی از مهمترین جنبههای منفی کمکد و بدونکد است. ایجاد سازههای برنامهنویسی پیچیده مثل حلقههای تودرتو در هیچ پلتفرمی آسان نیست.
- امکان دارد به چند پلتفرم نیاز داشته باشید: برخی از پلتفرمها امکانات کاملتری ارائه میدهند. برای مثال Unqork و Bubble برای استفاده در زمینههای مختلف طراحی شدهاند و بنابراین گزینههای زیادی برای ادغام با سیستمهای سازمانی ارائه میدهند. بااینحال، این پلتفرمها میتوانند در زمینههای خاصی که در آن تخصص دارند، از مؤلفههای مختلف بهره ببرند. بهعنوان مثال Bubble همراه با پارابولا یا افزونهی Zapier برای ادغام خودکار مورد استفاده قرار میگیرد. کار با قابلیتهای دستکاری و ادغام دادهها در پارابولا یا Zapier آسانتر از قابلیتهای بومی Bubble است. افزونهها یا مؤلفههای فناوری دیگری نیز وجود دارد که باعث تکمیل شدن پلتفرمهای کمکد و بدونکد میشود. بهعنوان نمونه میتوانید مشارکتهای فناوری Unqork یا فهرست جامع افزونههای Bubble را بررسی کنید.
- منابع و پشتیبانی جوامع کاربری کمی دردسترس است: بسیاری از پلتفرمهای کمکد و بدونکد نسبتاً نابالغ محسوب میشوند. این درحالی است که میلیونها و گاهی دهها میلیون ٰتوسعهدهنده برای زبانهای برنامهنویسی مختلف وجود دارد. علاوهبراین، امروزه بسیاری از دورهها، کتابها و مطالب و ویدئوهای آنلاین برای زبانهای برنامهنویسی مثل جاوا یا سیشارپ بهراحتی دردسترس همه قرار دارد. درواقع در سیستم برنامهنویسی سنتی، جوامع کاربری و منابع متعددی برای برونسپاری انجام کارها وجود دارد؛ این شرایط برای پلتفرمهای کمکد و بدونکد جدیدتر، کاملاً متفاوت است.
- قیمتگذاری گمراهکننده: استفاده از پلتفرمهای کمکد و بدونکد سازمانی بهطور غیرضروری هزینهی زیادی برای کاربر خواهد داشت. پلتفرمهای مخصوص بازارهای کوچک و متوسط، هزینهی کمتری دارند اما معمولاً مقیاسپذیرتر محسوب میشوند. درگیر شدن چندین پلتفرم برای ارائهی راهکار نهایی، باعث پیچیدهتر شدن قیمتگذاری در پلتفرمهای کمکد و بدونکد خواهد شد.
این موارد فقط برخی از چالشهای کلیدی پیشروی پلتفرمهای مورد اشاره است. توجه به چالشهای یاد شده نشان میدهد که پلتفرم کمکد و بدونکد، نسبت به روش سنتی توسعهی نرمافزار، یک راهکار جامع و بینقص نیست، بااینحال روند بزرگ توسعهی پلتفرمهای نوآورانهی کمکد و بدونکد در شرکتهای مخلتف و استارتاپها همچنان برقرار است و به مسیر خود ادامه میدهد.
میتوان انتظار داشت پلتفرمهای کمکد و بدونکد در آینده، با چالشهای دیگری نیز مواجه شوند و به احتمال زیادی چند پروژهی شکستخورده در این مسیر وجود خواهد داشت، اما مزیتهای مهم این نوع سیستمها که شامل افزایش سرعت توسعه و افزایش بهرهوری است، میتواند به ادامهی رشد این سیستمها کمک کند.
متن اصلی این مقاله توسط دکتر ستراگ خوشافیان یکی از بنیانگذاران استارتاپ اسیستنت و دانشمند اصلی در شرکت مشاوران Khosh نوشته شده است.. او قبلا معاون فناوری BPM در Pega، معاون ارشد فناوری در Savvion و مدیر ارشد فناوری در Protfolio Technologies بوده و همچنن عضو اتاق فکر چهانی شناختی در زمینهی هوشمصنوعی سازمانی است.