Agile is a generic term for software development approaches designed to handle uncertainty and change. Thisisdonebydeliveringiterations quicklyandoften.Thegoalistoproduceworkingsolutionsthatcan evolvebasedoncustomerfeedbackandchangingrequirements. ItisoftencontrastedwithmoretraditionalWaterfalldevelopment methodologieswheredevelopmentflowsthroughaseriesofphases. Thenextphasecanonlybeginafterthepreviousoneiscomplete.Ata simplisticlevel,requirementsare signed-offatthebeginningofa project,andaredevelopedto deliverthefinalproduct. The attraction of Agile Waterfallmethodologiesare rootedintheworldof manufactureandmass production.Youprovideallthe requirementsupfrontand identicalproductsrolloffthe productionline.Successrequires detailedspecifications,accurate resourceforecastingandtop- downplanning. Theproblemwithdeveloping productsusingtheWaterfall approachisthatyouhavetoknow whatyouwantatthebeginningandwaituntiltheendtoseetheresults. Unfortunatelybusinesses,clientsandusersareoftennotsurewhat theywantatthebeginningofaproject.Theystruggletoarticulatetheir 4 ProductManagementJournalVolume 7 OVERVIEW Agile EverythingyouneedtoknowaboutAgile Fig.1Agile vsWaterfall development approaches Analyse Version 1 Version 2 Version 3 Version 4 Version X Specify Design Build Test Time Version 1 Agile approach Waterfall approach