It’s worth noting that the Agile knock against a project plan is that early in a project you don’t know enough to design the project and create an architecture. This is true for a very small fraction of special case projects. It has not been true of any project upon which I have worked.
What’s that mean? Well, the idea that we don’t know enough to do a design early in the project was believed to be true on almost all the projects on which I have worked, but it has been true on none. As Juval Lowy makes clear in his architectural classes (idesign.net), this belief comes from designing against the requirements rather than the volatilities. Designing an architecture against the business volatilities can almost certainly be done early in the project and with a much higher degree of success than designing against the requirements. Designing against the requirements will fail your plan when the requirements change. What’s the one thing you can say about the requirements? That’s right — they will change.
This is what Parnas meant in 1972 and it’s what Juval means in 2015.
The Agile notion that you can’t do lightweight fast and accurate early architecture is a myth. Ridding the development society of this myth is no easy task and it adds significantly to the team’s inability to focus on success.