Waterfall is the application of manufacturing thinking to software

Many purportedly "Agile" processes are actually Agile in Name Only, applying the process in a rigid way, often conveniently mapping back into the waterfall methodologies.

Agile is best suited in complex adaptive environments with a high degree of discoverability (We can only be certain about now). The application of waterfall methodologies (formal phases, handoffs and shared artefacts) in the world of software is misplaced. Coming from the traditional mass-production factory lines, waterfall attempts to fix a solution to a formal plan and implement it using this traditional manufacturing metaphor. However, Taylorism constrains knowledge workers and these processes actually hinder the ability for teams to improve.

Where does this leave Kanban, an 'Agile' process oriented towards queuing, flow and the theory of constraints?