در طول سالهای متمادی نرمافزارهای اتوماسیون اداری همواره در حال تغییر بودهاند؛ چراکه مفاهیم حوزه اتوماسیون اداری متناسب با نیازهای سازمانهای بهرهبردار دستخوش تغییر و تحول شدهاند.
بیشتر تغییرات نرمافزارهای اتوماسیون اداری را قابلیتهای مورد نیاز سازمانهای مشتری تشکیل دادهاند. همزمان با تغییرات، باگهای نرمافزاری رفع و تغییرات رفتاری کوچک و بزرگ مشتری در نرمافزارها اعمال شدهاند. این تغییرات تا آنجا بوده که برخی قابلیتها به صورت وب سرویس در اختیار سایر نرمافزارهای سازمانهای مشتری قرار گرفتهاند.
در قسمت اول و دوم این مقاله از دلایل نیاز به بازمهندسی نرمافزارها و مراحل انجام این عملیات سخن گفتیم. در قسمت سوم مقاله تلاش میکنیم تا با نگاهی دقیقتر و ارائه تجربه عملی، دلایل بازمهندسی نرمافزارهای اتوماسیون اداری را بررسی کنیم.
با گسترش استفاده از نرمافزارهای اتوماسیون اداری در شرکتهای بزرگ، ساختارهای دولتی و ملی تلاشهای بسیاری برای افزایش کارایی این ابزار و استفاده همزمان آنها توسط کاربران صورت گرفته است؛ مثلا برخی از اصلیترین قابلیتهای این نرمافزارها بر روی پلتفرم موبایل ارائه شده است.
اهمیت نرمافزارهای اتوماسیون اداری و ضریب نفوذ آنها در سازمانهای مشتری موجب شد تا به عنوان نخستین محصول برای بازمهندسی در پلتفرم دیدگاه ۵ انتخاب شوند. با اجرای این عملیات و ایجاد رفتارهای متفاوت بر روی ماژولهای مختلف، برخی از سیستمهای اتوماسیون اداری دیدگاه برای استقرار در هر نوع سازمانی آماده شداند و سایر نرمافزارها نیز به تدریج در دستور کار بارمهندسی قرار گرفتهاند.
دیدگاه ۵ و چالشهای ما
انجام این تغییرات و عملیات گوناگون بر روی نرمافزارها که در طول این سالها رخ دادهاند، چالشهای بسیاری را برای آنها به همراه دارند که آنها را میتوان در چند سطح مجزا معرفی کرد:
-
کدهای منبع:
مواجه نرمافزار با انبوهی از خطوط کد که بسیار پیچیده شده، توسعه پذیری را کُند و نگهداشت آن را بسیار پر هزینه کرده یک چالش جدی است. پخش شدن قواعد و رفتارهای نرمافزار در لایههای مختلف، به وجود آمدن متدهایی با کارهای تقریبا یکسان که به علت نیاز به پشتیبانی از پلتفرمهای مختلف در واقع موازی کاری انجام میدهند عوامل پدیدآورنده این چالشاند.
-
چسبندگی کدها:
چسبندگی کدهای هر بخش به سایربخشها به علت معماری قدیمی و طولانی شدن زیاد متدها به دلیل پشتیبانی از رفتارهای مختلف سازمانهای مشتری.
این دو موضوع از جمله چالشهایی هستند که همواره باعث میشوند که تغییر در هر قابلیت، پیچیدگیها را افزایش دهد. از طرف دیگر نیاز است تا هر تغییر کوچکی در مجموعهای از کدها به جای یک قسمت از کد تغییر ایجاد کند. این مشکلات و چالشها اجتنابناپذیر هستند و میتوان گفت همیشه وجود دارند.
در سطح قابلیتهای نرمافزاری، نگهداشت این ویژگیها در پلتفرمهای مختلف بسیار پرهزینه میشود. رفع یک باگ کوچک یا تغییر در یک رفتار، لایههای پایینی قابلیتها را تحت تاثیر قرار میدهد و در تمامی لایههای بالایی ارائه دهنده خدمات اثرگذار خواهد بود بنابراین باید همواره تلاش کنید تا این تاثیرات به صورت کنترل شده ادامه پیدا کنند.
از طرف دیگر در زمان افزودن قابلیت جدید باید خدمات آن قابلیت را در تمامی پلتفرمهایی که پشتیبانی میکنید، ارائه دهید که این امر، طراحی و پیادهسازی هر قابلیت جدیدی را مشکل میکند.
در سطح پلتفرمهای پشتیبانی چالشها بیشتر تکنولوژیک هستند. پلتفرمهای مختلف در قابلیتهایی که به تیم تولید میدهند و تکنولوژیهای مورد استفاده از یکدیگر متمایزند. دنیای وب سرویسها بسیار با دنیای وبفرمها متفاوت است و باعث می شود که تیمهای تولید در ارائه راه حلهای مسائل دچار محدودیت شوند.
یک مشکل نرمافزاری برای همه این پلتفرمها یک شکل است؛ اما نمیتوان یک راه حل را برای این مشکل در همه این پلتفرمها ارائه داد؛ بنابراین در زمان حل مسائل حتما باید یک راه حل در ازای هر پلتفرم ایجاد شود. این امر باعث پیچیدگی بیشتر، توسعهپذیری کمتر و افزایش هزینه نگهداشت میشود.
در رفتارهای نرمافزاری همواره با مجموعهای از رفتارهای متفاوت برای پشتیبانی انواع سازمانها مواجهاید. در زمان تغییر یک رفتار، همواره باید نگران تاثیرات آنها بر روی سایر رفتارهای قابل پشتیبانی سیستم باشید. هر تغییر رفتار کوچکی، تاثیرات بزرگی بر روی رفتار سازمانی مشتریان دارد؛ بنابراین همواره باید برای نگهداشت رفتارهای گذشته تلاش کنید.
چالش دیگر این است که بعضی از رفتارها در برخی سازمانهای مشتری منسوخ شده و در برخی دیگر همچنان در حال استفاده است. مجموعه زیادی از پیچیدگیها به دلیل متفاوت بودن رفتارهای مشتریان در طول زمان به نرمافزار اضافه میشوند که توسعهپذیری آنها را کاهش میدهند.
یادتان باشد که تکنولوژیها همیشه یک قدم از ما جلوترند. هر روز در دنیا تکنولوژیهایی در حوزه نرمافزار تولید میشوند که یک مساله نرمافزاری را حل میکنند.
وقتی نرمافزارها به مرور توسعه مییابند تکنولوژیهای استفاده شده در تولید آنها مطمئنا بعد از ۱۵ سال منسوخ شدهاند؛ بنابراین نرمافزار از مجموعهای تکنولوژی استفاده میکند که ترکیبی از تکنولوژیهای قدیمی و جدید است. پشتیبانی از تکنولوژیهای قدیمی و جدید در حل مسائل، چند دستگی ایجاد میکند و عاملی برای کاهش توسعهپذیری و هزینه بالای نگهداشت میشود.
پروژه زاگرس و بازتعریف نرمافزارهای اتوماسیون اداری
چالش بزرگ برای نرمافزارهای اتوماسیون اداری، ظهور مفاهیم جدید در هر یک از ماژولهای اداری است. در شرایطی که تعاریف مربوط به شیوه مدیریت وظایف سازمانی تغییر کرده است، مفهوم رفتار رسمی در رابطه با پیام به شدت دچار بازتعریف جدید شده و سازمانها به مساله سرعت انجام عملیات به طوریکه بار رسمی و اداری امور حفظ شود، اهمیت ویژه میدهند، بازتعریف نرمافزارهای اتوماسیون اداری اجتنابناپذیر است.
نیاز به تعاملهای غیررسمی بر روی موجودیتهای رسمیتر باعث شده است که به عنوان مثال در حوزه اتوماسیون اداری مفاهیمی مثل ارجاع به یک نامه در قابل Mention کردن یک فرد در محیطی تعاملی و یادداشت گذاریهای کوتاه روی موجودیتها انجام شود. اینگونه مفاهیم و تعاریف تغییر یافته که بر اساس تحولات بنیادی فرهنگهای سازمانی رخ میدهند، چالشهای بعدی در نرمافزارها را رقم میزنند.
این چالشها برای تمامی نرمافزارها بعد از گذشت ۱۵سال اجتنابناپذیرست. نرم افزارهای حوزه اتوماسیون اداری دیدگاه نیز از این مساله مستثنی نیستند.
تنها راه برون رفت از این چالشها بازمهندسی نرمافزارهای اتوماسیون اداری برای برطرف کردن تمامی پیچیدگیهای بوجود آمده، پشتیبانی از رفتارهای جدید و بازتعریف مفاهیم سازمانی است؛ به طوریکه نرمافزار مجدد احیا شود و با آیندهنگری نسبت به رفتارهای آتی، دوباره به چرخه توسعهپذیری و نگهداری باز گردد.
وجود همه این چالشها و آگاهی نسبت به آنها موجب شد تا از سال گذشته پروژهای در راهکار اتوماسیون اداریدیدگاه برای بازمهندسی نرمافزارها آغاز شود که هدف کلی آن در کنار رفع مشکلات فعلی نرم افزارهای اتوماسیون اداری، نگاه به آینده و استفاده از تکنولوژیهای آینده است.
نگاه متفاوت به تحولات آینده،بهرهمندی از تکنولوژیهای برتر و معماری جدیدی که پروژه زاگرس طرحریزی شده است، زمینه بازتعریف مفاهیم نرمافزاری و رفتار موجودیتهای آنها را در چارگون فراهم کرده است.