سیبِل: شما برای طراحی نرمافزار چه فرایندی را طی میکنید؟ آیا Emacs را به کار میگیرید و شروع به نوشتن کد میکنید و سپس آنها را جابجا میکنید تا درست به نظر برسند؟ یا آن که مداد و کاغذ به دست میگیرید و روی یک مبل راحتی مینشینید؟
جاشوا بلاک: چند سال پیش در OOPSLA یک سخنرانی داشتم به عنوان «چگونه یک API (رابط برنامه کاربردی) خوب طراحی کنیم و چرا این کار اهمیت دارد» که نسخههای گوناگونی از آن در وب وجود دارد. در آنجا به طور مفصل پاسخ این سوال شما را دادهام.
مهمترین چیز این است که بدانید چه جیزی میخواهید بسازید. به عبارت دیگر، چه مسألهای را میخواهید حل کنید. از اهمیت تحلیل نیازها [تحلیل نیازمندیها یا requirement analysis] به هیچوجه نباید غافل شد. بعضیها فکر میکنند تحلیل نیازها یعنی این که شما پیش مشتری میروید و از او میپرسید چه میخواهی؟ و او هم به شما میگوید که چه میخواهد و کار تمام میشود.
اما این یک خیال باطل است. این کار نه تنها به مذاکره و مصالحه نیاز دارد بلکه یک فرایند درک متقابل است. بسیاری از مشتریان به شما نمیگویند مسأله چیست بلکه راه حل را به شما میگویند. مثلاً یک مشتری ممکن است به شما بگوید «من میخواهم که شما این ویژگیها را به سیستم بیفزایید.» شما باید بپرسید «چرا؟ با این سیستم چکار میخواهید بکنید؟» و پرسشهایی شبیه اینها. باید آنقدر عقب و جلو بروید تا بفهمید مشتری واقعاً میخواهد نرمافزار چه کاری برایش بکند. اینها کارخواستها [مورد کاربرد یا use case] هستند.
به دست آوردن مجموعه خوبی از کارخواستها [موردهای کاربرد]، مهمترین کاری است که در این مرحله میتوانید بکنید. پس از آن که این کار را انجام دادید، محکی در دست دارید که با آن میتوانید هر راه حلی را بسنجید. هر چقدر که برای انجام صحیح این مرحله وقت بگذارید اشکالی ندارد زیرا اگر در این مرحله دچار اشتباه شوید، دیگر کار تمام است و بقیه فرایند تولید نرمافزار، در واقع وقت تلف کردن بیهوده است.
منبع: برنامهنویسان در حال کار، قسمت ششم، نوشته پیتر سیبِل، ترجمه استاد ابراهیم نقیبزاده مشایخ، ماهنامه گزارش کامپیوتر، شماره ۱۹۴، آذر و دی ۸۹، صفحه ۶۲
جاشوا بلاک(Joshua Bloch) معمار ارشد جاوا در گوگل است.
گزیده:
من اساساً به مرور زمان نسبت به خودم سختگیرتر شدهام و به همین دلیل است که اکنون برنامههای بهتری مینویسم. شما نباید عادتهای بد خودتان را بپذیرید. جاشوا بلاک
مسعود علی اکبرزاده
۲۴ بهمن ۱۳۸۹ در ۰۰:۰۰فکر می کنم تنها راه درک اهمیت تحلیل نیازمندی ها، داشتن تجربیات شکست هایی است که به آن بی توجهی شده است…
————————–
آقای اکیرزاده عزیز
سلام.
امیدوارم که شیرینی پروژه های موفق نیز به این مهم کمک کند.
شاد باشید