« بازار سخت افزار ایران | صفحه اصلی | هدفمند کردن يارانه ها و شرکتهاي تولید کننده نرم افزار »

آب بندی نرم افزار!

October 17, 2009 04:32 PM

قدیمها هر کس ماشینی صفر کیلومتر می خرید، مدتی را یا نمی دانم مسافتی را با سرعت کم و با درنظرگرفتن شرایط خاص می پیمود تا به اصطلاح ماشین جدیدش آب بندی شود، نمی دانم این رسم هنوز هم برای ماشین های جدید پابرجا است یا نه ....
به نظر می رسد نرم افزارها هم آب بندی می خواهند، اینکه مدتی پس از آماده شدن یک نسخه از نرم افزار با شرایط خاص از آن استفاده کنی تا نرم افزار جا بیافتد! این همان مفهوم ساده شده تست بتا(Beta Test) است، که نرم افزار را در محیط واقعی توسط نماینده مشتری و یا بازی کننده نقش مشتری آزموده شود.
اما ....
این تست بتا همیشه جوابگوی همه نرم افزارها برای همه محیط ها نیست و گاهی رخ می دهد که  پردازش های نرم افزاری در یک محیط خاص وارد نواحی بحرانی شده و خطایی آشکار شود که سالها نهفته بوده است.
هفته پیش همین اتفاق برای یکی از نرم افزارهای ما افتاد، نرم افزاری که یکی دو سال است نسخه جدید آن روانه بازار شده بود و در اختیار ده ها مشتری مختلف و متفاوت قرار گرفته بود تا اینکه ... مشتری آخری آن را در شرایطی استفاده کرد با ترافیک کاربری بالا و استفاده بدون وقفه که ما هم انتظار نداشتیم، در این شرایط خطایی رخ داد که در این یکی دو سالی که از عمر این نسخه می گذرد مشاهده نشده بود، تشخیص و رفع این خطا از آنجا مشکل بود که فقط در آن محیط و در شرایط واقعی رخ می داد و نه در دفتر و نه در هیچ مشتری دیگری این خطا آشکار نمی شد، بنابراین نمی شد روشهای عادی تست و رفع عیب را در آن بکار برد.
القصه پس از چند روز کار شبانه روزی بدون وقفه، عملا اتفاقی که افتاد آن بود که یک بخش از سیستم مجددا کاملا بازنویسی شد چرا که مساله نشان می داد که نمی شود بر اساس همین ساختار موجود، که تشخیص علت خطا در آن غیرممکن به نظر می رسید، عمل کرد و باید ساختار جدیدی برای آن ایجاد کرد، ساختاری که در ترافیک بالا و حجم استفاده زیاد نیز جوابگو باشد و مکانیسم های exception handling به آن اضافه شود.
خلاصه اینکه همیشه آب بندی کردن تنها جوابگو نیست، باید برخی وقت ها با ماشین خود مسابقه هم بدهید که مطمئن بشوید سالم است!
همین!

Ali Vahed | 04:32 PM

 

نظرخواهی

خیلی جالب بود. همیشه در درس‌ها و کتاب‌ها شنیده بودیم که در شرایط «شدید» و همچنین برای نرم‌افزارهای خیلی بزرگ، ملاحظات ویژه‌ای در زمینه‌ی نیازمندی‌های غیرکارکردی (مثل سرعت اجرا و زمان پاسخگویی، امنیت، اتکاپذیری و غیره) پدیدار می‌شود که با روش‌های معمولی قابل حل نیستند و نیاز به توجه و تلاش ویژه و تجربه و دانش زیاد دارند. همیشه فکر می‌کردم برای نرم‌افزارهای معمولی که در ایران به طور روزمره با آن‌ها سروکار داریم چنین نیازهایی وجود ندارد؛ ماجرایی که تعریف کردید از این نظر واقعاً جالب بود. اگر می‌شد جزئیاتش را هم بیاورید دیگر می‌شد یک کلاس آموزشی واقعی در زمینه‌ی مهندسی نرم‌افزار!

ارسال شده توسط: محمد در ساعت October 19, 2009 01:32 AM

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

ارسال شده توسط: علی در ساعت October 25, 2009 10:20 AM