ارتباط هزینه ساخت نرم‌افزار با متدولوژی

  • یوسف مهرداد بی‌بالان

داشتم مطلبی در وبلاگ رادمان که جناب آقای واحد نوشته بودند می‌خواندم و در ادامه به یادداشتهای خوانندگان رسیدم. یکی از یادداشتها توجه مرا به خود جلب کرد:
«به نظر من قیمت گذاری نرم افزار بسیار وابسته به متودولوژی مورد استفاده ما برای توسعه نرم افزار هستش ، طوری که بعضی از متودولوژی ها تلاش کاذبی رو برای توسعه یک نرم افزار به تیم توسعه تحمیل میکنند مثلا مستندات بسیار زیاد Rup و … و این زحمت اضافه بر روی قیمت گذاری از دید مدیر پروژه تاثیر خواهد داشت و افزایش قیمت در این حالت یک افزایش قیمت درست نخواهد بود ، از طرفی مشتری در اغلب مواقع تضاد آشکاری بین خروجی ارائه شده و قیمت پیشنهادی میبینه ، به نظر من تنها راه حل تخمین مناسب قیمت یک نرم افزار وارد کردن مشتری و یا فردی قابل اعتماد و مورد تایید سازمان و یا فرد درخواست دهنده به داخل تیم توسعه است که چنین راه حلی در روشهای Agile و متدهایی بسیار عالی همچون Scrum پیش بینی شده، در این روش ها از اونجایی که مشتری خودش داره روند پیشرفت پروژه رو میبینه و دائم در حال بحث و گفتگو و نظر دادنه دیگه نمیخواد برای قیمت گذاری چونه بزنیم و یا توجیهات دروغین ارائه بدیم ، دیگه نیازی نیست که مشتری بیچاره پول زحمت های کاذب ما رو بده که به هیچ قیمتی هم حاضر به ترک این زحمات نیستیم! ، در این روشها اساسا توسعه بر مبنای نیازهای مشتری نه بیشتر و نه کمتر انجام میشه و هیچ کار بدون کیفیت و اضافه ای در چرخه تولید نرم افزار انجام نمیگیره و این میشه کیفیت واقعی و هزینه ای که برای کیفیت واقعی محاسبه میشه ، یک هزینه واقعی نرم افزار هستش .»

مطمئن هستم که دوست عزیزمان (آقای سید ایوب) تجاربی دارند که بر اساس آن گفته ایشان درست خواهد بود. تجاربی که ممکن است ناشی از اجرا و به‌کارگیری نادرست متدلوژی یا نشان‌گر اشکالات متدولوژی‌ها باشد. دلم می‌خواست شرایطی بود تا نکاتی را درباره موارد اشاره شده دوست عزیزمان در این جا بیاورم، این کار نیاز به مقدمات بسیار طولانی دارد که از حوصله وبلاگ خارج است. اما ترجیح دادم چند نکته کلی را در مورد فرمایشات ایشان عرض کنم.

نکته اول: بسیاری از متدها به خصوص آنهایی که نام «چارچوب» را یدک می‌کشند مانند آریوپی و اسکرام، چیزی را دیکته نمی‌کنند بلکه با حفظ اصول، اجازه انتخاب می‌دهند. به عنوان مثال آر یو پی هیچ مستندی به شما دیکته نمی‌کند، آن چه به شما دیکته می‌کند، نگرشی است که از آن به عنوان روح حاکم بر آر یو پی یاد می‌شود که در همه متدهای نوین به شکلی وجود دارد(اصول حاکم بر فرایندهای نوین ایجاد نرم‌افزار).

نکته دوم: متدولوژی ابزار است و در انتخاب ابزار، تحلیل هزینه-منفعت نخستین گام است. اگر متدولوژی‌ای برای پروژه انتخاب شده که با هزینه و زمان آن سازگاری ندارد، اشکال از انتخاب کننده است و نه متدولوژی. در انتخاب متدولوژی رویه «هر چه قدر پول بدی (در اینجا پول داری) همان قدر آش می‌خوري» اجر می‌شود و نه برعكس.به عنوان مثال انتخاب اکس‌پی در مقابل اسکرام به مراتب هزینه بیشتری به همراه دارد. اولی در حوزه تکنیکی ایجاد نرم‌افزار و دومی در حوزه مدیریت آن است. به همین دلیل است که حداقل در ایران تیم‌های بیشتری ادعای کار با اسکرام را دارند تا اکس‌پی.

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

