The basic principle of agile development is to bring features early and often. Agile promotes iterative work where the iteration lasts in weeks rather than months. It functions like a charm when we mostly know the path that leads to the solution.<p>But, I believe there is a drawback to that idea. Under time pressure, it is only human to play safely, do whatever is the most obvious, discard the up-front thinking, and apply the most familiar solution for the problem. Consequently, the result will be something already tried out, something seen and already known.<p>So, under pressure to act early and often, we miss the opportunity to think thoroughly, contemplate, and imagine a novel solution to the problem. We miss the chance to realize our best ideas.<p>What do you think?
Agile is very susceptible to being trapped in a local optimum. Breakthroughs in performance, for example, often require new architectures and/or new algorithms. Breakthroughs in user experience require throwing out a lot of existing iteratively improved UX. Two week sprints, and a "product owner" that is a kanban board accountant will not get you to the peak two valleys away.<p>Strong product management that can advocate for significant change, and that works with strong technical leadership that hasn't been worn down by being evaluated on Agile "velocity" (which, since story points are unitless, is just the inverse of time), is crucial to breaking out of a local optimum.
Someone on the Internet summed it up well<p><a href="https://github.com/rayfrankenstein/AITOW/blob/master/README.md" rel="nofollow">https://github.com/rayfrankenstein/AITOW/blob/master/README....</a>