تقاضا برای هایپر اتوماسیون (Hyperautomation) و نوسازی فناوری اطلاعات (IT Modernization) افزایش یافته است ، اما سازمانها به دلیل محدودیت فعلی در دسترسی به نیروی متخصص توسعه نرمافزار، برای همگام شدن با این روندها با مشکل مواجه شدهاند. بسیاری از پروژههای فناوری اطلاعات به دلیل کمبود منابع انسانی با مهارتهای فنی تخصصی، به فهرست پروژههای «در انتظار اجرا» منتقل میشوند. در نتیجه، ناکارآمدیهای عملیاتی همچنان پابرجا میمانند و زمان عرضه محصول به بازار (Time-to-Market)، که عاملی حیاتی برای حفظ رقابتپذیری کسبوکارهاست، تحت تاثیر قرار میگیرد.
برای مقابله با این چالشها، راهکارهای توسعه نرمافزار لوکد (Low-code) و نوکد (No-code) بهعنوان جایگزینهایی کاربردی و مناسب برای فرایند سنتی توسعه نرمافزار مطرح شدهاند.
لوکد (Low-code) چیست؟
لوکد رویکردی برای توسعه سریع برنامههای کاربردی (Rapid Application Development یا RAD) است که امکان تولید خودکار کد را از طریق اجزای بصری، مانند رابطهای کشیدن و رها کردن (Drag-and-Drop) و منوهای کشویی، فراهم میکند.
این اتوماسیون به کاربران پلتفرمهای لوکد اجازه میدهد بهجای صرف زمان برای پیادهسازی بخشهای تکراری و متداول برنامهنویسی، روی قابلیتهایی تمرکز کنند که محصول آنها را از سایر محصولات متمایز میکند.
لوکد حد واسطی میان کدنویسی دستی و نوکد است، زیرا کاربران آن همچنان میتوانند کدهای اختصاصی خود را به کدهای تولیدشده بهصورت خودکار اضافه کنند.
برخی از کاربردهایی که برای توسعه با لوکد مناسب هستند عبارتاند از:
- پلتفرمهای مدیریت فرایندهای کسبوکار (Business Process Management)
- توسعه وبسایتها و اپلیکیشنهای موبایل
- ابزارهای بیندپارتمانی، مانند نرمافزارهای مدیریت ارزیابی عملکرد
- یکپارچهسازی با افزونههای خارجی و فناوریهای نسل جدید مبتنی بر فضای ابری
- کتابخانههای یادگیری ماشین (Machine Learning)
- اتوماسیون فرایندهای رباتیک (Robotic Process Automation یا RPA)
- نوسازی اپلیکیشنهای قدیمی (Legacy Application Modernization)
جمیل اسپین (Jamil Spain) چند ویدیوی آموزشی مفید درباره لوکد و نوکد تهیه کرده است که در ادامه برای بررسی عمیقتر این موضوع معرفی میشوند.
نوکد (No-code) چیست؟
نوکد نیز رویکردی برای توسعه سریع برنامههای کاربردی (RAD) است و اغلب بهعنوان زیرمجموعهای از رویکرد توسعه ماژولار لوکد، مبتنی بر اتصال و استفاده از اجزای آماده (Plug-and-Play)، در نظر گرفته میشود.
در توسعه لوکد، توسعهدهندگان تا حدی در فرایند پیادهسازی مشارکت دارند و ممکن است از اسکریپتنویسی یا کدنویسی دستی استفاده کنند، اما نوکد رویکردی کاملا بصری دارد و تمام فرایند توسعه آن به ابزارهای بصری وابسته است و نیازی به نوشتن دستی کد ندارد.
برخی از کاربردهای مناسب برای توسعه نوکد عبارتاند از:
- اپلیکیشنهای سلفسرویس برای کاربران کسبوکار
- داشبوردها
- اپلیکیشنهای موبایل و وب
- پلتفرمهای مدیریت محتوا
- ابزارهای ساخت خطوط پردازش داده (Data Pipeline)
نوکد برای ساخت سریع اپلیکیشنهای مستقل، رابطهای کاربری ساده و اتوماسیونهای ابتدایی ایدهآل است. از این رویکرد در ابزارهای برنامهریزی تقویم، مدیریت تاسیسات و اپلیکیشنهای گزارشگیری هوش تجاری (BI) که ستونها و فیلترهای قابل تنظیم دارند نیز استفاده میشود.
اتوماسیون با لوکد و نوکد
یک پلتفرم توسعه اپلیکیشن لوکد (Low-Code Application Platform یا LCAP)، که با نام پلتفرم توسعه لوکد (Low-Code Development Platform یا LCDP) نیز شناخته میشود، شامل یک محیط توسعه یکپارچه (IDE) است.
این محیط قابلیتهای داخلی متعددی دارد ، از جمله:
- رابطهای برنامهنویسی کاربردی (API)
- قالبهای کد
- ماژولهای افزونهای قابل استفاده مجدد
- اتصالدهندههای گرافیکی
این قابلیتها بخش قابلتوجهی از فرایند توسعه اپلیکیشن را خودکار میکنند. پلتفرمهای LCAP معمولا بهصورت راهکارهای ابریِ «پلتفرم بهعنوان سرویس» (Platform-as-a-Service یا PaaS) ارائه میشوند.
پلتفرم لوکد با استفاده از ابزارها و تکنیکهای بصری، پیچیدگی توسعه نرمافزار را کاهش میدهد. یکی از این تکنیکها مدلسازی فرایند است که به کاربران امکان میدهد با ابزارهای بصری، گردشکارها (Workflows)، قوانین کسبوکار (Business Rules)، رابطهای کاربری و موارد مشابه را تعریف کنند.
در پشت صحنه، این گردشکار بهصورت خودکار به کد تبدیل میشود.
پلتفرمهای LCAP عمدتا توسط توسعهدهندگان حرفهای استفاده میشوند تا بخشهای عمومی و تکراری کدنویسی را خودکار کنند و بتوانند تلاش بیشتری را به مراحل نهایی توسعه، یعنی بخشهایی که به منطق و نیازهای اختصاصی محصول مربوط میشوند، اختصاص دهند.
نمونههایی از این پلتفرمهای اتوماسیون عبارتاند از:
- پلتفرمهای توسعه اپلیکیشن لوکد
- مجموعههای هوشمند مدیریت فرایندهای کسبوکار
- پلتفرمهای توسعه توسط کاربران غیرفنی (Citizen Development)
- سایر ابزارهای توسعه سریع اپلیکیشن (RAD)
در یک پلتفرم توسعه نوکد (No-Code Development Platform یا NCDP)، که گاهی پلتفرم اتوماسیون و توسعه شهروندی (Citizen Automation and Development Platform یا CADP) نیز نامیده میشود، تمام کدها از طریق رابطهای کشیدن و رها کردن یا انتخاب با کلیک تولید میشوند.
این پلتفرمها هم توسط توسعهدهندگان حرفهای و هم توسط توسعهدهندگان شهروندی استفاده میشوند، منظور از توسعهدهندگان شهروندی، کاربران غیرفنی یا افرادی است که مهارت برنامهنویسی آنها محدود است یا اصلا توانایی کدنویسی ندارند.
شباهتها و مزایای لوکد و نوکد
لوکد و نوکد از این نظر مشابهاند که هر دو با استفاده از رابطهای بصری و قالبهای ازپیشپیکربندیشده، تلاش میکنند پیچیدگیهای کدنویسی را از دید کاربر پنهان کنند.
هر دو پلتفرم معمولا بهصورت راهکارهای PaaS ارائه میشوند و از طراحی مبتنی بر گردشکار برای تعریف توالی منطقی پردازش دادهها استفاده میکنند.
به دلیل این رویکرد مشترک، هر دو مزایای متعددی دارند.
۱. فراگیر کردن دسترسی به فناوری
راهکارهای لوکد و نوکد با هدف توانمندسازی گروههای مختلف کاربران توسعه یافتهاند. این ابزارها وابستگی به متخصصان فنی گرانقیمت و دشواریاب را کاهش میدهند و امکان مشارکت افراد بیشتری را در توسعه نرمافزار فراهم میکنند.
۲. افزایش بهرهوری
لوکد و نوکد سرعت توسعه نرمافزار را افزایش میدهند، انباشت پروژههای معوق فناوری اطلاعات را کاهش میدهند و میتوانند زمان اجرای پروژهها را از چند ماه به چند روز برسانند. این ابزارها همچنین عرضه سریعتر محصولات را امکانپذیر میکنند.
۳. دریافت سریع بازخورد مشتری با ریسک کمتر
پیش از اختصاص منابع قابلتوجه به یک پروژه، توسعهدهندگان میتوانند با ساخت نمونههای اولیهای که تولید آنها آسان است، بازخورد مشتریان را دریافت کنند.
به این ترتیب، تصمیمگیری درباره ادامه دادن یا متوقف کردن پروژه (Go/No-Go) در مراحل ابتداییتری انجام میشود و در نتیجه، ریسک و هزینه کاهش مییابد.
۴. تمایل بیشتر به ساخت راهکار اختصاصی بهجای خرید محصول آماده
محصولات تجاری آماده (Commercial Off-the-Shelf یا COTS) ممکن است گران باشند و رویکردی یکسان را برای همه مشتریان در پیش بگیرند.
در مقابل، لوکد و نوکد توسعه راهکارهای اختصاصی در داخل سازمان را تشویق میکنند. این موضوع میتواند در تصمیمگیری میان خرید یک محصول آماده و ساخت راهکار اختصاصی، کفه ترازو را به سمت ساخت راهکار داخلی سنگینتر کند.
۵. یکپارچگی معماری
برای ماژولهای مشترک میان بخشهای مختلف سیستم، مانند ثبت گزارش رویدادها (Logging) و ثبت سوابق ممیزی (Audit)، استفاده از یک پلتفرم متمرکز لوکد یا نوکد میتواند به حفظ یکپارچگی در طراحی و کد کمک کند.
این یکپارچگی هنگام اشکالزدایی اپلیکیشنها نیز مفید است، زیرا توسعهدهندگان میتوانند بهجای صرف وقت برای درک چارچوبهای مختلف، زمان بیشتری را به شناسایی و رفع مشکلات اختصاص دهند.
۶. مقرونبهصرفه بودن
توسعه با لوکد و نوکد در مقایسه با توسعه دستی از صفر، میتواند هزینه کمتری داشته باشد ، زیرا معمولا به تیمهای کوچکتر، منابع کمتر، زیرساخت ارزانتر و هزینه نگهداری پایینتری نیاز دارد.
همچنین، انتشار سریعتر نسخههای محصول با رویکرد چابک (Agile) میتواند بازگشت سرمایه (ROI) را بهبود دهد.
۷. بهبود همکاری میان کسبوکار و تیم فناوری اطلاعات
بهطور سنتی، میان تیمهای کسبوکار و تیمهای توسعه نرمافزار نوعی رابطه مبتنی بر کشمکش و انتظارات متقابل وجود داشته است.
اما با گسترش رویکرد لوکد و نوکد و مشارکت بیشتر کاربران کسبوکار در فرایند توسعه، درک متقابل و تعادل بهتری میان این دو گروه که در ظاهر نیازها و دیدگاههای متفاوتی دارند، ایجاد میشود.
آپاچی کافکا (Apache Kafka) چیست؟
در این ویدیو یاد میگیرید آپاچی کافکا چیست، چگونه کار میکند و چه مفاهیم اساسیای برای ساخت اپلیکیشنهای پردازش و انتقال جریان رویدادها در لحظه (Real-Time Event Streaming) وجود دارد.
تفاوت لوکد و نوکد چیست؟
با وجود همپوشانی زیاد میان این دو رویکرد، تفاوتهای مهمی نیز میان آنها وجود دارد. بخشی از این ابهام به نحوه معرفی محصولات توسط ارائهدهندگان پلتفرمهای لوکد و نوکد برمیگردد، زیرا گاهی جایگاه و قابلیتهای این دو نوع محصول بهروشنی از یکدیگر تفکیک نمیشوند.
با این حال، تفاوتهای زیر در انتخاب راهکار مناسب اهمیت دارند.
۱. کاربران هدف
لوکد (Low-code)
لوکد بیشتر برای توسعهدهندگان حرفهای طراحی شده است تا مجبور نباشند بخشهای ابتدایی و تکراری کد را بارها پیادهسازی کنند و بتوانند روی جنبههای پیچیدهتر توسعه، نوآوری و ایجاد قابلیتهای پیشرفتهتر تمرکز کنند.
این رویکرد با خودکارسازی بخشهای استاندارد کدنویسی و استفاده از روشی مستقل از نحو یک زبان برنامهنویسی خاص، امکان یادگیری مهارتهای جدید برای توسعهدهندگان و گسترش دامنه نیروی انسانی متخصص را نیز فراهم میکند.
نوکد (No-code)
نوکد بیشتر برای کاربران کسبوکار طراحی شده است، افرادی که دانش گستردهای از حوزه کاری خود دارند و ممکن است تا حدی با فناوری آشنا باشند، اما توانایی نوشتن دستی کد را ندارند.
این رویکرد برای تیمهای ترکیبی متشکل از کاربران کسبوکار و توسعهدهندگان نرمافزار، صاحبان کسبوکارهای کوچک و تیمهای غیرفنی مانند منابع انسانی، مالی و حقوقی نیز مناسب است.
۲. موارد استفاده
نوکد
نوکد برای ساخت سریع اپلیکیشنهای فرانتاند که با رابطهای کشیدن و رها کردن طراحی میشوند، گزینه مناسبی است.
نمونههای مناسب عبارتاند از اپلیکیشنهای رابط کاربری که دادهها را از منابع مختلف دریافت میکنند و برای گزارشگیری، تحلیل، وارد کردن یا صادر کردن دادهها به کار میروند.
نوکد همچنین برای جایگزینی کارهای اداری تکراری، مانند گزارشهایی که تیمهای کسبوکار با اکسل تهیه میکنند، مناسب است.
این نوع پروژهها معمولا بهراحتی در اولویت تیم فناوری اطلاعات قرار نمیگیرند، اما میتوانند برای تیمهای کسبوکار بسیار ارزشمند باشند.
علاوه بر این، نوکد برای موارد زیر نیز مناسب است:
- اپلیکیشنهای داخلی با قابلیتهای محدود
- اپلیکیشنهای کوچک کسبوکار با بودجه توسعه پایین
- ابزارهای سادهای که به منطق پیچیده یا قابلیتهای گسترده نیاز ندارند
لوکد
لوکد با برخورداری از کتابخانه گستردهای از اجزای قابل استفاده مجدد، میتواند برای ساخت اپلیکیشنهایی با منطق کسبوکار پیچیده و توسعه در مقیاس سازمانی استفاده شود.
همچنین، برای یکپارچهسازی با اپلیکیشنهای دیگر و APIهای خارجی، اتصال به چندین منبع داده و ساخت سیستمهایی که به ملاحظات امنیتی و نظارت تیم فناوری اطلاعات نیاز دارند، لوکد معمولا انتخاب مناسبتری نسبت به نوکد است.
۳. سرعت توسعه
لوکد
از آنجا که لوکد امکان سفارشیسازی بیشتری فراهم میکند، یادگیری آن و آمادهسازی افراد برای توسعه و استقرار اپلیکیشن ممکن است به آموزش و زمان بیشتری نیاز داشته باشد.
با این حال، توسعه با لوکد همچنان بهمراتب سریعتر از توسعه سنتی نرمافزار است.
نوکد
نوکد به دلیل قابلیت پیکربندی بالا و استفاده از اجزای آماده، معمولا در مقایسه با لوکد به زمان کمتری برای ساخت اپلیکیشن نیاز دارد.
زمان تست نیز ممکن است کاهش یابد، زیرا احتمال بروز خطاهایی که معمولا در اثر کدنویسی دستی ایجاد میشوند، کمتر است.
در این روش، تمرکز اصلی بر اطمینان از صحت پیکربندیها و جریان انتقال دادهها قرار دارد.
۴. سیستمهای باز در برابر سیستمهای بسته
لوکد
لوکد یک سیستم نسبتا باز است که به کاربران اجازه میدهد قابلیتهای آن را از طریق کدنویسی توسعه دهند. این ویژگی انعطافپذیری و قابلیت استفاده مجدد را افزایش میدهد.
برای مثال، کاربران میتوانند افزونههای اختصاصی و اتصالدهندههای منابع داده بسازند و در پروژههای بعدی نیز از آنها استفاده کنند.
البته باید توجه داشت که پس از انتشار نسخههای جدید یا وصلههای نرمافزاری پلتفرم لوکد، کدهای دستی اضافهشده نیز باید آزمایش شوند تا از سازگاری آنها اطمینان حاصل شود.
نوکد
نوکد سیستمی بستهتر است که توسعه قابلیتهای آن معمولا به امکانات و قالبهای ازپیشتعریفشده محدود میشود.
این محدودیت میتواند دامنه کاربردها و دسترسی به افزونهها و یکپارچهسازیهای آماده را محدود کند، اما در مقابل، حفظ سازگاری با نسخههای قبلی (Backward Compatibility) آسانتر است، زیرا کد دستیای وجود ندارد که با تغییرات نسخههای آینده دچار مشکل شود.
۵. ریسک فناوری اطلاعات سایهای (Shadow IT)
فناوری اطلاعات سایهای به ابزارها، سیستمها و زیرساختهایی گفته میشود که بدون نظارت یا تایید کافی تیم فناوری اطلاعات در سازمان استفاده میشوند.
این موضوع هم در پلتفرمهای لوکد و هم در پلتفرمهای نوکد نگرانکننده است، با این حال، ریسک Shadow IT در نوکد بیشتر است، زیرا این ابزارها به مداخله بسیار کم یا حتی بدون مداخله تیم فناوری اطلاعات نیاز دارند.
در نتیجه، ممکن است زیرساختهای موازی ایجاد شوند که بهاندازه کافی تحت نظارت نیستند و در معرض آسیبپذیریهای امنیتی و انباشت بدهی فنی (Technical Debt) قرار میگیرند.
در مقابل، چون پلتفرمهای لوکد همچنان بیشتر تحت نظارت تیمهای فناوری اطلاعات قرار دارند، امکان اعمال حاکمیت، کنترل و استانداردهای سازمانی در آنها بیشتر است.
۶. دامنه معماری
لوکد
لوکد از نظر مقیاسپذیری و سازگاری میان پلتفرمهای مختلف، نسبت به نوکد برتری دارد.
امکان افزودن افزونهها و کدهای اختصاصی، طیف گستردهتری از پیادهسازیها و کار با پلتفرمهای متعدد را فراهم میکند.
نوکد
نوکد قابلیت توسعهپذیری کمتری دارد و در اتصال به سیستمهای قدیمی یا یکپارچهسازی با پلتفرمهای دیگر محدودتر است.
به همین دلیل، دامنه کاربردهای آن محدودتر است و توانایی کمتری برای مقیاسپذیری در پروژههای پیچیده دارد.
چه زمانی از لوکد استفاده کنیم و چه زمانی از نوکد؟
هر دو رویکرد نقاط قوت خاص خود را دارند. شباهتهای میان آنها نیز انتخاب یکی از این دو را لزوما آسان نمیکند.
بهترین روش این است که ابتدا نیازهای فعلی پروژه را ارزیابی کنید و سپس بر اساس آنها تصمیم بگیرید.
برای تعیین نیازهای کاربران و انتخاب راهکار مناسب، میتوان پرسشهای زیر را مطرح کرد:
- هدف از استفاده از نرمافزار لوکد یا نوکد چیست؟
- کاربران چه کسانی هستند و چه میزان دانش برنامهنویسی دارند؟
- دامنه و مقیاس مسئلهای که باید حل شود چقدر است؟
- آیا توسعه راهکار به یکپارچهسازی اختصاصی با اپلیکیشنهای داخلی یا خارجی نیاز دارد؟
- زمان موردنیاز برای تکمیل و عرضه راهکار چقدر است؟
- کاربران میخواهند تا چه اندازه بر کد نرمافزار کنترل داشته باشند؟
- آیا اپلیکیشن با دادههای محرمانه سروکار دارد یا به ملاحظات امنیتی خاصی نیازمند است؟
دو پرسش کلیدی در این تصمیمگیری عبارتاند از: اپلیکیشن برای چه هدفی ساخته میشود و چه کسی آن را توسعه خواهد داد؟
هر دو پرسش اهمیت دارند، اما بهتر است رویکردی هدفمحور بهجای رویکردی کاربرمحور اتخاذ شود، به بیان دیگر، آنچه اپلیکیشن باید انجام دهد (What) مهمتر از این است که چه کسی آن را میسازد (Who).
اگر موارد استفاده پیچیده باشند، به یکپارچهسازی با اپلیکیشنهای داخلی یا ابری نیاز داشته باشند، برای مشتریان یا عملیات حیاتی کسبوکار طراحی شده باشند یا قرار باشد در سراسر سازمان به کار گرفته شوند، لوکد گزینه ترجیحی است.
در چنین شرایطی، حتی اگر کاربران دانش کافی در زبانهای برنامهنویسی نداشته باشند، همکاری با تیم فناوری اطلاعات یا شرکت در دورههای آموزشی میتواند این چالش را برطرف کند.
راهکارهای لوکد و نوکد در IBM
با استفاده از راهکارهای IBM، به قابلیتهای اتوماسیون هوشمند مبتنی بر لوکد و نوکد دسترسی خواهید داشت که به متخصصان حوزههای مختلف امکان میدهند بدون وابستگی مستقیم به تیم فناوری اطلاعات، فرایندها را خودکار کنند.
راهکارهای نوکد
- IBM watsonx Orchestrate: ساخت دستیارها و عاملهای دیجیتال برای خودکارسازی فعالیتهای روزمره کاری.
- IBM Blueworks Live: مدلسازی بصری فرایندهای کسبوکار و انتقال خروجی به تیم فناوری اطلاعات برای استفاده در گردشکارها.
- IBM Automation Document Processing: طبقهبندی و استخراج سریع، آسان و دقیق اطلاعات از اسناد کسبوکار.
- IBM Automation Decision Services: اتخاذ تصمیمهای پیشبینانه در محیطی مناسب برای کاربران کسبوکار.
راهکارهای لوکد
- IBM App Connect: یکپارچهسازی اپلیکیشنها با استفاده از ابزارهای ساده و مبتنی بر وب.
- Aspera Orchestrator: ایجاد خطوط پردازش فایل برای برقراری ارتباط میان واحدهای کسبوکار و شرکای خارجی.
جمعبندی
لوکد و نوکد دو رویکرد برای سادهسازی و تسریع توسعه نرمافزار هستند که با کاهش نیاز به کدنویسی دستی، امکان ساخت اپلیکیشنها و خودکارسازی فرایندها را برای طیف گستردهتری از کاربران فراهم میکنند.
نوکد برای ساخت سریع ابزارهای ساده، اپلیکیشنهای داخلی، داشبوردها و اتوماسیونهای محدود مناسبتر است ، در حالی که لوکد امکان سفارشیسازی، توسعه منطق پیچیدهتر، یکپارچهسازی با سیستمهای دیگر و مقیاسپذیری بیشتری را فراهم میکند.
انتخاب میان این دو روش باید بر اساس پیچیدگی پروژه، نیازهای امنیتی، سطح سفارشیسازی، زمان توسعه و الزامات مقیاسپذیری انجام شود. در نهایت، هدف اصلی این است که با انتخاب ابزار مناسب، زمان و هزینه توسعه کاهش یابد و منابع فنی سازمان روی بخشهایی متمرکز شوند که بیشترین ارزش را برای کسبوکار ایجاد میکنند.
دیدگاهها
ثبت دیدگاه