نکته چهارم: موضوع حائز اهمیت این است که کاری را که قبلاْ انجام نداده‌اید، نمی‌توانید برآورد کنید. فرقی نمی‌کند کدام طرف میز باشید. چه بسیار جلسات مشترک کارفرما، مجری و ناظر(که اتفاقاْ همه مشخصات اشاره شده دوست عزیزمان را دارد) بر سر اندازه‌گیری حجم و زمان انجام یک کار به چالش کشیده شده است. اگر فرض را بر این بگذارید که در مناقصه‌های ایجاد نرم‌افزار، کارفرما به دنبال پیدا کردن پیمانکاری است که این کار را قبلاً انجام داده باشد، این پرسش مطرح می‌شود که آیا به لحاظ قلمرو مسأله، مشخصات تکنولوژیُ، افراد درگير و پارامترهای دیگر، همه پروژه‌های به مناقصه گذاشته شده، مشابه قبلی داشته‌اند؟ چند وقت پیش با تیمی کار می‌کردم و از آنها خواستم که برآورد خود را از کار (به لحاظ فلمرو مسأله، بسیار ساده) ارائه دهند، بندگان خدا گفتند نمی‌توانیم، وقتی دلیلش را پرسیدم گفتند که به تکنولوژی ساخت محصول آشنایی ندارند، حق با آنها بود يا تيم بايد عوض مي‌شد يا گفته‌شان پذيرفته.

نکته پنجم: وقتی تجربه کاری را نداشته باشید، حتی نمی‌توانید برآوردها را ارزيابي و قبول کنید. بسیاری از کارهایی که برای افزایش کیفیت درونی نرم‌افزار انجام می‌دهیم برای مشتری و کاربر قابل لمس نیست. چه بسیار جملاتی شبیه به این جمله که «ما فقط گفتیم یک فیلد به فرم اضافه کنید و شما گفتید نیاز به اکس ماه زمان و ایگرگ تومان هزینه دارد» از کارفرمای آگاه به تولید نرم‌افزار شنیده شده است یا حتی از مدیران شرکتهای نرم‌افزاری شنیده شده است که « مگر چند تا فرم چقدر کار دارد که شما سه ماه است می‌گویید داریم معماری نرم‌افزار را انجام می‌دهیم». مدیر شرکت تولید نرم‌افزاری درد دل می‌کرد که سالها پیش یک فرم را روی کاغذ می‌کشیدیم و دو ساعت بعد، برنامه‌نویس فرم را انجام شده، تحویل می‌داد. الان همان فرم را می‌کشیم و یک ماه طول می‌کشد تا خروجی به ما نشان دهند.

نکته ششم: دوستی دارم که در صنعت ساختمان‌سازی کار می‌کند. همیشه حسرت می‌خوردم که چرا آنها می‌توانند به راحتی برآورد هزینه کنند و ما نمی‌توانیم. چند وقت پیش با هم صحبت می‌کردیم به نکته جالبی اشاره کرد. گفت چون قیمت مصالح روزانه مشخص و تعیین می‌گردد، دیگر نمی‌توانم برآورد درستی داشته باشم. وقتی شرایط نامطمئن و غیرقابل پیش‌بینی شود، برآوردها نیز با واقعیتها فاصله خواهند گرفت. دوستي ديگري در همان صنعت كه مجتمع‌سازي مي‌كردند مي‌گفت كه به دليل پرخطر بودن برآوردها، از چند وقت پيش با روش قيمت تمام شده به علاوه درصد سود كار مي‌كنيم و نه مناقصه‌‌اي مبتنی بر برآورد.

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

