ULS

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

«تغيير هر چيزي را ممكن است، تغيير دهد.»

اين عبارت «هر چيز» بسيار خطرناك‌تر از آن است كه به‌نظر مي‌رسد. «هر چيز» مي‌تواند:

  • «دورنما» (Vision) محصول باشد كه حتي مي‌تواند منجر به يك محصول جديد شود
  • «طرح مديريت نيازمندي‌ها» باشد كه در آن توجهي به وجود انواع نيازمندي‌ها نشده و مي‌بايست با برخي از نيازمندي‌هاي خاص به‌گونه‌اي ويژه رفتار نمود. به‌عنوان مثال در يك سيستم  ايمن، توجه به «نيازمندي‌هاي ايمني» و پيش‌بيني اين دسته از نيازمندي‌ها و پيش‌بيني برخورد با آنها در ادامه كار
  • ميزان «نيازمندي‌هاي» پيش‌بيني‌شده باشد كه طبيعتاً تيم توسعه را با چالش همراه مي‌كند
  • «الگوهاي طراحي» باشد كه مي‌تواند فعاليت‌هاي طراحي را افزايش يا كاهش دهد و يا تغييرات بنيادي در طراحي ايجاد كند
  • «ابزار برنامه‌نويسي» باشد كه به‌دليل پيش‌بيني‌نشدن برخي از موارد ابزار مناسبي انتخاب نشده باشد يا اينكه كشف شود كه ابزار ديگري وجود دارد كه قابليت‌هاي بهتر و كامل‌تري دارد و مي‌توان با آن براحتي برخي از فعاليت‌هاي خاص را انجام داد كه ممكن است كدهاي نوشته‌شده را به خاطره تبديل نمايد.
  • «مدير پروژه» باشد كه در بدترين حالت مي‌تواند بدون پخش هيچ نوع شيريني باشد و احساس بدي در افراد باقي گذارد
  • «محل پروژه» باشد كه علاوه بر اينكه خاطرات قبلي را از بين مي‌برد، مي‌تواند سبب شود جاي شما بزرگتر، كوچكتر، بهتر يا بدتر شود و مضافاً جاي استراحت موقع ناهار شما از بين برود
  • «سيستم عامل» كامپيوتر شما باشد كه در حين توسعه نرم‌افزار به‌هيچ عنوان براي شما توجيه‌پذير نيست و اين اعلان جنگ مستقيم با خداست كه يك كابوس واقعي است
  • افراد «تيم توسعه» باشد، اين مورد خصوصاً كاهش افراد تيم توسعه و مخصوصاً فردي كه هميشه سرميزش انواع شكلات و تنقلات دارد، غير قابل بخشش و ضربه روحي بزرگي به تيم توسعه وارد مي‌كند كه اثر اين شمشير تا آخر توسعه باقي مي‌ماند
  • «متدولوژي توسعه» باشد كه آن‌قدرها هم اهميت ندارد، چون عملاً هيچگاه پيروي نمي‌شود و چيزي كه فقط درون يك فايل Word مي‌باشد، براحتي نيز قابل تغيير است

اما سوال كليدي اين است كه آيا همه تغييراتي كه ما مي‌بينيم اينها هستند؟

پاسخ به اين سوال، پيچيده‌تر از اين حرف‌هاي عادي و متداول ماست و در واقع نياز به مطالعه وسيع‌تري دارد. مثل اغلب موارد، وزارت دفاعيات آمريكا (DoD) پيش‌قدم شده است و يك نيازمندي با همان عبارت بالا تعريف نموده و به دانشگاه Carnegie Mellon داده است. پاسخ آنها ايجاد مبحث جديدي در توسعه نرم‌افزار و البته سيستم به‌نام «سيستم‌هاي فوق‌وسيع» (Ultra-large scale systems) بوده است. در تحقيق انجام‌شده در حوزه سيستم‌هاي فوق وسيع «همه‌چيز تغيير مي‌كند»، به‌عنوان شروع كار است و اين كه وقتي تغيير شروع مي‌شود چه نتايجي دارد، چه راه‌حل‌هايي وجود دارد و چگونه به مسئله نگاه كنيم به‌عنوان دستاوردهاي تحقيق مد نظر قرار گرفته است. كتاب اين دستاورد را مي‌توانيد از اينجا به‌طور كامل دانلود نماييد.

در ايران نيز با توجه به نياز ديده شده، درسي بدين نام در كارشناسي ارشد توسط دكتر شمس تدوين شده و در حال تدريس مي‌باشد. مطالب عمده‌اي از اين موضوع را مي‌توانيد در وب‌سايت «هسته پژوهشي معماري سيستم‌هاي اطلاعاتي» پيدا كنيد و البته نمونه‌هايي كه دانشجويان اين درس به‌عنوان تحقيق انجام داده‌اند. سه اسلايد اوليه اين درس كه سال‌ها پيش توسط من ايجاد شده است و البته در طي سال‌ها تغيير نموده‌اند در اينجا قرار دادم تا شايد مورد استفاده تغييركنندگان قرار گيرد.