هر چند واژه Low Code Development از سال 2016 بصورت رسمی تر در واژگان توسعه نرم افزار در دنیا مطرح شد، اما موضوع توسعه بدون برنامه نویسی و با ابزارهای نمایشی و امکانات ساده تر از دیرباز در این فضا مورد بحث بوده و جزء ایده آلهای تولید نرم افزار مطرح شده است.

RAD (Rapid Application Development)

Rapid Application Development
RAD (Rapid Application Development)

شاید عقبه این موضوع به دهه 90 میلادی و ظهور پلتفرمهای توسع سریع (Rapid Application Development) که بیشتر بر مدلهای مبتنی بر کامپوننت استوار بودند برگردد. زبانهایی نظیر دلفی و ویژوال بیسیک تلاش میکردند با ارائه کامپوننتهای متنوع، فرآیند تولید نرم افزار را ساده نموده و قابلیت استفاده مجدد را فراهم آورند.

این ابزارها در زمان خود تحول وسیعی را در زمینه تولید نرم افزار بوجود آوردند و سرعت ساخت برنامه ها از مدلهای کاملا مبتنی بر کد، به مدلهایی مبتنی بر کامپوننت تغییر کرد که میتوانست سرعت عمل برنامه نویسان را به شدت افزایش دهد. در واقع در این ابزارها کاربران و برنامه نویسان میتوانستند با سرعت بالاتری به خروجی نهایی و یک برنامه عملیاتی دسترسی پیدا کرده و همچنین کاربر نهایی نیز میتوانست بهتر به خروجی مورد نظر دسترسی پیدا کند.

البته با توجه به مدلهای توسعه نرم افزار و زیرساختهای مورد استفاده، برنامه های تولید شده در مدل RAD عمدتا مدلهای کلاینت سروری و با لایه بندی محدود در معماری نرم افزار بودند. همچنین نهایتا در این مدل استفاده کننده نهایی این ابزارها کماکان تیم های تولید نرم افزار بودند و عملا نیاز به تیم توسعه و برنامه نویسی از بین نرفت.

بعلاوه کامپوننتها نیز نهایتا بخشهای محدودی از کلیت مورد نیاز یک سیستم را شامل میشد و عملا حجم برنامه نویسی باقیمانده برای پوشش سایر بخشها کماکان عمده و زیاد محسوب میشد.

MDA (Model Driven Architecture)

Model Driven Architecture
MDA (Model Driven Architecture)

در سال 2001 OMG ایده و رویکرد MDA یا همان Model Driven Architecture را مطرح کرد که بر اساس آن، رویکرد تولید نرم افزار از کدنویسی مستقیم به مدلسازی تبدیل شود. در عمل برخی ابزارهای کمک طراح (CASE Tools) شبیه Rational Rose و یا در سالهای بعد Enterprise Architect بوجود آمدند که میتوانستند به شدت در مدلسازی مفاهیم توسعه نرم افزار مفید باشند. اما زمانیکه صحبت از یک برنامه نرم افزاری قابل اجرا میشود این ابزارها تنها روش قابل ارائه را روش تولید خودکار کد (Code Generation) میدیدند. در واقع در این ابزارها تحلیلگران و طراحان میتوانستند مدلهای تحلیل را وارد کرده و برای خروجی نهایی از روش تولید کد استفاده کنند.

میتوان گفت این روش برای پوشش هدف مدلگرایی، روشی ابتدایی و با مسائل و مشکلات فراوان میباشد. چون پس از اولین مرحله تولید کد، تغییرات بعدی با مشکلات فراوانی همراه خواهد بود. فرض کنید شما در کد تولید شده تغییراتی اعمال کنید و بخواهید کماکان مدل را نیز منطبق بر تغییرات حفظ کنید. احتمالا در اولین تولید کد بعدی، تمامی تغییرات شما از بین خواهد رفت! به هر تقدیر میتوان گفت ابزارهای کمک طراح، نهایتا توانستند در موضوع مستندسازی مورد استفاده باشند و هیچگاه به عنوان ابزار تولید نرم افزار مورد توجه قرار نگرفتند.