نکته آخر: شاید کمی مضحک به نظر آید اما در دیدگاهم متدولوژی‌ها، تکنولوژی‌ها و ابزارها مانند فرزندانی هستند که هر چند خلقیات متفاوت و گاه متضاد دارند، اما همگی آنها دوست داشتنی‌اند.

از آقای سید ایوب هم عذرخواهی می‌کنم. همان طور که در ابتدا عرض کردم، مطمئن هستم که تجارب ایشان کاملاً درست و قابل استناد است. هدفم از این یادداشت این بود که شاید تجارب ایشان در همه شرایط قابل تعمیم نباشد. برای ایشان و آقای مهندس واحد بهترین‌ها را آرزومندم.

گزیده:
ندارد.

به یاد دکتر

  • یوسف مهرداد بی‌بالان

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

دکتر سوکراتس از معدود فوتبالیست‌هایی بود که تحصیلات دانشگاهی داشت. او پزشک بود و کاپیتان تیم ملی فوتبال برزیل در جامهای جهانی ۱۹۸۲ و ۱۹۸۶. گلهای فنی او که با استپ سینه، استپ زانو و بعد شوت محکم همراه بود-به خصوص گلی که به شوروی در جام جهانی ۱۹۸۲ زد-، از او یک چهره ماندگار در فوتبال ساخت.
او جزو ۱۰۰ بازیکن برتر تاریخ فوتبال به انتخاب فیفا و مرد سال آمریکای جنوبی در سال ۱۹۸۳ و یکی از ۶۱ بازیکن برتر قرن بیستم به انتخاب ورلد ساکر بود.
دکتر سوکراتس دیروز در سن ۵۷ سالگی در بیمارستان آلبرت انشتین سائو پائولو از دنیا رفت.
پیشنهاد می‌کنم که مصاحبه با وی را در اینجا ببینید.
گزیده:

“Someone said ‘football is more important than life and death to you’ and I said ‘Listen, it’s more important than that’.” Bill Shankly

مدل‌سازی

  • یوسف مهرداد بی‌بالان

نوشتن مستند یا ترسیم مدل که از این پس آن را مدلسازی می‌نامیم به دلایل مختلفی انجام می‌شود اما دو دلیل عمده آن عبارتند از: ارتباطات و یادآوری.

فرض کنید که طرحی از یک پایگاه داده دارید که می‌خواهید از درستی آن مطمئن شوید، تصمیم می‌گیرید که از چند نفر بخواهید آن را بررسی کنند. منطقی است که قبل از اجرای طرح (ایجاد جداول و … در پایگاه داده) نظرات دریافت شود. اگر بتوانید بدون حضور افراد در جلسه، این کار را انجام دهید، هزینه و زمان کاهش خواهد یافت. اگر هم جلسه‌ای تشکیل دهید (جداجدا یا یکدفعه)، برای انتقال طراحی و دریافت نظرات، ناچارید بخشهایی از طرح خود را مثلاً روی تخته سفید ترسیم کنید یا بنویسید. این موارد، نمونه‌هایی از “مدلسازی برای ارتباطات” است.

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

ناچاریم این کارها را به یک دلیل ساده انجام دهیم: ناتوانی انسان یا به بیانی دیگر محدودیت توانایی انسان. شاید اگر می‌توانستیم تفکر خود را در کسری از ثانیه به دیگری انتقال دهیم یا فکر خود را در کسری از ثانیه روی رسانه‌ای منتقل کرده و برای دیگران بفرستیم یا توانایی به یادآوری گذشته را با جزئیات می‌داشتیم یا می‌توانستیم از لحظات تصمیم‌گیری نسخه پشتیبان تهیه کرده و هر وقت نیاز بود به ذهن خود یا افراد دیگر برگردانیم، یا امکان ساخت ابزارهایی که ایده را به محصول تبدیل کنند وجود داشت، نیازی به این همه دردسر نبود. شاید اگر روزی آرزوهایمان یا فیلمهای علمی-تخیلی به واقعیت تبدیل شوند، دردسرهای ما در این زمینه نیز کاهش یابد.

