Problems with such an approach arise when engineers try to work concurrently with other development team members. As the design passes from group to group for critique from different functional perspectives (or even if they are critiquing it as a cross-functional team), every change causes further changes and analysis, resulting in rework and additional communication demands. There is no theoretical guarantee that the process will ever converge, and hundreds of engineers have told us that it often does not: the team simply stops designing when it runs out of time. Since the development organization never gets a clear picture of the possibilities, the resulting design can be far from optimal.