One of the weaknesses in the iterative process is planning. If high level planning is lacking the project could lose some structure which makes it difficult for the teams to get traction. The nature of agile is to minimize up-front planning, which is great, but the project would still need a target/end product goal as a guide. It would be important to know, generally, what the end goal is even if the product takes on changes during the design phase. Secondarily, this could lead to pressure within sprints and create technical debt (an accumulation of unresolved problems) and scope creep. For example, if the project lacks executive level planning, it would be very difficult to get buy-infrom management creating a void that’s difficult to overcome at the team level, and a significant amount of resources could be wasted. Agile is supposed to run in parallel, and for the most part does, but reality dictates that there will need tobe some type of integration of each of the sprints at some point.
The strength of the iterative process lies in it’s flexibility to make changes on the fly coupled with short time durations. This agility and adaptability make it possible to accommodate the inevitable changes that occur along the project timeline, and encourages creativity to experiment with new ideas. An example, if we were creating an eCommerce site and along the way the we discovered we could integrate a feature that synchronized inventory between the brick and mortar store with the website. This would be a major benefit for the product owner and would have little impact on the project timeline. The iterative process allows new ideas to be explored without hurting the overall completion date and delivers a better product for the client.