نمونه پروژه‌های زیر را در نظر بگیرید:
-پروژه کوچک و ساده‌ای مانند ثبت نام آموزشگاه رانندگی
-پروژه‌ای که نیاز پشتیبانی درازمدت ندارد مثل سیستمی که امکان تبدیل اطلاعات از سیستم قدیم به سیستم جدید یا ورود کمبودهای اطلاعاتی را میسر می‌کند که یک بار استقاده و بعد دور ریخته می‌شود
-محصولی که هر چند سال یک بار از نو طراحی و ساخته می‌شود مانند سیستم مالی در شرکت‌های تولیدکننده نرم‌افزار.

هر کدام بر اساس این دو خصلت (ارتباطات و یادآوری) نیازهای خاص خود را خواهند داشت و نمی‌توان با یک شیوه و نگرش نیازهای آنها را مرتفع نمود.

یکی از سوءتفاهم‌های شایع در مورد متدهای چابک و نظم‌گرا(دیسیپلین)، موضوع نگرش آنها در مورد مدل‌سازی است. گروهی متدهای چابک را با «مستندسازی نکردن» و متدهای نظم‌گرا را «مستندسازی حجیم» می‌شناسند.

در این بین، ایده‌های افراطی نیز زیاد به چشم می‌خورد از «مدلسازی همه چیز» گرفته تا «کد برنامه، بهترین مستند» که جای بحث و بررسی دارد.

گزیده:
مدل نمی‌کنیم که مدل کرده باشیم.

کارگاه تحلیل نیازمندی‌های سیستمی

  • یوسف مهرداد بی‌بالان

کارگاه سه روزه تحلیل نیازمندی‌های سیستمی در تاریخهای ۹ تا ۱۱ آذر برگزار می‌شود. برای اطلاعات بیشتر به این آدرس مراجعه فرمایید.

گزیده:
شما همه چیز‌ها را آن‌گونه که هست می‌بینید و می‌پرسید که “چرا” و من چیزها را آن‌گونه که هیچ‌وقت نبوده‌اند تصور می‌کنم و می‌پرسم “چرا که نه؟” جورج برنارد شاو

اشکالات کتاب – بخش دوم

  • یوسف مهرداد بی‌بالان

آقای مهندس بابانژاد از عزیزانی است که آشنایی با ایشان جزو اتفاقات نیک زندگی­‌ام است. ایشان اکنون دانشجوی دکترا در يكي از دانشگاه‌هاي كانادا هستند. برایشان آرزوی بهروزی و تندرستی دارم.

چند ماه پیش، ایشان لطف کرده و پس از مطالعه کتاب، فایلی را برایم ارسال کرده بودند که حاوی اشتباهات نوشتاری، نادرستی لغات معادل و نیز نقدها و پرسش­های ایشان در مورد کتاب بود. دقت ایشان مثال زدنی است، با هر بار خواندن مطالب ارسالی ایشان، بیشتر لذت می­‌برم. از ایشان بسیار سپاسگزارم.

تلاش کردم تا در کوتاه­ترین زمان، نظراتم را راجع به نوشته­‌هایشان آماده و برایشان ارسال کنم که میسر نشد. طی چند روز گذشته فرصتی دست داد تا نظرم را راجع به بخشی از نقدها و پرسش­های ایشان آماده کنم و مناسب دیدم که علاوه بر ارسال خدمت ایشان، مطالب را در وبلاگ نیز قرار دهم. امیدوارم مفید باشد.

۱ص-۱۱۷ – در بخش جایگاه سند چشم انداز در پاراگراف سوم خط دوم ادعا شده که سند چشم انداز مبنایی برای کنترل و تایید پیشرفت و معیاری برای سنجش تصمیمات اتی است. اما چگونگی آن توصیف نشده است. کاملاً درست می­‌فرمایید. همان طور که استحضار دارید به زبان ساده در سند چشم­‌انداز چند اطلاع مهم وجود دارد: مسأله چیست، نیاز (Need) چیست، قیدها(Constraint) و محدودیت­های پذیرش راه حل کدام است و مهم­‌تر، راه حل(Solution) به صورت کلان چیست و محدود (Scope) سیستم کجاست. این داده­‌ها در همه تصمیم­‌گیری­‌های مهم پروژه دخیل خواهند بود.

