راهنمای مهندسی نیازمندی‌های نرم‌افزار

در دست ویرایش

ReqBook

کتاب راهنمای استخراج و توصیف نیازمندی‌های نرم‌افزار

نرم‌افزار می‌تواند برای حل بسیاری از مسائل و چالش‌ها استفاده شود. مشکل این است که در بیشتر موارد، درک اینکه مسأله چیست کار چندان آسانی نیست. درک مسأله – یعنی فهمیدن اینکه مسأله‌ی واقعی چیست – نقش مهندسی نیازمندی‌ها است. این کتاب راهنمایی است برای انجام بهترِ دو فعالیت کلیدی در مهندسی نیازمندی‌ها یعنی استخراج و توصیف نیازمندی‌ها.

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

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

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

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

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

در تهیه‌ی این کتاب از منابع زیر استفاده شده است:

  • تعاریف و مفاهیم مرتبط با فرایندهای مهندسی نیازمندی‌ها که در فصل اول ارائه‌ شده است، بر اساس رویکرد معرفی‌شده توسط REQB (هیأت بین‌المللی شایستگی‌های حرفه‌ای مهندسی نیازمندی‌ها) و همچنین IREB (انجمن بین‌المللی مهندسی نیازمندی‌ها) شکل گرفته است؛
  • استاندارد بین‌المللی مهندسی نیازمندی‌ها (ISO/IEC/IEEE 29148:2011)؛
  • کتاب Mastering the Requirements Process که دربرگیرنده‌ی نکات کاربردی بسیار ارزنده‌ای است و محور سازماندهی مطالب اصلی این کتاب به خصوص در بخش دوم بوده است؛
  • چندین کتاب و مقاله‌ی مرتبط با مهندسی نیازمندی‌ها؛
  • مستندات تجربه‌های به‌دست آمده در پروژه‌های مختلف؛
  • و نیز یادداشت‌های دوره‌های آموزشی برگزارشده.

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

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

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

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

به بالای صفحه بردن