BPMS (Business Process Management System)

Business Process Management System
BPMS (Business Process Management System)

در سالیان اخیر توجه به فرآیندگرایی در سطح جهانی، فضای جدیدی را برای ابزارهای مدلساز فرآیند باز نمود و در دهه ابتدایی قرن 20 شاهد بروز و رشد تعداد زیادی از ابزارهای پیاده سازی فرآیند بودیم. هر چند موضوع فرآیندگرایی و تحلیل سازمانی مبتنی بر فرآیند، سابقه طولانی در حوزه تحلیل و طراحی نرم افزار دارد، اما شاید بلوغ سیستم های BPMS در سالیان اخیر اتفاق افتاده باشد. هر چند خواستگاه اصلی اکثر BPMSها صرفا موضوع فرآیندهای سازمانی است، اما بعضا به دلایلی ورود به حوزه توسعه سیستم نیز در آنها اتفاق افتاد. به عنوان نمونه اکثر BPMSها غیر از حوزه فرآیند، در حوزه ساختار اطلاعات نیز ورود کرده و امکاناتی را در این بخش در اختیار طراحان قرار میدهند.

میتوان گفت طراحی اکثر BPMSهای معروف، کاملا مبتنی و متمرکز بر موضوع فرآیند بوده و عمدتا مساله تولید نرم افزار را در دسته ERPها و سیستم های اطلاعاتی قرارداده و از ورود مستقیم به این حوزه اجتناب میکنند. به همین دلیل تمرکز اکثر این نوع نرم افزارها بر مساله ارتباط پذیری به جای تولید قرار دارد. البته به نظر میرسد این نرم افزارها در سالیان اخیر متوجه این محدودیت گشته و در مقالات و عناوین مورد استفاده در این سایتها نظیر بیزاجی، Kissflow، و غیره عبارت جدید Low Code Development جایگزین BPMS گردیده است.

Low Code Development

در سالیان اخیر موضوع توسعه پویا (با حداقل برنامه نویسی) به یک رویکرد جهانی تبدیل شده است و ابزارهای متعددی در دنیا در این حوزه مشغول به فعالیت شده اند. بررسی گزارشات معتبر مانند گارتنر نشان میدهد که تبدیل مدل توسعه نرم افزار از برنامه نویسی مستقیم به استفاده از یک ابزار توسعه پویا، قطعی و اجتناب ناپذیر خواهد بود. به عبارت دیگر روش توسعه مستقیم در بسیاری از حوزه های نرم افزار منسوخ گردیده و جای خود را به ابزارهای توسعه پویا خواهند داد.

البته لازم به ذکر است موضوع پلتفرمهای توسعه پویا صرفا جایگزینی کد با مدلسازی و ابزارهای نمایشی نیست، بلکه موضوعات بسیار دیگری در حوزه نحوه انتشار نرم افزار، مدل ارتباط با مشتری، روال اعمال تغییرات و … وجود دارد که در مقالات مرتبط دیگر به آنها خواهیم پرداخت.

در حال حاضر در سطح جهانی سامانه های متعددی برای توسعه پویا وجود دارد که البته اکثر آنها در دسته پلتفرم های ابری (Cloud Base) قرار میگیرند و سرویسهای SaaS و PaaS جزئی از سرویسهای ارائه شده محسوب میگردند.

این بررسی کاملا موید این مطلب میباشد که ترند جهانی حرکت به سمت استفاده از ابزارهای توسعه پویا قطعی و الزامی خواهد بود، کما این که این موضوع از سالیان پیش شروع شده است. خوشبختانه شرکت برسا نوین رای به عنوان یک شرکت ایرانی و دانش بنیان که تمامی اجزای زیرساخت سیستم ساز را با دانش و تجربه ایرانی تولید نموده است، توانسته در زمان مناسبی وارد این حوزه شده و در حال حاضر سیستم ساز برسا، محمل پیاده سازی بسیاری از پروژه های بزرگ و ملی کشور بوده است.