از طرف دیگر سند چشم­‌انداز بیان می­‌کند که قرار است کجا برسیم و با چه لوازمی، در هر لحظه می­‌توان اندازه گرفت (به سادگی یا به دشواری) که چه قدر به مقصد نزدیک شده­‌ایم.

از زاویه­ دیگری هم می­‌توان به موضوع نگاه کرد. ویژگی­‌ها و نیازمندی­‌های غیرکارکردی موجود در سند چشم­‌انداز بخش مهمی از اقلام کاری-Work Item List در UP- یا به زبان اسکرام Product Backlog را تشکیل می­‌دهند (البته همانطور که استحضار دارید این دو تفاوت ماهوی دارند و مثال برای نزدیک کردن نگرش بیان شده است) که یکی از معیارهای پیشرفت پروژه مقایسه اقلام کاری انجام شده نسبت به اقلام برنامه­‌ریزی شده است.

برای بیان روش و چگونگی آن لازم بود مفاهیمی دیگری از جمله برنامه­‌ریزی و پایش پروژه و مدیریت محدوده توضیح داده شود. از این رو از آن صرف نظر شد.

۲در ص ۱۵۳ که در ان یک مورد کاربرد مثال می زنیم در یکی از موارد می گوییم : کاربر گزینه تایید را انتخاب می کند به نظرم اینجا کمی بحث مربوط به طراحی وجود دارد بهتر است بگوییم کاربر تایید می کند با شما کاملاً موافق هستم.
اما به تجربه در پروژه­‌ها به این نتیجه رسیده­‌ایم که گاهی وجود این گونه اطلاعات در موردهای کاربرد هر چند مناسب نیست، ولی مفید است. به عبارت دیگر به شخصه توصیه می­‌کنم که این­گونه نوشته شوند تا جایی که زیاد وارد طراحی نشوند. به عنوان مثال در نمونه­‌ای که فرمودید این عبارت به دو دلیل توصیه شده است: یک) کاربر تصور مناسبی از رابط کاربر داشته باشند. دو) مراجعه طراح رابط کاربر به تحلیل­گر کاهش یابد.

۳-ص ۱۹۲ – به نظرم بهتر است در بخش پاسخ به پرسش های تحلیلی برای شناسایی کنشگرها پرسش چه کارهایی به صورت خودکار انجام میگیرند ویا تناوبی هستند و اینکه چه کسانی سیستم را اول بار بالا می اورند اضافه شوند برای شناسایی کنشگرهای زمانی و یا مدیریتینکته به جا و درستی فرمودید. در ویرایش بعدی کتاب لحاظ خواهد شد.

۴-در بخش ۱۰-۳ – سازماندهی مبتنی بر کسب کار، اگر یک مورد کاربرد یا کنشگر در چند بسته قرار بگیرند چه؟در این گونه مواقع از روشهای مرسوم در طبقه­‌بندی استفاده می­‌کنیم به عنوان مثال یک پکیج با نام مشترک یا عمومی ایجاد و موردهای کاربرد یا کنشگرهای مشترک را در آن قرار می­‌دهیم(روش ایجاد). مثال دیگر آن که کنشگر در یکی از پکیج­‌ها که بدان متمایل­‌تر است، قرار داده می­‌شود(روش وزن­‌دهی).

۵-سوال کلی: به نظرم حجم انبوهی از مطالب کتاب به اموزش UML اختصاص داده شده است. آیا به نظرتان این حجم اموزش نیاز بود؟ چرا بخشهایی که مربوط به خود نیازمندیها بود کمتر بدانها پرداخته شد؟ مثلا تکنیک های استخراج نیازمندیهاضمن آن که با شما کاملاً موافق هستم و ایده اولیه مطابق نظر شما بود يعني فرض شده بود كه خواننده تسلط کافی بر UML دارد. محدودیت دیگری نیز وجود داشت که قبول این فرض را تقویت می­‌کرد: محدودیت تعداد صفحات کتاب از طرف ناشر. با این حال به ناچار بخشی کوچکی از کتاب برای توضیح نمودارهای مورد استفاده در تحلیل نیازمندی­‌ها اختصاص یافته است. این تصمیم به دلایل زیر گرفته شده است:

