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