A concurrent process is very well-suited to achieve development speed. A sequential process is generally better at minimizing risk and controlling development expenses. Each is 'best' to achieve a certain objective. The same is true for functional organizations versus teams. A functional organization is an excellent tool to keep development expenses low.
Teams are well-suited for rapid development, especially when they are adequately manned.
Again, neither is a universal best practice. The great danger in labeling something a 'best practice' is that you cannot be against it. People stop thinking as soon as something is labeled as a 'best'. Such mindless behavior is dangerous in a complex world. I am simply arguing for a more thoughtful approach to development process design.