الف) یکی از کمبودهایی که مشاهده کرده­‌ايم این است که با این که همگی عزیزان با UML آشنا هستند اما تسلط آنها به اندازه­‌ای نیست که حداقل مهارت و دانش لازم برای مدل­سازی را داشته باشند. یعنی با این که کسی نیست که UML را نداند، اما توانایی مدلسازی موضوعات تحلیلی در آنها دیده نمی­‌شود. شاهد آن که همه عزیزان می­‌دانند که نمودار فعالیت (Activity Diagram) چیست و حتی می­‌توانند از آن برای مدلسازی موضوعات ساده استفاده کنند، اما موضوع که پیچیده می­‌شود تنها ابزاری که در دست دارند، توضیح (کامنت) گذاشتن در نمودار است. در یکی از مشاوره­‌ها، طرف مشاوره قصد داشت BPMN را جایگزین UML کند. وقتی دلایلش را جویا شدم، بخش زیادی از دلایل فقط مربوط به نادانسته­‌های وی از UML می­‌شد و نه توانایی و ناتوانی BPMN و UML برای رفع نیاز وی.

اجازه دهید تا خاطره­‌ای را برایتان تعریف کنم: وقتی کتاب را برای بازنگری به یکی از دوستان که خبرگی و دانش وی بر من مسلم است، ارائه کردیم، پس از مطالعه دو فصل و به خصوص فصل دوازدهم به شوخی گفت: مگر در UML این چیزها هم وجود دارد. عرض کردم که برخی از آنها در نسخه­‌های جدید بدان افزوده شده است. به شوخی گفت: پس چرا با من هماهنگ نشده است!

ب) یکی از نکاتی که لازم است تأکید شود، استفاده از نمودارها و اجزای مدلسازی و در اینجا UML برای تحلیل سیستم و ابزار مهندسی است. در حالی که نگرش غالب به مقوله مدلسازی، «ابزار نقاشی» است تا «ابزار مهندسي».

پ) همان­طور که در مقدمه کتاب اشاره شده، در این کتاب سعی شده است که نیازمندی­‌ها خیلی ساده و روان به خواننده منتقل شود. به همین بخش­هایی از حوزه نیازمندی­ها مانند تکنیک­های استخراج نیازمندی­ها در حد معرفی ارائه شده­‌اند تا خواننده علاقه­‌مند را وادار به تحقیق درباره آنها نماید.

ت) در مورد موضوعی که اشاره فرمودید -تکنیک­های استخراج نیازمندی­ها- وسواس خاصی دارم. تدوین مطالب نظری در این مورد راضی­‌ام نمی­‌کند. اگر روزی مطلبی در این مورد به رشته تحریر در آورم، قطع به یقین علاوه بر مطالب نظري، تجارب بزرگان، همکاران و دوستان این حوزه را طی مصاحبه­‌هایی گردآوری و چاپ خواهم کرد.

