فرایند اصلی تولید یک نرم افزار شامل: درک مشکل، جمع آوری نیازمندی ها برای راه حل های موجود، تبدیل نیازمندی ها به طراحی و در نهایت ساخت و تست محصول نهایی است. در روش های تولید نرم افزار iterative بجای این که در هر مرحله تمام فعالیت ها انجام شود یعنی تمام نیازمندی ها در مرحله جمع آوری نیازمندی ها و تمام طراحی در مرحله طراحی و بهمین ترتیب سعی بر آن شود که در هر مرحله از تولید نرم افزار 100 درصد کار انجام شود، در هر تکرار (iteration) قسمتی از مراحل انجام می شود و در پایان iteration محصولی هر چند ناقص برای بازبینی تحویل مشتری می شود و از فیدبک مشتری برای تکمیل مراحل در iteration بعدی استفاده می شود.
از مزایای این روش می توان موارد زیر را ذکر کرد:
-
نیازمندی های پنهان مشتری در iteration مختلف نمایان می شود.
-
مشتری در هر iteration قسمتی از محصول را که تکمیل شده است می بیند و حمایت بیشتری برای ادامه کار از تولید کننده می کند.
-
هزینه تکمیل یک طراحی خوب در iteration ها پخش می شود و تیم توسعه دهنده بمرور به یک طراحی بالغ و مناسب برای پروژه می رسد.
-
تیم مدیریتی می تواند ریسک های پروژه را بهتر کنترل کند.
-
تغییرات مورد نیاز مشتری زود به زود و در هر iteration با استفاده از فیدبک های آنها در نرم افزار اعمال می شود.
-
رابطه بین تیم تولید، مدیریتی و مشتری بسیار تنگاتنگ می شود که در نهایت منجر به تولید محصول باب میل مشتری با کمترین هزینه تولید (باب میل مدیران) و کمترین استرس کار نکردن محصول (باب میل تیم تولید) می شود.
با توجه به اینکه مبحث iterative development بسیار گسترده است پیشنهاد می کنم سری مقالات زیر که توسط کارمندان شرکت IBM نگارش شده است را حتما مطالعه کنید، این مقالات iterative development را از سه منظر توسعه دهندگان، مشتری و مدیران بررسی و تشریح کرده است.