حوزه نیازمندیهای نرمافزاری یکی از مهمترین حوزهها در توسعه نرمافزار است و با وجود پیشرفتهای چشمگیر، مهندسی نیازمندیها جزو ضعیفترین حلقهها در زنجیره فعالیتهای مهندسی نرمافزار است.
عموماً فرایند توسعه نرمافزار در شرکتهای ایرانی- کوچک یا بزرگ- با چالشهای زیادی همراه است. گاه توسعه فارغ از اصول علمی و مهندسی انجام میگردد و گاه در ورطه پیچیدگی متدولوژیها فرو میرود. در این شرایط، متدولوژی به جای راهگشایی، خود گره کار است. عموماً این دو چالش به دلیل نبود برداشتی ساده اما عمیق از اصول و مفاهیم مهندسی ایجاد میگردند. اغلب رعایت همین اصول و مفاهیم به دور از روبرو شدن با پیچیدگیهای متدولوژی یا امید به پیشرفت تصادفی پروژه، آن را به سرانجامی موفق خواهد رساند. این کتاب سعی دارد برخی از این مفاهیم و اصول را تبیین کند.
یکی دیگر از عوامل بروز چالشهای مذکور، دشواری نگاشت و اجرای فعالیتهای فرآیندهایی چون RUP در تیمها است. این عامل باعث میشود که چارچوب فکری تیمها به جای وظیفهمحوری (Task Driven) به محصولمحوری (Work Product Driven) سوق داده شود. به عنوان مثال، تیم توسعه تنها به تدوین محصولکاری «سند چشمانداز» میاندیشد، نه به انجام مجموعهای از وظیفهها و کارها که منجر به این سند میشود. چگونگی انجام وظیفهها، ترتیب اجرای آنها و تکنیکهای مرتبط، منجر به شکلگیری چارچوبی ذهنی در تیم میگردد که در روش محصولمحوری کمرنگ است. این کتاب در کنار معرفی محصولاتکاری، بر وظیفهها و تکنیکهای انجام آنها نیز تأکید دارد.