۶-فرایند کلی که در تعریف کتاب استفاده شده چیست؟ منظورم اینست که ایا فرایند محور فکر کرده اید یا محصول محور؟ یعنی اینکه اول گفتیم چه محصولاتی در مهندسی نیازمندیها وجود دارد و سپس بگوییم چه فعالیت هایی برای تهیه انها نیاز است مثلا سند چشم انداز را وسط قرار می دهیم و سپس نحوه تهیه آنرا مشخص می کنیم. همه سعی­‌مان بر این بوده که کتاب فرایند محور باشد. دلیل این کار در مقدمه کتاب گفته شده است: «یکی ديگر از عوامل بروز چالش‌های مذکور، دشواري نگاشت و اجراي فعاليت‌هاي فرآیندهايي چون RUP در تیم­ها است. اين عامل باعث مي‌شود كه چارچوب فكري تيم‌ها به جاي وظيفه‌محوري (Task Driven) به محصول‌محوري (Work Product Driven) سوق داده شود. به عنوان مثال، تيم توسعه تنها به تدوين محصول‌كاري «سند چشم‌انداز» مي‌انديشد، نه به انجام مجموعه‌اي از وظيفه‌ها و كارها كه منجر به این سند مي‌شود. چگونگي انجام وظيفه‌ها، ترتيب اجراي آن‌ها و تكنيك‌هاي مرتبط، منجر به شكل‌گيري چارچوبي ذهني در تيم مي‌گردد كه در روش محصول‌محوري كم‌رنگ است. اين كتاب در كنار معرفي محصولات‌كاري، بر وظيفه‌ها و تكنيك‌هاي انجام آن‌ها نیز تأكيد دارد.»

فرایند از سه گام اصلی «تحلیل مسأله»، «شناسایی نیازهای ذینفعان» و «تعریف سیستم» تشکیل شده است. گامهای دوم و سوم دارای دو زیر گام هستند.

روش کتاب آموزش گام به گام تحلیل نیازمندی­ها است. به عنوان مثال «تحلیل مسأله» و زیرگامِ اولِ «شناسایی نیازهای ذینفعان» منجر به تهیه سند چشم­‌انداز می­‌گردد. پس از تشریح گامها محصول نهایی –در اینجا سند چشم­‌انداز- معرفی شده است. البته در هر گام به صورت پانویس اشاره شده است که نتیجه این گام چه بخشی از سند چشم­‌انداز خواهد بود.

در مورد موردهای کاربرد -Use Case- به دلیل اهمیت آن، ابتدا در یک فصل جداگانه و مقدماتی اجزای مدل مورد کاربرد و اهمیت آنها و در ادامه در فصل دیگر، مراحل و گامهای تدوین و تهیه آن توضیح داده شده است. این کار بدان دلیل انجام شد که یکی از موضوعات مهمی که دنبال آن بودیم، ایجاد برداشت یکسان، درست و جامع از چیستی و چرایی «تکنیک مورد کاربرد» بود.

در اجرای این شیوه – تفکر وظیفه محور- برای شناسایی مشخصات تکمیلی-supplementary specification- خیلی مؤفق نبوده­‌ایم و پتانسیل زیادی برای کار مجدد و تکمیل دارد و خودم از این بخش نسبت به سایر بخش­ها رضایت قلبی کمتری دارم.
اگر پیشنهادی برای رفع این عیب دارید، از شنیدن آن خوشحال خواهم شد.

پانوشت: از دريافت ايرادات، نقدها و نظرات عزيزانم در مورد كتاب استقبال كرده و خوشحال مي‌شوم.

گزیده:

Write how you want, the critic shall show the world you could have written better.
Oliver Goldsmith, Irish writer, poet, and physician.

کامپیوتر و اشغال وال‌استریت

  • یوسف مهرداد بی‌بالان

پیش‌گفتار:
از دنیای اقتصاد: ««وال‌استریت را اشغال کنید» جنبشی بدون رهبر باقی مانده و گشوده رو به همگان است و بسیاری از شرکت‌کنندگان به همین ویژگی‌هایش افتخار می‌کنند، اما این تظاهر‌کنندگان چه می‌گویند؟
معترضان به وال‌استریت می‌گویند که سهامدار دنیای کسب‌وکار آمریکا هستند. آنها درست می‌گویند، زیرا به‌عنوان مصرف‌کننده‌ها، کارمندان و شهروندانی که تحت تاثیر بحران مالی قرار گرفته‌اند، سهامدار دنیای کسب و کار هستند. بنابراین، کسب‌وکارها باید این واقعیت را هر چه سریع‌تر بپذیرند و اگر اکنون به طور فعال درگیر نشوند، به تدریج موضع آنها تضعیف خواهد شد.
شرکت‌های آمریکایی می‌توانند چندین مورد کار انجام دهند: در وهله‌ نخست، کسب‌وکار باید به نکات اصلی معترضان توجه نشان دهد. این نکات عبارتند از: درصد اندکی از آمریکایی‌ها سهم اصلی ثروت را در چنگ دارند و اکثریت آمریکایی‌ها سهم بسیار اندکی دارند و نیز درآمد مدیران ارشد اجرایی نسبت به کارکنان بسیار بسیار بالاتر است. آنها مدعی اند نابرابری اقتصادی پابرجا و در حال افزایش است و پژوهشگران نیز این ادعا را تایید کرده‌اند. …
بدین‌ترتیب کسب‌وکارها باید به رخدادهایی که در خیابان‌ها، بیرون از دفاتر اداری آنها رخ می‌دهند، توجه نشان دهند و آن را فرصتی برای یادگیری بدانند و در عین حال، با چشمان باز مراقب باشند که احساسات ضد کسب‌وکار چندان میان عموم رشد نکند.»

گفتار:
در کتاب ماجراهای پشت پرده نشان داده شده است که جنبش‌های اجتماعی در آمریکا بر روند شکل‌گیری و پیشرفت کامپیوتر بسیار تأثیرگذار بوده‌اند. آیا این بار نیز این موضوع تکرار خواهد شد. در صورت تکرار، آرزو می‌کنم که از چند و چون آن مطلع گردم.

گزیده:
«…اما یک راه طولانی در پیش است. پرسش‌های به راستی دشواری پیش روی ماست. ما می‌دانیم چه نمی‌خواهیم. اما آیا می‌دانیم چه می‌خواهیم؟ چه نظام اجتماعی می‌تواند جایگزین سرمایه‌داری شود؟ رهبران جدید چه خصوصیت‌هایی باید داشته باشند؟ یادمان نرود: مشکل اصلی فساد و زیاده خواهی نیست. مشکل اصلی، سیستم است. سیستمی که ما را تا مرز تسلیم هل می‌دهد. تنها از دشمنان حذر نکنیم. حواس‌مان به دوستانِ نارفیقی که می‌خواهند جان حرکت ما را بگیرند نیز باشد.»
اسلاوی ژیژک فیلسوف اسلوونیایی در جمع اشغال کنندگان وال استریت

چیدن سپیده دم

  • یوسف مهرداد بی‌بالان

پیش از آنكه واپسین نفس را برآرم، پیش ازآنكه پرده فرو افتد، پیش از پژمردن آخرین گل،

برآنم كه زندگی كنم، برآنم كه عشق بورزم، برآنم كه باشم،

در این جهان ظلمانی، در این روزگار سرشار از فجایع، در این دنیای پر از كینه،

نزد كسانی كه نیازمند منند، كسانی كه نیازمند ایشانم، كسانی كه ستایش انگیزند،

تا دریابم، شگفتی كنم، بازشناسم: كه‌ام، كه می‌توانم باشم، كه می‌خواهم باشم،

تا روزها بی‌ثمر نماند، ساعت‌ها جان یابد، لحظه‌ها گرانبار شود، هنگامی كه می‌خندم،

هنگامی كه می‌گریم، هنگامی كه لب فرو می‌بندم.

در سفرم به سوی تو، به سوی خود، به سوی خدا، كه راهی است ناشناخته، پرخار، ناهموار،

راهی كه باری در آن گام می‌گذارم، كه قدم نهاده‌ام و سر بازگشت ندارم

بی‌آنكه دیده باشم شكوفایی گلها را، بی‌آنكه شنیده باشم خروش رودها را، بی‌آنكه به شگفت درآیم از زیبایی حیات.

اكنون مرگ می‌تواند فراز آید، اكنون می‌توانم به راه افتم، اكنون می‌توانم بگویم كه زندگی كرده‌ام.

چیدن سپیده دم، مارکوت بیگل، احمد شاملو

پانوشت: توصیه می‌کنم که این شعر را با صدای زنده‌یاد شاملو بشنوید.

گزیده
:
ندارد.

برای خروج از جستجو کلید ESC را بفشارید